我想在某个个人服务器上尝试 ZFS。据我所知,创建 vdev 后无法向其添加磁盘,只能向池中添加新的 vdev。此外,将 ZFS 置于 RAID 之上被认为是一种不好的做法,因为它无法修复损坏的位和类似问题,因为它可以提供直接访问权限。最后,应该为每个 vdev 提供相同级别的冗余,因为只要一个故障就足以使整个池瘫痪。
我想要实现的是允许单个驱动器发生故障而不会丢失数据,并从 2 个硬盘开始,但如果第三个硬盘对于我的数据来说太小,也许可以在此过程中添加第三个硬盘。将潜在的第三个磁盘添加为 vdev 似乎不可行,因为它将成为整个池的 SPF。如上所述,在 ZFS 下使用 mdadm 执行 RAID5 不是最佳选择,但应该可以工作,因为当 ZFS 看到底层设备变大时,它会自动扩展。
我想到的、对我来说似乎最好的方法是将两个驱动器划分为两个相等长度的分区,并在 ZFS 中将彼此配对为镜像 vdev,当需要添加第三个磁盘时,对其进行分区,将 4 个分区中的一个声明为故障,使其存储的数据转到新驱动器上的一个分区,并使用新释放的未真正发生故障的分区和第三个驱动器的剩余分区创建第三个 vdev。(下面有两个表格,以更好地显示最后一部分,列是磁盘,行是分区,数字是 vdevs id)
起始配置:
drive1 | drive2
1 | 2
2 | 1
磁盘升级后:
drive1 | drive2 | drive3
1 | 2 | 3
2 | *3* | 1
那种配置是否合理,或者是否存在我忽略的某些东西,或者有我不知道的更好的方法?