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),其中⊙ 为伽罗瓦域(Galois Field)计算操作,关于该计算的细节,在接下来的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 (Small Middle Business) 存储,它低成本,容量大;但是,其平均无故障时间(MTBF)比FC和SCSI硬盘的都短,使同一时间掉两块盘的可能性变大了。
B) 人为操作原因:当一个存储设备故障时,通常维护人员会用一个新的存储设备来取代这个出现故障的存储设备。不过,一旦操作人员在维护过程中出现小疏忽,让没有故障的存储设备离线,就会立即造成同时掉两个存储设备故障的状况,从而使得RAID5数据将丢失。
C) RAID中,存储设备数量增加,提高了故障率:当RAID中增加存储设备数量时,很大程度上提高了存储设备预期故障发生率。当RAID出现故障时,在系统用空闲存储设备恢复数据时,也提高了其余存储设备也故障率;因此系统内存储设备数量越多,就越需要提升数据冗余的安全性。
不过RAID6在计算校验时,需要消耗大量的时间来做计算;如果采用CPU来完成这个动作,那么它对CPU的占用率是相当高的。因此,为了提高RAID6的性能,设计了专门的硬件加速器来完成该操作。
不管如何,RAID6技术提供了可同时损坏两块盘的容错能力,对于数据保护领域来说是一种优秀的技术,随着RAID6硬件加速器的引入,其性能上的不足也会得到补足,可以相信RAID6会在存储行业发展壮大。
好了,在这一节我们通过几种容错技术的对比,已经讲述了RAID6存在的价值,下一节我们将向大家详细讲述RAID6的数学算法。