在ZoL上创build我的RAID-Z池时,我可以很容易地在稍后插入其他磁盘。 同时我了解到,这是不可能的。
但是…我在创build初始池时遇到了类似的问题。 只有4个空闲的SATA端口,而是一个带有3个2TB磁盘的旧RAID5和一个带有3个4TB磁盘的新RAIDZ1。 解决的办法是a)降级RAID5和b)用一个稀疏文件构build起初的RAIDZ作为“虚拟的第三个驱动器”,在创build池之后立即使其脱机:
dd if=/dev/zero of=/zfs1 bs=1 count=1 seek=4100G zpool create zfspool raidz /dev/disk1 /dev/disk2 /zfs1 zpool offline zfspool /zfs1 zfspool 。 卸载旧的RAID5磁盘,添加第三个新的4TB磁盘 zpool replace zfspool /zfs1 /dev/disk3 这真是太好了! 现在我了解到,尽pipeZFS不直接支持将单个磁盘添加到RAIDz,但它支持逐个replace较大的磁盘。
所以这是我的计划。 有人看到有缺陷吗?
这会工作吗? 我知道我在这个过程中由于缺less冗余而更容易丢失数据,但我会备份最重要的数据。 对于整个6TB的有效载荷来说还不够。
在最后一步之后,ZFS会自动将池增长到(3 + 1)x4TB = 12TB?
丑,但这会奏效。
除了没有做到)。
重要提示:在尝试之前,您最好在其他介质或机器上进行testing备份!
是的,如果最后一个2TB磁盘或分区被一个4TB磁盘或分区replace(如果池中有autoexpand = on),则ZFS将增加该池。
zpool get autoexpand $pool zpool set autoexpand=on $pool
在旁注中:你不应该在大于2TB的磁盘上使用RAID-Z。 在更换出现故障的磁盘时,出现重新同步错误的机会非常高。 请考虑RAID-Z2。
这听起来很糟糕。 这是你的数据,所以你可以按照你的意愿去做…然而,没有人会认可这个解决scheme。
这真的是你应该重新开始的一种情况。
暂时将数据移到某处并重build。