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


12

我想比较使用消费者(URE / bit = 1e-14)或企业(URE / bit = 1e-15)驱动器的不同RAID系统的可靠性。具有重建成功概率的公式很简单(忽略机械问题,我将在以后考虑)。

error_probability = 1-(1-per_bit_error_rate)^ bit_read

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

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

  • RAID1,每个磁盘具有1 + 1个6 TB的磁盘。在重建期间,我们回读了1个6TB的磁盘,风险是:消费者使用1-(1-1e-14)^(6e12 * 8)= 38%或企业驱动器为4.7%。

  • RAID10,带有2 + 2个磁盘,每个磁盘3 TB。在重建期间,我们仅回读1个3TB的磁盘(该磁盘与发生故障的磁盘配对!),并且风险更低:消费者使用1-(1-1e-14)^(3e12 * 8)= 21%或使用2.4%企业驱动器。

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

  • RAID5 / RAID Z1,每个磁盘具有3 + 1个2 TB的磁盘(通常由Synology等SOHO产品的用户使用)。在重建过程中,我们回读了3个每个2TB的磁盘,风险是:对于消费者或4.7%或企业驱动器,1-(1-1e-14)^(3 * 2e12 * 8)= 38%。

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

如果仅第一个磁盘用于重建,并且从第二个磁盘再次读取(如果情况为或URE),则错误概率为平方根以上的计算概率(消费者RAID5 2 + 1为14.5%,消费者RAID5为4.5% RAID1 1 + 2)。但是,我假设(至少在具有完整校验和的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
嗨,奥拉夫!就我而言,这个问题似乎不太适合计算机硬件,因此不适合数学使用,但是您可以在他们的meta网站上询问他们是否想提出您的问题。如果是这样,请再次标记,我们很乐意为您迁移!
slhck

2
对于具有3个驱动器的RAID5,您如何准确地得出38%的URE概率?使用URE = 10 ^ 14,HDD = 3.5 * 1024 ^ 4个字节,在重建时,每个驱动器获得3.8%URE,而URE则得到11.1%。即:100 *(1-(1-(hdd / ure))^ 3)。我认为您的数字有些偏离(尽管实际故障率高于制造商所说的)。由于错误率是按每个驱动器读取的位给出的,而不是按读取的位给出的,因此我认为使用^ bit_read的部分是错误的。也许更详细地说明您如何计算这些赔率?+1有趣的问题。cs.cmu.edu/~bianca/fast07.pdf
ЯрославРахматуллин

添加了信息并检查了计算。
FarO

Answers:



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。假定故障在统计上是独立的,但并非如此。除非失败是不相关的,否则您不能仅乘以这样的概率。错误地假设独立性是应用概率中的一个常见错误,也许是最常见的错误。

Joel Spolsky在最新的StackOverflow播客中评论了此问题。当一家公司构建RAID时,他们可能会抢下流水线中的四个或五个磁盘。如果这些磁盘中的一个磁盘有轻微瑕疵,导致在使用10,000小时后无法正常工作,则很可能它们都可以。这不仅是理论上的可能性。公司已经观察到一批磁盘几乎都在同一时间发生故障。

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.