以RAID为基础的改进
另一种替代传统RAID的想法是试图重新创造一种RAID。他们通常以RAID为基础,并在上面做一些改进。其概念就是保留RAID技术的优点,并改进其不足。改进型RAID技术包括带有自愈能力的存储系统以及BeyondRAID。
带有自愈能力的存储系统:Xiotech公司的Intelligent Storage Elements (ISE)是一个典型的带有自愈能力的存储系统。ISE将 RAID和磁盘紧密集成,形成一个单一的存储单元。
Xiotech设计的ISE架构,可以避免大多数因RAID重建带来的问题,因为它可以减少67%到90%的RAID重建次数。首先,ISE通过主动预防/修复的方式在磁盘故障被发现之前完成修复,这可以减少磁盘报错的次数(这个过程采用的修复算法与在工厂维修过程中使用的算法相同)。ISE还采用了先进的抗震控制系统和称为DataPacs的密闭系统,以减少外部环境原因引发的磁盘故障。如果仍然有故障发生,DataPacs密闭系统内部的修复单元会自动启动出厂时定义好的维修程序,通过分析电流的波动、重新校准各单元组件、重新初始化磁盘等方法进行自动维修。在需要时,系统还可以将数据迁移到其他扇区或其他磁盘上保存,以防丢失。如果故障仍然不能排除,ISE系统会隔离那些不可恢复的扇区,并在这些扇区上重构数据。利用这些技术,RAID需要重建的几率会小得多。此外,这些修复都是系统自动进行的,不需要管理员插拔故障磁盘进行人工干预,效果相当于把磁盘直接送回工厂返修。ISE系统的缺点是它的前期成本较高,尽管它可以降低TCO总体拥有成本(Xiotech公司为它的产品提供5年保修)。
Atrato公司的Velocity 1000(V1000)产品使用了一种叫做FDIR (Fault Detection, Isolation Recovery )的主动修复技术,该技术集成在Atrato的虚拟化引擎(AVE)中。FDIR监测部件和系统的健康状况,并且具有自我诊断和自愈功能。与Xiotech的技术不同的是,它不会尝试直接修复磁盘的错误。Atrato的设计是在一个3U大小的系统中放置160块 2.5英寸SATA磁盘,这个系统被称作SAID (Self-maintaining array of independent disks),意为具有自主维护能力的磁盘阵列。为了在实际应用环境中判断磁盘是否存在问题,Atrato将实际监测到的性能同它的ORT(大量SATA磁盘环境下的业务可靠性测试)性能数据库做比对,以此来检验真实业务环境中SATA磁盘出现的偏差。在应对磁盘故障时,Atrato的系统会先尝试修复出错的磁盘扇区(尽管这种修复方法达不到工厂的那种级别),如果磁盘故障或不可恢复的读错误无法被修复,系统会隔离这些扇区,只有受影响的(扇区中的)数据才进行重建并重定向到虚拟的地址空间。如果某个磁盘完全损坏,其上的数据会整体重建并重定向到虚拟的地址空间。Atrato的系统仅仅处理损坏的扇区上的数据,因此可以减少重建的次数和时间。Atrato为他的产品提供三年保修。
DataDirect Networks公司的S2A产品采用了即时自愈技术。在磁盘完全失效之前,通过多级别的恢复设计,处理出错的磁盘。它会为每个磁盘维护一个写操作日志,跟踪出现问题的写操作,在出现问题时尝试恢复这些操作。如果恢复操作能够成功,那说明其实只有一小部分数据需要通过日志信息恢复。利用这个技术,重建的时间被大大缩短,用户也没有必要打电话找人支持了。
Panasas公司的ActiveScan技术通过连续监视磁盘及其数据内容来发现问题。ActiveScan监视数据对象、RAID奇偶校验、磁盘介质以及磁盘驱动器的属性。当检测到可能有问题出现时,系统会将数据迁移到同一个磁盘的空闲块中。系统通过对SMART(磁盘自我监测分析和报告技术)信息的统计分析,可以预知潜在的磁盘故障,并提前采取措施保护数据。因此,当预测到磁盘即将发生故障时,系统会根据用户设置好的策略,提前将数据迁移到其他的磁盘上,以此减缓RAID重建的必要。
LSI公司和NEC公司的存储系统都能做到在探测出扇区错误的同时,该磁盘仍然可以像RAID组中其他磁盘一样连续运行。如果能够分配到可替代的扇区,(出错的)磁盘就可以返回到运行状态,从而避免了整个磁盘完全重建。在整个探测及修复的过程中,系统的性能是可以保证的。这是一种功能有限的自我修复技术,但是也可以有效降低重建的次数,并且能够帮助系统保持较高的性能水平。
3PAR公司的InSpire存储系统采用了特殊的架构设计,可以实现较高的重建性能。通过利用高级磁盘错误隔离技术,减少了需要重构的数据量。与此同时,充分发挥其大规模并行处理能力的优势,快速地重建数据(时间通常少于30分钟)。InSpire系统以“chunklets”(3PAR定义的最小虚拟盘单位)为逻辑单元,采用多对多关系的集群结构设计。此外,高并发处理能力使得3PAR可以跨多个物理磁盘柜分离RAID组成员,将数据丢失的风险降到最低,即便是某个机箱整体出现问题也不用担心。
BeyondRAID:Data Robotics公司设计了这个概念,BeyondRAID建立在RAID之上,并且对管理员完全透明。决策故障盘离线的过程是传统RAID的工作机制,而BeyondRAID将其设计思想转化为动态的在线状态管理。BeyondRAID在本质上实现了RAID的自主管理。它基于RAID设计是因为任意特定的时间点都需要保护数据,但是人们真正关注它的原因是BeyondRAID可以解决传统RAID的不足。它可以应对一块或者两块磁盘出错,并且内建自动的数据自愈功能(非存储自愈)。数据块跨所有的磁盘分布,数据重建的速度非常快。由于该系统具有“数据识别”能力,因此磁盘不需要统一容量,磁盘的槽位可以重新排序,重建时间也会根据数据量线性变化。BeyondRAID系统最大只能管理8个SATA磁盘,虽然只对中小企业(SMB)来说颇具吸引力,但它是一个真正的不需要管理的存储系统。
放弃RAID技术:Erasure codes分布式数据存储技术
Erasure codes的设计是将数据分割成多个等长的不能直接读取的数据块,并且在每个数据块上附加元数据信息。一份完整的数据通过全部数据块中的部分子集就可以复原,也就是说只要有部分数据块存在,数据就不会丢失。这些数据块可以分布在不同的存储位置,可以是一个数据中心内部,可以跨越城市、跨越一个地区,或者在世界上任何其他地方。
Erasure codes天生具有数据安全性机制,因为每个独立数据块所包含的信息量都不足以揭示原始数据集的全貌。必须有足够数量的数据块集合(可能来自于不同的存储节点)才能恢复完整的数据,这个数量由附加在每个数据块上的元数据信息量决定。附加的元数据信息越多,意味着恢复时需要的数据块就越少。
Erasure codes在面对自然灾难以及技术错误时具有很强的生存适应能力,因为只要有部分数据块存在,就能复原完整的原始数据。实际上,如果使用Erasure codes技术保护数据,即使客户端、服务器、存储单元,磁盘驱动器或者网络这一些列环节中同时发生多个故障,我们仍然可以实时访问数据。
Erasure codes也被叫做正向纠错(FEC,forward error correction),与RAID的存储机制完全不同。Erasure codes可以消除上文中我们提到过的所有RAID的不足。这是一项新技术,到目前为止,只有三个厂商推出了基于Erasure codes技术的产品:Cleversafe公司的dsNet;EMC公司的ATMOS;以及NEC公司的Hydrastor。
Erasure codes似乎更适合大规模数据存储环境,而不是小规模存储。它特别适合于云存储或者分布式存储,因为它根本不需要数据复制,并可以在广域的多个地理位置分散存储数据。
RAID技术的演变
众所周知传统的RAID技术存在很多的问题,而且随着磁盘容量的不断提高,这些问题带来的负面影响越来越大。我们在这里介绍的诸多RAID替代技术可以解决其中的一部分问题,而更多新的解决方案还在开发过程中。对于这些非传统的技术,我们需要找一个合适的、特殊的环境进行研究、测试和试用,还要有耐心 ,要敢于承担风险。