RAID6:突破磁盘冗余局限
RAID5已经提供了一定程度的可靠性,然而也牺牲了一定的读取速度。特别是在RAID重构作业中,大量的数据读写操作增加硬盘的负担,旧的硬盘更容易发生故障。RAID5的局限性还表现在RAID5仅能在一块硬盘发生故障的情况下修复数据,如果2块硬盘同时发生故障,RAID5则无能为力。
以前,两块盘同时坏的情况是小概率事件,几乎不可能发生。但是近来随着光纤(FC)盘和SATA盘的容量和密度不断增加,使得RAID 5的重建时间也不断增加。两块硬盘同时损坏的概率也大幅增加,在企业级存储上,这种风险必须得到重视。所以RAID6应需诞生了。
RAID6同RAID5最大的区别就是在RAID5的基础上除了具有P校验位以外,还加入了第2个校验位Q位。以RAID6(6D+1P+1Q)为例子,这个系统需要8块硬盘,其中6块用于存放数据,1块用于存放P校验位,1块用于存放Q校验位。当然,我得又一次强调,并非某个具体的独立的盘全部用来存放P校验信息,另外一个Q校验信息。而是对于某个位组(6个数据位+P位+Q位)来说,采用某种原则,6块盘上存放数据位,1块盘存放P位,1块盘用来存放Q位。
其数学原理如下:
校验位的生成:
P = D1 ⊕ D2 ⊕ D3 ⊕ D4 ⊕ D5 ⊕ D6
Q = GF(D1) ⊕ GF(D2) ⊕ GF(D3) ⊕ GF(D4) ⊕ GF(D5) ⊕ GF(D6)
D1~D6:条带化的数据
P:P校验位
Q:Q校验位
⊕:异或操作
GF(D1):对D1位进行Galois Field变换。
当一块磁盘出现数据错误或者丢失的时候,恢复方法同RAID5,无须使用Q校验位。当两块磁盘上的数据出现错误或者丢失的时候,恢复方法为:利用上边给出的P,Q的生成公式,联立方程组,无论受损的数据是否包括P或者Q,总是能够解出损失的两位的数据。数据分布示意图(以6D+P+Q位例):

同样可以看到,每个位组(6D+1P+1Q)的P,Q位是位于不同的磁盘上的。