一、RAID简介

         磁盘阵列,Redundant Arrays of Inexpensive Disks(RAID),被称作容错廉价磁盘阵列。但由于磁盘成本的提高,也有人称RAIDRedundant Arrays of Independent Disks,独立冗余磁盘阵列。RAID的实现是通过软件或硬件的方式将多个磁盘整合成一个磁盘设备。并通过选择不同RAID的等级以及不同RAID的等级之间的组合使用,可以用来提高单一文件系统的容量,提升I/O性能,数据安全和可靠性。RAID等级有0 - 6,以及混合等级0110,不同等级实现的功能不同。生产环境中几乎都是使用阵列卡硬件方式实现RAID,软件实现方式在稳定性和性能方面有极大限制,因此在生产环境中极度不建议软件方式,在下面不对软件方式实现进行讨论。

 

二、常用RAID等级(level)

1RAID-0

         RAID-0被称为条带模式,stripe。数据在此种RAID等级是分散存储,每个磁盘放置所要存储数据的一部分,读写性能得到了提升,需要的磁盘数为多于或等于两块磁盘,磁盘可用空间为:磁盘数 X 最小磁盘的大小。

wKioL1XjBjeQxPppAADnToQb0FA080.jpg

 

    上图为,当数据写入RAID时,数据会被切割成一块一块,然后依序放到不同的磁盘。一方面读写性能得到了提升,但另一方面,由于数据切割分散存储于不同磁盘,但其中一块磁盘损坏,RAID上面所有数据都会损坏。因此,从数据安全方面考虑,重要数据不适合使用RAID-0

 

2RAID-1

         RAID-1被称作镜像模式(mirror),此种模式是让同一份完整的数据在多块不同的磁盘上存储。如下图,当数据写入RAID时,把每一份数据复制成相同的两份,分别放入两块磁盘中存放。这种模式可以实现数据备份作用,当其中一块磁盘损坏时,数据不受影响。但此种模式需要复制多份数据到各个磁盘,在大量写入的情况下,写性能会降低;由于可以从不同磁盘读入数据,因此读性能会有略微提升。需要的磁盘数为多于或等于两块磁盘,磁盘可用空间为:磁盘数 X 最小磁盘的大小/ 2

 

wKioL1XjBkvDGUtRAADQMfZJSEk690.jpg

 

3RAID-5

       RAID-5对性能和数据备份进行了均衡考虑,实现方式是使用三块或三块以上磁盘组成磁盘阵列。数据写入方式类似于RAID-0,但区别是在每个循坏写入过程中,轮流在其中一块磁盘存储其他几个磁盘数据的同位校验码(parity),同位检验码为同位其他数据相与或所得,当其中任何一个磁盘损坏时,可通过其他磁盘的校验码来重建磁盘的数据。但当多于一块磁盘损坏时,数据则无法恢复。

       RAID-5对读性能有较好的提升,由于写入时需要对数据进行同位校验码计算,所以写性能的提升较低于读性能的提升。磁盘可用空间为:(磁盘数 - 1) X 最小磁盘的大小。

        另外,当其中一块磁盘损坏后,如果没有预备磁盘顶替,则每一次读取数据都需要经过数据校验计算出损坏磁盘的数据,RAID工作于降级状态,对性能有极大的影响。RAID 6RAID 5的基础上增加多一块磁盘当校验盘,即支持两块磁盘做校验盘。

wKioL1XjBryAkn4DAAH_uzFQkOg091.jpg


 


4RAID 10

        RAID 10为混合类型,即RAID 0 RAID 1的组合,先把多个磁盘分组组成RAID 1,再把这些分组一起组成RAID 0,形式如下图所示。当数据写入时,先以RAID 0方式将数据分散到各个RAID 1组,再以RAID 1的方式复制多份数据在磁盘上完整存储。

    由于工作方式既有RAID 0 又有RAID 1,所以 RAID 1+0 混合模式具有提升读写速度,又有数据备份功能,但同一RAID1分组中不允许同时坏两块。此种方式需要4块以上磁盘,磁盘可用空间为:磁盘数 X 最小磁盘的大小/2

wKioL1XjByLA5iASAAHXd_7a8vA372.jpg

 

 

三、总结


    RAID软件方式实现可通过模式化工具mdadm来实现。但生产环境中一般很少会用到软件方式实现。上面详细介绍的为常用的RAID 等级,还有RAID 2RAID 3RAID 4RAID 6RAID 01,但这些等级在性能和可靠性上不如常用的RAID等级,生产环境中比较少用到。RAID 10是较为推荐的等级,它可以实现性能的提升又可以提供数据的安全性,但浪费的磁盘空间比较多,成本较高。选择哪一种等级需要看业务的需求,从成本,性能,安全等方面综合考虑,选择适合的RAID等级。