我有一个 8.12TB 的 4 磁盘 mdraid,带有 zfsonlinux 的 ZFS:
# zpool status
pool: tank
state: ONLINE
scan: none requested
config:
NAME STATE READ WRITE CKSUM
tank ONLINE 0 0 0
md-name-ubuntu:md2 ONLINE 0 0 0
我又添加了两个磁盘:
# mdadm --add /dev/md2 /dev/sde /dev/sdf
# mdadm --grow /dev/md2 -n 6
成功完成:
# mdadm --detail /dev/md2
/dev/md2:
Version : 1.2
Creation Time : Thu Jan 16 01:53:23 2014
Raid Level : raid5
Array Size : 14597903360 (13921.65 GiB 14948.25 GB)
Used Dev Size : 2919580672 (2784.33 GiB 2989.65 GB)
Raid Devices : 6
Total Devices : 6
Persistence : Superblock is persistent
在调整大小期间,ZFS 被卸载但未导出。它仍报告其旧大小:
# zpool list
NAME SIZE ALLOC FREE CAP DEDUP HEALTH ALTROOT
tank 8.12T 7.78T 349G 95% 1.04x ONLINE -
现在我尝试了以下每个步骤来扩展它,有人在某个地方声称所有这些步骤都会起作用:
# zpool set autoexpand=on
# zpool export tank
# zpool import tank
什么也没做。
# zpool export tank
# zpool import -o autoexpand=on tank
什么也没做。
# zpool export tank
# zpool import -o expand=on tank
什么也没做。
# zpool online -e tank md-name-ubuntu:md2
什么都没做。奇怪的名字也不是问题,我也试过了
# zpool export tank
# zpool import -d /dev/ tank
# zpool online -e tank md2
只是,几分钟后,当我写这篇文章时,分区表似乎已经更新了(不知道我尝试了哪个命令导致了这种情况)
# gdisk -l /dev/md2
Found valid GPT with protective MBR; using GPT.
Disk /dev/md2: 29195806720 sectors, 13.6 TiB
Number Start (sector) End (sector) Size Code Name
1 2048 29195788287 13.6 TiB BF01 zfs
9 29195788288 29195804671 8.0 MiB BF07
但这里仍然没有变化:
# zpool list
NAME SIZE ALLOC FREE CAP DEDUP HEALTH ALTROOT
tank 8.12T 7.78T 349G 95% 1.04x ONLINE -
调整大小需要一段时间吗?我看不到任何报告正在进行的操作的信息。
相关zfsonlinux 问题两年前已经解决(请注意评论说我在这里失败的两种方法都有效)。
使用zfsutils zfs-dkms Version: 0.6.2-1~saucy
答案1
您需要卸载 ZFS 模块并重新插入或者只需重新启动。
之后,您可以运行zpool online -e devicename
并查看新的 zpool 大小。
不过我应该补充一点,我经常使用硬件 RAID 上的 ZFS... 但是,除非有其他限制,否则在 MD 软件 RAID 上使用它是没有多大意义的。