华为存储学习笔记-7(RAID 2.0 +系列1)
RAID技术演变
近年来随着数据存储需求的快速增长,单盘容量不断增大,高性能应用的不断涌现,传统RAID逐渐暴露出越来越多的问题,特别是大容量硬盘出现故障而需要进行数据重构的场景。传统RAID技术存在着以下不足:
-
数据丢失风险大:硬盘容量越来越大,重构时间越来越长,数据丢失风险越来越高。重构过程中数据处于单冗余状态,再有硬盘故障或者出现硬盘坏块,将导致数据丢失。重构时间的延长增加了数据丢失的风险。
-
对业务影响大:重构过程中,RAID组成员盘忙于重构,服务能力明显下降,影响上层业务的运行。
为了解决传统RAID的上述问题,同时顺应虚拟化技术的发展趋势,如下替代方案应运而生。
-
LUN虚拟化:在传统RAID基础上将RAID组进行更细粒度地切分,再将切分的单元进行组合,构建主机可访问的空间。
-
块虚拟化:将存储池中的硬盘划分成一个个小粒度的数据块,基于数据块来构建RAID组,使得数据均匀地分布到存储池的所有硬盘上,然后以数据块为单元来进行资源管理。
RAID 2.0+ 基本原理
RAID2.0+技术,把物理硬盘划分成很多数据块(chunk,CK),不同盘上的CK组成具备RAID关系的CKG(Chunk Group ),多个CKG组成庞大的存储资源池,主机所用的资源从资源池中获取。
RAID 2.0+的实现机制
- 多块硬盘组成一个存储池。
- 存储系统将存储池中的每个SSD硬盘划分为固定大小的CHUNK(通常大小为4MB)进行逻辑空间管理。
- 来自不同SSD硬盘的CHUNK按照用户在DeviceManager上设置的“RAID策略”组成CKG。
- CKG再被划分为更细粒度的Grain(通常为8KB)。用户创建LUN时,存储系统以Grain为单位映射到LUN,实现对存储资源的精细化管理。
相对于传统RAID机制,RAID2.0+具备如下优势:
业务负载均衡,避免热点:数据打散到资源池内所有硬盘上,没有热点,硬盘负荷平均,避免个别盘因为承担更多的写操作而提前达到寿命的上限。
快速重构,缩小风险窗口:当硬盘故障时,故障盘上的有效数据会被重构到资源池内除故障盘外的所有盘上,实现了多对多的重构,速度快,大幅缩短数据处于非冗余状态的时间。
全盘参与重构:资源池内所有硬盘都会参与重构,每个盘的重构负载很低,重构过程对上层应用无影响。