买专利,只认龙图腾
首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明授权】用于对存储数据进行编码的方法以及装置_华为技术有限公司_201580084349.0 

申请/专利权人:华为技术有限公司

申请日:2015-11-10

公开(公告)日:2021-02-23

公开(公告)号:CN108352845B

主分类号:H03M13/37(20060101)

分类号:H03M13/37(20060101)

优先权:

专利状态码:有效-授权

法律状态:2021.02.23#授权;2018.08.24#实质审查的生效;2018.07.31#公开

摘要:本发明提供用于对n个存储设备中的存储数据进行编码的方法,使得所述数据在多达r个存储设备的一次故障以及多达s次块故障之后是可恢复的,其中所述方法涉及对数据进行外编码以及内编码以获得编码后数据。本发明亦提供用于从部分擦除的编码后数据恢复数据的方法。

主权项:1.用于对n个存储设备222-226,360中的存储数据310进行编码的方法,使得所述数据在多达r个存储设备的一次故障以及多达s次块故障之后是可恢复的,其特征在于,所述方法包括步骤:用一个或多个外码对所述数据进行外编码110,320以获得外编码后数据330,332,334,432,434,436,其中所述外码为GF2m上的Ciν,Ki,ν-Ki+1码,ν≤2m,其中0≤i<n,其中,K1=...=Kr=0,并且v-Kj+1j-r>s;以及用一个或多个内码对所述外编码后数据进行编码120,340以获得编码后数据350,450,其中所述内码为GF2m上的嵌套码,其中,所述m表示有限域大小。

全文数据:用于对存储数据进行编码的方法以及装置技术领域[0001]本发明涉及用于对η个存储设备中的存储数据进行编码的方法以及装置,使得数据在多达r个存储设备的一次故障以及多达s次块故障之后是可恢复的。本发明亦涉及用于恢复部分擦除的编码后数据的装置。[0002]本发明亦涉及存储程序代码的计算机可读存储介质,程序代码包括用于执行用于对数据进行编码的或用于恢复部分擦除的编码后数据的方法的指令。背景技术[0003]考虑包括η个存储设备例如磁盘,NVRAM芯片,等等)的存储系统。此等设备中的任一个可能完全或部分出现故障,亦即,存储设备的一些数据块磁盘扇区,内存页,等等可能变得永不可用。擦除编码技术一般用于保护数据免受这样的故障。被称为独立磁盘冗余阵列redundantarrayofindependentdisks,RAID的架构通过分配用于存储奇偶校验数据的r个存储设备来解决此问题,使得至多可以恢复r个设备中的任意故障。然而,块故障比设备故障更为频繁地多,并且,倘若使用逻辑块至物理块的适当映射,相同分条中的许多块同时出现故障的可能性极小。因此,这些方案的冗余似乎过高。[0004]通过运用部分MDS以及扇区-磁盘(sector-disk,SD阵列码可以解决设备故障以及块故障存在时的数据保护的问题。它们的码字表示为vXn个阵列。一个阵列中的每一列对应一个存储设备,以及一列中的各行对应不同块。部分MDS码定义为GFq上的(vn,vn-r_s码,其能够校正对应一个码字的一个阵列的每一行h中的多达^+r次擦除,条件是OSiis;以及[0035]第二编码器,用于通过一个或多个内码对所述外编码后数据进行编码,以获得编码后数据,其中所述内码为GF2m上的%n,n-U+1嵌套码,其中〇8^彡」〈11。对应60:码字的表的第1行应当存储于第i个设备中,如图3所示。[0058]图3是根据本发明实施例的方法的示意图。用参考标号310指示的有效负荷数据包括符号仙,11,12。在图3中用箭头320指示的第一处理步骤中,此等符号用外码进行外编码。此外编码步骤以系统方式进行,亦即,有效负荷符号包含在外码的生成的码字330中。换言之,外编码后码字的矩阵330包括有效负荷数据332以及奇偶校验数据334。[0059]在用参考标号340指示的步骤中,外码的码字用内码进行编码以获得通用级联码的码字350。此等码字接着存储于多个存储设备360中。[0060]事实上,如果r个设备出现故障,亦即,出现r次行擦除,内码的最小距离降至j-r+I,j彡r。因此,具有r个擦除列的码字在minjjsrv-Kj+1j-r+1s个位置上仍然不同,亦即,码能从至少s次块故障恢复。[0061]图3中所述的编码方案是非系统的,亦即,有效负荷数据并不表现为编码后数据的码字的子向量。此属性可能对于实际系统而言是不期望的,因为其需要进行计算以甚至在没有设备故障的情况下提取有效负荷数据。需要构造有效系统编码算法,所述有效系统编码算法实现从有效负荷数据向量的集合至码字的集合的映射,使得有效负荷数据表现为码字的子向量。[0062]任一线性码具有许多不同生成矩阵。生成矩阵的选择并不影响码的擦除校正i能力。对于任一具有生成矩阵G的n,k线性码,可以构造另一个生成矩阵G7=QG=IlAPj中Q是可逆矩阵,I是单位矩阵,P是置换矩阵,并且A是某一kXn-k矩阵。为了简化,P将在下文中省略。显然,系统编码运算可实现为c=xG=x|xA,亦即,仅需计算xA。通常,此运算耗费c=xG=XIxA次运算。在下文中,呈现用于对虑及的GCC进行系统编码的更有效方法。[0063]暂不考虑内码的校验符号,亦即,在适当位置对内码码字打孔。剩余的码仍然是具有相同外码以及打孔d内码的GCC码。其码字可以表示为n-rXv表。可以构造其生成矩阵为,其中G1是第i个外码的生成矩阵,并且是无内校验符号的_的生成矩阵的第i行。接着,可以构造另一个系统形式的生成矩阵G=I|A=QG。注意至IJ,矩阵A对应于“全局”校验符号。它们的数量比校验符号的总数量少rv,并且接近于s,其通常是小值。因此,与A相乘是简单的任务。[0064]计算出全局校验符号,可以将它们放在n-rXV表中的适当地点。为了计算对应.的校验符号的另外r行,可以再次将.的生成矩阵表示为对于某非奇异矩阵Q的G=IAr=QGr,并且将n-rXv表的每一转置列乘以Ar。因此,获得为GCC码字的nXv表。[0065]可如下进行与矩阵A及Ar相乘。使说也,...,L1为GF2m的基元。类似方法可用于与Ar相乘,亦即,可以将其表示为,其中是二元矩阵。[0066]图4描述根据本发明的另一实施例的另一方法。[0067]参考标号410指示有效负荷数据。全局校验符号计算单元410,其是用于对有效负荷数据进行外编码的第一编码器,包括第一子单元422以及第二子单元424。[0068]全局校验符号计算单元410用于通过让第一子单元422计算:来有效的计算外编码后数据。[0069]第一子单元422用于计算其中向量X包括有效负荷数据,并且第二子单元424用于计算z=yL,其中向量z包括外编码后数据。生成的外码字暂时存储于第一行432,第二行434以及第三行436中。其中,第一行432仅包括信息符号,第二行包括一个信息符号以及两个全局校验符号,并且第三行包括两个信息符号,以及一个局部全局校验符号。[0070]局部校验符号计算单元440,其是用于对外编码后数据进行编码的第二编码器,包括用于计算、.的第一子单元442以及用于计算Zi=yiLr的第二子单元444。[0071]—组设备460包括设备0,设备1,设备2以及设备3。[0072]生成的编码后数据Z1存储于第一行452,第二行454以及第三行456中。第一行包括存储于设备0到2中的信息符号,以及存储于设备3中的局部校验符号。第二行454包括存储于设备〇中的信息符号以及存储于设备1到3中的信息符号。第三行456包括存储于设备0以及1中的信息符号以及存储于设备2以及3中的局部校验符号。[0073]本发明亦提供用于擦除恢复的方法。考虑具有校验矩阵H的n,k线性块码,并且假设擦除了位置jo,...,jt-d的符号。可以不失一般性地假设,J1=IO彡i$tn-k。高斯消元法可以用于将校验矩阵转换成标准形式IT=QH=IIB。此使得将擦除的码字符号恢复为类似于上文考虑的编码情况,可以构造展开BljseGF2,并且计算,或矩阵标记形式的其中5是未擦除符号的向量,是由Bljs个表项组成的矩阵。注意到,此方法需要至多tm次乘法。[0074]类似于编码情况,计算机优化可以用于找出用于计算的有效算法。注意到,最初检测到对应的故障配置之后,构造矩阵B以及找出用于与之相乘的有效算法仅需进行一次。[0075]在通用级联码的情况下,可仅对内码解码来校正由每一列中至多r次擦除组成的擦除模式。此不仅减少擦除解码的计算复杂性,而且减少恢复阶段中需要存取的数据的量。此可进一步改善存储系统的性能。[0076]与现有技术方法相比,因所需更小域尺寸q=2m彡maxV,η-1,提议的方法可以进行更为简单的算术。对于任一r,s此构造都是可能的。不同n,r,v,s与STAIR码的编码复杂性比较如图5所示。注意到,STAIR码运用乘法以及异或运算运算的总数量是图中所示的两倍),而对于根据本发明的方法(图5中称为GCC,乘法以及异或分开计数。可以发现,与STAIR码相比,提议的方法需要的算术运算的数量较少。[0077]上文所有描述仅仅为本发明的实施方式,本发明所保护的范围并不仅限于此。本领域技术人员可以容易地做出任何变化或替换。因此,本发明的保护范围应以所附权利需要的保护范围为准。

权利要求:1.用于对η个存储设备(222-226,360中的存储数据310进行编码的方法,使得所述数据在多达r个存储设备的一次故障以及多达s次块故障之后是可恢复的,其特征在于,所述方法包括步骤:用一个或多个外码对所述数据进行外编码(110,320以获得外编码后数据330,332,334,432,434,436,其中所述外码为GF2m上的CiV,Ki,ν-Ki+l码,V彡2m,其中0s;以及用一个或多个内码对所述外编码后数据进行编码(120,340以获得编码后数据(350,450,其中所述内码为GF2m上的嵌套码,其中〇i彡η。2.根据权利要求1所述的方法,其特征在于,所述一个或多个外码及或所述一个或多个内码为里德-所罗门码。3.根据上述权利要求中一项权利要求所述的方法,其特征在于,将所述外编码后数据写至矩阵(334,436的一或多行432,434中并且对所述外编码后数据进行编码是通过将所述一个或多个内码应用至所述矩阵的一或多列,特定言之所有列上进行的。4.根据上述权利要求中一项权利要求所述的方法,其特征在于,所述方法是用于对所述数据进行系统编码的方法,进一步包括获得通用级联码生成矩阵的步骤,其中G1是所述第i个外码C1的第i个外生成矩阵,并且是第0个内码,的生成矩阵的第i行,其中不包括列n-r,...,n-l。5.根据权利要求4所述的方法,其特征在于,进一步包括将高斯消元法应用于所述通用级联码矩阵以获得另一个通用级联码矩阵G=QG=I|AP的步骤,其中P是置换矩阵,I是单位矩阵并且A是包括元素的矩阵,其中AljseGF2以及,…,IV1是GF2m的基元。6.根据权利要求5所述的方法,其特征在于,进一步包括计算一个或多个外奇偶校验符号的步骤,其中X是所述数据的数据向量,z是包括计算出的外奇偶校验符号的外奇偶校验向量,是包括所述Aljs值的矩阵并且L是包括块β〇,...,仏^尺的分块对角矩阵,使得7.根据权利要求5或6所述的方法,其特征在于,进一步包括步骤:构造中间向量;_以及计算所述一个或多个内码+的一个或多个内奇偶校验符号,其中是包括计算出的内奇偶校验符号的内奇偶校验向量,L是由块Φο,^,...组成的分块对角矩阵,并且是标准形式的第r个内码Cr的第r个内生成矩阵。8.根据权利要求7所述的方法,其特征在于,在计算出所述一个或多个内奇偶校验符号之前,计算出所述一个或多个外奇偶校验符号。9.用于从部分擦除的编码后数据恢复数据的方法,其特征在于,使用根据上述权利要求中的一项权利要求所述的方法对所述编码后数据进行了编码。10.根据权利要求9所述的方法,其特征在于,包括计算步骤,其中c~是恢复的码字,是包括部分擦除的编码后数据的向量,是基于一个或多个擦除位置预先确定的矩阵,其中包括元素Bljs,其中,其中对于标准形式的校验矩阵I|B,并且其中L是包括块的分块对角矩阵,其中是GF2m的基元。11.用于对存储系统200中的数据进行编码的装置210,使得所述数据在η个存储设备222-226中的多达r个存储设备的一次故障以及多达s次块故障之后是可恢复的,其特征在于,所述装置包括:第一编码器212,用于通过一个或多个外码对所述数据进行外编码(110,320,以获得外编码后数据330,332,334,432,434,436,其中所述外码为GF2m上的码,S其中,其中,并且以及第二编码器214,用于通过一个或多个内码对所述外编码后数据进行编码,以获得编码后数据350,450,其中所述内码为GF2m上的嵌套码,其中其中所述装置特定言之用于执行根据权利要求1到10中一项权利要求所述的方法。12.根据权利要求11所述的装置,其特征在于,所述第一编码器及或所述第二编码器在硬件中实施,特定言之是实施为ASIC及或FPGA。13.用于恢复部分擦除的编码后数据的装置,其特征在于,使用根据权利要求1到8中的一项权利要求所述的方法对所述编码后数据进行了编码,并且其中特定言之所述装置用于执行根据权利要求9或10中的一项权利要求所述的方法。14.存储程序代码的计算机可读存储介质,其特征在于,所述程序代码包括用于执行根据权利要求1到1〇中的一项权利要求所述的方法的指令。

百度查询: 华为技术有限公司 用于对存储数据进行编码的方法以及装置

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。