为什么一般认为 RAID 5 系统不适合较大的磁盘大小?RAID 6 也是如此吗?
参考:http://www.zdnet.com/article/why-raid-5-stops-working-in-2009/
答案1
RAID 5 可能不适用于大磁盘大小的原因在于,从统计上讲,存储设备(即使正常工作)也不能免于错误。这就是所谓的 UBE(有时称为 URE),例如不可恢复的位错误率,并以每读取一个字节的全扇区错误数表示。对于消费级旋转硬盘驱动器,此指标通常指定为 10^-14,这意味着每读取 10^14 个字节就会有一个扇区读取失败。(由于指数的工作原理,10^-14 与每 10^14 个扇区读取失败相同。)
10^14 字节可能听起来很大,但实际上它只是对现代大型(例如 4-6 TB)驱动器进行的几次完整读取。使用 RAID 5,当一个驱动器发生故障时,存在不冗余,这意味着任何错误都是不可纠正的:从任何其他驱动器读取任何内容时出现任何问题,控制器(无论是硬件还是软件)都不知道该做什么。那时,您的阵列就会崩溃。
RAID 6 的作用是添加第二冗余磁盘。这意味着即使一个驱动器完全发生故障,RAID 6 也能够容忍另一个驱动器上的读取错误一阵列中其他驱动器的磁盘阵列,并且仍能成功重建数据。这戏剧性地降低了单个问题导致数据不可用的概率,尽管它并没有消除这种可能性;如果一个驱动器发生故障,而不是另一个驱动器出现问题导致数据无法恢复,现在二额外的驱动器需要开发一个问题同一行业肯定存在问题。
当然,10^-14 这个数字是统计,就像旋转硬盘通常有一个引用的统计AFR(年故障率)约为 2.5%。这意味着普通硬盘的使用寿命为 20-40 年;显然并非如此。错误往往成批发生;您可能能够读取 10^16 或 10^17 个字节而没有任何问题迹象,然后您会在短时间内收到数十或数百个读取错误。
RAID 实际上使后者的问题更差通过将驱动器暴露在非常相似的工作负载和环境中(温度、振动、电源杂质等)。由于许多 RAID 阵列都是作为一个组进行调试和设置的,情况进一步恶化,这意味着当第一次发生故障时,阵列中的所有驱动器都将处于非常接近相同的活动时间。所有这些都使得相关故障发生的可能性要大得多:当一个驱动器发生故障时,很可能会出现其他驱动器处于边缘状态并可能很快发生故障的情况。仅全读过程的压力加上正常的用户活动就足以导致另一个驱动器发生故障。正如我们所看到的,在 RAID 5 中,如果一个驱动器无法正常工作,任何在其他任何地方读取错误都会导致永久性错误,并且很可能会导致阵列停止运行。使用 RAID 6,您至少在重新同步过程中可以承受更多错误。
因为 UBE 是根据读取的字节数来表示的,而读取的字节数往往与可以存储的字节数有很好的相关性,所以对于一组 100 MB 驱动器来说,一个好的设置对于一组 1 TB 驱动器来说可能只是一个边缘设置,而对于一组 4-6 TB 驱动器来说可能完全不切实际,即使物理编号驱动器数量保持不变。(换句话说,10 个 100 MB 驱动器 vs 10 个 6 TB 驱动器。)
这就是为什么 RAID 5 通常被认为不适合当今常见大小的阵列,并且根据具体需求通常建议使用 RAID 6 或 1+0。
这甚至还没有触及细节RAID 不是备份。
答案2
看磁盘 RAID 和 IOPS 计算器和IOPS 和延迟的解释
对于故障RAID的计算,可以使用公式。
- N 是 HDD 数量,
- p - 失败概率
- q = (1-p)-可靠性。
假设硬盘发生故障的概率是相等的。
为了清楚起见,表中列出了不同 RAID 在运行 5 年后以及运行 5 年后发生故障的概率。
发生故障的概率是 RAID DP(Synology)的 RAID 6 故障。使用p
- 来自 Google 数据中心搜索的可靠性。
RAID 5恢复程序发生故障的概率,取决于容量。
答案3
回答你的第一个问题。URE。不可恢复的读取错误。磁盘可能没问题,但无法读取数据,从而无法重建,这最终与磁盘故障的重建是一样的。我认为这篇文章在基本层面上给出了正确的见解。
回答你的第二个问题。RAID 6 也是如此,但适用于更大的阵列。我认为关键在于,如果你担心 12TB 阵列的 URE,因为规范说每 12TB 会有 1 个 URE,那么你需要为每增加 12TB 的大小添加一个额外的冗余磁盘来处理你应该遇到的所有 URE。
也就是说,12TB 的 RAID 5 重建与 24TB 的 RAID 6 阵列具有相同的故障概率(根据 10^14 URE 率)。同样,这是根据文章推断的。
答案4
其他答案中概述的 UBE 推理足够好,但更令人担忧的是重建期间第二个驱动器出现故障的风险。
请记住,在重建阵列时,磁盘的负载为 100%,考虑到现代磁盘的大小,重建可能需要几天时间。除非磁盘是企业级的,否则他们不会喜欢这种情况。这是 RAID5 不适合较大磁盘大小的主要原因。
您还必须考虑到,当人们组装磁盘阵列时,他们通常会从单个供应商处订购磁盘。这意味着阵列中的所有磁盘都将来自同一制造批次。如果是坏批次,则可能意味着使用寿命缩短、可靠性降低,甚至多个驱动器在短时间内发生故障。即使不是坏批次,如果驱动器开始达到其使用寿命的终点,则多个驱动器在短时间内发生故障的可能性也会增加。在构建阵列时,建议将订单分摊给多个供应商,或者如果可能,要求单个供应商向您发送来自不同批次的磁盘。这样,驱动器更有可能在不同时间损坏,并且您不太可能收到来自坏批次的多个驱动器。召回确实会发生。
研究一下 RAIDZ。它很棒。具体来说,看看 RAIDZ3 和嵌套 RAIDZ。Synology 有一种叫做 SynologyHybrid Raid 的东西,它确实有一些不错的优势。例如,您只需一次更换一个驱动器并等待重建完成,就可以升级阵列中的驱动器大小。