磁盘阵列

RAID概述及常用的RAID规范

RAID最初是“RedundantArray of Independent Disk”(独立磁盘冗余阵列)的缩写,后来由于廉价磁盘的出现,RAID成为“RedundantArray of Inexpensive Disks”(廉价磁盘冗余阵列)的缩写,RAID技术诞生于1987年,由美国加州大学伯克利分校提出。RAID的基本想法是把多个便宜的小磁盘组合到一起,成为一个磁盘组,使性能达到或超过一个容量巨大、价格昂贵的磁盘。虽然RAID包含多块磁盘,但是在操作系统下是作为一个独立的大型存储设备出现。RAID技术分为几种不同的等级,分别可以提供不同的速度,安全性和性价比。

RAID技术起初主要应用于服务器高端市场,但是随着IDE硬盘性能的不断提升、RAID芯片的普及、个人用户市场的成熟和发展,正不断向低端市场靠拢,从而为用户提供了一种既可以提升硬盘速度,又能够确保数据安全性的良好的解决方案。

目前RAID技术大致分为两种:基于硬件的RAID技术和基于软件的RAID技术。

RAID按照实现原理的不同分为不同的级别,不同的级别之间工作模式是有区别的。

1.RAID 0(无差错控制的带区组)

RAID 0是最简单的一种形式,也称为条带模式(Striped),即把连续的数据分散到多个磁盘上存取,如图9-3所示。当系统有数据请求就可以被多个磁盘并行执行,每个磁盘执行属于它自己的那部分数据请求。这种在数据上的并行操作可以充分利用总线的带宽,显著提高磁盘整体存取性能。因为数据分布在不同驱动器上,所以数据吞吐率大大提高,驱动器的负载也比较平衡。RAID 0中的数据映射如图9-4所示。

wKiom1kjp2TSZjbnAACJqwHB5Hk330.png-wh_50

 RAID 0(无冗余)

2.RAID 1(镜像结构)

虽然RAID0可以提供更多的空间和更好的性能,但是整个系统是非常不可靠的,RAID 1RAID 0截然不同,其技术重点全部放在如何能够在不影响性能的情况下最大限度的保证系统的可靠性和可修复性上。这种阵列可靠性很高,但其有效容量减小到总容量的一半,同时这些磁盘的大小应该相等,否则总容量只具有最小磁盘的大小。

wKiom1kjp3ajXmGwAAIojJQ-9vU891.png-wh_50

 RAID 0中的数据映射

RAID 1中每一个磁盘都具有一个对应的镜像盘。对任何一个磁盘的数据写入都会被复制镜像盘中,如图9-5所示。RAID1是所有RAID等级中实现成本最高的一种,因为所能使用的空间只是所有磁盘容量总和的一半。尽管如此,人们还是选择RAID 1来保存那些关键性的重要数据。

wKiom1kjp4yC1tHSAAE0K807BS4470.png-wh_50

  RAID 1(镜像结构)

3.RAID 2(带海明码校验)

RAID 2RAID3类似,两者都是将数据条块化分布于不同的硬盘上,条块单位为位或字节。然而RAID 2使用一定的编码技术来提供错误检查及恢复,这种编码技术需要多个磁盘存放检查及恢复信息,使得RAID 2技术实施更复杂。因此,在商业环境中很少使用。如图9-6所示,左边的各个磁盘上是数据的各个位,由一个数据不同的位运算得到的海明校验码可以保存另一组磁盘上。由于海明码的特点,它可以在数据发生错误的情况下将错误校正,以保证输出的正确。

wKioL1kjp8XwCEKaAACZNNTE5io916.png-wh_50



 RAID 2(带海明码校验)

4.RAID 3(带奇偶校验码的并行传送)

RAID 3是以一个硬盘来存放数据的奇偶校验位,数据则分段存储于其余硬盘中。它像RAID 0一样以并行的方式来存放数,但速度没有RAID 0快。如果数据盘(物理)损坏,只要将坏硬盘换掉,RAID控制系统则会根据校验盘的数据校验位在新盘中重建坏盘上的数据。不过,如果校验盘(物理)损坏的话,则全部数据都无法使用。利用单独的校验盘来保护数据虽然没有镜像的安全性高,但是硬盘利用率得到了很大的提高。

例如,如图9-7所示,在一个由5块硬盘构成的RAID 3系统中,4块硬盘将被用来保存数据,第5块硬盘则专门用于校验。第5块硬盘中的每一个校验块所包含的都是其它4块硬盘中对应数据块的校验信息。

wKiom1kjp8Wzb-xGAABpF5zy62c492.png-wh_50

9-7  RAID 3(带奇偶校验码的并行传送)

RAID 3虽然具有容错能力,但是系统会受到影响。当一块磁盘失效时,该磁盘上的所有数据块必须使用校验信息重新建立。如果我们是从好盘中读取数据块,不会有任何变化。但是如果我们所要读取的数据块正好位于已经损坏的磁盘,则必须同时读取同一带区中的所有其它数据块,并根据校验值重建丢失的数据。

当更换了损坏的磁盘之后,系统必须一个数据块一个数据块地重建坏盘中的数据。整个过程包括读取带区,计算丢失的数据块和向新盘写入新的数据块,都是在后台自动进行。重建活动最好是在RAID系统空闲的时候进行,否则整个系统的性能会受到严重的影响。

5.RAID 4(块奇偶校验阵列)

RAID3类似,所不同的是,它对数据的访问是按数据块进行的,即按磁盘进行,每次是一个盘。数据是以扇区交错方式存储于各台磁盘,也称块间插入校验。采用单独奇偶校验盘,如图9-8所示。

wKiom1kjp8WRy1sZAADGA9SVNag510.png-wh_50

 RAID 4(块奇偶校验阵列)

6.RAID 5(块分布奇偶校验阵列)

RAID4类似,但校验数据不固定在一个磁盘上,而是循环地依次分布在不同的磁盘上,也称块间插入分布校验。它是目前采用最多、最流行的方式,至少需要3个硬盘。这样就避免了RAID 4中出现的瓶颈问题。如果其中一块磁盘出现故障,那么由于有校验信息,所以所有数据仍然可以保持不变。如果可以使用备用磁盘,那么在设备出现故障之后,将立即开始同步数据。如果两块磁盘同时出现故障,那么所有数据都会丢失。RAID 5可以经受一块磁盘故障,但不能经受两块或多块磁盘故障。

如图9-9所示,奇偶校验码存在于所有磁盘上,其中的p0代表第0带区的奇偶校验值,其它的意思也相同。RAID 5的读出效率很高,写入效率一般,块式的集体访问效率不错。因为奇偶校验码在不同的磁盘上,所以提高了可靠性。但是它对数据传输的并行性解决不好,而且控制器的设计也相当困难。RAID 3RAID 5相比,重要的区别在于RAID 3每进行一次数据传输,需涉及到所有的阵列盘。而对于RAID 5来说,大部分数据传输只对一块磁盘操作,可进行并行操作。

wKioL1kjqC2yYA2VAADW7qUoNr0215.png-wh_50


  RAID 5(块分布奇偶校验阵列)

7.RAID 6(双重块分布奇偶校验阵列)

RAID 6是在RAID5基础上扩展而来的。与RAID 5一样,数据和校验码都是被分成数据块然后分别存储到磁盘阵列的各个硬盘上。只是RAID 6中增加一块校验磁盘,用于备份分布在各个磁盘上的校验码,如图9-10所示,这样RAID6磁盘阵列就允许两个磁盘同时出现故障,所以RAID 6的磁盘阵列最少需要4块硬盘。

wKiom1kjqC_wkNuMAADckZ_X39Y235.png-wh_50

  RAID 6(双重块分布奇偶校验阵列)

8.RAID 0+1(高可靠性与高效磁盘结构)

RAID0RAID 1技术结合起来,即RAID 01。具有极高可靠性的高性能磁盘阵列。它将两组磁盘按照RAID 0的形式组成阵列,每组磁盘按照RAID 1的形式实施容错。数据除分布在多个盘上外,每个盘都有其物理镜像盘,提供全冗余能力,允许一个以下磁盘故障,而不影响数据可用性,并具有快速读/写能力。要求至少4个硬盘才能做成RAID 01

9.RAID 53(高效数据传送磁盘结构)

具有高输入输出性能的磁盘阵列。将两组磁盘按照RAID 0的形式组成阵列,每组磁盘按照RAID 3的形式实施容错,因此它速度比较快,也有容错功能。但价格十分高,不易于实现。

SoftWare RAID描述

一般的中高档服务器多使用硬件RAID控制器来实现HardwareRAID,但是由于硬件RAID控制器的价格昂贵,导致系统成本大大增加。而随着处理器的性能快速发展,使得软件RAID的解决方法得到人们的重视。

SoftWare RAID即软件磁盘阵列,软件RAID使您可以将两个或多个块设备(通常是磁盘区)组合为单个RAID设备(/dev/mdX)。

例如:假定有三个空分区:hda3hdb3hdc3。使用软件RAID管理工具mdadm就能将这些分区组合起来。

mdadm管理工具

mdadm工具是一个管理软件RAID的独立程序,它能完成所有的软RAID管理功能。

mdadm常用选项见表9-1

SoftWare Raid创建过程

第1步:创建Software Raid分区,分区类型为fd

第2步:使用mdadm工具创建Software Raid设备,例:使用RAID0规范,创建阵列设备md1

# mdadm  -C  /dev/md1  -a  yes  -l  0  -n  2  /dev/sda{5,6}

 

# mdadm  -C  /dev/md1  -a  yes  -l  5  -n  4  /dev/sdb{1,2,3,5}

 

第3步:为阵列创建文件系统,例:mkfs.ext3 /dev/md1

   mkfs  -t ext4  /dev/md1

第4步:挂载阵列设备

SoftWare Raid配置文件

mdadm不采用/etc/mdadm.conf作为主要配置文件,它完全可以不依赖该文件也不会影响阵列的正常工作。

该配置文件的主要作用是方便跟踪软RAID的配置。对该配置文件进行配置是有好处的,但不是必须的。推荐对该文件进行配置。

建立方法:首先创建阵列,然后执行如下命令。

# mdadm  -D  -s >> /etc/mdadm.conf                 

# mdadm  --detail --scan  >> /etc/mdadm.conf

查看、停止与启动Soft阵列

1.查看阵列状态

# mdadm  -D   /dev/md0

# cat  /proc/mdstat

2.停止阵列设备

# mdadm  -S  /dev/md0

3.启动阵列设备

# mdadm  -A  /dev/md0  /dev/sda{X,Y,Z}