主权项 |
一种基于异或的垂直RAID‑6编码方法,其特征在于,包括以下步骤:(1)从API接口获取请求队列信息;(2)判断该请求队列信息是否是构建请求,如果是构建请求,则进入步骤(3),否则进入步骤(9);(3)根据该构建请求获取RAID‑6系统中的一个未构建条带,以获取该未构建条带的条带信息;(4)根据所获取的条带信息对该未构建条带中所有块进行编号,以得到所有块的标识;(5)根据块标识,选择一个未构建的校验块Cm‑1,j,以获取该校验块Cm‑1,j标识,其中m表示RAID‑6系统中一个条带的总行数,n表示一个条带的总列数,且有0≤j≤n‑1;(6)根据获取的校验块Cm‑1,j标识,利用以下公式进行计算,以得到该校验块Cm‑1,j的值: <mrow> <msub> <mi>c</mi> <mrow> <mi>m</mi> <mo>-</mo> <mn>1</mn> <mo>,</mo> <mi>j</mi> </mrow> </msub> <mo>=</mo> <msubsup> <mi>Σ</mi> <mrow> <mi>t</mi> <mo>=</mo> <mn>0</mn> </mrow> <mrow> <mi>m</mi> <mo>-</mo> <mn>2</mn> </mrow> </msubsup> <msub> <mi>c</mi> <mrow> <mi>t</mi> <mo>,</mo> <mo><</mo> <mi>j</mi> <mo>+</mo> <mi>m</mi> <mo>-</mo> <mn>1</mn> <mo>-</mo> <mi>t</mi> <msub> <mo>></mo> <mi>n</mi> </msub> </mrow> </msub> <mo>+</mo> <msubsup> <mi>Σ</mi> <mrow> <mi>t</mi> <mo>=</mo> <mn>0</mn> </mrow> <mrow> <mi>m</mi> <mo>-</mo> <mn>2</mn> </mrow> </msubsup> <msub> <mi>c</mi> <mrow> <mi>t</mi> <mo>,</mo> <msub> <mrow> <mo><</mo> <mi>j</mi> <mo>-</mo> <mi>m</mi> <mo>+</mo> <mn>1</mn> <mo>+</mo> <mi>t</mi> <mo>></mo> </mrow> <mi>n</mi> </msub> </mrow> </msub> </mrow>(7)判断该未构建条带上的所有校验块是否都已计算完毕,如果都已计算完毕,则进入步骤(8),否则设置j=j+1,并返回步骤(5);(8)判断该RAID‑6系统中所有条带是否都已构建完毕,如果都已构建完毕,则过程结束,否则返回步骤(3);(9)判断该请求队列信息是否是重构请求,如果是重构请求,则进入步骤(10),否则返回步骤(1);(10)根据该重构请求获取RAID‑6系统中的一个未重构条带,以获取该未重构条带的条带信息;(11)根据所获取的条带信息对该未重构条带中的所有块进行编号, 以得到所有块的标识(i,j),其中0≤i≤m‑1;(12)根据RAID‑6系统中失效条带中的失效块信息对该未重构条带中失效的数据块和校验块进行重构;(13)判断该RAID‑6系统中的所有条带是否都已重构完毕,如果重构完毕,则过程结束,否则返回步骤(10)。 |