P + Q双校验RAID-6是指在RAID-6中除了采用RA1D-5的异或校验以外,还增加了 一个“Q”校验位,其数据组织结构如图1-41所示。
在图1-41中,DO、Dl、D2.... 是数据块,P0、PI、P2.... 是P校验块,Q0、Q1、
Q2……是Q校验块。
P校验依然使用异或算法得出,即P0=D0十Dl、P1=D2十D3。
Q校验使用基于伽罗华域(Galois Field, GF)的里德-所罗门(Reed-Solomon)编码计 算得出,即Q0=GF(D0)©GF(D1)、Q1=GF(D2)十GF(D3),其中GF(DO)的含义是对D0进行
伽罗华域的里德-所罗门编码变换。
里德-所罗门编码是欧文•里德(Irving Reed)和格斯•所罗门(Gus Solomon) f 1960 年发布的一种纠错编码,它使用伽罗华域运算法则,对于伽罗华域和里德-所罗门编码感兴 趣的读者可以查看专业数学书籍。
P+Q双校验RAID-6在两块成员盘离线的情况下依然能够得到完整数据,具体算法分 析如下:
1. 一块成员盘离线
以图1-41为例,假设“物理盘3”离线,下面对每个条带组的数据分别进行分析:
(1) 0号条带组。
“物理盘3”离线后,0号条带组中缺失Q0校验块,不影响数据块DO和D1。
(2) 1号条带组。
“物理盘3”离线后,1号条带组中缺失D3数据块,RAID控制器可以通过计算式D2 十P1得出D3。
(3) 2号条带组。
“物理盘3”离线后,2号条带组中缺失D5数据块,RAID控制器可以通过计算式D4 十P2得出D5。
(4) 3号条带组。
“物理盘3”离线后,3号条带组中缺失P3校验块,不影响数据块D6和D7。 2.两块成员盘离线
以图1-41为例,假设“物理盘2”和“物理盘3”离线,RAID-6中只剩下“物理盘0” 和“物理盘1”,下面对每个条带组的数据分别进行分析:
(1) 0号条带组。
“物理盘2”和“物理盘3”离线后,0号条带组中缺失P0和Q0校验块,不影响数据 块DO和D1。
(2) 1号条带组。
“物理盘2”和“物理盘3”离线后,1号条带组中缺失Q1校验块和D3数据块,Q1 校验块不用理会,RAID控制器可以通过计算式D2 ® P1得出D3。
(3) 2号条带组。
“物理盘2”和“物理盘3”离线后,2号条带组中缺失D4和D5数据块,只剩下P2 和Q2两个校验块,RAID控制器可以通过以下方程式计算出D4和D5:
JP2 = D4©D5
tQ2 = GF(D4)©GF(D5)
(4) 3号条带组。
“物理盘2”和“物理盘3”离线后,3号条带组中缺失D7数据块和P3校验块,只剩 下Q3校验块和D6数据块。对于P3校验块不用理会,而对于D7数据块,RAID控制器先 计算出Q3 ® D6的结果,再通过GF(28)编码就可以得到D7的值。