免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123下一页
最近访问板块 发新帖
查看: 10851 | 回复: 24
打印 上一主题 下一主题

[FreeBSD] freebsd10.1的自动zfs设置,命令列表... [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2015-06-10 16:01 |只看该作者 |倒序浏览
freebsd10.1 amd64,四块硬盘,raidz2.
  1. DEBUG: FSTAB_FMT=[%s\t\t%s\t%s\t%s\t\t%s\t%s\n]

  2. DEBUG: zfs_create_boot: :> "/tmp/bsdinstall_etc/fstab"
  3. DEBUG: zfs_create_boot: printf "$FSTAB_FMT" "# Device" "Mountpoint" "FStype" "Options" "Dump" "Pass#" >> "/tmp/bsdinstall_etc/fstab"
  4. DEBUG: zfs_create_boot: zpool destroy "zroot"

  5. DEBUG: zfs_create_diskpart: gpart destroy -F "da0"
  6. DEBUG: zfs_create_diskpart: graid delete "da0"
  7. DEBUG: zfs_create_diskpart: zpool labelclear -f "/dev/da0"
  8. DEBUG: zfs_create_diskpart: gpart create -s gpt "da0"
  9. DEBUG: zfs_create_diskpart: gpart destroy -F "da0"
  10. DEBUG: zfs_create_diskpart: gpart create -s gpt "da0"
  11. DEBUG: zfs_create_diskpart: gpart add -l gptboot0 -t freebsd-boot -a 4k -s 512k "da0"
  12. DEBUG: zfs_create_diskpart: gpart bootcode -b "/boot/pmbr" -p "/boot/gptzfsboot" -i 1 "da0"
  13. DEBUG: zfs_create_diskpart: gpart add -l swap0 -t freebsd-swap -a 4k -s 4g "da0"
  14. DEBUG: zfs_create_diskpart: zpool labelclear -f "/dev/da0p2"
  15. DEBUG: zfs_create_diskpart: gpart add -l zfs0 -t freebsd-zfs -a 4k "da0"
  16. DEBUG: zfs_create_diskpart: zpool labelclear -f "/dev/da0p3"
  17. DEBUG: zfs_create_diskpart: printf "$FSTAB_FMT" "/dev/da0p2" "none" "swap" "sw" "0" "0" >> "/tmp/bsdinstall_etc/fstab"
  18. DEBUG: zfs_create_boot: gnop create -S 4096 "da0p3"

  19. DEBUG: zfs_create_diskpart: gpart destroy -F "da1"
  20. DEBUG: zfs_create_diskpart: graid delete "da1"
  21. DEBUG: zfs_create_diskpart: zpool labelclear -f "/dev/da1"
  22. DEBUG: zfs_create_diskpart: gpart create -s gpt "da1"
  23. DEBUG: zfs_create_diskpart: gpart destroy -F "da1"
  24. DEBUG: zfs_create_diskpart: gpart create -s gpt "da1"
  25. DEBUG: zfs_create_diskpart: gpart add -l gptboot1 -t freebsd-boot -a 4k -s 512k "da1"
  26. DEBUG: zfs_create_diskpart: gpart bootcode -b "/boot/pmbr" -p "/boot/gptzfsboot" -i 1 "da1"
  27. DEBUG: zfs_create_diskpart: gpart add -l swap1 -t freebsd-swap -a 4k -s 4g "da1"
  28. DEBUG: zfs_create_diskpart: zpool labelclear -f "/dev/da1p2"
  29. DEBUG: zfs_create_diskpart: gpart add -l zfs1 -t freebsd-zfs -a 4k "da1"
  30. DEBUG: zfs_create_diskpart: zpool labelclear -f "/dev/da1p3"
  31. DEBUG: zfs_create_diskpart: printf "$FSTAB_FMT" "/dev/da1p2" "none" "swap" "sw" "0" "0" >> "/tmp/bsdinstall_etc/fstab"
  32. DEBUG: zfs_create_boot: gnop create -S 4096 "da1p3"

  33. DEBUG: zfs_create_diskpart: gpart destroy -F "da2"
  34. DEBUG: zfs_create_diskpart: graid delete "da2"
  35. DEBUG: zfs_create_diskpart: zpool labelclear -f "/dev/da2"
  36. DEBUG: zfs_create_diskpart: gpart create -s gpt "da2"
  37. DEBUG: zfs_create_diskpart: gpart destroy -F "da2"
  38. DEBUG: zfs_create_diskpart: gpart create -s gpt "da2"
  39. DEBUG: zfs_create_diskpart: gpart add -l gptboot2 -t freebsd-boot -a 4k -s 512k "da2"
  40. DEBUG: zfs_create_diskpart: gpart bootcode -b "/boot/pmbr" -p "/boot/gptzfsboot" -i 1 "da2"
  41. DEBUG: zfs_create_diskpart: gpart add -l swap2 -t freebsd-swap -a 4k -s 4g "da2"
  42. DEBUG: zfs_create_diskpart: zpool labelclear -f "/dev/da2p2"
  43. DEBUG: zfs_create_diskpart: gpart add -l zfs2 -t freebsd-zfs -a 4k "da2"
  44. DEBUG: zfs_create_diskpart: zpool labelclear -f "/dev/da2p3"
  45. DEBUG: zfs_create_diskpart: printf "$FSTAB_FMT" "/dev/da2p2" "none" "swap" "sw" "0" "0" >> "/tmp/bsdinstall_etc/fstab"
  46. DEBUG: zfs_create_boot: gnop create -S 4096 "da2p3"

  47. DEBUG: zfs_create_diskpart: gpart destroy -F "da3"
  48. DEBUG: zfs_create_diskpart: graid delete "da3"
  49. DEBUG: zfs_create_diskpart: zpool labelclear -f "/dev/da3"
  50. DEBUG: zfs_create_diskpart: gpart create -s gpt "da3"
  51. DEBUG: zfs_create_diskpart: gpart destroy -F "da3"
  52. DEBUG: zfs_create_diskpart: gpart create -s gpt "da3"
  53. DEBUG: zfs_create_diskpart: gpart add -l gptboot3 -t freebsd-boot -a 4k -s 512k "da3"
  54. DEBUG: zfs_create_diskpart: gpart bootcode -b "/boot/pmbr" -p "/boot/gptzfsboot" -i 1 "da3"
  55. DEBUG: zfs_create_diskpart: gpart add -l swap3 -t freebsd-swap -a 4k -s 4g "da3"
  56. DEBUG: zfs_create_diskpart: zpool labelclear -f "/dev/da3p2"
  57. DEBUG: zfs_create_diskpart: gpart add -l zfs3 -t freebsd-zfs -a 4k "da3"
  58. DEBUG: zfs_create_diskpart: zpool labelclear -f "/dev/da3p3"
  59. DEBUG: zfs_create_diskpart: printf "$FSTAB_FMT" "/dev/da3p2" "none" "swap" "sw" "0" "0" >> "/tmp/bsdinstall_etc/fstab"
  60. DEBUG: zfs_create_boot: gnop create -S 4096 "da3p3"


  61. DEBUG: zfs_create_boot: zpool create -o altroot=/mnt -O compress=lz4 -O atime=off -m none -f "zroot" raidz2  da0p3.nop da1p3.nop da2p3.nop da3p3.nop
  62. DEBUG: zfs_create_boot: zfs create -o mountpoint=none "zroot/ROOT"
  63. DEBUG: zfs_create_boot: zfs create -o mountpoint=/ "zroot/ROOT/default"
  64. DEBUG: zfs_create_boot: zfs create -o mountpoint=/tmp -o exec=on -o setuid=off "zroot/tmp"
  65. DEBUG: zfs_create_boot: zfs create -o mountpoint=/usr -o canmount=off "zroot/usr"
  66. DEBUG: zfs_create_boot: zfs create  "zroot/usr/home"
  67. DEBUG: zfs_create_boot: zfs create -o setuid=off "zroot/usr/ports"
  68. DEBUG: zfs_create_boot: zfs create  "zroot/usr/src"
  69. DEBUG: zfs_create_boot: zfs create -o mountpoint=/var -o canmount=off "zroot/var"
  70. DEBUG: zfs_create_boot: zfs create -o exec=off -o setuid=off "zroot/var/crash"
  71. DEBUG: zfs_create_boot: zfs create -o exec=off -o setuid=off "zroot/var/log"
  72. DEBUG: zfs_create_boot: zfs create -o atime=on "zroot/var/mail"
  73. DEBUG: zfs_create_boot: zfs create -o setuid=off "zroot/var/tmp"
  74. DEBUG: zfs_create_boot: chmod 1777 "/tmp"
  75. DEBUG: zfs_create_boot: chmod 1777 "/var/tmp"
  76. DEBUG: zfs_create_boot: zpool set bootfs="zroot/ROOT/default" "zroot"
  77. DEBUG: zfs_create_boot: zpool export "zroot"
  78. DEBUG: zfs_create_boot: gnop destroy "da0p3.nop"
  79. DEBUG: zfs_create_boot: gnop destroy "da1p3.nop"
  80. DEBUG: zfs_create_boot: gnop destroy "da2p3.nop"
  81. DEBUG: zfs_create_boot: gnop destroy "da3p3.nop"

  82. DEBUG: zfs_create_boot: zpool import -o altroot="/mnt" "zroot"
  83. DEBUG: zfs_create_boot: mkdir -p "/mnt/boot/zfs"
  84. DEBUG: zfs_create_boot: zpool set cachefile="/mnt/boot/zfs/zpool.cache" "zroot"
  85. DEBUG: zfs_create_boot: echo "zfs_enable=\"YES\"" >> "/tmp/bsdinstall_etc/rc.conf.zfs"
  86. DEBUG: zfs_create_boot: echo "zfs_load=\"YES\"" >> "/tmp/bsdinstall_boot/loader.conf.zfs"
  87. DEBUG: zfs_create_boot: echo "kern.geom.label.gptid.enable=\"0\"" >> "/tmp/bsdinstall_boot/loader.conf.zfs"

复制代码
把系统日志里的命令列出来了,不知道有没有少列的.

1. 是不是4k对齐需要两个工作,一个是gpart add的时候用-a 4k,一个是gnop?

2. 为什么安装盘的这个自动zfs设置作者不加 -a 4k ?是不是用了gnop后gpart add的时候就不用-a 4k了?



wiki.freebsd.org/RootOnZFS/GPTZFSBoot/9.0-RELEASE
Note: FreeBSD 10.1 or later: Load the zfs kernel module and set the minimum ashift value with sysctl vfs.zfs.min_auto_ashift=12 in stead of using gnop devices

3.看这里好像是设定vfs.zfs.min_auto_ashift=12就不用gnop了,但是我安装10.1系统自带的zfs为什么还是用了gnop了?

论坛徽章:
54
2017金鸡报晓
日期:2017-02-08 10:39:42操作系统版块每日发帖之星
日期:2016-03-08 06:20:00操作系统版块每日发帖之星
日期:2016-03-07 06:20:00操作系统版块每日发帖之星
日期:2016-02-22 06:20:00操作系统版块每日发帖之星
日期:2016-01-29 06:20:00操作系统版块每日发帖之星
日期:2016-01-27 06:20:00操作系统版块每日发帖之星
日期:2016-01-20 06:20:00操作系统版块每日发帖之星
日期:2016-01-06 06:20:0015-16赛季CBA联赛之江苏
日期:2015-12-21 20:00:24操作系统版块每日发帖之星
日期:2015-12-21 06:20:00IT运维版块每日发帖之星
日期:2015-11-17 06:20:002015亚冠之广州恒大
日期:2015-11-12 10:58:02
2 [报告]
发表于 2015-06-10 16:54 |只看该作者
zfs部分日志基本上全了。

1. 是不是4k对齐需要两个工作,一个是gpart add的时候用-a 4k,一个是gnop?


gpart add的时候,是保证分区从4K整开始,但是读写数据的时候,FreeBSD默认是512的,在zfs创建的时候,也会按照512去创建,所以会导致性能问题。gnop的目的就是让zfs认为gpart创建的这个分区也是4K对齐的设备,从而创建4K对齐的zfs。(在其他版本中,有个ashift参数,这个在FreeBSD版中好像没有)

2. 为什么安装盘的这个自动zfs设置作者不加 -a 4k ?是不是用了gnop后gpart add的时候就不用-a 4k了?

同上

    wiki.freebsd.org/RootOnZFS/GPTZFSBoot/9.0-RELEASE
    Note: FreeBSD 10.1 or later: Load the zfs kernel module and set the minimum ashift value with sysctl vfs.zfs.min_auto_ashift=12 in stead of using gnop devices


3.看这里好像是设定vfs.zfs.min_auto_ashift=12就不用gnop了,但是我安装10.1系统自带的zfs为什么还是用了gnop了?


这部分要在创建zfs之前设置,就可以不用gnop了,安装系统应该还没有跟进。

论坛徽章:
54
2017金鸡报晓
日期:2017-02-08 10:39:42操作系统版块每日发帖之星
日期:2016-03-08 06:20:00操作系统版块每日发帖之星
日期:2016-03-07 06:20:00操作系统版块每日发帖之星
日期:2016-02-22 06:20:00操作系统版块每日发帖之星
日期:2016-01-29 06:20:00操作系统版块每日发帖之星
日期:2016-01-27 06:20:00操作系统版块每日发帖之星
日期:2016-01-20 06:20:00操作系统版块每日发帖之星
日期:2016-01-06 06:20:0015-16赛季CBA联赛之江苏
日期:2015-12-21 20:00:24操作系统版块每日发帖之星
日期:2015-12-21 06:20:00IT运维版块每日发帖之星
日期:2015-11-17 06:20:002015亚冠之广州恒大
日期:2015-11-12 10:58:02
3 [报告]
发表于 2015-06-10 16:57 |只看该作者
另外,可以用下面的命令查看一下zfs用的ashift值:

zdb  | grep ashift


9: 2^9=512
12:2^12=4096

论坛徽章:
0
4 [报告]
发表于 2015-06-11 04:37 |只看该作者
老大就是热心,赞一个.对我等强迫症必须要弄清是福音啊.
装了n遍比较安装日志,某次选了mirror swap发现是用gmirror实现的mirror swap.


gpart add的时候,是保证分区从4K整开始

这里是指加-a 4k参数吧? gpart add的时候,加-a 4k是保证分区从4K整开始

假设硬盘是固态硬盘,如果像安装日志那样不加-a 4k, 而zfs用gnop对齐, 这样物理上是否就没对齐,zfs中对齐了.
这样有什么影响吗?安装程序为何不加那个-a 4k?是否不需要,是否只要zfs中gnop对齐就可以了?

这里我还是没那么明白?

论坛徽章:
54
2017金鸡报晓
日期:2017-02-08 10:39:42操作系统版块每日发帖之星
日期:2016-03-08 06:20:00操作系统版块每日发帖之星
日期:2016-03-07 06:20:00操作系统版块每日发帖之星
日期:2016-02-22 06:20:00操作系统版块每日发帖之星
日期:2016-01-29 06:20:00操作系统版块每日发帖之星
日期:2016-01-27 06:20:00操作系统版块每日发帖之星
日期:2016-01-20 06:20:00操作系统版块每日发帖之星
日期:2016-01-06 06:20:0015-16赛季CBA联赛之江苏
日期:2015-12-21 20:00:24操作系统版块每日发帖之星
日期:2015-12-21 06:20:00IT运维版块每日发帖之星
日期:2015-11-17 06:20:002015亚冠之广州恒大
日期:2015-11-12 10:58:02
5 [报告]
发表于 2015-06-11 08:09 |只看该作者
1、FreeBSD的swap就是用的gpart,zfs不适合作为swap使用,必须在zfs之外建swap,所以FreeBSD的ZFS安装采用gpart分区,先每个盘分出swap,然后把每个盘剩余空间再给zfs使用,这时的zfs实际上只相当于用了磁盘的在部分。如果/跟zfs不在同一个磁盘上,就不需要这样做了,直接拿整个磁盘来做zfs就可以。
  实际上,FreeBSD在用zfs安装根目录的时候,一个磁盘分了三个分区,一个用来启用,一个用来swap,剩下的才给了zfs。
  所以比较好的方案是:在条件允许的时候,尽量用单独的磁盘来做系统,安装完系统后手工做zfs,或者干脆把系统做在移动介质里面,我有个机器就是这么干的,用mfs,小县城电力不稳,用zfs不怕停电,只是启动的时候重新import一下

2、gpart加上-a是保证整个分区对齐4K,但是不能保证按4K来读写,这个工作就是后来gnop来做的,gnop有一个-S参数,就是相当于一个虚拟磁盘,这个虚拟磁盘对外显示的参数是物理4K对齐的(普通磁盘对外显示是物理512B对齐的)。zfs中的对齐,也就是按多大的块来对磁盘进行读写。

论坛徽章:
9
2015年亚洲杯之卡塔尔
日期:2015-05-07 07:05:542015亚冠之鹿岛鹿角
日期:2015-05-29 14:55:522015亚冠之鹿岛鹿角
日期:2015-06-11 09:55:192015亚冠之山东鲁能
日期:2015-06-19 23:53:042015亚冠之大阪钢巴
日期:2015-06-23 21:03:17操作系统版块每日发帖之星
日期:2015-06-23 22:20:00操作系统版块每日发帖之星
日期:2015-06-27 22:20:002015亚冠之布里斯班狮吼
日期:2015-07-04 03:40:012015亚冠之平阳省
日期:2015-07-12 09:32:55
6 [报告]
发表于 2015-06-11 09:28 |只看该作者
BSD版块里

都是lsstarboy

都是他在帮助人

论坛徽章:
0
7 [报告]
发表于 2015-06-11 19:08 |只看该作者
实际上,FreeBSD在用zfs安装根目录的时候,一个磁盘分了三个分区,一个用来启用,一个用来swap,剩下的才给了zfs。

这个我查看日志的时候发现了,见我前面贴的.


gpart加上-a是保证整个分区对齐4K,但是不能保证按4K来读写,这个工作就是后来gnop来做的,gnop有一个-S参数,就是相当于一个虚拟磁盘,这个虚拟磁盘对外显示的参数是物理4K对齐的(普通磁盘对外显示是物理512B对齐的)。zfs中的对齐,也就是按多大的块来对磁盘进行读写。

嗯,昨晚熬了一夜查各种边边角角资料,搞懂了.
1. gnop只是为了让zfs系统从512b改成4k对系统进行读写操作.提高效率.
2. 具体4k对齐还是要进行gpart -a 4k



安装程序为啥不加-a 4k呢?
我都觉得我自己烦了...

论坛徽章:
54
2017金鸡报晓
日期:2017-02-08 10:39:42操作系统版块每日发帖之星
日期:2016-03-08 06:20:00操作系统版块每日发帖之星
日期:2016-03-07 06:20:00操作系统版块每日发帖之星
日期:2016-02-22 06:20:00操作系统版块每日发帖之星
日期:2016-01-29 06:20:00操作系统版块每日发帖之星
日期:2016-01-27 06:20:00操作系统版块每日发帖之星
日期:2016-01-20 06:20:00操作系统版块每日发帖之星
日期:2016-01-06 06:20:0015-16赛季CBA联赛之江苏
日期:2015-12-21 20:00:24操作系统版块每日发帖之星
日期:2015-12-21 06:20:00IT运维版块每日发帖之星
日期:2015-11-17 06:20:002015亚冠之广州恒大
日期:2015-11-12 10:58:02
8 [报告]
发表于 2015-06-11 21:36 |只看该作者
本帖最后由 lsstarboy 于 2015-06-11 21:37 编辑

加不加应该都一样吧,前面分区都是4K整数倍,明天手工测试一下,用-a 4k和不用对比一下结果。

论坛徽章:
0
9 [报告]
发表于 2015-06-24 16:24 |只看该作者
本帖最后由 bleakwind 于 2015-06-26 21:41 编辑
lsstarboy 发表于 2015-06-11 21:36
加不加应该都一样吧,前面分区都是4K整数倍,明天手工测试一下,用-a 4k和不用对比一下结果。


(刚写错了,现在修改下)

不加34开始,加了40开始
34是不对齐的: 34*512/4096=4.25
40是对齐的: 40*512/4096=5

论坛徽章:
54
2017金鸡报晓
日期:2017-02-08 10:39:42操作系统版块每日发帖之星
日期:2016-03-08 06:20:00操作系统版块每日发帖之星
日期:2016-03-07 06:20:00操作系统版块每日发帖之星
日期:2016-02-22 06:20:00操作系统版块每日发帖之星
日期:2016-01-29 06:20:00操作系统版块每日发帖之星
日期:2016-01-27 06:20:00操作系统版块每日发帖之星
日期:2016-01-20 06:20:00操作系统版块每日发帖之星
日期:2016-01-06 06:20:0015-16赛季CBA联赛之江苏
日期:2015-12-21 20:00:24操作系统版块每日发帖之星
日期:2015-12-21 06:20:00IT运维版块每日发帖之星
日期:2015-11-17 06:20:002015亚冠之广州恒大
日期:2015-11-12 10:58:02
10 [报告]
发表于 2015-06-24 21:12 |只看该作者
回复 9# bleakwind


你说的还真是,不加-a 4k我这儿好几台机器都是从34开始。

你的是从36开始?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP