自从David Patterson、Garth Gibson和Randy Katz在20多年前第一次提出数字存储可靠性和性能概念的时候,RAID技术就已经存在了,而且它还将再发展数十年的时间。这项技术最大的问题是如何跟上每年以大约40%的速度递增的磁盘增长速度。
Panasas Inc.的首席技术官、联合创始人Gibson在企业存储论坛上表示:"这个问题的核心在于读取整块硬盘所花的时间越来越长,每年大约会比上一年增加20%。磁盘数据读取速度的增长速度比磁盘容量增长速度要慢得多,因此每年读取比上一年容量更大的磁盘时所花的时间就会更多。"
Permabit Technology的创始人、首席执行官Jered Floyd声称,RAID厂商和大多数存储厂商并不打算解决高容量磁盘的故障率问题。
Floyd说:"使用任何低于RAID 6的大容量磁盘几乎肯定会出现数据丢失的问题,如果因为误码率问题而导致磁盘故障,那么甚至连RAID 6也会出现数据丢失问题。"
Floyd说,厂商们必须采用更高级的消除编码技术,才能超越RAID 6。他特别推荐那种能够保护磁盘不出现故障以及在更大系统中利用数据分布来解决单一整套磁盘重装难题的解决方案。
Gibson指出,由于磁盘容量变大了,RAID系统就要花更长的时间来恢复出现故障的磁盘。传统的RAID系统需要从头到尾读取所有的剩余磁盘,然后再从头到尾将丢失的数据都写到网络备份磁盘。
因此RAID系统就需要花更长的时间来恢复整盘保护,这样出现其他故障的概率就会上升,数据丢失的概率也就随之上升了。
更智能的RAID控制器
然而,某些业内权威人士提出,磁盘密度以每年增长一倍的速度递增,因此而引发的不可靠性正是许多问题出现的原因,而且磁盘重装过程中出现两个故障的概率也大幅上升。
Nexsan Technologies的首席技术官Gary Watson表示,许多故障信息与实际的技术进步是背道而驰的。
Watson说:"首先,磁盘性能在不断持续提高,虽然它没有跟上磁盘容量的增长速度,但是两者之间的差距也并不是特别大。"
他说,RAID控制器正在从共享网络如FC-AL和SCSI等转向更现代化的网管结构如SAS。
Watson补充说:"另外,重装计算的硬件级支持意味着一代一代的RAID控制器的重装性能将完全紧跟磁盘容量增长的速度。"
LSI的DAS RAID架构与战略规划总监Luca Bert说,RAID控制器的部分问题是,大多数硬盘的利用率都是不足的,但是控制器并不知道系统现在正在使用什么和没有使用什么。
Bert说:"更好地了解这方面的信息就可以让系统只重装使用过的区域。"
Luca说:"其中一种解决方案是使用自动精简配置,这种技术可以让系统只在它需要的受限数据集上工作,因此如果控制器知道那个数据集被提供的话,它就可以只重装那一部分。"
Luca提到的另一个解决方案是当某个区停止使用的时候,让每一个文件系统告诉RAID控制器,这样系统就不用重装那个区。
Luca说,IT人员可以利用RAID level 1或者10(而不是level 5或者6)将重装的时间和传输的数据量降到最低水平。
Luca还指出,如果使用了高级数据布局算法,那么一个阵列就可以被分配到更多的设备,从而将需要重装的组件数量降到最低。
纵向校验,分块
Gibson说,为了将性能下降的影响降到最低,某些RAID系统大幅调低了从磁盘故障中恢复的速度,这样就大幅增加了出现数据丢失的概率。
解决这个问题的其中一个解决方案早在上个世纪九十年代就被提出了,那就是校验分块。
Gibson解释说,它将RAID从一个控制器和一些磁盘的局部运算变成了利用所有控制器和磁盘的并行算法。
利用数十个到数百个独立磁盘阵列组成的资源池,校验分块方案可以将恢复的速度加快数十倍到数百倍。而且,它将每个磁盘的工作划分得如此之细以至于同步工作中的用户几乎不会感觉到他们的工作受到了恢复操作的干扰。
校验分块方案在RAID控制器产品中是非常少见的,但是Panasas的并行文件系统却提供了这种方案。有趣的是,谷歌文件系统中也使用了这种方案。
但是磁盘容量增长还存在另一个问题,那就是不可读取的扇区。所有的磁盘都是按照技术规范来生产的。 其中一项技术规范规定,不可读取的扇区不应经常出现,通常每读取10到100TB的数据出现不可读取扇区的个数不应该超过1个。然而,随着磁盘容量变得越来越大,恢复过程中需要读取的扇区越来越多,至少出现一次不可读取扇区的概率也就更大了。
Gibson说:"在普通阵列中,如果在磁盘恢复过程中有太多的扇区丢失,那么恢复就会失败,整个卷就会离线并可能会丢失。"
其中一种可行的解决方案是让冗余编码变得更强,以及更加对症。
例如,RAID 6可以处理同时出现的两个磁盘故障或者一个磁盘故障与一个不可读取磁盘扇区故障。同时出现两个磁盘故障的话,几乎肯定会出现不可读取磁盘扇区的故障。
解决这种磁盘故障的其中一种方案是在每个磁盘上增加一个编码层,这样不可读取扇区就可以在本地得到恢复,而不用使用RAID系统。
Gibson说,Panasas将这种方案称作纵向校验。利用纵向校验方案可以让RAID 5恢复一个出现故障的磁盘,哪怕同时出现不可读取扇区也可以进行恢复;纵向校验方案可以让RAID 6恢复两个出现故障的磁盘。
今后的磁盘容量将增长得更大,系统容量也将变得更大,将更加强调故障恢复的重要性。但是RAID完全可以应付这些问题。 RAID技术的未来在于针对具体故障实例更小心地编些代码,实现丢失数据重建过程中的并行和负载均衡。