CN108352845A - 用于对存储数据进行编码的方法以及装置 - Google Patents

用于对存储数据进行编码的方法以及装置 Download PDF

Info

Publication number
CN108352845A
CN108352845A CN201580084349.0A CN201580084349A CN108352845A CN 108352845 A CN108352845 A CN 108352845A CN 201580084349 A CN201580084349 A CN 201580084349A CN 108352845 A CN108352845 A CN 108352845A
Authority
CN
China
Prior art keywords
code
data
matrix
coding
block
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201580084349.0A
Other languages
English (en)
Other versions
CN108352845B (zh
Inventor
彼得·弗拉基米罗维奇·特里夫诺夫
王元钢
杨思晓
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN108352845A publication Critical patent/CN108352845A/zh
Application granted granted Critical
Publication of CN108352845B publication Critical patent/CN108352845B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/373Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 with erasure correction and erasure determination, e.g. for packet loss recovery or setting of erasures for the decoding of Reed-Solomon codes

Landscapes

  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

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

Description

用于对存储数据进行编码的方法以及装置
技术领域
本发明涉及用于对n个存储设备中的存储数据进行编码的方法以及装置,使得数据在多达r个存储设备的一次故障以及多达s次块故障之后是可恢复的。本发明亦涉及用于恢复部分擦除的编码后数据的装置。
本发明亦涉及存储程序代码的计算机可读存储介质,程序代码包括用于执行用于对数据进行编码的或用于恢复部分擦除的编码后数据的方法的指令。
背景技术
考虑包括n个存储设备(例如磁盘,NVRAM芯片,等等)的存储系统。此等设备中的任一个可能完全或部分出现故障,亦即,存储设备的一些数据块(磁盘扇区,内存页,等等)可能变得永不可用。擦除编码技术一般用于保护数据免受这样的故障。被称为独立磁盘冗余阵列(redundant array of independent disks,RAID)的架构通过分配用于存储奇偶校验数据的r个存储设备来解决此问题,使得至多可以恢复r个设备中的任意故障。然而,块故障比设备故障更为频繁地多,并且,倘若使用逻辑块至物理块的适当映射,相同分条中的许多块同时出现故障的可能性极小。因此,这些方案的冗余似乎过高。
通过运用部分MDS以及扇区-磁盘(sector-disk,SD)阵列码可以解决设备故障以及块故障存在时的数据保护的问题。它们的码字表示为v×n个阵列。一个阵列中的每一列对应一个存储设备,以及一列中的各行对应不同块。部分MDS码定义为GF(q)上的(vn,v(n-r)-s)码,其能够校正对应一个码字的一个阵列的每一行ij中的多达sj+r次擦除,条件是0≤i1<i2<…<it≤v-1,并且扇区-磁盘(sector-disk,SD)码是(vn,v(n-r)-s)码,其能够校正多达r次列擦除,以及多达s次块擦除的另外任一配置。对于r≤3以及s≤3,使用计算机搜索获得SD码,尽管对于r=s=3,由于复杂性限制,仅验证部分SD属性。对于r=1,s≥1以及r≥1,s=1的,给出部分MDS码的构造。提议给出对于r≥1,s=2的情况下的SD码的明确构造。此等构造皆要求v<n<q。给出类SD码的简化构造,其要求max(v,n)<q并且可以恢复1次磁盘故障以及多达2次块故障的一些组合。提议了此方法的替代选择,其中二维编码方案是基于MDS码。然而,此等方法都没有提议用于通过对应码对数据进行编码的快速算法。
一些现有技术公开案没有提供有效编码以及擦除恢复算法,并且对可实现的码参数施加了严格限制。
发明内容
本发明的目的在于提供用于对存储设备中的存储数据进行编码的装置以及方法,其中所述装置以及所述方法克服现有技术的上述的问题中的一个或多个问题。特定言之,本发明的目的可以包括提供用于遭受设备故障以及块故障的存储系统在计算上有效的擦除编码技术。
本发明的第一方面提供用于对n个存储设备中的存储数据进行编码的方法,使得所述数据在多达r个存储设备的一次故障以及多达s次块故障之后是可恢复的,其中所述方法包括步骤:
用一个或多个外码对所述数据进行外编码以获得外编码后数据,其中所述外码为GF(2m)上的Ci(v,Ki,v-Ki+1)码,v≤2m,其中0<i≤n,其中K1=...=Kr=0,Kj并且(v-Kj+1)(j-r)>s;以及
用一个或多个内码对所述外编码后数据进行编码以获得编码后数据,其中所述内码为GF(2m)上的嵌套码,其中0<i≤n。
所述在设备故障以及块故障存在的情况下用于数据保护的提议方法包括:运用GF(2m)上的通用级联码(generalized concatenated code,GCC),亦即,一个或多个内码以及一个或多个外码的级联,其中选择内码以及外码的所述参数,使得达到所要的保护级别。所述提议的编码方法可以包括:先计算全局校验符号(亦即,所述外码的奇偶校验符号),接着计算局部校验符号(亦即,所述内码的奇偶校验符号)。
可以通过如同z=xA,的表达式给出全局以及局部校验符号,其中x是某一输入向量,并且A是由GF(2m)元素组成的固定矩阵(对于局部以及全局校验符号通常是不同的)。这些的表达式的有效评估可以基于表达式其中是二元矩阵,并且L是分块对角矩阵。如此,有可能显著减少代价高的GF(2m)乘法的数量。类似地,有效方法可以用于获得有效的擦除恢复。
在根据所述第一方面的所述方法的第一实施方式中,所述一个或多个外码及/或所述一个或多个内码为里德-所罗门码。
通常,可以将任一MDS码(例如通用的里德-所罗门码,柯西里德-所罗门码)作为内码以及外码来实施所述第一方面的所述方法。构造里德-所罗门码尤为简单。特定言之,如果里德-所罗门码作为内码,低复杂性的编码是可能的。
可以进一步通过运用快速算法与矩阵相乘来降低所述编码以及擦除修复复杂性,其可能利用使用的内码以及外码的一些特定属性。
较佳地,所述第一方面的所述方法涉及将所述数据与二元矩阵相乘,接着与带有由伽罗华域基本元素组成的块的分块对角矩阵相乘。
可能有不同方式将码字符号映射至设备。例如,可实施与RAID-5中使用的类似的循环负载均衡。
在根据所述第一方面的所述方法的第二实施方式中,将所述外编码后数据写至矩阵的一或多行中并且对所述外编码后数据进行编码是通过将所述一个或多个内码应用至所述矩阵的一或多列,特定言之所有列上进行的。
此具有可以特别有效的进行编码的优点。
在根据所述第一方面的所述方法的第三实施方式中,所述方法是用于对所述数据进行系统编码的方法,进一步包括获得通用级联码生成矩阵的步骤,其中G(i)是所述第i个外码Ci的第i个外生成矩阵,并且是第0个内码的生成矩阵的第i行,其中不包括列n-r,...,n-1。
此实施方式具有可以减少全局校验符号数量的优点。因此,可以更加有效的进行编码。
在根据所述第一方面的所述方法的第四实施方式中,所述方法进一步包括将高斯消元法应用于所述通用级联码矩阵以获得另一个通用级联码矩阵G′=QG=(I|A)P的步骤,其中P是置换矩阵,I是单位矩阵并且A是包括元素的矩阵,其中Aijs∈GF(2)以及β0,β1,...,βm-1是GF(2m)的基元。
此实施方式提供用于实施系统编码的有效方法,因为其主要涉及计算向量与矩阵的乘积,非常有效的实施方式在大多数平台上可用于此计算。可以减少编码时需要进行的乘法的总数量。
在根据所述第一方面的所述方法的第五实施方式中,所述方法进一步包括计算一个或多个外奇偶校验符号的步骤,其中x是所述数据的数据向量,z是包括计算出的外奇偶校验符号的外奇偶校验向量,是包括所述Aijs值的矩阵并且L是包括块(β0,...,βm-1)T,的分块对角矩阵,使得
此表示实施根据所述第四实施方式的所述方法中需要的所述乘法的简单以及有效的方式。
在根据所述第一方面的所述方法的第六实施方式中,所述方法进一步包括步骤:
构造中间向量以及
计算所述一个或多个内码的一个或多个内奇偶校验符号,其中 yi是包括计算出的内奇偶校验符号的内奇偶校验向量,L是由块(β0,β1,...,βm-1)^T组成的分块对角矩阵,并且是标准形式的嵌套码的第r个内生成矩阵。
此呈现编码器对于所述内码的有效实施方式。
在根据所述第一方面的所述方法的第七实施方式中,在计算出所述一个或多个内奇偶校验符号之前,计算出所述一个或多个外奇偶校验符号。
本发明的第二方面涉及用于从部分擦除的编码后数据恢复数据的方法,其中使用根据所述第一方面或所述第一方面的所述实施方式中的一个的方法对所述编码后数据进行了编码。
在根据所述第二方面的所述方法的第一实施方式中,所述方法包括计算步骤,其中是恢复的码字,是包括部分擦除的编码后数据的向量,是基于一个或多个擦除位置预先确定的矩阵,其中包含包括元素Bijs,其中Bijs∈GF(2),其中对于标准形式的校验矩阵H′,H′=(I|B),并且其中L是包括块(β0,...,βm-1)T的分块对角矩阵,其中β0,β1,...,βm-1是GF(2m)的基元。
所述第一实施方式呈现所述第一方面的所述数据恢复方法的在计算上特别有效的实施方式。
本发明的第三方面涉及用于对存储系统中的数据进行编码的装置,使得所述数据在n个设备中的多达r个设备的一次故障以及多达s次块故障之后是可恢复的,所述装置包括:
第一编码器,用于通过一个或多个外码对所述数据进行外编码,以获得外编码后数据,其中所述外码为GF(2m)上的Ci(ν,Ki,ν-Ki+1)码,ν≤2m,其中0<i≤n,其中K1=...=Kr=0,并且(v-Kj+1)(j-r)>s;以及
第二编码器,用于通过一个或多个内码对所述外编码后数据进行编码,以获得编码后数据,其中所述内码为GF(2m)上的嵌套码,其中0<i≤n,
其中所述装置特定言之用于执行所述第一方面的或所述第一方面的所述实施方式中的一个的所述方法。
在所述第三方面的所述装置第一实施方式中,所述第一编码器及/或所述第二编码器在硬件中实施,特定言之是实施为ASIC及/或FPGA。
与其它计算运算相比,乘法在硬件中尤为难以实施。由于根据所述第三方面的所述第一以及所述第二编码器实施需要减少量的乘法运算的方法,所以根据所述第三方面的所述装置特定言之适合在硬件中实施。
所述第一及/或所述第二方面的所述方法可以在存储系统的控制器中实施。特定言之,所述第三方面的所述装置可以为存储系统的控制器。为此目的,所述控制器可以在软件或硬件(例如ASIC,FPGA)中实施。
所述控制器可以直接连接至所述存储设备或可以经由网络连接而连接至所述存储设备,其中例如所述存储设备经由其它控制器连接至所述网络。
本发明的第四方面涉及用于恢复部分擦除的编码后数据的装置,其中使用所述第一方面或其实施方式中的一个的所述方法对所述编码后数据进行了编码。
特定言之,所述装置可以用于执行所述第一及/或第二方面的所述方法。
当然,一个装置可以都包括所述第一方面以及所述第二方面的所述功能,亦即,所述相同装置可以用于对数据进行编码以及用于在设备故障及/或块故障之后恢复编码后数据。
本发明的第五方面涉及存储程序代码的计算机可读存储介质,所述程序代码包括用于执行所述第一或第二方面及/或其实施方式中的一个的所述方法的指令。
附图说明
为了更清楚地说明本发明实施例中的技术特征,下面将对实施例描述中所需要使用的附图作简单地介绍。下面描述中的附图仅仅是本发明的一些实施例,这些实施例在不违背本发明如权力需要书中所定义的保护范围的情况下,可以进行修改。
图1是根据本发明实施例的方法的流程图;
图2是包括根据本发明实施例的装置的存储系统的示意图;
图3是根据本发明实施例的方法的示意图;
图4是根据本发明的另一实施例的另一方法的示意图;以及
图5显示根据本发明的方法与供替代的方法之间的性能比较。
具体实施方式
图1是根据本发明实施例的方法的流程图。所述方法包括用一个或多个外码对数据进行外编码以获得外编码后数据的第一步骤110。所述方法进一步包括用一个或多个内码对外编码后数据进行编码以获得编码后数据的第二步骤120。
图2是包括根据本发明实施例的装置210的存储系统200的示意图,其中装置210是连接至一组存储设备222,224,226。装置210包括第一编码器212以及第二编码器214。较佳地,第一编码器用于执行图1中所示的所述方法的第一步骤110并且第二编码器214用于执行图1中所示的所述方法的第二步骤120。
可选地,第二步骤120中使用的一个或多个内码为一种嵌套内码Ci(n,n-i,di),亦即,并且外码为一种GF(q)上的外码Ci(v,Ki,Di),0≤i<n。内码以及外码的级联在下文中称为通用级联码(generalized concatenated code,GCC)。
可以通过将数据排列进n×v矩形表来获得GCC的一个码字,使得数据的ki个符号存储于第i行中,用对应外码对每一行进行编码,以及用内码C0对每一列进行编码。通过给出获得的码的维度,长度是N=vn,以及最小距离是δ≥minidiDi
假设内码以及外码都为里德-所罗门码,其中di=i+1并且Di=v-Ki+1,获知通过给出对应GCC的最小距离。
这样的码亦可视为二维里德-所罗门码的实例,亦即,其码字可以表示为c=(c0,...,cvn-1),ci=f(xi,yi),(xi,yi)∈A×B,其中A以及B分别为尺寸为v及n的GF(q)的某些子集,并且是消息多项式。
通用级联码以及,特定言之,二维里德-所罗门码,可以自然用于实施保护免受设备故障以及块故障。假设系统应当幸免于r次设备故障以及s次块故障。此可以通过运用长度为vn的通用级联码来实现,其中内里德-所罗门码以及外码Ci(ν,Ki,ν-Ki+1,0≤i<n,其中Kj=0,0≤j<r,以及v-Kj+1j-r+1>s,r≤j<n。对应GCC码字的表的第i行应当存储于第i个设备中,如图3所示。
图3是根据本发明实施例的方法的示意图。用参考标号310指示的有效负荷数据包括符号K0,K1,K2。在图3中用箭头320指示的第一处理步骤中,此等符号用外码进行外编码。此外编码步骤以系统方式进行,亦即,有效负荷符号包含在外码的生成的码字330中。换言之,外编码后码字的矩阵330包括有效负荷数据332以及奇偶校验数据334。
在用参考标号340指示的步骤中,外码的码字用内码进行编码以获得通用级联码的码字350。此等码字接着存储于多个存储设备360中。
事实上,如果r个设备出现故障,亦即,出现r次行擦除,内码的最小距离降至j-r+1,j≥r。因此,具有r个擦除列的码字在minj≥r(ν-Kj+1)(j-r+1)>s个位置上仍然不同,亦即,码能从至少s次块故障恢复。
图3中所述的编码方案是非系统的,亦即,有效负荷数据并不表现为编码后数据的码字的子向量。此属性可能对于实际系统而言是不期望的,因为其需要进行计算以甚至在没有设备故障的情况下提取有效负荷数据。需要构造有效系统编码算法,所述有效系统编码算法实现从有效负荷数据向量的集合至码字的集合的映射,使得有效负荷数据表现为码字的子向量。
任一线性码具有许多不同生成矩阵。生成矩阵的选择并不影响码的擦除校正i能力。对于任一具有生成矩阵G的(n,k)线性码,可以构造另一个生成矩阵G′=QG=(I|A)P,其中Q是可逆矩阵,I是单位矩阵,P是置换矩阵,并且A是某一k×(n-k)矩阵。为了简化,P将在下文中省略。显然,系统编码运算可实现为c=xG′=(x|xA),亦即,仅需计算xA。通常,此运算耗费c=xG′=(x|xA)次运算。在下文中,呈现用于对虑及的GCC进行系统编码的更有效方法。
暂不考虑内码的校验符号,亦即,在适当位置对内码码字打孔。剩余的码仍然是具有相同外码以及打孔d内码的GCC码。其码字可以表示为(n-r)×ν表。可以构造其生成矩阵为其中G(i)是第i个外码的生成矩阵,并且是无内校验符号的的生成矩阵的第i行。接着,可以构造另一个系统形式的生成矩阵G′=(I|A)=QG。注意到,矩阵A对应于“全局”校验符号。它们的数量比校验符号的总数量少rv,并且接近于s,其通常是小值。因此,与A相乘是简单的任务。
计算出全局校验符号,可以将它们放在(n-r)×v表中的适当地点。为了计算对应的校验符号的另外r行,可以再次将的生成矩阵表示为对于某非奇异矩阵Q的Gr′=(I|Ar)=QGr,并且将(n-r)×v表的每一(转置)列乘以Ar。因此,获得为GCC码字的n×v表。
可如下进行与矩阵A及Ar相乘。使β0,β1,...,βm-1为GF(2m)的基元。类似方法可用于与Ar相乘,亦即,可以将其表示为其中是二元矩阵。
图4描述根据本发明的另一实施例的另一方法。
参考标号410指示有效负荷数据。全局校验符号计算单元410,其是用于对有效负荷数据进行外编码的第一编码器,包括第一子单元422以及第二子单元424。
全局校验符号计算单元410用于通过让第一子单元422计算来有效的计算外编码后数据。
第一子单元422用于计算其中向量x包括有效负荷数据,并且第二子单元424用于计算z=yL,其中向量z包括外编码后数据。生成的外码字暂时存储于第一行432,第二行434以及第三行436中。其中,第一行432仅包括信息符号,第二行包括一个信息符号以及两个全局校验符号,并且第三行包括两个信息符号,以及一个局部全局校验符号。
局部校验符号计算单元440,其是用于对外编码后数据进行编码的第二编码器,包括用于计算的第一子单元442以及用于计算zi=yiLr的第二子单元444。
一组设备460包括设备0,设备1,设备2以及设备3。
生成的编码后数据zi存储于第一行452,第二行454以及第三行456中。第一行包括存储于设备0到2中的信息符号,以及存储于设备3中的局部校验符号。第二行454包括存储于设备0中的信息符号以及存储于设备1到3中的信息符号。第三行456包括存储于设备0以及1中的信息符号以及存储于设备2以及3中的局部校验符号。
本发明亦提供用于擦除恢复的方法。考虑具有校验矩阵H的(n,k)线性块码,并且假设擦除了位置j0,...,jt-1上的符号。可以不失一般性地假设,ji=i,0≤i≤t<n-k。高斯消元法可以用于将校验矩阵转换成标准形式H′=QH=(I|B)。此使得将擦除的码字符号恢复为类似于上文考虑的编码情况,可以构造展开Bijs∈GF(2),并且计算或矩阵标记形式的其中是未擦除符号的向量,是由Bijs个表项组成的矩阵。注意到,此方法需要至多tm次乘法。
类似于编码情况,计算机优化可以用于找出用于计算的有效算法。注意到,最初检测到对应的故障配置之后,构造矩阵B以及找出用于与之相乘的有效算法仅需进行一次。
在通用级联码的情况下,可仅对内码解码来校正由每一列中至多r次擦除组成的擦除模式。此不仅减少擦除解码的计算复杂性,而且减少恢复阶段中需要存取的数据的量。此可进一步改善存储系统的性能。
与现有技术方法相比,因所需更小域尺寸q=2m≥max(v,n)-1,提议的方法可以进行更为简单的算术。对于任一r,s此构造都是可能的。不同(n,r,v,s)与STAIR码的编码复杂性比较如图5所示。注意到,STAIR码运用乘法以及异或运算(运算的总数量是图中所示的两倍),而对于根据本发明的方法(图5中称为GCC),乘法以及异或分开计数。可以发现,与STAIR码相比,提议的方法需要的算术运算的数量较少。
上文所有描述仅仅为本发明的实施方式,本发明所保护的范围并不仅限于此。本领域技术人员可以容易地做出任何变化或替换。因此,本发明的保护范围应以所附权利需要的保护范围为准。

Claims (14)

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

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/RU2015/000758 WO2017082750A1 (en) 2015-11-10 2015-11-10 Method and apparatus for encoding data for storage

Publications (2)

Publication Number Publication Date
CN108352845A true CN108352845A (zh) 2018-07-31
CN108352845B CN108352845B (zh) 2021-02-23

Family

ID=56097258

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580084349.0A Active CN108352845B (zh) 2015-11-10 2015-11-10 用于对存储数据进行编码的方法以及装置

Country Status (2)

Country Link
CN (1) CN108352845B (zh)
WO (1) WO2017082750A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020029423A1 (zh) * 2018-08-09 2020-02-13 东莞理工学院 一种修复二进制阵列码校验矩阵的构造方法及修复方法
WO2021163973A1 (en) * 2020-02-20 2021-08-26 Intel Corporation On-ssd erasure coding with uni-directional commands

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1816969A (zh) * 2003-04-30 2006-08-09 马科尼通讯股份有限公司 前向纠错编码
US20100138717A1 (en) * 2008-12-02 2010-06-03 Microsoft Corporation Fork codes for erasure coding of data blocks
CN101779379A (zh) * 2007-08-08 2010-07-14 马维尔国际贸易有限公司 使用通用级联码(gcc)进行编码和解码
CN102612806A (zh) * 2009-11-17 2012-07-25 三菱电机株式会社 纠错方法和装置以及使用了它们的通信系统
US20140380114A1 (en) * 2013-06-20 2014-12-25 Emc Corporation Data encoding for data storage system based on generalized concatenated codes
US20150295593A1 (en) * 2014-04-10 2015-10-15 Samsung Electronics Co., Ltd Apparatus and method for encoding and decoding data in twisted polar code
CN109644006A (zh) * 2016-08-12 2019-04-16 华为技术有限公司 编码数据和解码数据的装置及方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1816969A (zh) * 2003-04-30 2006-08-09 马科尼通讯股份有限公司 前向纠错编码
CN101779379A (zh) * 2007-08-08 2010-07-14 马维尔国际贸易有限公司 使用通用级联码(gcc)进行编码和解码
US20100138717A1 (en) * 2008-12-02 2010-06-03 Microsoft Corporation Fork codes for erasure coding of data blocks
CN102612806A (zh) * 2009-11-17 2012-07-25 三菱电机株式会社 纠错方法和装置以及使用了它们的通信系统
US20140380114A1 (en) * 2013-06-20 2014-12-25 Emc Corporation Data encoding for data storage system based on generalized concatenated codes
US20150295593A1 (en) * 2014-04-10 2015-10-15 Samsung Electronics Co., Ltd Apparatus and method for encoding and decoding data in twisted polar code
CN109644006A (zh) * 2016-08-12 2019-04-16 华为技术有限公司 编码数据和解码数据的装置及方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020029423A1 (zh) * 2018-08-09 2020-02-13 东莞理工学院 一种修复二进制阵列码校验矩阵的构造方法及修复方法
WO2021163973A1 (en) * 2020-02-20 2021-08-26 Intel Corporation On-ssd erasure coding with uni-directional commands
US11971782B2 (en) 2020-02-20 2024-04-30 Sk Hynix Nand Product Solutions Corp. On-SSD erasure coding with uni-directional commands

Also Published As

Publication number Publication date
CN108352845B (zh) 2021-02-23
WO2017082750A1 (en) 2017-05-18

Similar Documents

Publication Publication Date Title
US10146618B2 (en) Distributed data storage with reduced storage overhead using reduced-dependency erasure codes
JP4905161B2 (ja) Raid装置及びガロア体を用いたデータ復元装置
EP1828899B1 (en) Method and system for syndrome generation and data recovery
US8131794B2 (en) RAID system and Galois field product computation method
US20120260125A1 (en) Multi-disk fault-tolerant system, method for generating a check block, and method for recovering a data block
CN111682874B (zh) 一种数据恢复的方法、系统、设备及可读存储介质
CN112860475A (zh) 基于rs纠删码的校验块恢复方法、装置、系统及介质
WO2023151290A1 (zh) 一种数据编码方法、装置、设备及介质
CN113297000A (zh) 一种raid编码电路及编码方法
CN112000512B (zh) 一种数据修复方法及相关装置
CN113296999B (zh) 一种raid6编码方法及编码电路
CN105808170A (zh) 一种能够以最小磁盘读写修复单磁盘错误的raid6编码方法
CN108352845A (zh) 用于对存储数据进行编码的方法以及装置
US20180246679A1 (en) Hierarchical data recovery processing for extended product codes
US10191809B2 (en) Converting a data chunk into a ring algebraic structure for fast erasure coding
WO2018029212A1 (en) Regenerating locally repairable codes for distributed storage systems
CN115454712B (zh) 一种校验码恢复方法、系统、电子设备及存储介质
WO2020029417A1 (zh) 一种二进制mds阵列编码的编码框架方法
CN112000509B (zh) 一种基于向量指令的纠删码编码方法、系统及装置
EP3852275A1 (en) Method, device and apparatus for storing data, computer readable storage medium
CN114691414A (zh) 一种校验块生成方法及一种数据恢复方法
Cassuto et al. Low-complexity array codes for random and clustered 4-erasures
US9450617B2 (en) Distribution and replication of erasure codes
KR101923116B1 (ko) 분산 저장 시스템에서 부분접속 복구 부호를 이용하는 부호화/복호화 장치 및 방법
Lin et al. RAID-6 Reed-Solomon codes with asymptotically optimal arithmetic complexities

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant