计算 RAID 重建期间不可恢复读取错误的概率的公式

计算 RAID 重建期间不可恢复读取错误的概率的公式

我想比较不同 RAID 系统(无论是消费级(URE/bit = 1e-14)还是企业级(URE/bit = 1e-15))驱动器的可靠性。重建成功概率的公式(忽略机械问题,稍后我会考虑)很简单:

错误概率 = 1 - (1-每位错误率)^位读取

需要记住的是,这是获得至少一个 URE 的概率,而不一定只有一个。

假设我们需要 6 TB 可用空间。我们可以通过以下方式获得:

  • RAID1 包含 1+1 个 6 TB 磁盘。重建期间,我们读回 1 个 6 TB 磁盘,风险为:对于消费者,风险为 1-(1-1e-14)^(6e12*8)=38%,对于企业驱动器,风险为 4.7%。

  • RAID10 有 2+2 个 3 TB 的磁盘。重建期间,我们仅读取 1 个 3 TB 的磁盘(与发生故障的磁盘配对的磁盘!),风险较低:对于消费者,风险为 1-(1-1e-14)^(3e12*8)=21%,对于企业驱动器,风险为 2.4%。

  • RAID5/RAID Z1 有 2+1 个 3TB 磁盘。重建期间,我们读回 2 个 3TB 磁盘,风险为:对于消费者,风险为 1-(1-1e-14)^(2*3e12*8)=38%,对于企业驱动器,风险为 4.7%。

  • RAID5/RAID Z1 具有 3+1 个 2 TB 磁盘(通常由 Synologys 等 SOHO 产品的用户使用)。重建期间,我们读回 3 个 2 TB 磁盘,风险为:消费者为 1-(1-1e-14)^(3*2e12*8)=38%,企业驱动器为 4.7%。

计算单个磁盘容错的误差很容易,更困难的是计算系统容忍多个磁盘故障的概率(RAID6/Z2、RAIDZ3)。

如果仅使用第一个磁盘进行重建,而第二个磁盘在发生 URE 时从头开始再次读取,则错误概率是上面计算的平方根(对于消费者 RAID5 2+1 为 14.5%,对于消费者 RAID1 1+2 为 4.5%)。但是,我认为(至少在具有完整校验和的 ZFS 中!)第二个奇偶校验/可用磁盘仅在需要时读取,这意味着只需要几个扇区:第一个磁盘中可能发生多少个 URE?不会很多,否则单磁盘容错系统的错误概率将比我计算的还要高。

如果我是对的,第二个奇偶校验磁盘实际上会将风险降低到极低的值。

抛开问题不谈,重要的是要记住,制造商出于营销原因(销售更多的企业级硬盘)增加了消费级硬盘的 URE 概率,因此即使是消费级 HDD 也有望实现 1E-15 URE/bit 读取。

一些数据:http://www.high-rely.com/hr_66/blog/why-raid-5-stops-working-in-2009-not/

因此,我在括号中提供的值(企业级驱动器)实际上也适用于消费级驱动器。而且真正的企业级驱动器的可靠性甚至更高(URE/bit=1e-16)。

关于机械故障的概率,它们与磁盘数量成正比,与重建所需的时间成正比。

答案1

答案2

有许多网站和文章试图解决这个问题。

地点有 RAID 0、5、10/50/60 级别的计算器。

维基百科文章RAID 级别其中有关于 RAID 0 和 RAID 1 故障率的部分。

RAID 0

给定 RAID 0 组的可靠性等于每个磁盘的平均可靠性除以组中的磁盘数量:

也就是说,可靠性(以平均故障时间 (MTTF) 或平均故障间隔时间 (MTBF) 衡量)大致与成员数量成反比 – 因此一组两个磁盘的可靠性大约是单个磁盘的一半。如果磁盘在三年内发生故障的概率为 5%,那么在两个磁盘阵列中,该概率将增加到 {P}(至少一个发生故障) = 1 - {P}(两个均未发生故障) = 1 - (1 - 0.05)^2 = 0.0975 = 9.75%。

RAID 1

举一个简单的例子,假设一个 RAID 1 有两个相同型号的磁盘驱动器,每个磁盘在三年内发生故障的概率为 5%。假设故障在统计上是独立的,那么两个磁盘在三年使用寿命内发生故障的概率为 0.25%。因此,如果不对阵列进行任何操作,三年内丢失所有数据的概率为 0.25%。



我还发现了一些关于这个主题的博客文章,包括这个这提醒我们系统中的独立驱动器(RAID中的I)可能毕竟不是那么独立:

简单的理论是,如果硬盘 1 发生故障的概率为 1/1000,硬盘 2 也发生故障的概率为 1/1,000,000,那么两者同时发生故障的概率就是 1/1,000,000。该理论假设故障在统计上是独立的,但事实并非如此。除非故障之间不相关,否则不能这样乘以概率。错误地假设独立性是应用概率时常见的错误,也许是最常见的错误。

Joel Spolsky 在最新的 StackOverflow 播客中就此问题发表了评论。当一家公司构建 RAID 时,他们可能会同时使用四五个从装配线上下来的磁盘。如果其中一个磁盘有轻微缺陷,导致其在使用 10,000 小时后发生故障,则很可能所有磁盘都会发生故障。这不仅仅是理论上的可能性。公司已经观察到一批磁盘大约在同一时间全部发生故障。

相关内容