X-Code编码RAID-6也是一种双异或RAID-6,不过它的异或值是竖向放置,所以也称为垂直异或。
构建X-Code编码RAID-6最少需要4块物理盘才能实现。下面以5块物理盘为例进行说明,其数据分布情况如图15-52所示。
图15-52中P0、P1、P2、P3是第一个独立的校验信息,属于斜向校验,其中:
P3=D0⊕D6⊕D12
P4=D1⊕D7⊕D13
P0=D2⊕D8⊕D14
P1=D3⊕D9⊕D10
P2=D4⊕D5⊕D11
图15-52中DP0、DP1、DP2、DP3是第二个独立的校验信息,属于另一个方向的斜向校验,其中:
DP0=D3⊕D7⊕D11
DP1=D4⊕D8⊕D12
DP2=D0⊕D9⊕P13
DP3=D1⊕P5⊕D14
DP4=D2⊕P6⊕D10
从以上的分析可以看出,X-Code编码RAID-6的异或算法对称度很高,各成员盘负载比较均衡。图15-52所示为以5块成员盘为例的X-Code编码RAID-6结构,阵列在运行时,以5个条带组为一个单元进行数据处理。如果是6块成员盘为例的X-Code编码RAID-6结构,则以6个条带组为一个单元进行数据处理,依此类推。
因为有两个独立的校验信息存在,所以理论上X-Code编码RAID-6即使两块成员盘同时离线也不会出现故障。
不过X-Code编码RAID-6也存在很多问题,如数据的重复异或运算较多,这就导致RAID控制器的计算量大以及磁盘空间浪费比较多。