LSI存储专家Luca Bert剖析:RAID 6 探秘
然而,如果一个问题由于MTBF引起,另一个问题由于读取错误引起,这样两个错误同时发生的几率有多大?假设我们有 10 个 SAS 磁盘组成的阵列,每个磁盘容量为 300GB,BER为每读取10^-15 位出错一次,那么我们在重建磁盘时发生读取错误的可能性有多大?
计算方法如下: 10^15(位)X 1/8 (字节/位)X 1/10 (磁盘)X 1/300GB,从而得到每 50 次重建就会出现一次。这种几率还是比较大的,但并不足以让人震惊,要是磁盘阵列在使用寿命中要发生50次故障的话,那才真成了问题!不过,上述几率在统计学上还是有意义的,我们可以换一种方式来理解,也就是说,如果我们出售50款与上述配置一样的阵列,那么至少其中一个会出现上述严重问题。这种几率也不算高,但要是客户安装上百个阵列的话,问题就比较严重了。不过,有的SAS磁盘的BER比我们这里假定的情况要好上10倍,因此问题可以大大化解。
如果使用SATA会有什么情况呢?磁盘容量越大,问题就越严重!
磁盘的BER会较差,造成问题的严重性。假定同样有上述10个磁盘组成阵列,但每个磁盘容量为500GB,BER为读取10^-14位出错一次,那么计算如下:10^14 X 1/8 X 1/10 X 1/500GB,得出每 2.5 次重建就会出一次严重问题,这就要引起我们的高度重视了。我们这里所谈的是5TB容量的阵列,尽管这种阵列还不太常见,但完全是当前技术可以达到的水平。这就是说,这种容量大小的阵列每 2.5 个中,就有一个阵列会出现每次重建就发生块损坏的问题,用户会看到“Read Error at LBA = 0xF43E1AC9”这类报错信息,着实让人头痛。用户怎么会明白0xF43E1AC9 到底指什么?是说空间为空?还是说内核数据下次重启会发生蓝屏错误?是仅涉及没人会用得到的数据库?还是包含着银行帐户信息?实际上看到这种错误信息我们根本无所做出判断,唯一的办法就是从备份中恢复数据,这会花大量时间,而且还要考虑到从 5TB 容量的磁带中恢复数据会面临多大的读取错误几率。这种读取错误的几率要大大高于磁盘,因此用户会遇到无穷尽的问题。
内容提要:RAID 6之所以重要,不是因为它能恢复两个同时发生的磁盘故障,而是能用完好的对等磁盘恢复一个磁盘故障和一个读取错误。随着磁盘容量的上升,上述这种错误的发生几率也在增加。更为重要的是,低质量SATA磁盘使用比较多,造成这种几率又要提高10倍乃至百倍。
说到底,我们要在价格与风险之间进行权衡,SAS和高端驱动器的平均无故障时间 (MTBF) 更长/BER性能更高,因而出问题的可能性也就少得多(尽管不是不可能出问题),而低端SATA 有助于大幅节约购买设备的资本投入,却会面临较高的双重故障几率。在此情况下,RAID6 市场便应运而生。
需要指出的是,上述涉及的某些风险可通过其它技术加以规避减轻,如定期扫描磁盘以避免坏块的巡读 (Patrol Read),确保不会因为另一块磁盘的故障造成同一条带上的数据发生双重故障。就目前而言,RAID 6 似乎是针对 SATA 驱动器的更合适的解决方案,也是我们更加需要的解决方案。不过随着市场预期的发展,磁盘容量和阵列规模不断上升,这种技术在 SAS 磁盘领域的应用也可能颇有商机。
|