主流RAID简介

走远了吗. 提交于 2021-01-10 15:29:15

一、      RAID概述

RAID技术是由美国加州大学伯克利分校D.A. Patterson教授在1988年提出的,作为高性能、高可靠的存储技术,在今天已经得到了广泛的应用。

RAID是Redundant Array of Inexpensive Disks(中文直译为廉价磁盘冗余阵列)的缩写,是将一系列单独的磁盘以不同的方式组合起来,为一个应用主机或主机集群提供一个逻辑上的磁盘。使用RAID的好处是能够扩大磁盘容量、提高磁盘读取的性能和数据的安全性。

二、      RAID的级别

RAID技术经过不断的发展,现在已拥有了从RAID-0到RAID-5的6种明确标准级别的RAID级别。另外,其他还有RAID-6、RAID-7、RAID-10(RAID-1与RAID-0的组合)、RAID-01(RAID-0与RAID-1的组合)、RAID-30(RAID3与RAID-0的组合)、RAID-50(RAID-5与RAID-0的组合)等。

不同RAID级别代表着不同的存储性能、数据安全性和存储成本,下面我们将重点介绍下ZLHIS服务器部署中最常使用的RAID级别:RAID-0、RAID-1、RAID-5 、RAID-10。

l  RAID-0

RAID-0全称叫做Striped  Disk  Array without  Fault  Tolerance(没有容错设计的条带磁盘阵列),从图中可以看出,RAID-0在存储数据时由RAID控制器(硬件或软件)分割成大小相同的数据条,同时写入阵列中的磁盘。如果发挥一下想象力,你会觉得数据像一条带子横跨过所有的阵列磁盘,每个磁盘上的条带深度则是一样的。至于每个条带的深度则要看所采用的RAID 类型,在NT系统的软RAID-0等级中,每个条带深度只有64KB一种选项,而在硬RAID-0等级,可以提供8、16、32、64以及128KB等多种深度参数。Striped是RAID的一种典型方式,在很多RAID术语解释中,都把Striped  指向RAID-0。在读取时,也是顺序从阵列磁盘中读取后再由RAID控制器进行组合再传送给系统,这也是RAID 的一个最重要的特点。

 

这样,数据就等于并行的写入和读取,从而非常有助于提高存储系统的性能。对于两个硬盘的RAID-0系统,提高一倍的读写性能可能有些夸张,毕竟也要考虑到同时增加的数据分割与组合等与RAID相关的操作处理时间,但比单个硬盘提高80%的性能是完全可以的。

不过,RAID-0还不能算是真正的RAID,因为它没有数据冗余能力。由于没有备份或校验恢复设计,在RAID-0阵列中任何一个硬盘损坏就可导致整个阵列数据的损坏,因为数据都是分布存储的。下面总结一下RAID-0的特点:

至少需要磁盘数

2

优点

缺点

ü  极高的磁盘读写效率

ü  没有校验所占用的CPU资源

ü  设计、使用与配置简单

²  缺乏校验恢复机制而不是真正的RAID

²  没有数据容错能力,一(磁盘)毁俱(整个阵列)毁

²  较为困难的数据重建操作

²  不可能用于任何苛求的环境

适用领域

ü  视频生成与编辑

ü  图像编辑

ü  较为“拥挤”的操作

ü  其他需要大的传输带宽的操作

l  RAID-1

RAID-1全称叫Mirroring and Duplexing(相互镜像)。

RAID-1以镜像作为冗余手段,虚拟磁盘中的数据有多个拷贝,放在成员磁盘上。如图。

 

RAID-1在写入数据时,RAID控制器并不是将数据分成条带而是将数据同时写入两个硬盘。这样,其中任何一个硬盘的数据出现问题,可以马上从另一个硬盘中进行恢复。注意,这两个硬盘并不是主从关系,而是相互镜像/恢复的。

RAID-1已经可以算是一种真正的RAID系统,它提供了强有力的数据容错能力,但这是由一个硬盘的闲置的代价所带来的效果,而这个硬盘并不能增加整个阵列的有效容量。下面总结一下RAID-1 的特点:

至少需要磁盘数

2

优点

缺点

ü  理论上两倍的读取效率

ü  100%的数据冗余功能

ü  设计、使用与配置较为简单

²  错误校验效率低下,磁盘校验过程中CPU占用率是所有RAID等级中最高的

²  在软RAID-1中效能下降严重,强烈推荐硬RAID-1方式

²  在软RAID-1方式中很少能支持磁盘的热插拔

适用领域

ü  财务统计与数据库

ü  金融系统

ü  其他需要高度数据可维护性的操作

l  RAID-5

RAID-5的机制是数据校验的信息被均匀的分散到的阵列的各个磁盘上,这样就不存在并发写操作时的校验盘性能瓶颈。阵列的磁盘上既有数据,也有数据校验信息,数据块和对应的校验信息会存储于不同的磁盘上,当一个数据盘损坏时,系统可以根据同一带区的其他数据块和对应的校验信息来重构损坏的数据。

 

RAID-5可以理解为是RAID-0和RAID-1的折衷方案。RAID-5可以为系统提供数据安全保障,但保障程度要比RAID-1低而磁盘空间利用率要比RAID-1高。RAID-5具有和RAID-0相近似的数据读取速度,只是多了一个奇偶校验信息,写入数据的速度比对单个磁盘进行写入操作稍慢。同时由于多个数据对应一个奇偶校验信息,RAID-5的磁盘空间利用率要比RAID-1高,存储成本相对较低。

RAID-5在数据盘损坏时的情况和RAID 3相似,由于需要重构数据,性能会受到影响。

下面总结一下RAID-5的特点:

至少需要磁盘数

3

优点

缺点

ü  高读取速率

ü  中等写速率

²  磁盘损坏会影响系统的吞吐量

²  控制器设计复杂

²  磁盘损坏后,重建很复杂

适用领域

ü  适合文件服务器和应用服务器

ü  OLTP环境的数据库

 

l  RAID-10

RAID-10也是RAID-1和RAID-0的结合,也称为RAID(0+1),条带化后为每一个条带提供镜像,既提高了系统的读写性能,有提供了数据冗余保护,RAID-10的磁盘空间利用率和RAID-1是一样的,为50%。RAID-10适用于既有大量的数据需要存储,有对数据安全性有严格要求的领域,比如金融,证券等。

 

下面总结一下RAID-10的特点:

至少需要磁盘数

3

优点

缺点

ü  高读取速率

ü  中等写速率

²  磁盘损坏会影响系统的吞吐量

²  控制器设计复杂

²  磁盘损坏后,重建很复杂

适用领域

ü  适合文件服务器和应用服务器

ü  OLTP环境的数据库

 

三、      RAID之间的区别

在各个RAID级别中,使用最广泛的是RAID-0,RAID-1,RAID-5,RAID-10,如下是从容量、冗余性以及性能方面对这几种典型RAID类型进行比较。

RAID-0,将数据分成条带顺序写入一组磁盘中。RAID-0不提供冗余功能,但是它却提供了卓越的吞吐性能,因为读写数据是在一组磁盘中的每个磁盘上同时处理的,吞吐性能远远超过单个磁盘的读写。

RAID-1,每次写操作都将分别写两份到数据盘和校验盘上,每对数据盘和校验盘成为镜像磁盘组。也可使用并发的方式来读数据时,提高吞吐性能。如果镜像磁盘组中某个磁盘出错,则数据可以从另外一块磁盘获得,而不会影响系统的性能,然后,使用一块备用磁盘将健康磁盘中的数据复制出来然后这两块磁盘又组成新的镜像组。

RAID-10,即RAID-1 与RAID-0 的结合,既做镜像又做条带化,数据先镜像再做条带化。这样数据存储既保证了可靠性,又极大地提高了吞吐性能。

RAID-5 是将数据校验循环分散到各个磁盘中,它像RAID-0一样将数据条带化分散写到一组磁盘中,但同时它生成校验数据作为冗余和容错使用。校验磁盘包含了所有条带的数据的校验信息。RAID-5将校验信息轮流地写入条带磁盘组的各个磁盘中,即每个磁盘上既有数据信息又同时有校验信息,RAID-5 的性能得益于数据的条带化,但是某个磁盘的失败却将引起整个系统的下降,这是因为系统将在承担读写任务的同时,重新构建和计算出失败磁盘上的数据,此时要使用备用磁盘对失败磁盘的数据重建恢复整个系统的健康。

从ZLHIS应用来讲,要求存储系统具有良好的IO性能同时也要求对数据安全做好保护工作,所以我应该重点关注冗余安全性相对较高的RAID-10和RAID-5。

l  IO的性能

读操作上RAID10和RAID5是相当的,RAID-5在一些很小数据的写操作(如比每个条带还小的小数据)需要2个读、2个写,还有2个XOR 操作,对于单个用户的写操作,在新数据应用之前必须将老的数据从校验盘中移除,整个的执行过程是这样:读出旧数据,旧数据与新数据做XOR,并创建一个即时的值,读出旧数据的校验信息,将即时值与校验数据进行XOR,最后写下新的校验信息。为了减少对系统的影响,大多数的RAID5  都读出并将整个条带(包括校验条带)写入缓存,执行2个XOR 操作,然后发出并行写操作(通常对整个条带),即便了进行了上述优化,系统仍然需要为这种写操作进行额外的读和XOR操作。小量写操作困难使得RAID-5  技术很少应用于密集写操作的场合,如回滚字段及重做日志。当然,也可以将存储系统的条带大小定义为经常读写动作的数据大小,使之匹配,但这样会限制系统的灵活性,也不适用于企业中其它的应用。

对于RAID10,由于不存在数据校验,每次写操作只是单纯的执行写操作。因此在写性能上RAID10要好于RAID5。

l  数据安全保护

RAID10系统在已有一块磁盘失效的情况下,只有出现该失效磁盘的对应镜像盘也失效,才会导致数据丢失。其他的磁盘失效不会出现数据丢失情况。

RAID5系统在已有一块磁盘失效的情况下,只要再出现任意的一块磁盘失效,都将导致数据丢失。

从综合来看,RAID10和RAID5系统在出现一块磁盘失效后,进行数据重构时,RAID5需耗费的时间要比RAID10长,同时重构期间系统负荷上RAID5要比RAID10高,同时RAID5出现数据丢失的可能性要比RAID10高,因此,数据重构期间,RAID5系统的可靠性远比RAID10来的低。

RAID5在磁盘空间率用率上比RAID10高,RAID5的空间利用率是(N-1)/ N      (N为阵列的磁盘数目),而RAID10的磁盘空间利用率仅为50%。

但是结合磁盘来考虑,今天的硬盘厂商所生产的ATA或SATA硬盘的质量已经可以承担企业级的应用,并且,容量的增加幅度相当大,目前已经可以实现单个磁盘400G的存储容量。SCSI硬盘由于要求高转速而使用小直径盘片,容量的增加相对缓慢。ATA磁盘相对SCSI磁盘拥有成本也要小很多。

应此,在采用价格昂贵的FC或SCSI硬盘的存储系统中,对于预算有限同时数据安全性要求不高的场合可以采用RAID5方式来折中;其他应用中采用大容量的ATA或SATA硬盘结合RAID10,既降低了RAID10的为获得一定的存储空间必须采用双倍磁盘空间的拥有成本,又避免了RAID5相对RAID10的各种缺点。

RAID级别

有效容量

顺序读写性能

随机读写性能

直接磁盘

n

6

6

4

4

RAID-0

n

10

10

10

10

RAID-1

n/2

7

5

6

3

RAID-5

n-1

7

7

7

4

RAID-10

n/2

10

9

7

6

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!