Answers:
即使给出此处给出的其他答案之一,即ZFS仅适用于实际使用的块,而不适用于空白空间,是的,制作大型RAIDZ1 vdev仍然很危险。大多数池最终至少使用了30%至50%,许多池达到了建议的最高80%(有些超过了,出于性能原因,我极力建议您完全不要这样做),因此ZFS只处理用过的积木并不是一个巨大的胜利。另外,其他一些答案也似乎是导致问题出在阅读不良上的原因。事实并非如此。块中的一点腐烂通常不会给您带来麻烦,通常,这是另一个磁盘即将损坏,而第一个磁盘损坏的重装仍在继续,那将杀死您..和3 TB磁盘在大型raidz1中,可能需要几天甚至几周的时间 重装到新磁盘上,因此发生这种情况的机会并不小。
我个人对客户的建议是,永远不要在大于750 GB的磁盘上使用RAIDZ1(等效于RAID5),只是为了避免很多潜在的不愉快之处。由于其他原因(系统在其他地方进行备份,数据不是很重要等),我对他们违反此规则也很满意,但是通常我会尽力将RAIDZ2推为具有较大配置的最小选项。磁盘。
另外,出于多种原因,我通常建议raidz2条带中的磁盘数量不要超过8-12个磁盘,或者raidz3条带中的磁盘数量不要超过11-15个磁盘。您应该位于具有3 TB磁盘的那些范围的低端,并且可能对于位于1 TB磁盘的那些范围的高端是可以的。这将使您摆脱这样的想法,即在进行重新同步时会有更多的磁盘发生故障,这只是这些原因之一,但这是一个很大的原因。
如果您正在寻找一些合理的经验法则(编辑04/10/15-我在编写这些规则时只考虑了旋转磁盘-因为它们也是合乎逻辑的[为什么您在raidz1中做少于3个磁盘]即使对于SSD池也有一定意义,但是当我写下这些内容时,全SSD池就不是我想的事情了):
RAID-Z和R5一样坏吗?它是否与R1或R10一样好,通常不会。
RAID-Z知道驱动器上的空白点,而R5没有。因此RAID-Z只需要读取数据区域即可恢复丢失的磁盘。另外,数据不一定跨所有磁盘分条。很小的文件可能只驻留在单个磁盘上,而奇偶校验则驻留在另一个磁盘上。因此,RAID-5必须读取与阵列上使用的空间完全相同的数据(如果在5TB阵列上使用1mb,则重建仅需要读取1mb)。
反之,如果大型阵列的大部分已满,则需要从所有磁盘上读取大多数数据。与R1或R10相比,R1或R10只需将数据精确拉出一个磁盘(每个故障磁盘;如果多个磁盘仅在阵列仍可恢复的情况下发生故障)。
您担心的是,每进行一次扇区读取操作,都有机会发现一个未正确写入或不再可读的扇区。如今,对于典型的驱动器来说,大约是1x10 ^ -16(并非所有驱动器都相等,因此请查看驱动器上的规格以了解其额定值)。这种情况很少见,但每1PB出现一次。对于10TB的阵列,您的阵列有1%的机会是烤面包的,直到尝试恢复它时您才知道它。
ZFS还有助于减轻这种机会,因为在您开始尝试重建阵列之前,大多数不可读的扇区都会引起注意。如果您定期清理ZFS阵列,清理操作将纠正这些错误并解决它们(或警告您,以便您滚动磁盘时可以更换磁盘)。他们建议您每月大约擦洗企业级磁盘1-4次。和消费级驱动器,至少每周一次或多次。
与传统RAID-5相比,RAID-Z的一些优势在于它不需要专门的硬件,并且通过避免RAID-5写入孔而更加可靠。
但是,RAID-Z和RAID-5都不能承受多个磁盘故障。