【IT168 专稿】提到数据保护,人们首先想到的也许就是做RAID,的确,RAID技术为数据保护做出了卓越的贡献,它在人们心目中的地位是很难撼动的,但人们对驱动器的容量和性能要求越来越高,于是催生了一批可替代RAID的技术和产品。
RAID全称独立磁盘冗余阵列,1989年开始成为基于磁盘的数据保护标准,事实证明它是一个可靠的数据保护方法,但现在最基本的存储原理正在慢慢发生变化,RAID也面临再次革命。
为了更好地理解RAID替代技术为什么有吸引力,我们先要弄清楚RAID以及RAID技术现在所面临的问题。
新世纪RAID凸显的缺点
RAID的目的是在硬盘驱动器(HDD)失效时保护数据,当HDD发生故障时,根据不同类型的RAID,它里面的数据可通过奇偶校验或镜像副本重新创建,但电子机械式硬盘发生故障的几率很高。
来自IDC,Gartner和Enterprise Strategy集团的分析师预计每年数据存储的增量保持在50%-62%之间,因此对HDD的需求也呈高增长态势,从统计学来讲,HDD数量越多,出故障的次数也越多。硬盘制造商不断提高HDD的密度,现在我们可以买到2TB SATA硬盘,也许到年底就可以买到4TB的了,即使高性能的SAS和FC(光纤通道)硬盘容量也达到了600GB,在这些高密度硬盘上重建时,RAID问题就凸现出来了。
每种RAID在写入性能、读取性能、数据保护水平、数据重建速度和每块硬盘上的可用存储空间方面都有优缺点,例如,如果保证数据可用性是最高优先级,那么镜像或多重镜像(RAID 1,RAID 10,三重镜像等)是最好的选择,数据在其它HDD或RAID上有完整的副本,简化了数据保护和恢复过程,但成本确是一个严峻的考验,因为两块146GB的硬盘最终可用容量只有一块。此外,这种镜像的方法对系统资源的消耗也是双倍的,对I/O性能的影响是最大的。现实中,很少有组织采用这种纯镜像的方法,大部分更愿意接受RAID 5或RAID 6。
当RAID 5中的一块硬盘坏掉时,系统将会在校验磁盘上重建故障磁盘上的数据,当硬盘容量不大时,数据重建大约只需要几分钟,但随着硬盘容量达到TB级后,重建时间往往要数小时,数天甚至数周,重建期间系统性能肯定会下降,如果应用系统用户不容许性能下降,那重建操作只能以低优先级运行,这样重建的时间会显著增长,重建时间越长意味着数据丢失的风险越大,基于这个原因,很多公司干脆直接上了RAID 6。
RAID 6提供了第二块校验或条带磁盘保护数据,即使有两块硬盘坏掉或出现不可恢复的读取错误,数据丢失的风险也显著降低了,但如果需要同时重建两块硬盘上的数据,对系统性能的影响将非常大,此外,RAID 6阵列的磁盘可用容量也浪费较多,如果第三块硬盘也坏掉,数据丢失的风险更大,因为三块同时坏掉时恢复的难度也更大。
RAID同样面临机械磨损,灰尘损害的风险,大多数存储系统都包括自动纠错功能,但随着硬盘容量的增加,这些操作所需的时间也呈指数级上升。
固态硬盘(SSD)更是加重了RAID存在的这些问题,因为SSD要应付高性能应用程序,NetApp的CEO Tom Georgens最近表示“快速访问的数据要放在闪存中,其它数据放在SATA硬盘上”。
这些RAID问题给硬盘厂商提供了许多灵感,学术研究人员和厂商都开始寻求RAID替代技术,我们将这些创新技术分成了三种:RAID+创新,RAID+改造和RAID掘墓人。
传统RAID+创新
有些厂商通过提高可靠性,减少缺点解决了部分传统的RAID问题,IBM的EVENODD和NetApp的RAID-DP通过减少算法开销增强了RAID 6的性能。
NEC的RAID-TM旨在降低RAID 1的数据丢失风险,它将数据同时写入三块独立的硬盘,即使出现两块硬盘故障或不可恢复的读取错误,在不降低性能的情况下,应用程序仍然可以继续访问它需要的数据,即使在重建期间性能也不会有影响,当然RAID-TM的缺点也很明显,那就是磁盘空间利用率只有1/3。
RAID-X是IBM XIV存储系统中的创新,它使用大量的条带减少RAID性能的损失和数据丢失的风险,可以将其看作是RAID 10的变种,它使用智能的风险算法,随机地将数据块镜像分配到整个阵列,这个方法让XIV在2TB HDD上花不到30分钟的时间重建数据,和其它镜像技术一样,RAID-X的缺点是磁盘空间的利用率不高。
惠普LeftHand Networks和Pivot3公司为他们基于x86的集群iSCSI存储提供了类似的Network RAID变种,Network RAID利用了RAID的原理,但使用了存储节点代替磁盘作为最低的组件级别,这样它可以跨集群分配逻辑卷的数据块,根据Network RAID级别的不同,可以提供1-4份数据镜像,同时,它具有自我治愈能力,当一个节点发生故障时,它可以纠正数据,然后将其复制到别的节点上,Network RAID降低了数据丢失的风险,即使重建期间对性能的影响也很小,同其它镜像技术一样,磁盘空间的利用率低是它的最大缺点。
这些仅仅是RAID+创新技术的一部分例子,还有一些类似的技术正在酝酿之中,包括RAID 7提议,TSHOVER等。
传统RAID+改造
也有一些RAID替代技术视图重新发明RAID,这些技术遵循的原则就是借鉴现有RAID技术的优点,同时避免其缺点,这样的例子包括自愈存储和BeyondRAID。
自愈存储:Xiotech公司的智能存储元件(Intelligent Storage Elements,ISE)是自愈存储的一个很好示例,ISE紧密集成了RAID和HDD,将它们合成了一个单一的存储元件。
Xiotech设计的ISE解决了大部分RAID重建的问题,它消除了67%-90%的重建任务,它使用了类似于工厂使用的HDD恢复算法,在故障发生前,主动消除硬盘故障隐患,从而减少硬盘故障,它也使用了先进的振动控制和叫做DataPacs的密封性系统,减少外部影响引起的硬盘故障。发生故障时,它使用类似原始制造商使用的方法调用DataPac内的修复组件立即做出反应,分析电源周期,重新校准组件,再制造HDD,如果故障仍然存在,ISE将会隔离不可恢复性扇区,然后启动数据重建进程,重建这部分不可恢复扇区中的数据,因此重建的几率很小,重建的时间通常也很短。此外,它是全自动化的,因此人为错误是可以完全避免掉的,整个自愈过程相对于工厂生产过程。这项技术的缺点是前期成本较高,但总体拥有成本降低了(Xiotech提供了五年的担保)。
Atrato公司的Velocity1000(V1000)使用一种叫做故障检测(Fault Detection),隔离恢复(Isolation Recovery)的自愈技术(FDIR),结合Atrato的虚拟化引擎(AVE)使用,FDIR会观察组件和系统的健康情况,增加了自我诊断和自动化自愈功能,但它没有Xiotech提供的HDD再制造和复原功能。Atrato将160块2.5英寸SATA硬盘塞入一个3U的系统叫做SAID(独立磁盘自我维护阵列),Atrato使用大量的SATA硬盘执行可靠性运行测试(ORT),监控硬盘的真实性能,检测SATA HDD的偏差,Atrato也是通过首先修复故障扇区处理硬盘故障的,但没有达到制造商级别的修复、再制造或重新校准。如果故障或不可恢复性读取错误不能修复,故障扇区将被隔离,该扇区上的数据将被重建,通过这种方式,Atrato减少了重建的数量和重建时间,Atrato提供三年的担保。
DataDirect Networks的DDN S2A技术也具有自愈能力,它会尝试多种水平的HDD恢复方法,它会记录所有写操作的日志,判别异常行为,然后尝试恢复操作,恢复成功时,只有一小部分HDD上的内容需要使用日志重建,因此重建时间也很短。
Panasas的ActiveScan技术通过持续地监控HDD和它们的内容来检测问题,ActiveScan要监控数据对象,RAID校验,磁盘媒体和磁盘驱动器属性,检查到一个潜在的问题时,它将数据移动到相同磁盘的闲置区域,通过使用磁盘的SMART属性统计分析信息可以预测HDD的故障,这样可以在故障发生前提前将数据转移走,这种技术消除或减少了重建的需求。
LSI和NEC都可以在RAID磁盘组工作时检测其中的扇区错误,检测到错误时,如果有闲置扇区可供转移数据,HDD就不会停止运转,从而避免完全重建,在检测和修复过程中性能都不会受到太大的影响,这是一个有限的自愈技术,减少了重建数量。
3PAR的InSpire Architecture使用了先进的HDD错误隔离技术,减少了数据重建需求,通过独有的大容量并行重建技术,大大缩短的重建时间(通常不会超过30分钟)。
BeyondRAID:Data Robotics的BeyondRAID是构建在RAID技术之上的,对管理员来说它是完全透明的,它把RAID的离线过程改变成了在线动态的过程,具有自我管理能力,BeyondRAID具有RAID的数据保护功能,但它究竟解决了哪些RAID问题让它脱颖而出呢?他允许一或两块硬盘故障,内置全自动的数据自愈(不是存储自愈)功能,数据块分布在所有磁盘上,因此数据重建非常快,因为系统具有“数据感知”能力,支持不同大小的硬盘驱动器,它最多可以达到8块SATA硬盘,对中小企业最有吸引力。
RAID的掘墓人:Erasure code
Erasure code是设计用来将数据分割成不可识别的数据块,使用额外的信息追加到每个数据块中,允许从一些数据块的子集就可以复原完整的数据集,数据块可以分布在一个数据中心、城市、地区或全球任何地方的不同存储位置。
Erasure code有内置的数据安全性,因为每个独立的数据块不包含足以泄露原始数据集的信息,要完全挽回完整的数据集,需要用到不同存储节点上的大量数据块子集,究竟需要多少数据块取决于当初加入到每个数据块的额外信息决定的,额外信息越多意味着恢复整个数据集需要的数据块越少。
Erasure code在面对自然灾难或技术故障时具有很好的恢复能力,因为只需要数据块的一个子集就可以恢复原始数据,实际上,使用Erasure code时,允许同时发生多种故障,包括托管设备,服务器,存储元件,HDD或网络,数据始终保持是可访问的。
也称为前向纠错(FEC),Erasure code存储与RAID完全不同,它消除了所有RAID问题,它是一种全新的技术,截至目前只有三个厂家提供了基于Erasure code的产品:Cleversafe的dsNet,EMC的Atmos和NEC的HYDRAstor。
Erasure code更适合用于大数据集,特别适合云计算和分布式存储,因为它不用复制数据集就可以跨多个地理位置分布数据。
RAID的进化
传统的RAID问题都是众所周知的了,随着硬盘容量的增长,这些问题越来越严重,本文列举的很多RAID替代产品都解决了部分RAID问题,而革命性的新技术只有一种。就当前的情况而言,选择符合自身环境和应用需要的RAID比较现实,但不要停留在理论层面上进行选择,而是要进行测试和试点,在我们承担传统RAID面临的风险时,期待更多革命性的产品出现吧!