RAID技术
前言
Raid
技术是进存储行业必须了解的一门基础知识,我也不例外。刚开始学的时候对
Raid
技术也处于朦胧状态,一直看了好多遍才有些明白
(
寒自己一个
)
。进存储行业已经快
2
个年头了,这些基础知识我也有些淡忘,所以今天开始重新理一下头绪,把这些基石打扎实了才有更广的前景。下面就来说说这个基础的东东。
RAID技术的由来
RAID
的初衷主要是为了大型服务器提供高端存储功能和冗余的数据安全。在系统里,
RAID
被看作是一个逻辑分区,但它其实是由多个硬盘组成的,至少两块。它通过在多个硬盘上面同时存储和读取数据来大幅提高从存储系统的数据吞吐量,而且在很多
RAID
等级里面都有较完善的校验、恢复措施,从来大大提高了
RAID
系统的容错度,实现系统的稳定冗余性。
以前
RAID
技术一直是
SCSI
领域的独有产品,主要是因为它当时的成本和技术限制了其在低端市场的发展。今天,随着
RAID
技术的日益成熟与硬盘厂商的努力,我们已经可以享受到成本相对低廉的
IDE-RAID
系统,也许稳定性与可靠性方面还不能与
SCSI-RAID
相比,但它相对于单个硬盘的性能优势对爱好者来说是一个不小的诱惑。事实上,对于日常的低强度的操作,
IDE-RAID
已经足能胜任了。
RAID的三种实现方式
一、
全软:
全软的
RAID
就是指
RAID
的所有功能都是操作系统与
CPU
来完成的,没有第三方的控制器。所以这样有关
RAID
的所有任务的处理都是由
CPU
独自担当,那么可想而知这样的方式是效率最低的。配置方面也相对比较容易理解,只要把需要做
RAID
磁盘分配成动态磁盘后就可以进行相应的等级划分。
二、
半软半硬:
半软半硬的
RAID
主要缺乏自己的
I/O
处理芯片,所以这方面工作仍然需要
CPU
与驱动程序来完成,而且所采用的
RAID
控制、处理芯片能力一般比较弱,不能支持高等级的
RAID
级别。在今天实际环境中很少采用这种方式。
三、
全硬:
全硬的
RAID
则全面具备了自己的
RAID
控制、处理与
I/O
处理芯片,有的甚至还有阵列缓冲,这样的结构对
CPU
的占有率以及整体性能是三种类型中最具有优势的,但设备的成本也是三种类型中最高的。在如今的主流品牌服务器中都具备独立的
RAID
卡。配置的话一般都是开机自检后按
CTRL+A(IBM X
系列
)
进入卡里面进行
RAID
配置。
RAID等级介绍
RADI
等级基本上分为
RAID 0,RAID1, RAID 2, RAID3, RAID4, RAID5, RAID6, RAID5E, RAID5EE, RAID10, RAID50
几种。
这里我们就不一一介绍每一种
RAID
等级的原理,尤其是常见
RAID
等级的原理这里就不细说了,在这里我们说说接触的比较少的的
RAID
等级,首先根据
IT
界的特色,我们先介绍下新技术
RAID6
:
RAID6
技术
:
RAID5
已经提供了一定程度的可靠性,然而也牺牲了一定的读取速度。特别是在
RAID
重构作业中,大量的数据读写操作增加硬盘的负担,旧的硬盘更容易发生故障。
RAID5
的局限性还表现在
RAID5
仅能在一块硬盘发生故障的情况下修复数据,如果
2
块硬盘同时发生故障,
RAID5
则无能为力。
以前,两块盘同时坏的情况是小概率事件,几乎不可能发生。但是近来随着光纤
(FC)
盘和
SATA
盘的容量和密度不断增加,使得
RAID 5
的重建时间也不断增加。两块硬盘同时损坏的概率也大幅增加,在企业级存储上,这种风险必须得到重视。所以
RAID6
应需诞生了。
根据本人了解
RAID6
实现原理大致分为两种,一种叫
RAID6 P+Q,
另外一种是
RAID6DP
。
首先来说说第一种
P+Q
,
P
、
Q
其实代表两个独立的校验值,既它们的计算是互不干扰的,都是其他数据磁盘上的数据根据不同的算法而来的。具体的算法可以根据下面的公式来表示:
P=D0+D1+D2……..Dn
Q=(A0*D0)+ (A1*D1)+ (A2*D2)….. (An*Dn)
A
表示数学上的一种变换系数
那么如果其中一块硬盘上数据丢失,这种情况和
RAID5
发生故障是一样的,使用
P
校验值做恢复即可。如果两块磁盘同时故障,这里就需要用到上面的方程组了,其实也就是用到了我们初中里面解方程的原理一样。
我们举个例子:比如有六块硬盘做一个
RAID6
那么校验的方程应该是
P=D0+D1+D2+D3
Q=(A0*D0)+ (A1*D1)+ (A2*D2)+ (A3*D3)
A
都是已知数
这时我们同时坏了
D0,D1
两块硬盘的话,我们就根据上面的方程式,因为
P
和
Q
,
D3
,
A
是已知的数所以我们可以得出
D0
和
D1
的值。同理任何两个数损坏的话我们都可以根据上面的方程得出。同理下面说讲的
DP
也是一样。
了解了
P+Q
的校验原理,理解
RAID6DP
的原理就简单多了,
DP
校验值分为两种,一种是
P
,一种是
DP
。其中
P
就是横向的校验值,如上一种的
P
一样,
DP
这个校验值比较特殊,它是指斜向校验的值。还有一点就是
P
和
DP
是单独放在一块硬盘上面的,这个和
P+Q
也是一个区分点。
RAID6
与RAID5数据安全性比较:
RAID6
是在
RAID5
的改进,
RAID6
不仅能在一个磁盘离线的情况下将数据恢复(使用和
RAID5
一样的异或校验),而且由于用了两个盘作为纠错盘,所以能应付两个磁盘同时离线的情况。由于目前磁盘的容量越来越大等因素,在大型的关键数据库中(如商业银行大型的数据库等)出现两个磁盘同时出错的概率也在上升,这也使得
RAID6
技术越来越被看好。
RAID6
的数据安全级别是相当高的。当然
RAID5
的安全性也相当好了。从上面数据看起来,两者相差不大。但是对于出现故障的概率
RAID5
是
0.118371%, RAID6
是
0.005393%.
这样看来,提高还是很大的。随着磁盘的容量越来越大导致数据出错概率
的增大。两者的差距还会进一步加大,
RAID6
的优势就更明显了。而当磁盘容量增至
20
多
TB
的时候,
RAID6
的安全性比
RAID5
已经高出
1000
倍左右。
对RAID6做一下总结如下:
在使用大数据块的情况下,
RAID6
的随机读取性能很好;因为不但要在每硬盘上写入校验数据而且要在专门的校验硬盘上写入数据,
RAID6
的随机写入性能很差。
RAID6
的持续写入性能一般,在使用小数据块时表现很好。总体而言,
RAID6
拥有更快速的读取性能,更高的容错能力。但同时,
RAID6
也存在写入速度很慢的缺点,
RAID
控制器在设计上更加复杂,成本更高。
RAID6
是一项很有吸引力的技术,它允许一个阵列中的两块磁盘同时出现故障而不会丢失数据。现在的磁盘可靠性已经很高,尤其是高端的光纤通道磁盘,那么有必要对两块磁盘同时出现故障的情况进行设防吗?答案是肯定的,目前的磁盘容量已经很大,如果一块磁盘出现故障,那么整个
RAID
组中的磁盘都需要进行数据重构,磁盘容量越大需要的时间越长,在数据重构的时间内如果再发生磁盘故障,那么所有的数据都将丢失。因此
RAID6
技术将可靠性提高了
1000
倍以上。
可以看到,
RAID
更加注重的是数据的安全性,而且由于成本之高,所以并不适合所有的企业,对于一般安全性的数据而言,
RAID5
还是比较合适的,只有高安全性数据,才需要
RAID6
技术。
RAID 2:
它采用了早期的错误检测与修正技术
―
汉明码校验技术为基础的一种校验技术。在
RAID2
中,一个硬盘在一个时间只存取一位的信息,如上图所示左边的是数据阵列,右边的是
3
个汉明码的校验硬盘。硬盘的数量取决于所设定的数据存储宽度,如果是
4
位的数据宽度,那么就需要
4
个数据硬盘和
3
个汉明码校验硬盘。在写入数据位的同时还要计算出汉明码并写入校验阵列,读取时也要对数据进行校验,再发向系统。但
RAID2
也只能允许一个硬盘出错。
RAID 3:
RAID3
是在
RAID2
基础上发展而来的,它是采用相对简单的异或逻辑运算校验代替了相对复杂的汉明码校验,,从而也大幅降低了成本,
XOR
的校验原理如下图:
我们可以发现校验盘只有一个,而数据和
RAID0
一样是分成条带的存储到阵列中,数据写入时,数据阵列中处于同一等级的条带的
XOR
校验码也被写入校验盘中相对应的位置,所以彼此不会干扰混乱。读取时,则在调出条带上数据的同时检查校验盘中相应的编码,进行即时的
ECC
。因为读写和
RAID0
比较相似,所以
RAID3
具有很高的数据传输率。
RAID 4:
RAID4
与
RAID3
相比来说,较大的差别就是
RAID4
是按数据块为单位进行存储的。所谓的数据块其实也就是一个完整的数据集合。比如一个文件就是一个完整的数据集合,这样的存储可以保证数据的完整性,不受因分条带存储在其他硬盘上而产生其他多块硬盘损坏导致数据丢失的情况。在不同的硬盘上的同级数据块也要通过
XOR
进行校验,结果保存在单独的校验盘中。这里指的同级数据块的概念是:硬盘中同一柱面、同一扇区的位置就是指同级。因为
RAID4
在写入时要等一个硬盘同级写完后再写入下一块中,所以它的写的效率是相当低的。读取也是一样,因此
RAID4
不是为速度而设计的。
RAID5E:
在新的阵列卡产品中,加入了对一个新的
RAID
级别的支持
――RAID 5EE
。以前,我们可能听的比较多的是
RAID 0
,
RAID 1
,
RAID 5
以及
RAID 5E
,下面,我们将介绍一下
RAID 5EE
与其它几种常用
RAID
级别的不同。
RAID 5E(RAID 5 Enhencement): RAID 5E
是在
RAID 5
级别基础上的改进,与
RAID 5
类似,数据的校验信息均匀分布在各硬盘上,但是,在每个硬盘上都保留了一部分未使用的空间,这部分空间没有进行条带化,最多允许两块物理硬盘出现故障。看起来,
RAID 5E
和
RAID 5
加一块热备盘好象差不多,其实由于
RAID 5E
是把数据分布在所有的硬盘上,性能会与
RAID5
加一块热备盘要好。当一块硬盘出现故障时,有故障硬盘上的数据会被压缩到其它硬盘上未使用的空间,逻辑盘保持
RAID 5
级别。
RAID 5EE:
与
RAID 5E
相比,
RAID 5EE
的数据分布更有效率,每个硬盘的一部分空间被用作分布的热备盘,它们是阵列的一部分,当阵列中一个物理硬盘出现故障时,数据重建的速度会更快。
图中,
D
代表数据,
P
代表校验信息,
S
是指的热备的空间,可以看到,被预留出来的热备空间是均匀分布在硬盘上的。