25.2 ZFS 磁盘扩容
磁盘扩容
警告
ZFS 文件系统只能扩大无法缩小!
注意
此方案仅适用于向后扩展,如果 freebsd-zfs 分区前面有空余空间则无法使用此方法扩展。
# gpart show
=> 40 167772087 nda0 GPT (80G)
40 532480 1 efi (260M)
532520 1024 2 freebsd-boot (512K)
533544 984 - free - (492K)
534528 4194304 3 freebsd-swap (2.0G)
4728832 142071775 4 freebsd-zfs (68G)
146800607 20971520 - free - (10G)可以看到,free 空闲空间是 10GB。
选择对第四分区进行扩容:
# gpart resize -i 4 nda0
nda0p4 resized再看下:
# gpart show
=> 40 167772087 nda0 GPT (80G)
40 532480 1 efi (260M)
532520 1024 2 freebsd-boot (512K)
533544 984 - free - (492K)
534528 4194304 3 freebsd-swap (2.0G)
4728832 163043295 4 freebsd-zfs (78G)查看 zpool:
# zpool list
NAME SIZE ALLOC FREE CKPOINT EXPANDSZ FRAG CAP DEDUP HEALTH ALTROOT
zroot 67.5G 2.20G 65.3G - - 2% 3% 1.00x ONLINE - # 这里看到还是 67.5G 没有扩容zpool 状态:
# zpool status
pool: zroot
state: ONLINE
status: Some supported and requested features are not enabled on the pool.
The pool can still be used, but some features are unavailable.
action: Enable all features using 'zpool upgrade'. Once this is done,
the pool may no longer be accessible by software that does not support
the features. See zpool-features(7) for details.
config:
NAME STATE READ WRITE CKSUM
zroot ONLINE 0 0 0 # 可以看到池名是默认的 zroot
nda0p4 ONLINE 0 0 0 # 这里看到是 nda0p4
errors: No known data errors扩展 zfs 池:
# zpool online -e zroot nda0p4查看扩容后:
# zpool list
NAME SIZE ALLOC FREE CKPOINT EXPANDSZ FRAG CAP DEDUP HEALTH ALTROOT
zroot 77.5G 2.20G 75.3G - - 2% 2% 1.00x ONLINE -已经扩展完成。
参考文献
附录
分区编号可从 gpart show 命令获取具体名称,或使用参数 -p:
# gpart show -p
=> 40 244277168 mmcsd0 GPT (116G)
40 532480 mmcsd0p1 efi (260M)
532520 2008 - free - (1.0M)
534528 243740672 mmcsd0p2 freebsd-zfs (116G)
244275200 2008 - free - (1.0M)
=> 34 976773101 nda0 GPT (466G)
34 6 - free - (3.0K)
40 567256 nda0p1 efi (277M)
567296 419436064 nda0p2 ms-basic-data (200G)
420003360 310592132 nda0p3 ms-basic-data (148G)
730595492 4 - free - (2.0K)
730595496 177626968 nda0p4 ms-basic-data (85G)
908222464 67100672 nda0p5 freebsd-swap (32G)
975323136 1445937 nda0p6 ms-recovery (706M)
976769073 4062 - free - (2.0M)打印分区类型 GUID (如果是 GPT)或原始分区类型(MBR)
# gpart show -rp
=> 40 244277168 mmcsd0 GPT (116G)
40 532480 mmcsd0p1 c12a7328-f81f-11d2-ba4b-00a0c93ec93b (260M)
532520 2008 - free - (1.0M)
534528 243740672 mmcsd0p2 516e7cba-6ecf-11d6-8ff8-00022d09712b (116G)
244275200 2008 - free - (1.0M)
=> 34 976773101 nda0 GPT (466G)
34 6 - free - (3.0K)
40 567256 nda0p1 c12a7328-f81f-11d2-ba4b-00a0c93ec93b (277M)
567296 419436064 nda0p2 ebd0a0a2-b9e5-4433-87c0-68b6b72699c7 (200G)
420003360 310592132 nda0p3 ebd0a0a2-b9e5-4433-87c0-68b6b72699c7 (148G)
730595492 4 - free - (2.0K)
730595496 177626968 nda0p4 ebd0a0a2-b9e5-4433-87c0-68b6b72699c7 (85G)
908222464 67100672 nda0p5 516e7cb5-6ecf-11d6-8ff8-00022d09712b (32G)
975323136 1445937 nda0p6 de94bba4-06d1-4d40-a16a-bfd50179d6ac (706M)
976769073 4062 - free - (2.0M)查看详情:
# gpart list mmcsd0参考文献
GPT 分区详解,GPT 基础知识
如何轻松改变分区类型 ID?试试这 2 种方法!,分不清分区类型 ID 和分区 UUID 的可以参考此文。
旧时,安装过黑苹果的人应该都设置过分区类型 ID
故障排除
ZFS 无法向前扩展
下面是错误方法
警告
这是错误方法,请勿在生产环境尝试。
如果使用 zfs 作为 /:
# gpart add -t freebsd-zfs -a 4k -s 210751598 -l add100G diskid/DISK-FXS690MQ233011234
# zpool add root /dev/gpt/add100G重启后会发现,启动加载器会报错 ZFS: i/o error - all block copies unavailable。
待探索其他方案。
参考文献
FreeBSD root on ZFS 千古奇坑,不知道有无关联,但是报错是相同的
最后更新于
这有帮助吗?