|
作者:加勒比考斯
链接:https://www.zhihu.com/question/347637101/answer/850301641
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
实际上,RAID 5的工作原理是把数据以块为单位分布到各个硬盘上。RAID 5不对数据进行备份,而是把数据和与其相对应的奇偶校验信息存储到组成RAID5的各个磁盘上,并且奇偶校验信息和相对应的数据分别存储于不同的磁盘上。当RAID5的一个磁盘数据损坏后,利用剩下的数据和相应的奇偶校验信息去恢复被损坏的数据。这样子一听,感觉RAID 5也是十分靠谱的,只要不同时坏掉2块及以上的硬盘,那么我的数据就没事了。而且相比较于其他方案来说,这个方案存储成本较低,性能又很不错,所以被大众所普遍接受也是正常的事,但是它是否真的能保障数据安全呢?讲到这里我要先提一个概念,叫做URE (Unrecoverable Read Error rate) “不可恢复性读取错误率”。现在有的厂商也叫做Non-recoverable Errors per bits read或者Nonrecoverable Read Error rate。一般来说,SATA硬盘具有 1x10^-14 次方的不可恢复性读取错误率,意思是说每100,000,000,000,000 Bit(11.3687 TB),就会有1个Bit是硬盘用尽了所有的方法也读不出来的,这个Bit 是这块硬盘的黑洞。我们来看一下市场上各个NAS硬盘的不可恢复性读取错误率,这个数据可以在各品牌官网上查询。西部数据NAS红盘的URE为小于1in10^14。希捷IRONWOLF酷狼系列的URE根据硬盘容量不同也有不同,其中6~14 TB为最大1 per 10E15,6TB以下的为最大1 per 10E14。希捷还有一个酷狼Pro系列,该系列的URE则全部为最大1 per 10E15。西数红盘说的是小于1 in 10^14 ,希捷酷狼说的是最大是1 in 10^15,厂商都喜欢玩文字游戏,咱们不去咬文嚼字,直接按照1 in 10^14来计算概率,那么就是一百万亿分之一,咱们应该很多人会小看这个概率。实则不然。假设我们用4块4 TB的硬盘组建RAID 5阵列,突然抽掉一块磁盘,那么剩下的3块4 TB硬盘会从头到脚全部读一遍来重建冗余信息。3 × 4 TB =12 TB那么这三块硬盘一共读取的这12 TB的容量里面碰到一个URE的概率是多少呢?1—(1—1in10^14)^ (12 × 8 × 1024× 1024× 1024× 1024) ≈0.652通过计算得到概率为65.2%,这个概率真的不算小了。而且这个这个错误并不是硬盘的坏道导致的,所以硬盘SMART根本无法感知出来,而且一般超过12.5 TB的RAID 5阵列重建机制会强制对全盘数据进行CRC校验,校验的结果会因为这个URE黑洞的出现导致校验出错,RAID 5所以也必然重建失败。 |
|