独立磁盘冗余阵列(RAID,redundant array of independent disks)是把相同的数据存储在多个硬盘的不同地方的方法。
RAID技术主要包含RAID 0~RAID 50等数个规范,常见的规范有RAID 0、RAID 1、RAID 3、RAID 5、RAID 6、RAID 10和RAID 50等。
RAID 0又称为条带化(Stripe)或分条(Striping),它代表了所有RAID级别中最高的存储性能。RAID 0提高存储性能的原理是把连续的数据分散到多个硬盘上存取。这样,系统有数据请求就可以被多个硬盘并行的执行,每个硬盘执行属于它自己的那部分数据请求。这种数据上的并行操作可以充分利用总线的带宽,显著提高硬盘整体读写性能。
如图1-1所示,系统向三块硬盘组成的逻辑硬盘(RAID 0硬盘组)发出的I/O数据请求被转化为同时对三块硬盘进行I/O操作。通过建立RAID 0,原先顺序的数据请求被分散到所有的三块硬盘中同时执行。三块硬盘的并行操作在理论上使同一时间内硬盘读写速度提升了3倍。虽然由于总线带宽等多种因素的影响,实际的提升速率会低于理论值,但是大量数据并行传输与串行传输比较,提速效果显著。
RAID 1又称为镜像(Mirror或Mirroring),它能最大限度的保证用户数据的可用性和可修复性。RAID 1的操作方式是把用户写入硬盘的数据百分之百地自动复制到另外一个硬盘上。
如图1-2所示,系统向两块硬盘组成的逻辑硬盘(RAID 1硬盘组)发出I/O数据请求。通过建立RAID 1,向硬盘Disk 0写入数据时,系统会同时把用户写入Disk 0的数据自动复制到Disk 1上。读取数据时,系统先从源盘Disk 0读取数据,如果读取数据成功,则系统不去读取镜像盘Disk 1上的数据;如果读取源盘数据失败,系统自动转而读取镜像盘上的数据。这种情况下不会造成用户工作任务的中断。
RAID 5是一种存储性能、数据安全和存储成本兼顾的存储解决方案。为保障存储数据的可靠性,采用循环冗余校验方式,并将校验数据分散存储在RAID组的各成员盘上。当RAID组的某个成员盘出现故障时,通过其他成员盘上的数据可以重新构建故障硬盘上的数据。
如图1-3所示,P0为D0、D1和D2的奇偶校验信息,P1为D3、D4和D5的奇偶校验信息,以此类推。RAID 5不对存储的数据进行备份,而是把数据和相对应的奇偶校验信息存储到组成RAID 5的成员盘上,并且奇偶校验信息和相对应的数据分别存储于不同的硬盘上。当RAID 5的一个硬盘数据发生损坏后,利用剩下的数据和相应的奇偶校验信息可以恢复被损坏的数据。
RAID 10是将镜像和条带进行两级组合的RAID级别,即RAID 0+RAID 1的组合形式,第一级是RAID 1,第二级是RAID 0。RAID 10是存储性能和数据安全兼顾的方案。它在提供与RAID 1一样的数据安全保障的同时,也提供了与RAID 0近似的存储性能。
如图1-4所示,Disk 0和Disk 1组成一个子组0,Disk 2和Disk 3组成一个子组1,子组内的硬盘互为镜像。系统向硬盘发出I/O数据请求时,原先顺序的数据请求按照RAID 0的方式,被分散到两个子组中并行执行,同时通过RAID 1的方式,系统在向硬盘Disk 0写入数据的同时把数据自动复制到硬盘Disk 1上,向硬盘Disk 2写入数据的同时把数据自动复制到硬盘Disk 3上。
在进行RAID级别选择时,需考虑到以下三点:
不同RAID级别的可靠性、读写性能和硬盘利用率不同。各RAID级别的对比分析如表1-1所示。
RAID级别 |
冗余及数据恢复能力 |
读性能 |
写性能 |
硬盘利用率 |
最多允许坏的盘数 |
---|---|---|---|---|---|
RAID 0 |
不提供数据冗余,损坏的数据将无法得到恢复。 |
高 |
高 |
硬盘利用率为100%。 |
0 |
RAID 1 |
高,数据全冗余。当CHUNK故障时,可以使用对应镜像CHUNK进行恢复。 |
较高 |
较低 |
|
最多可以容许N-1个硬盘同时损坏(N个硬盘组成的RAID 1阵列)。 |
RAID 3 |
较高,CKG中的一个CHUNK作为校验块。任意一块数据CHUNK故障都可以通过校验CHUNK进行恢复。如果出现两个及以上CHUNK故障,则整个RAID级别故障。 |
高 |
低 |
RAID 3支持灵活配置,即支持2D+1P~13D+1P配置,下面列举RAID 3几种通用配置的硬盘利用率:
|
1 |
RAID 5 |
较高,校验数据分散在不同的CHUNK上,每个CKG中的校验数据占用一个CHUNK的空间,允许任意一个数据CHUNK故障。如果出现两个及以上CHUNK故障,则整个RAID级别故障。 |
较高 |
较高 |
RAID 5支持灵活配置,即支持2D+1P~13D+1P配置,下面列举RAID 5几种通用配置的硬盘利用率:
|
1 |
RAID 6 |
较高,两组校验数据分散在不同的CHUNK上,每个CKG中的校验数据占用两个CHUNK的空间,允许任意两个CHUNK故障。如果出现三个及以上CHUNK故障,则整个RAID级别故障。 |
中 |
中 |
RAID 6支持灵活配置,即支持2D+2P~26D+2P配置,下面列举RAID 6几种通用配置的硬盘利用率:
|
2 |
RAID 10 |
高,允许多个CHUNK故障。当某个CHUNK故障时,可以使用对应的镜像CHUNK进行恢复。如果存储相同数据的CHUNK和镜像CHUNK同时故障,则整个RAID级别故障。 |
较高 |
较高 |
硬盘利用率为50%。 |
最多可以容许N个硬盘同时损坏(2N个硬盘组成的RAID 10阵列)。 |
RAID 50 |
较高,每个RAID 5子组中的校验数据分散在不同的CHUNK上,每个RAID 5子组中只允许一个CHUNK失效。如果某个RAID 5子组中有2个及以上CHUNK同时失效,则整个RAID级别故障。 |
较高 |
较高 |
|
1 |
a:“D”指数据块。 b:“P”指校验块。 说明: 对于灵活配置xD+yP的RAID策略,硬盘利用率=[x/(x+y)] ×100%。 |
RAID策略配置可参考以下意见: