我知道ZFS会更喜欢所有尺寸相同的磁盘。 但是,如果我有两个不同大小的磁盘(1TB和1.5TB),我想要有一定的冗余,但不能镜像。 所以我把两个磁盘分成5个分区,每个分区大约500GB,并创build一个“raidz”池… zfs高兴地被迫。 它设置实际上增加任何可靠性? 我们的想法是,如果磁盘没有完全被破坏,只有一部分失败,我仍然可以访问数据?
我们的想法是,如果磁盘没有完全被破坏,只有一部分失败,我仍然可以访问数据?
从理论上讲,这个想法是正确的。 只要您在RAIDZ1 vdev的单个设备上遇到错误,ZFS就会通知您并纠正错误(假设其他设备没有错误)。
现实中可能存在的差异有几点:
基于这些观点,如果可靠性是您的主要目标,我会build议不要这样做。 假设一个固定的硬件情况,我会做下面的一个:
copies = 2
如果你想要一些弹性较小的错误(整个磁盘故障只会杀死2/5或3/5的数据相比,你的设置) 你所描述的有点俗气。
ZFS希望具有相同大小和容量的完整磁盘。 这是多种原因的关键,但也是常理。
你所描述的所有情况都会增加环境的复杂性并增加风险。
让我们这样说:
如果磁盘1上有1 TB的数据,则可以将其复制到磁盘2,并且可以承受丢失的磁盘。
如果在磁盘2上有1.5 TB的数据,则只能将第一个1 TB的数据复制到第一个磁盘上。 在这种情况下,如果磁盘2出现故障,您将丢失数据。
ZFS是非常有能力的,但作为一般规则,根据以上两点,混合磁盘设置是愚蠢的,不是超级有用的。 如果你关心可靠性和冗余度,假装第二个磁盘也只有1TB。