RAID 2.0技术

目录

RAID 2.0逻辑图

RAID 2.0技术原理

硬盘域

Storage Pool & Tier

Disk Group

LD(逻辑磁盘)

CK(Chunk)

CKG(Chunk Group)

Extent

Grain

LUN


RAID 1.0技术存在的问题

  1. 重构速度慢,当硬盘发生损坏时,恢复数据的速度较慢。
  2. 性能差,虽然RAID技术存在的初衷就是为了提升硬盘的性能,但是面对现阶段的业务量已经不足以支撑。
  3. 冷热数据不均,RAID 1.0组中,会存在每个盘组中的数据访问量不均匀,硬盘的使用就不均匀。

在最初的RAID技术中,是将几块小容量廉价的磁盘组合成一个大的逻辑磁盘给大型机使用。后来硬盘的容量不断增大,组建RAID的初衷不再是构建一个大容量的磁盘,而是利用RAID技术实现数据的可靠性和安全性,以及提升存储性能,由于单个容量硬盘都已经较大了,数据硬盘组建的RAID容量更大,然后再把RAID划分成一个一个的LUN映射给服务器使用。

随着硬盘技术的发展,单块硬盘的容量已经达到数T,传统RAID技术在硬盘重构的过程中需要的时间越来越长,也增加了在重构过程中其它硬盘再坏掉对数据丢失造成的风险,为了解决这一问题,块虚拟化技术应运而生。

RAID 2.0+ 是华为的块虚拟化技术,该技术将物理空间和数据空间分散分布成分散的块,可以充分发挥系统的读写能力,方便扩展,也方便了空间的按需分配,数据的热度排布,迁移,它是华为所有Smart软件特性的实现基础。同时,由于热备空间也是分散在多个盘上的,因此硬盘数据的重构写几乎可以同时进行,避免了写单个热备盘造成的性能瓶颈,大大减少了重构时间。

RAID 2.0逻辑图

华为RAID2.0+采用底层硬盘管理和上层资源管理两层虚拟化管理模式,在系统内部,每个硬盘空间被划分成一个个小粒度的数据块,基于数据块来构建RAID组,使得数据均匀地分布到存储池的所有硬盘上,同时,以数据块为单元来进行资源管理,大大提高了资源管理的效率。

OceanStor存储系统支持不同类型(SSD、SAS、NL-SAS)的硬盘,这些硬盘组成一个个的硬盘域(Disk Domain)。在一个硬盘域中,同种类型的硬盘构成一个存储层,每个存储层内部再按一定的规则划分为Disk Group;

各存储层的硬盘被划分为固定大小的Chunk(CK),其中,SSD层和SAS层的CK的大小为64MB,NL-SAS层的CK大小为256M。 OceanStor 存储系统通过随机算法,将每一个存储层的Chunk(CK)按照“RAID策略”来组成Chunk Group(CKG),用户可以为存储池(Storage Pool)中的每一个存储层分别设置“RAID策略”。

OceanStor存储系统会将Chunk Group(CKG)切分为更小的ExtentExtent作为数据迁移的最小粒度和构成Thick LUN的基本单位,在创建存储池(Storage Pool)时可以在“高级”选项中进行设置,默认4MB。对于Thin LUN或文件系统,会在Extent上再进行更细粒度的划分(Grain),并以Grain为单位映射到Thin LUN、文件系统。

若干Extent组成了卷(Volume),卷(Volume)对外体现为主机访问的LUN。在处理用户的读写请求以及进行数据迁移时,LUN向存储系统申请空间、释放空间、迁移数据都是以Extent为单位进行的。例如:用户在创建LUN时,可以指定容量从某一个存储层中获得,此时LUN由指定的某一个存储层上的Extent组成。在用户的业务开始运行后,存储系统会根据用户设定的迁移策略,对访问频繁的数据以及较少被访问的数据在存储层之间进行迁移。此时,LUN上的数据就会以Extent为单位分布到存储池的各个存储层上。

在用户创建Thin LUN或文件系统时,OceanStor存储系统还会在Extent的基础上再进行更细粒度的划分(Grain),并以Grain为单位映射到Thin LUN或文件系统,从而实现对存储容量的精细化管理。

RAID 2.0技术原理

硬盘域

 Disk Domain即硬盘域,是一堆硬盘的组合(可以是整个系统所有硬盘)这些硬盘整合并预留热备容量后统一向存储池提供存储资源。

在传统的RAID的技术中,第一步是创建RAID组,但是对硬盘本身就有要求,RAID组中要求磁盘的类型、转速、容量需要一致,并且一个RAID组中的硬盘不能超过12个。

在RAID 2.0中,创建的是一个硬盘域,一个硬盘域有多个硬盘,数量可以有很多,而且可以包含不同类型;每种不同类型的硬盘可以分配到不同的存储层级,比如SSD盘对应分配到高性能层,SAS盘分配到性能层,NL-SAS盘分配到容量层。在创建硬盘域时,RAID级别尚未指定,即数据的冗余保护方式还未指定。

Storage Pool & Tier

Storage Pool即存储池,是存放存储空间资源的容器,所有应用服务器使用的存储空间都来自于存储池。 Tier即存储层级,存储池中性能类似的存储介质集合,用于管理不同性能的存储介质,以便为不同性能要求的应用提供不同存储空间。

存储层级

层级名称

支持硬盘类型

应用

Tier0

高性能层

SSD

性能和价格较高,适合存放访问频率很高的数据

Tier1

性能层

SAS

性能较高,价格适中,适合存放访问频率中等的数据

Tier2

容量层

NL-SAS

性能较低,价格最低且单盘容量大,适合存放大容量的数据以及访问频率较低的数据

一个存储池基于指定的一个硬盘域创建,可以从该硬盘域上动态的分配Chunk(CK)资源,并按照每个存储层级(Tier)的“RAID策略”组成Chunk Group(CKG)向应用提供具有RAID保护的存储资源。 存储池根据硬盘类型可划分为多个Tier。

创建存储池可以指定该存储池从硬盘域上划分的存储层级(Tier)类型以及该类型的“RAID策略”和“容量”。 容量层由大容量的SATA、NL-SAS盘组成,RAID策略建议使用双重校验方式的RAID6。

Disk Group

Disk Group (DG)即硬盘组,由硬盘域内相同类型的多个硬盘组成的集合,硬盘类型包括SSD、SAS和NL-SAS三种。

  • OceanStor存储系统会在每个硬盘域内根据每种类型的硬盘数量自动划分为一个或多个Disk Group(DG)。
  • 一个Disk Group(DG)只包含一种硬盘类型
  • 任意一个CKG的多个CK来自于同一个Disk Group(DG)的不同硬盘
  • Disk Group(DG)属于系统内部对象,主要作用为故障隔离,由OceanStor存储系统自动完成配置,对外不体现。 

LD(逻辑磁盘)

Logical Drive (LD)即逻辑磁盘,是被存储系统所管理的硬盘,和物理硬盘一一对应。

CK(Chunk)

Chunk简称CK,是存储池内的硬盘空间切分成若干固定大小的物理空间,是组成RAID的基本单位。块大小是系统在切分物理空间的时候固定的大小,不能进行更改。

CKG(Chunk Group)

Chunk Group简称CKG,是由来自于同一个DG内不同硬盘的CK按照RAID算法组成的逻辑存储单元,是存储池从硬盘域上分配资源的最小单位。

一个CKG中的CK均来自于同一个DG中的硬盘,CKG具有RAID属性(RAID属性实际配置在Tier上),CK和CKG均属于系统内部对象,由存储系统自动完成配置,对外不体现。 

Extent

Extent是在CKG基础上划分的固定大小的逻辑存储空间,大小可调,是热点数据统计和迁移的最小单元(数据迁移粒度),也是存储池中申请空间、释放空间的最小单位。

一个Extent归属于一个Volume或一个LUN,Extent大小在创建存储池时可以进行设置,创建之后不可更改,不同存储池的Extent大小可以不同,但同一存储池中的Extent大小是统一的。

Grain

在Thin LUN模式下,Extent按照固定大小被进一步划分为更细粒度的块,这些块称之为Grain。Thin LUN以Grain为粒度进行空间分配,Grain内的LBA是连续的。

Thin LUN以Grain为单位映射到LUN,对于Thick LUN,没有该对象。

LUN

Volume即卷,是存储系统内部管理对象。 LUN是可以直接映射给主机读写的存储单元,是Volume对象的对外体现。

一个Volume对象用于组织同一个LUN的所有Extent、Grain逻辑存储单元,可动态申请释放Extent来增加或者减少Volume实际占用的空间。

RAID重构技术

RAID2.0+技术会根据热备策略自动在硬盘域中预留一定数量的热备空间,用户无需进行设置,当系统自动检测到硬盘上某个区域不可修复的介质错误或整个硬盘发生故障时,系统会自动进行重构,将受影响的数据块数据快速重构到其他硬盘的热备空间中,实现系统的快速自愈合。

传统RAID

RAID2.0+

需要手动配置单独的全局或局部热备硬盘

分布式的热备空间,无需单独配置

多对一的重构,重构数据流串行写入单一的热备硬盘

多对多的重构,重构数据流并行写入多块硬盘

存在热点,重构时间长

负载均衡,重构时间短

RAID重构原理

容量的增长使得传统RAID不得不面临一个严重的问题:10年前重构一块硬盘可能只需要几十分钟,而如今重构一块硬盘需要十几甚至几十个小时。越来越长的重构时间使得企业的存储系统在出现硬盘故障时长时间处于非容错的降级状态,存在极大的数据丢失风险,存储系统在重构过程中由于业务和重构的双重压力导致数据丢失的案例也屡见不鲜。

基于底层块级虚拟化的RAID2.0+技术由于克服了传统RAID重构的目标盘(热备盘)性能瓶颈,使得重构数据流的写带宽不再成为重构速度的瓶颈,从而大大提升了重构速度,降低了双盘失效的概率,提升了存储系统的可靠性。

图中显示了传统RAID和RAID2.0+两种技术重构原理的对比: 左图传统RAID中,HDD0~HDD4五块硬盘创建RAID5,HDD5为热备盘,当HDD1故障后,HDD0、HDD2、HDD3、HDD4通过异或算法将重构的数据写入HDD5中; 在右图的RAID2.0+示意图中,当HDD1故障后,故障盘HDD1中的数据按照CK的粒度进行重构,只重构已分配使用的CK(图中HDD1的CK12 和 CK13),存储池中所有的硬盘都参与重构过程,重构的数据分布在多块硬盘中(图中的HDD4和HDD9)。

猜你喜欢

转载自blog.csdn.net/weixin_43997530/article/details/108171110
今日推荐