存储 频道

RAID6连载(二):RAID6算法解析

[疯狂公式之伽罗瓦域运算和里德-所罗门编码]

    伽罗瓦域(Galois Field)预算是在RAID6在进行双位校验需要用到的数学原理。它包括+,-,×, ÷四种运算,其中+,-操作和XOR运算一样,表示为⊕;而×表示为乘以基数,表示为⊙;同样,÷定义为,若A=C÷B,则C=A⊙B。

 表-1 十进制运算和伽罗瓦域运算对比

    因此可以得到GF(8)在产生多项式X8+ X4+ X3+ X2+1情况下运算表为:

表-2 GF(8)运算表

    对应GF(8)的逆运算表GF-1(8)为:

表-3 GF-1(8)运算表

    从而,在GF运算的乘除操作将通过查表完成,如
    0x2⊙0x8 = gfilog [gflog[2] + gflog[8]] = gfilog[1+3]
    = gfilog[4] = 0x10    (参考表-2,表-3中红色字体)
    0xd÷0x11 = gfilog[gflog[0xd] - gflog[0x11]]
    = gfilog[0x68 - 0x64]
    = gfilog[4]
    = 0x10

里德--所罗门编码
    Reed-Solomon编码,是欧文.里德(Irving Reed)和格斯.所罗门(Gus Solomon)于1960年发布的一种纠错编码。他使用伽罗瓦域(GF)运算法则,能提供在RAID6中Q校验计算的系数,并提供错误恢复功能。

    它是最大距离可分码(MDS码,Maximum Distance Separable Code)的一种类型;表示为RS(n,k),其中n表示每个码字(codeword)符号的总数,k表示每个码字(codeword)中数据符号的总数。

图-3 RS码字

    其中2t = n – k,对于RAID6来说2t=2,所以它能修复两个磁盘损坏;如果符号(symbol)的长度为s,那么码字的长度n=2s – 1。

    当采用byte长度(8bit)为Symbol时,其最大码字长度为n = 28–1=255,所以它此时支持255个磁盘 ,其中253个为数据盘,剩下2个为校验盘。

    看完这些数学概念,你是不是已经快疯掉,好在我们的概念到此为止就结束了,下面我们会介绍这些数学概念在RAID6写入和恢复过程中的作用。要打起精神哦,下面的路仍然很长。。。。

0
相关文章