大型RAID-Z阵列与大型RAID-5阵列一样坏吗?


11

很长时间以来,我已经听说过一个大型(> 5TB?)RAID-5阵列的想法有多糟糕,仅仅是因为另一个驱动器发生故障的风险很高。

RAID-Z1是否可以针对任何大小的阵列进行补救(如果您绝对需要一个数字,请考虑使用4x2TB或5x2TB)?也许是一种更安全的方式来复制并非在所有驱动器上都那么密集的数据?

Answers:


8

即使给出此处给出的其他答案之一,即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池就不是我想的事情了):

  • 请勿在大于750 GB的磁盘上完全使用raidz1。
  • 在raidz1上不要使用少于3个或超过7个磁盘。
  • 如果考虑使用3磁盘raidz1 vdev,请认真考虑使用3路镜像vdev。
  • 在raidz2上不要使用少于6个或超过12个磁盘。
  • 在raidz3上不要使用少于7个或超过15个磁盘。
  • 始终记住,与传统的RAID阵列不同,在磁盘上#的磁盘会增加IOPS,而在ZFS中则是#VDEVS,因此使用较短的条带vdevs可以提高池IOPS的潜力。

随着磁盘大小和性能的变化,您还会推荐同样的经验法则吗?(2014年)
卢勋爵。

经验法则有任何来源或动机吗?
肯尼·埃维特

来源是我和我的同事在Nexenta的1000多个ZFS部署中的经验。至于更新-规则保持不变(15/10/04),没有什么改变让我想要编辑项目符号,尽管我会说我在写这些规则时没有考虑SSD。对于SSD,规则不一定相同,这取决于环境因素。有了它们,您还需要考虑其他一些因素,例如HBA瓶颈。
Nex7年7

1
@ Nex7,在您的博客文章中这样做的逻辑是什么?“ 8. RAIDZ-偶数/奇数磁盘计数:尝试(但不是很难)将raidz vdev中的数据磁盘数量保持为偶数”
Costin Gușă 2015年

记住用例很重要。在serverfault上,我们专注于专业/商业应用程序,因此您的答案正确无误。就是说,对于那些正在执行消费者安装(甚至可能是有限的业务应用程序?)的用户,请考虑一下,如果在安装过程中发生故障,从阵列中的单个文件(可能是几个文件)中丢失单个块会是多么糟糕。重建。没什么大不了?那么RAIDZ1可能没问题。
丹·普里兹

11

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次。和消费级驱动器,至少每周一次或多次。


3

与传统RAID-5相比,RAID-Z的一些优势在于它不需要专门的硬件,并且通过避免RAID-5写入孔而更加可靠。

但是,RAID-Z和RAID-5都不能承受多个磁盘故障。

如果要通过ZFS避免两个磁盘故障,可以使用RAIDZ2,三个磁盘故障RAIDZ3


1
+1此外,如果按块校验和,ZFS允许ZFS在数组中发现损坏时,可以选择受影响的文件。大多数R5 HBA都会简单地将整个卷标记为已损坏,或者向OS报告扇区已损坏,这两种方式都是HBA无法知道损坏情况下哪个磁盘出了问题。
克里斯S

有关ZFS重新同步失败处理的更多讨论:ZFS无休止重新同步
CVn 2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.