RAID 2.0—独立磁盘冗余数组2.0, Redundant Array of Independent Disks Version 2.0
独立磁盘冗余阵列(RAID,redundant array of independent disks)[1] 是把相同的数据存储在多个硬盘的不同的地方(因此,冗余地)的方法。通过把数据放在多个硬盘上,输入输出操作能以平衡的方式交叠,改良性能,同时增加了平均故障间隔时间(MTBF)。在大多存储系统中,RAID都是以物理硬盘为单元,故其故障恢复机制如图1所示:
图1:RAID系统故障恢复机制
但对于传统RAID系统而言,重构过程中数据没有可靠性保障,如果在重构完成前出现坏盘就将造成数据丢失,且不可恢复。所以对于一个存储系统而言,其可靠性的最重要标志就是其RAID重构时间越小越好,从而降低重构完成前再次坏盘的概率。早期存储系统大多使用FC盘且容量仅为几十个G,因此重构时间较短,重构中再次坏盘的概率低。但随着硬盘容量的快速增长,硬盘读写速度受磁盘转速等多方面影响增长缓慢,已无法满足系统对重构时间的要求。以一块2TB 7.2K rpm盘为例,重构时平均写入速度为30M/s左右,完成重构时间长达18个小时,因此重构过程中出现新的坏盘概率到大大增加,数据丢失的风险也大大增加。因此传统RAID技术已无法满足在系统中使用现代大容量硬盘的要求。在过去的几年里,许多存储领域的创新型初创公司如HUAWEI、3PAR等公司已经将磁盘阵列从基于磁盘的RAID发展成更为灵活的RAID 2.0及RAID 2.0+技术,不但整合了数据保护和跨磁盘规划数据分布的功能,而且充分满足虚拟机环境下对存储的应用需求。
定义
RAID 2.0(独立磁盘冗余数组2.0, Redundant Array of Independent Disks Version 2.0),为增强型RAID技术,有效解决了机械硬盘容量越来越大,重构一块机械硬盘所需时间越来越长,传统RAID组重构窗口越来越大而导致重构期间又故障一块硬盘而彻底丢失数据风险的问题。其基本思想就是把大容量机械硬盘先按照固定的容量切割成多个更小的分块(Chunk,通常为64MB),RAID组建立在这些小分块上,而不是某些硬盘上,我们称为分块组(Chunk Group)。此时硬盘间不再组成传统的RAID关系,而是组成更大硬盘数量的硬盘组(通常包含96块盘),每个硬盘上不同的分块可与此硬盘组上不同硬盘上的分块组成不同RAID类型的分块组,这样一个硬盘上的分块可以属于多个RAID类型的多个分块组。以这样的组织形式,基于RAID2.0技术的存储系统能够做到在一块硬盘故障后,在硬盘组上的所有硬盘上并发进行重构,而不再是传统RAID的单个热备盘上进行重构,从而大大降低重构时间,减少重构窗口扩大导致的数据丢失风险,在硬盘容量大幅增加的同时确保存储系统的性能和可靠性。RAID2.0并没有改变传统的各种RAID类型的算法,而是把RAID范围缩小到分块组上。因此,RAID2.0技术具备以下技术特征:
几个、几十个甚至上百个机械硬盘组成硬盘组;
硬盘组中的硬盘被分割成几十兆、上百兆的分块,不同硬盘上的分块组成的分块组(Chunk Group);
RAID计算在分块组(Chunk Group)内进行,系统不再有热备盘,而是被同一分块组内保留的热备块所代替。
图2:基于传统RAID技术的存储阵列故障恢复机制
图3:基于RAID 2.0技术的存储阵列故障恢复机制
技术优点
由于RAID 2.0系统中一块硬盘故障后,重构可以在同一硬盘组内其他所有硬盘保留的热备空间上并发进行,使用RAID 2.0技术的存储系统具备以下优势:
快速重构:存储池内所有硬盘参与重构,相对于传统RAID重构速度大幅提;
自动负载均衡:RAID 2.0使得各硬盘均衡分担负载,不再有热点硬盘,提升了系统的性能和硬盘可靠性;
系统性能提升:LUN基于分块组创建,可以不受传统RAID硬盘数量的限制分布在更多的物理硬盘上,因而系统性能随硬盘IO带宽增加得以有效提升;
自愈合:当出现硬盘预警时,无需热备盘,无需立即更换故障盘,系统可快速重构,实现自愈合。