发明名称 一种基于异或的垂直RAID-6编码方法
摘要 本发明公开了一种基于异或的垂直RAID-6编码方法,包括以下步骤:从API接口获取请求队列信息,判断该请求队列信息是否是构建请求,如果是构建请求,则根据该构建请求获取RAID-6系统中的一个未构建条带,以获取该未构建条带的条带信息,根据所获取的条带信息对该未构建条带中所有块进行编号,以得到所有块的标识,根据块标识,选择一个未构建的校验块Cm-1,j,以获取该校验块Cm-1,j标识,其中m表示RAID-6系统中一个条带的总行数,根据获取的校验块Cm-1,j标识,得到该校验块Cm-1,j的值。本发明在磁盘失效的情况下保障了失效磁盘的快速重构,同时具有构建灵活的RAID阵列大小,具有均匀负载的特性。
申请公布号 CN103593253A 申请公布日期 2014.02.19
申请号 CN201310595326.9 申请日期 2013.11.22
申请人 华中科技大学 发明人 黄建忠;曹强;谢长生;谢平
分类号 G06F11/10(2006.01)I;G06F3/06(2006.01)I 主分类号 G06F11/10(2006.01)I
代理机构 华中科技大学专利中心 42201 代理人 朱仁玲
主权项 一种基于异或的垂直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>&Sigma;</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>&lt;</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>&Sigma;</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>&lt;</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)。
地址 430074 湖北省武汉市洪山区珞喻路1037号