肾虚脱发就不可以长了:RAID6

来源:百度文库 编辑:九乡新闻网 时间:2024/05/03 18:29:59

RAID概念是由美国加州大学伯克利分校的D.A.Patterson教授在1988年提出的。是Redundent Array of InexpensiveDisks的缩写,直译为“廉价冗余磁盘阵列”,也简称为“磁盘阵列”。后来RAID中的字母I被改作了Independent,RAID就成了“独立冗余磁盘阵列”,当然这只是名称的变化,实质内容并没有改变。

RAID的级别包括RAID0、RAID1、RAID2、RAID3、RAID4、RAID5、RAID6,以及在此之上的各种组合,其中具有容错功能的是RAID1、RAID5和RAID6。为了让大家更加清晰地认识到RAID6的价值,也就是我们为什么要研究和发展RAID6技术,本文将对比介绍各种容错功能RAID系统的可靠性分析,并详细介绍RAID6的应用条件和优势。

RAID6的价值

众所周知,服务器硬盘上的数据是珍贵的,而RAID技术就是用以保护这些数据的有效方式之一。经过多年的发展,RAID技术虽然种类众多,但一个突出的局限性就是,无法容忍两块硬盘同时故障的情况发生。一旦存储系统中两块硬盘同时损坏,以往的RAID技术对此也无能为力了。

RAID6正是为了解决这个问题而诞生的。与其它RAID方式不同,他采用双重校验的方式,也就是说有2份校验数据,从而使得允许两个存储设备出现故障的情况下,仍然能够正常的操作数据。在充分利用存储空间的基础上,大大的提高了RAID的容错能力;相比较于RAID5,RAID6无疑是一种有吸引力的新技术。

现在的磁盘可靠性已经很高,尤其是高端的光纤通道磁盘,那么有必要对两块磁盘同时出现故障的情况进行设防吗?答案是肯定的,目前的磁盘容量已经很大,如果一块磁盘出现故障,那么整个RAID组中的磁盘都需要进行数据重构,磁盘容量越大需要的时间越长,在数据重构的时间内如果再发生磁盘故障,那么所有的数据都将丢失。因此乐观的估计RAID6技术将可靠性提高了1000倍以上。

传统可容错RAID

为了更好地说明RAID6的优势,我们先介绍两种传统可容错RAID技术。传统RAID技术中,拥有容错功能的是RAID1和RAID5。

RAID1:

图-1 RAID1数据分布示意

RAID1就是大家常说的镜像系统,如图-1所示。对于RAID1,因为源设备和镜像设备保存了同样的数据,所以其存储空间利用率为50%。如果每个存储设备的故障率为p,那么整个RAID1其可用性为:1-p * p = 1 – p2

RAID5


图-2 RAID5数据分布示意

RAID5采用计算异或 (XOR) 的方式来实现容错,也就是说对于发送下来的数据,采用条带(stripe) 技术分块,并计算校验。如图-2所示,P0 = 0⊕1⊕2, ⊕为异或运算。

因此,即使其中的一个存储设备出现故障,也可以通过计算异或,得到相对应的数据,比如数据块0出现故障,可以采用如下方式得到它:P0⊕1⊕2= 0⊕1⊕2⊕1⊕2= 0⊕1⊕1⊕2⊕2 = 0

对于RAID5,如果由N个存储设备组成,由于要保存额外的校验数据,那么其存储空间利用率为:(N-1)/N= 1 - 1/N

如果每个存储设备的故障率为p,只要任何两个存储设备出现故障,RAID5就不可用了,因此整个RAID5其可用性为1-p * p = 1 – p2

RAID6与传统容错RAID对比

RAID6采用双重校验的方法,如图-1所示。第一种校验,采用异或 (XOR)方法,来计算P;另一种则为采用Reed-Solomon编码方式,来计算校验Q。从而使得即使RAID6损坏两个存储设备时,也能够完成正常的操作。


图-3 RAID6数据分布示意

其计算公式为:P0 = 0⊕1⊕2⊕3,Q0 =(K0⊙0)⊕(K1⊙1)⊕(K2⊙2)⊕(K3⊙3),其中⊙ 为伽罗瓦域(GaloisField)计算操作,关于该计算的细节,在接下来的RAID6的技术原理中进行详细讲解。

对于RAID6,如果由N个存储设备组成,由于要保存两个额外的校验数据,那么其存储空间利用率为:(N-2)/N= 1 - 2/N

如果每个存储设备的故障率为p,只要任何三个存储设备出现故障,RAID6就不可用,因此整个RAID6其可用性为:1-p * p * p = 1 – p3

通过下面这张表,我们可以更清晰地了解RAID6与传统容错RAID之间的区别。


表-1 容错RAID对比表

从表-1可以看出,相对于RAID1来说,当N>2时,其存储空间的利用率得到了提高;对于可用性来说,显然RAID6提供了更好的可用性,允许两个存储设备故障,这对于容错RAID来说,算的上是最重要的特性之一。

RAID6优缺点分析

RAID5在一个存储设备故障时,不用停机还能保护数据。但是,如果两个存储设备故障,数据就会丢失。尽管两个存储设备故障比一个存储设备故障的概率要小,但是考虑到目前应用中的几个原因,同时掉两个存储设备的可能性还是很大的:

A) 硬盘的广泛使用:面向中低端存储领域的SATA技术越来越广泛的应用,如桌面和SMB (SmallMiddle Business)存储,它低成本,容量大;但是,其平均无故障时间(MTBF)比FC和SCSI硬盘的都短,使同一时间掉两块盘的可能性变大了。

B)人为操作原因:当一个存储设备故障时,通常维护人员会用一个新的存储设备来取代这个出现故障的存储设备。不过,一旦操作人员在维护过程中出现小疏忽,让没有故障的存储设备离线,就会立即造成同时掉两个存储设备故障的状况,从而使得RAID5数据将丢失。

C)RAID中,存储设备数量增加,提高了故障率:当RAID中增加存储设备数量时,很大程度上提高了存储设备预期故障发生率。当RAID出现故障时,在系统用空闲存储设备恢复数据时,也提高了其余存储设备也故障率;因此系统内存储设备数量越多,就越需要提升数据冗余的安全性。 

不过RAID6在计算校验时,需要消耗大量的时间来做计算;如果采用CPU来完成这个动作,那么它对CPU的占用率是相当高的。因此,为了提高RAID6的性能,设计了专门的硬件加速器来完成该操作。

不管如何,RAID6技术提供了可同时损坏两块盘的容错能力,对于数据保护领域来说是一种优秀的技术,随着RAID6硬件加速器的引入,其性能上的不足也会得到补足,可以相信RAID6会在存储行业发展壮大。

好了,在这一节我们通过几种容错技术的对比,已经讲述了RAID6存在的价值,下一节我们将向大家详细讲述RAID6的数学算法。