RAID 2.0+
RAID 2.0+是把相同的数据存储在多个硬碟的不同的地方(因此,冗余地)的技术,也称块级虚拟化技术。
传统RAID
独立磁碟冗余阵列(RAID,redundant array of independent disks)是把相同的数据存储在多个硬碟的不同的地方(因此,冗余地)的方法。通过把数据放在多个硬碟上,输入输出操作能以平衡的方式交叠,改良性能,同时增加了平均故障间隔时间(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+技术,不但整合了数据保护和跨磁碟规划数据分布的功能,而且充分满足虚拟机环境下对存储的套用需求。
RAID2.0
RAID 2.0(独立磁碟冗余数组2.0, Redundant Array of Independent Disks Version 2.0),为增强型RAID技术,有效解决了机械硬碟容量越来越大,重构一块机械硬碟所需时间越来越长,传统RAID组重构视窗越来越大而导致重构期间又故障一块硬碟而彻底丢失数据风险的问题。其基本思想就是把大容量机械硬碟先按照固定的容量切割成多个更小的分块(Chunk,通常为64MB),RAID组建立在这些小分块上,而不是某些硬碟上,我们称为分块组(Chunk Group)。此时硬碟间不再组成传统的RAID关係,而是组成更大硬碟数量的硬碟组(建议最大硬碟数量为96-120,不建议超过120块盘),每个硬碟上不同的分块可与此硬碟组上不同硬碟上的分块组成不同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频宽增加得以有效提升;
- 自癒合:当出现硬碟预警时,无需热备盘,无需立即更换故障盘,系统可快速重构,实现自癒合。
定义
RAID2.0+(独立磁碟冗余数组2.0, Redundant Array of Independent Disks Version 2.0+)在RAID 2.0的基础上提供了更细粒度(可以达几十KB粒度)的资源颗粒,形成存储资源的标準分配及回收单位,类似计算虚拟化中的虚拟机,我们称之为虚拟块。这些容量单位一致的虚拟块构成了一个统一的存储资源池,所有套用、中间件、虚拟机、作业系统所需的资源可以在这个资源池中按需分配及回收。相对传统RAID系统,RAID2.0+技术实现了存储资源的虚拟化及预配置,存储资源的申请及释放完全自动化的通过存储池实现,而不再需要传统RAID阵列的RAID组创建,LUN创建,LUN格式化等耗时而容易出错的手工配置过程。因此,RAID 2.0+技术解决了虚拟机环境下,存储资源必须动态按需分配及释放的问题。在RAID 2.0基础上,RAID2.0+技术具备以下技术特徵:
- 在RAID 2.0基础上,分块组(Chunk Group)被切分为容量从256KB到64MB的虚拟化存储颗粒(Extent);
- 存储资源以以上颗粒为单位自动分配及释放;
- 可以以以上颗粒度为单位在存储池内或不同存储池间进行细粒度分级存储;
- 在系统通过扩展控制器扩展性能或容量后,可以通过自动化的迁移这些标準颗粒来达到负载均衡的目的。

图4:基于RAID 2.0+技术的存储阵列
技术优点
RAID2.0+技术主要用于实现系统资源的智慧型分配,满足虚拟机环境对存储的需求:
- 存储资源按需自动化分配及释放,满足了虚拟机对存储最本质的需求;

图5:基于RAID 2.0+技术的存储容量虚拟化
- 可根据业务实时情况,将不同数据分级存储,通过灵活调配SSD等高性能存储资源满足高性能业务需求;

图6:基于RAID 2.0+技术的实时资源调配
- 根据业务特点自动迁移数据,提高存储利用效率;

图7:基于RAID 2.0+技术的自动数据迁移