raid6 是在raid5基础上进一步增加了数据安全校验。raid6采用了双重校验,能够在两块成员盘同时故障的情况下保证数据不丢失。因为采用双校验,数据写入效率和磁盘空间利用率都比raid5低的多。raid6有很多标准,以其中一种——"P+Q双校验”简单描述下raid6数据组织原理。
图中红色标识为P校验块,蓝色标识为Q检验块
P校验同raid5校验算法一样,经过异或运算得出。Ap=A1⊕A2⊕A3
Q校验使用基于伽罗华域编码计算得出。Aq=GF(A1)⊕GF(A2)⊕GF(A3)
以上图为例,由5块硬盘组成的raid6。当后面两块硬盘离线(即“disco3“与”disco4”离线),raid6中只剩下前面3块物理硬盘(disco0、disco1、disco2)。
对于A条带组,缺失Ap、Aq校验块,对数据块没有影响;
对于B条带组,缺失Bq校验块和B3数据块,缺失的校验块Bq不必理会,数据块B3=B1⊕B2⊕Bp
对于C组条带,缺失数据块C2、C3,则需要解二元方程组计算得出 Cp=C1⊕C2⊕C3 ; Cq=GF(C1)⊕GF(C2)⊕GF(C3)
raid6 与raid5相比每个条带中多出一个Q校验,安全机制更高。raid6出现故障,对于恢复数据更加有保障。我们工程师会根据每个成员盘的底层数据分布分析出raid详细参数,读取数据块A1、A2、A3、B1、B2、B3、C1、C2……直到读出所有数据块,然后把这些数据块依次连接成一个镜像文件就可以得到原来raid中的数据。