首页 > 代码库 > FreeBSD_11-系统管理——{Part_5-ZFS}
FreeBSD_11-系统管理——{Part_5-ZFS}
内核需求
- ZFS 静态編译进内核
-
# 确保内核启用如下三项支持 options ZFS #/usr/src/sys/amd64/conf/MyKernel options NFSD options UFS_ACL # 设置开机启动 zfs_enable="YES" #/etc/rc.conf.local
- ZFS 做为模块开机加载
-
# 确保如下两个文件同时存在
# /boot/kernel/zfs.ko
# /boot/kernel/opensolaris.ko
# 确保内核启用如下两项支持
options NFSD #/usr/src/sys/amd64/conf/MyKernel
options UFS_ACL
# 必須的两个模块与内核同步編译 MODULES_OVERRIDE= zfs opensolaris #/etc/make.conf # 设置开机启动 zfs_enable="YES" #/etc/rc.conf.local # 确保 zfs 模块开机加载 zfs_load="YES" #/boot/loader.conf
特别注意
- ZFS 不通过常规的操作系统工具进行管理,如:pool 中的 diskset 挂载信息不需要写入 fstab
- 包含多个成员的 vdev 创建之后,其結构无法修改,如:无法从 mirror 修改为 raidz2;仅包含单个成员的 vdev 添加设备后可升級为 mirror
- vdev 的成员可以是整个磁盘或某个分区,FreeBSD 平台上两者没有显著的性能差异
操作摘要
- zpool
- zpool create POOL vdevtype MEM[s] #以一个或多个磁盘或磁盘分区作为成员创建 zfs pool ,vdev 的类型可以为 disk、file、mirror、raidz、log、spare、cache 等
- zpool destroy POOL #消毁 zfs pool
- zpool status [-x] POOL #查詢所有 pool 的健康状态,-x 显示简略信息
- zpool list #显示 pool 列表
- zpool iostat [-v] [N] #显示当前 I/O 负载,-v 显示详细信息,N 处可指定数字,表示每隔 N 秒动态追加新的监控結果
- zpool history [-i] [-l] #显示历史操作记录
- zpool clear #在錯誤修复之后清除旧的錯誤信息
- zpool scrub POOL #校验指定 pool 的 checksum 值并修复损坏的文件, I/O 操作,同一时间仅允许一个 scrub 进程
- zpool offline POOL MEM #停用指定的成员
- zpool online [-e] POOL MEM #启用指定的成员,-e 选项用于扩展 POOL空间,例如:所有成员均替换成了更大的容量,此操作可使 POOL 识别扩展出的空间
- zpool replace POOL DISKSET NEWDISK #替换失效的磁盘或分区,diskset 失效之后,其名称会退化为一串数字(18位 UUID,如:316502962686821739)
- zpool attach POOL VDEV MEM #向当前 pool 中已有的 vdev 中追加一个成员,仅能应用于 mirror 或 disk 两种类型
- zpool detach POOL MEM #从当前 pool 中撤出一个成员,仅能应用于 mirror
- zpool add POOL vdevtype MEM[s] #在已有的 pool 中创建新的 vdev;vdev 一旦创建,则不能从 pool 中撤出
-
gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1DISK #若当前 pool 用于启动系统,则在 add 或 attach 之后需要执行此步,DISK 指新添加的成员所在的硬盘(不是分区!)
- zpool split [-n] [-R] POOL NEWPOOL [MEM...] #将一个具备足够冗余能力 POOL 分割成两个,默认将原 POOL 中每个 vdev 的最后一个设备分离出去,新生成的 NEWPOOL 与原 POOL 具有相同的数据,-n 选项指預览結果并不真正执行,-R 选项用于指定 NEWPOOL 的挂载目录,分离到 NEWPOOL 中的成员可以手工指定
- zpool upgrade [-v] [POOL] #不指定 POOL 名称时显示 zfs 版本信息;当 zfs 升級之后,对每个旧版 zfs 系统中的 POOL 执行此命令以应用新特性(此操作不可逆)
- zfs
- zfs create POOL/DISKSET
- zfs set copies=N POOL/DISKSET #设置数据 N 份冗余
- zfs set compression=gzip/off/on... POOL/DISKSET #指定数据压缩方式及开关等
- zfs mount POOL/DISKSET
- zfs umount POOL/DISKSET
- zfs destroy POOL/DISKSET #消毁 zfs diskset
- zfs snap POOL/DISKSET@SNAPNAME #创建 snapshot, @ 之后的部分是快照名称
- zfs rollback POOL/DISKSET@SNAPNAME #diskset 将回滚到指定快照创建时的状态
- zfs destroy POOL/DISKSET@SNAPNAME #消毁快照
- zfs set mountpoint=/usr/home POOL/DISKSET #为 diskset 指定挂载点
- zfs list #显示 diskset 挂载信息
FreeBSD_11-系统管理——{Part_5-ZFS}
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。