介质故障补偿
为了发现计算机故障的原因,并降低大型存储系统的故障率--而且要在不牺牲速度并且不提高价格的前提下--磁盘驱动器厂商不断做出改进,研究人员也在不懈努力。
"企业意识到了这个问题,他们正在着手提高他们存储系统的容错能力," Gibson表示。他们采取的措施包括更快的修复系统,海量并行数据重建,增加对检查点(checkpointing)、完整性代码和错误修正的代码来应对更多不同类型的故障,并且将容错RAID的磁盘数量增加了1到2倍。而Gibson却小心翼翼,避免评价这些措施中哪些更为重要,他只是表示提供更强大的纠错机制是一种总体趋势(虽然这种趋势已经出现好几年了)。
Gibson表示,重要而且非常值得注意的事情是,总的目标是要获得更好的可靠性。可问题在于,"我们在系统中使用的磁盘数量--即使是更为可靠的磁盘--以及我们在磁盘中存储的数据的数量在过去10年里有了飞速的增长,这就增加了故障。
企业和研究人员特别关心的指标是介质故障率,它也被称为无法校正的读取错误或者潜在的介质故障,只要磁盘表面有十亿分之一的面积无法读取,就会出现这种故障。尽管这种现象不常出现(Gibson表示遇到介质故障的概率大约为每读取10到100 TB数据会遇到1次),但是它确实不时出现,特别是当你处理PB级系统的时候,而且可能造成非常大的问题。
例如,Gibson这样描述这种情况:
"让我们假设你在一个RAID中有14块磁盘,其中之一出现了故障。你现在需要读取13块磁盘上的全部内容,这些磁盘的容量可能有1TB。这意味着你在重建的过程中必须读取13TB的数据量。平均读取10到100 TB的数据会遇到1次介质故障。这就意味着在对低质量驱动器进行重建的过程中,你很有可能什么都无法读取。起码有一个扇区无法读取。即使对于高质量驱动器来说,平均在10次重建当中,会有1次遇到这样的问题。
"如果你在重建过程中,无法读取某个扇区,即使你只丢失了十亿分之一的数据,你的重建都会失败。今天的文件系统对于重建失败无能为力。你只能让它们离线,然后打电话叫厂商来……然后厂商的技术人员赶来,他们必须找出是哪个扇区出现了问题,想办法修复它。
那么,为什么厂商不能进一步降低、消除或者抵偿潜在的介质故障呢?Gibson表示,问题在于"市场希望花同样的代价获得更多的信息。"但是要实现这一点,厂商们"必须提高存储密度。而且如果它们不是必须帮你找回正确的数据,虽然它们可以做地非常快。所以它们无法返回正确数据的比例是它们所面临的一个局限,限制了它们提高容量的速度,也限制了它们在同等价格下为你提供保存更多数据的能力。
厂商可以让比特结合地更紧密,"但是,如果他们这样做," Gibson表示,"无法读取数据的情况就会增多。所以他们把这一比例锁定在勉强可以接受的程度上。
结果是,包括Panasas(它计划在今年秋天的晚些时候,就这个问题进行一次重大的发布)在内的大型存储厂商,都在努力发明新的保护机制。在出现介质故障的时候,将故障隔离开,这对企业来说是个重大的消息,也是非常受人欢迎的好消息。(为了进行类比,你可以想象一下在圣诞节的时候你在圣诞树上缠绕的彩灯。通常情况下,起码是在过去,如果一盏灯坏了,整个的一条彩灯都不亮了,直到你找到那个坏了的灯,把烧坏了的灯泡换掉,它们才会重新闪烁起来。现在想象一下,如果有一个灯泡坏了,其他的彩灯还能亮的情况吧。从本质上说,这就是存储厂商目前想做的事情,虽然规模要大得多。)