CN107615248B - 分布式数据存储方法、控制设备和系统 - Google Patents
分布式数据存储方法、控制设备和系统 Download PDFInfo
- Publication number
- CN107615248B CN107615248B CN201580080264.5A CN201580080264A CN107615248B CN 107615248 B CN107615248 B CN 107615248B CN 201580080264 A CN201580080264 A CN 201580080264A CN 107615248 B CN107615248 B CN 107615248B
- Authority
- CN
- China
- Prior art keywords
- data
- blocks
- stored
- check
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 41
- 238000013500 data storage Methods 0.000 title claims abstract description 31
- 239000011159 matrix material Substances 0.000 claims description 34
- 239000013598 vector Substances 0.000 claims description 23
- 238000012545 processing Methods 0.000 claims description 6
- 238000004891 communication Methods 0.000 claims description 5
- 239000000126 substance Substances 0.000 abstract 1
- 230000000875 corresponding effect Effects 0.000 description 49
- 238000005192 partition Methods 0.000 description 15
- 238000010586 diagram Methods 0.000 description 13
- 230000008439 repair process Effects 0.000 description 8
- 238000011084 recovery Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 4
- 230000001419 dependent effect Effects 0.000 description 3
- 238000012937 correction Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000010835 comparative analysis Methods 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000002360 explosive Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Hardware Redundancy (AREA)
Abstract
一种分布式数据存储方法、控制设备和系统,该方法包括:将所述待存储数据划分为m2个数据块;根据生成第一校验块集合(P1,P2,...,Pm)(102);其中,根据Pm+i=(Xi,Xi+m,...,Xi+m(m‑1))(α(m‑1)(i‑1),...,α2(i‑1),αi‑1,α0)生成与所述待存储数据对应的第二校验块集合(Pm+1,...,P2m);根据Pall=P1+P2+...+P2m生成与所述待存储数据对应的第三校验块集合(Pall);将m2个数据块和2m+1个校验块分别发送到不同的存储设备中存储(105)。由于每个校验块均与m个数据块线性相关,将数据块和检验块分别存储到不同的存储设备中,能够以更小的重建成本恢复发生故障的多个分块。
Description
技术领域
本发明实施例涉及数据存储技术领域,尤其涉及一种分布式数据存储方法、控制设备和系统。
背景技术
数据的爆炸式增长使得存储系统的规模不断增加,分布式网络存储系统采用可扩展的系统结构,将数据分散存储在多台独立的存储设备上,利用多个存储设备分担存储负荷,利用控制设备定位存储信息,不但提高了系统的可靠性、可用性和存取效率,还易于扩展,从而得到广泛应用。图1为分布式存储系统架构图,如图1所示,分布式存储系统由多个设备组成,每个设备都是一台可独立运行的计算机设备,各设备可以通过网络设备互联。分布式存储系统中的设备分为两类:控制设备和存储设备,两类设备均安装了操作系统、TCP/IP协议软件,并配置了网络环境。其中,一个控制设备,安装有数据写入管理程序,负责与用户交互;多个存储设备负责存储数据对象的数据块和编码块或称校验块。
为了保证分布式存储系统的数据可靠性,一种常用的方式是采用冗余编码策略将原始数据分成多个数据块,然后对各数据块进行冗余编码,在丢失一定量的数据块时,原始数据仍旧可以恢复。以瑞德所罗门码(Reed Solomon codes,简称RS码)(n,k,n-k+1)(n>k)为例简单介绍采用冗余编码策略的存储方式:对任意一个原始数据,将它分成k个数据块,分别存储在k个不同的存储节点中,利用码RS(n,k,n-k+1)所对应的生成矩阵以及这k个数据块,可以生成n-k个校验块,将这n-k个校验块存储在另外n-k个存储节点中。因此当要读取这个原始数据时,如果有少于或等于n-k个分块(数据块和/或校验块)发生故障,则可以利用剩下的任意k个存活分块恢复出故障分块。由于n个存储节点中的各存储节点仅存储数据块和检验快中的一个分块,具有较低的存储成本即具有较佳的存储效率。但是却带来了昂贵的修复成本,比如对码RS(14,10,5)来说,一个存储节点出现故障后需要访问10个存储节点才能修复故障存储节点中存储的分块,码RS(9,6,4)需要访问9个存储节点来修复。因此,如何达到存储效率、修复成本和数据可靠性的折中成为制约编码策略发展的重要问题。目前,相关研究者给出了一个折中不等式如下:
d≤n-「k/r」-k+2
其中,k代表原始待存储数据被划分为的数据块的个数,n代表编码后的数据块的个数即码长,n和k合起来用来衡量存储效率;d代表码距,即使得任意擦除d个数据块时,原始数据就无法恢复了,用来衡量存储可靠性;r为重建参数,代表当一个数据块失效时,最多访问的其它数据块个数,用来衡量重建成本。对于一组编码参数,如果能够使得上述不等式的等号成立,则称之为最优可局部重建码(locally reconstructed code,简称LRC码)。
目前,有一种最优LRC码(16,10,5),该码为截止目前找到的唯一满足上述不等式中等号成立条件的码,因此是一个最优的LRC码。它的构造方式如图2所示,首先将原始数据分成10个数据块,然后利用RS码(14,10,5)的生成矩阵生成4个校验块P1,P2,P3,P4,在此基础上,再生成两个新的校验块S1=X1+X2+X3+X4+X5和S2=X6+X7+X8+X9+X10。由于在选择RS码(14,10,5)的生成矩阵时有一定的灵活度,因此可以保证存在一个生成矩阵,使得S1+S2=S3=P1+P2+P3+P4,因此该最优LRC码(16,10,5)的校验块满足条件S1+S2=P1+P2+P3+P4。从而,当该码中的任一个数据块或校验块发生故障时,均可以通过访问5个信息块来恢复。比如数据块X3发生故障,则可以通过访问4个数据块X1,X2,X4,X5和一个校验块S1将X3恢复出来,一共需要访问5个信息块。比如校验块P2发生故障,则可以通过访问校验数据块P1,P3,P4,S1,S2,通过关系式S1+S2=P1+P2+P3+P4将P2恢复出来,因此一共需要访问5个信息块。
但是,当多于一个数据块或校验块发生故障,且发生故障的数量在一定限制数量内时,上述最优LRC(16,10,5)依然需要访问总共10个其它数据块和/或校验块才可以恢复。在多个数据块或校验块发生故障时,仍然会需要很高的修复成本。
发明内容
有鉴于此,本发明实施例提供了一种分布式数据存储方法、控制设备和系统,用以克服现有技术中在多个数据块或校验块发生故障时,仍然会需要很高的修复成本的缺陷。
第一方面,本发明实施例提供了一种分布式数据存储方法,包括:
将待存储数据划分为m2个数据块,所述m2个数据块构成待存储数据矩阵 m为正整数;
根据如下公式(1),生成与所述待存储数据对应的第一校验块集合(P1,P2,...,Pm):
其中,G为生成矩阵,gi是G中的任意一个m2维列向量,用于生成对应的校验块Pi,使得Pi与所述m2个数据块中的m个数据块线性相关,i=1,2,...,m,gi=(gi1,gi2,...,gim),gij是gi中的第j个m维列向量,j=1,2,...,m;gij满足:
α为有限域GF(m+1)的本原元素;
根据如下公式(2),生成与所述待存储数据对应的第二校验块集合(Pm+1,...,P2m),使得所述第二校验块集合中的任意校验块Pm+i与所述m2个数据块中的m个数据块线性相关:
Pm+i=(Xi,Xi+m,...,Xi+m(m-1))(α(m-1)(i-1),...,α2(i-1),αi-1,α0) (2)
根据如下公式(3),生成与所述待存储数据对应的第三校验块集合(Pall),使得所述Pall与其他校验块线性相关:
Pall=P1+P2+...+P2m (3)
将所述m2个数据块以及所述第一校验块集合、所述第二校验块集合和所述第三校验块集合中的共2m+1个校验块,分别存储至不同的存储设备中。
在第一方面的第一种可能的实现方式中,所述m=3。
结合第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述m2个数据块为:X1,X2,...,X9,所述2m+1个校验块为:P1,P2,...,P6,Pall;
根据如下规则生成所述2m+1个校验块P1,P2,...,P6,Pall:
P1与X1,X2和X3线性相关;P2与X4、X5和X6线性相关;P3与X7,X8,X9线性相关;P4与X1,X4和X7线性相关;P5与X8,X5和X2线性相关;P6与X3,X6和X9线性相关;Pall与P4,P5和P6线性相关;
与P1,P2,P3分别对应的列向量构成的系数矩阵为范德蒙矩阵;
若生成Pj的系数为(α,β,γ),则生成Pj+3的系数为(γ,β,α),其中j=1,2,3。
结合第一方面的第二种可能的实现方式,在第一方面的第三种可能的实现方式中,
P1=X1+X2+X3;
P2=X4+αX5+α2X6;
P3=X7+α2X8+(α+1)X9;
P4=X1+X4+X7;
P5=α2X2+αX5+X8;
P6=(α+1)X3+α2X6+X9;
Pall=P4+P5+P6。
结合第一方面、第一方面的第一种、第二种或第三种可能的实现方式,在第一方面的第四种可能的实现方式中,所述将所述m2个数据块以及所述第一校验块集合、所述第二校验块集合和所述第三校验块集合中的共2m+1个校验块,分别存储至不同的存储设备中,包括:
从各存储机架中确定存储当前待存储分块的目标存储机架,其中,所述当前待存储分块是所述m2个数据块中的一个未存储的数据块,或者是所述2m+1个校验块中的一个未存储校验块;所述目标存储机架是存储有与所述当前待存储分块线性相关的分块数量最少的机架;
将所述当前待存储分块发送到所述目标存储机架上未存储其他待存储分块的存储设备中存储。
第二方面,本发明实施例提供了一种分布式数据存储控制设备,包括:
数据划分模块,用于将待存储数据划分为m2个数据块,所述m2个数据块构成待存储数据矩阵 m为正整数;
检验块生成模块,用于根据如下公式(1),生成与所述待存储数据对应的第一校验块集合(P1,P2,...,Pm):
其中,G为生成矩阵,gi是G中的任意一个m2维列向量,用于生成对应的校验块Pi,使得Pi与所述m2个数据块中的m个数据块线性相关,i=1,2,...,m,gi=(gi1,gi2,...,gim),gij是gi中的第j个m维列向量,j=1,2,...,m;gij满足:
α为有限域GF(m+1)的本原元素;
所述检验块生成模块,还用于根据如下公式(2),生成与所述待存储数据对应的第二校验块集合(Pm+1,...,P2m),使得所述第二校验块集合中的任意校验块Pm+i与所述m2个数据块中的m个数据块线性相关:
Pm+i=(Xi,Xi+m,...,Xi+m(m-1))(α(m-1)(i-1),...,α2(i-1),αi-1,α0) (2)
所述检验块生成模块,还用于根据如下公式(3),生成与所述待存储数据对应的第三校验块集合(Pall),使得所述Pall与其他校验块线性相关:
Pall=P1+P2+...+P2m (3)
存储处理模块,用于将所述m2个数据块以及所述第一校验块集合、所述第二校验块集合和所述第三校验块集合中的共2m+1个校验块,分别存储至不同的存储设备中。
在第二方面的第一种可能的实现方式中,所述m=3,所述m2个数据块为:X1,X2,...,X9,所述2m+1个校验块为:P1,P2,...,P6,Pall;
所述检验块生成模块,具体用于根据如下规则生成2m+1个校验块P1,P2,...,P6,Pall:
P1与X1,X2和X3线性相关;P2与X4、X5和X6线性相关;P3与X7,X8,X9线性相关;P4与X1,X4和X7线性相关;P5与X8,X5和X2线性相关;P6与X3,X6和X9线性相关;Pall与P4,P5和P6线性相关;
与P1,P2,P3分别对应的列向量构成的系数矩阵为范德蒙矩阵;
若生成Pj的系数为(α,β,γ),则生成Pj+3的系数为(γ,β,α),其中j=1,2,3。
结合第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,所述检验块生成模块,具体用于根据如下规则生成校验块P1,P2,...,P6,Pall:
P1=X1+X2+X3;
P2=X4+αX5+α2X6;
P3=X7+α2X8+(α+1)X9;
P4=X1+X4+X7;
P5=α2X2+αX5+X8;
P6=(α+1)X3+α2X6+X9;
Pall=P4+P5+P6。
结合第二方面、第二方面的第一种或第二种可能的实现方式,在第二方面的第三种可能的实现方式中,所述存储处理模块包括:
确定单元,用于从各存储机架中确定存储当前待存储分块的目标存储机架,其中,所述当前待存储分块是所述m2个数据块中的一个未存储的数据块,或者是所述2m+1个校验块中的一个未存储校验块;所述目标存储机架是存储有与所述当前待存储分块线性相关的分块数量最少的机架;
发送单元,用于将所述当前待存储分块发送到所述目标存储机架上未存储其他待存储分块的存储设备中存储。
第三方面,本发明实施例提供一种分布式数据存储控制设备,包括:
处理器、存储器、总线和通信接口;所述存储器用于存储计算机执行指令,所述处理器与所述存储器通过所述总线连接,当所述分布式数据存储控制设备运行时,所述处理器执行所述存储器存储的所述计算机执行指令,以使所述处理器执行如下方法:将待存储数据划分为m2个数据块,所述m2个数据块构成待存储数据矩阵 m为正整数;
根据如下公式(1),生成与所述待存储数据对应的第一校验块集合(P1,P2,...,Pm):
其中,生成矩阵G=(g1,g2,...,gm),gi是G中的任意一个m2维列向量,用于生成对应的校验块Pi,使得Pi与所述m2个数据块中的m个数据块线性相关,i=1,2,...,m,gi=(gi1,gi2,...,gim),gij是gi中的第j个m维列向量,j=1,2,...,m;gij满足:
α为有限域GF(m+1)的本原元素;
根据如下公式(2),生成与所述待存储数据对应的第二校验块集合(Pm+1,...,P2m),使得所述第二校验块集合中的任意校验块Pm+i与所述m2个数据块中的m个数据块线性相关:
Pm+i=(Xi,Xi+m,...,Xi+m(m-1))(α(m-1)(i-1),...,α2(i-1),αi-1,α0) (2)
根据如下公式(3),生成与所述待存储数据对应的第三校验块集合(Pall),使得所述Pall与其他校验块线性相关:
Pall=P1+P2+...+P2m (3)
将所述m2个数据块以及所述第一校验块集合、所述第二校验块集合和所述第三校验块集合中的共2m+1个校验块,分别存储至不同的存储设备中。
在第三方面的第一种可能的实现方式中,所述m=3,所述m2个数据块为:X1,X2,...,X9,所述2m+1个校验块为:P1,P2,...,P6,Pall;
所述处理器具体用于根据如下规则生成所述2m+1个校验块P1,P2,...,P6,Pall:
P1与X1,X2和X3线性相关;P2与X4、X5和X6线性相关;P3与X7,X8,X9线性相关;P4与X1,X4和X7线性相关;P5与X8,X5和X2线性相关;P6与X3,X6和X9线性相关;Pall与P4,P5和P6线性相关;
与P1,P2,P3分别对应的列向量构成的系数矩阵为范德蒙矩阵;
若生成Pj的系数为(α,β,γ),则生成Pj+3的系数为(γ,β,α),其中j=1,2,3。
结合第三方面的第一种可能的实现方式,在第三方面的第二种可能的实现方式中,所述处理器具体用于根据如下规则生成所述2m+1个校验块P1,P2,...,P6,Pall:
P1=X1+X2+X3;
P2=X4+αX5+α2X6;
P3=X7+α2X8+(α+1)X9;
P4=X1+X4+X7;
P5=α2X2+αX5+X8;
P6=(α+1)X3+α2X6+X9;
Pall=P4+P5+P6。
结合第三方面、第三方面的第一种或第二种可能的实现方式,在第三方面的第三种可能的实现方式中,所述处理器还用于:
从各存储机架中确定存储当前待存储分块的目标存储机架,其中,所述当前待存储分块是所述m2个数据块中的一个未存储的数据块,或者是所述2m+1个校验块中的一个未存储校验块;所述目标存储机架是存储有与所述当前待存储分块线性相关的分块数量最少的机架;
将所述当前待存储分块发送到所述目标存储机架上未存储其他待存储分块的存储设备中存储。
第四方面,本发明实施例提供一种分布式数据存储系统,包括:
如上任一项所述的控制设备,以及多个存储设备,所述多个存储设备的数量至少为m2+2m+1个,所述存储设备分组设置在不同的存储机架上。
本发明实施例提供的分布式数据存储方法、控制设备和系统,通过将待存储的数据对象划分为m2个数据块,进而根据上述公式生成与这m2个数据块对应的2m+1个校验块,进而将这m2个数据块和2m+1个校验块分别分布式存储在不同的存储设备中。由于根据上述公式生成的2m+1个校验块,能够保证这些数据块和校验块中的任意1个发生故障时,仅需访问m个其他块来恢复,任意2个发生故障时,仅需访问2m个其他块来恢复,并且能够容忍多个块同时发生故障,能够以更小的重建成本恢复发生故障的多个块。
附图说明
图1为分布式存储系统架构图;
图2为最优LRC(16,10,5)码的构成示意图
图3为本发明实施例提供的分布式数据存储方法的流程图;
图4(a)为本发明实施例提供的一种具体的编码结果示意图;
图4(b)为本发明实施例提供的m=3时的编码结果示意图;
图5为本发明实施例提供的一种具体的存储结果示意图;
图6为本发明实施例一提供的分布式数据存储控制设备的结构示意图;
图7为本发明实施例二提供的分布式数据存储控制设备的结构示意图;
图8为本发明实施例提供的分布式数据存储系统的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
图3为本发明实施例提供的分布式数据存储方法的流程图,该实施例中,所采用的分布式存储系统架构如图1所示。值得说明的是,图1仅示意性说明多个存储设备可以设置在一个存储机架上,并非对存储机架数量、同一存储机架上放置的存储设备数量的限制。在分布式存储系统中,当一个存储设备发生故障时,与它共用同一个交换机或在同一个机架内的其它存储设备有很大的概率也发生故障,因此经常会遇到需同时修复多个存储设备的情形,即需同时修复多个失效数据块或校验块的情形。那么当多个存储设备同时发生故障时,如何尽量减少需要访问的存储设备数目以修复多个失效存储设备是本发明实施例所要解决的问题。
具体地,如图3所示,本实施例提供的分布式数据存储方法包括:
步骤101、将待存储数据划分为m2个数据块。
所述m2个数据块分别为:这m2个数据块构成待存储数据矩阵 m为正整数。
其中,每个数据块的大小相等。
步骤102、根据公式(1),生成与所述待存储数据对应的第一校验块集合(P1,P2,...,Pm):
其中,G为生成矩阵,gi是G中的任意一个m2维列向量,用于生成对应的校验块Pi,使得Pi与所述m2个数据块中的m个数据块线性相关,i=1,2,...,m,gi=(gi1,gi2,...,gim),gij是gi中的第j个m维列向量,j=1,2,...,m;gij满足:
α为有限域GF(m+1)的本原元素。
具体来说,上述生成矩阵G用于生成上述第一校验块集合中的每个校验块即该生成矩阵G对应于第一校验块集合的生成系数矩阵。该生成矩阵G是一个m2行、m列的矩阵,将这m2行以m行为单位进行划分,得到m个行单位。从而,G的每个列向量gi都是由m个行单位构成,即每个列向量gi包含了m个行单位即m维的列向量gij。
结合上述公式(1)和gij的表达式,可以看出,本实施例中,生成矩阵G构成了一个类似于对角阵的矩阵。也就是说,该生成矩阵G的第一个列向量g1的第一个行单位g11的元素依次为:(α0,α0,α0,...,α0),其他行单位g1j,j≠1的元素均为0;第二个列向量g2的第二个行单位g22的元素依次为:(α0,α1,α2,...,α(m-1)),其他行单位g2j,j≠2的元素均为0,以此类推。从而,使得第一校验块集合(P1,P2,...,Pm)中的每个校验块都与m2个数据块中的m个数据块线性相关。
如图4(a)所示,图4(a)为本发明实施例提供的一种具体的编码结果示意图,按照如上公式(1),可以得出:P1为X1,...,Xm的线性组合,P2为Xm+1,...,X2m的线性组合,...,Pm为Xm(m-1)+1,...,Xmm的线性组合。
而且,由图4(a)可以看出,如果将上述m2个数据块按照图中所示的排列方式排列成m行m列的方阵形式,那么,第一校验块集合中的每个校验块对应于一个行,与该行中的m个数据块的线性相关。
步骤103、根据公式(2),生成与所述待存储数据对应的第二校验块集合(Pm+1,...,P2m),使得所述第二校验块集合中的任意校验块Pm+i与所述m2个数据块中的m个数据块线性相关:
Pm+i=(Xi,Xi+m,...,Xi+m(m-1))(α(m-1)(i-1),...,α2(i-1),αi-1,α0) (2)
由图4(a)可知,第二校验块集合中的各校验块分别对应于上述m2个数据块形成的方阵中的一个列,与该列中的m个数据块的线性相关。
按照如上公式(2),可以得出:Pm+1为X1,X1+m,...,X1+m(m-1)的线性组合,Pm+2为X2,X2+m,...,X2+m(m-1)m的线性组合,...,P2m为Xm,X2m,...,Xmm的线性组合。
步骤104、根据公式(3),生成与所述待存储数据对应的第三校验块集合(Pall),使得所述Pall与其他校验块线性相关:
Pall=P1+P2+...+P2m (3)
其中,第三校验块集合中只有Pall一个校验块,该校验块Pall与其他校验块线性相关。
通过上述各步骤,得到了如下的码(m2+2m+1,m2,m),其中,码长n=m2+2m+1,待存储数据被划分为k=m2个数据块,重建参数r=m。
步骤105、将所述m2个数据块以及所述第一校验块集合、所述第二校验块集合和所述第三校验块集合中的共2m+1个校验块,分别存储至不同的存储设备中。
在此,可将所述m2个数据块和所述2m+1个校验块统一定义为分块。
本实施例中,在如图1所示的分布式存储系统中,在对所述分块进行分布式存储的过程中,存储分配的规则是:针对当前待存储的分块,当前哪个机架中包含的与其线性相关的分块的数目最小,则把该当前待存储的分块存储到哪个机架中去。这是为了尽量将线性相关的分块分散到不同的机架上去。
具体来说,可以通过如下的方式实现对当前待存储的分块的存储:
从各存储机架中确定存储当前待存储的分块的目标存储机架,其中,所述目标存储机架是存储有与所述当前待存储的分块线性相关的分块数量最少的机架;
将当前待存储的分块存储到该目标存储机架中的一个存储设备中,该存储设备称为目标存储设备。
本实施例中,之所以根据上述原则确定当前待存储分块的目标存储机架,是因为一个机架内的存储设备容易接连发生故障,将线性相关的分块分别放在不同的存储机架中,则可以减少线性相关的分块同时发生故障的概率,从而加强对数据的保护。
具体来说,上述当前待存储的分块所对应的目标存储设备,可以通过如下方式确定:
将所述当前待存储的分块发送到所述目标存储机架上未存储其他分块的存储设备中存储。
由于分布式存储系统中,针对一个数据对象即待存储数据来说,其对应的m2个数据块和2m+1个校验块要分别存储在不同的存储设备中,因此,当前待存储分块在目标存储机架中的目标存储设备的确定即是以此为依据进行确定,即将当前待存储分块存储在目标存储机架上还没有存储其他分块的存储设备中。当存储机架中包括多个没有存储其他分块的存储设备时,可以随机选择其中的一个作为目标存储设备。
综上,本实施例中构成的码为(m2+2m+1,m2,m),其中,码长n=m2+2m+1,待存储数据被划分为k=m2个数据块,重建参数r=m。由于2m+1个校验块如上所述的生成规则,使得该码具有如下特点:
局部恢复性:当任意1个分块如数据块或校验块发生故障,仅需要访问m个其它分块来恢复;任意2个分块比如2个数据块或2个校验块或1个数据块和1个校验块发生故障,仅需要访问2m个其它分块来恢复;
该码的码率随着m趋于无穷而趋于1;
该码具有很强的纠错能力,可以容忍最多m+3个分块同时发生故障。
本实施例中,通过将待存储的数据对象划分为m2个数据块,进而根据上述公式生成与这m2个数据块对应的2m+1个校验块,进而将这m2个数据块和2m+1个校验块分别分布式存储在不同的存储设备中。由于根据上述公式生成的2m+1个校验块,能够保证这些数据块和校验块中的任意1个发生故障时,仅需访问m个其他块来恢复,任意2个发生故障时,仅需访问2m个其他块来恢复,并且能够容忍多个块同时发生故障,能够以更小的重建成本恢复发生故障的多个块。
下面,结合一个优选的实施例对上述分布式数据存储方法进行详细说明。
经研究发现,当m=3时,此时上述码的规模即码长与最优LRC码(16,10,5)相当,但是纠错能力和局部恢复性比最优LRC(16,10,5)更好。当m=3时,本实施例采用的编码方式为(16,9,3),其中,码长n=16,待存储数据被划分为k=9个数据块,重建参数r=3。
此时m2=9个数据块为:X1,X2,...,X9,所述2m+1=7个校验块为:P1,P2,...,P6,Pall。
具体地,根据上述生成2m+1个校验块的各生成公式,可以根据如下规则生成这7个校验块P1,P2,...,P6,Pall:
P1与X1,X2和X3线性相关;P2与X4、X5和X6线性相关;P3与X7,X8,X9线性相关;P4与X1,X4和X7线性相关;P5与X8,X5和X2线性相关;P6与X3,X6和X9线性相关;Pall与P4,P5和P6线性相关;
与P1,P2,P3分别对应的列向量构成的系数矩阵为范德蒙矩阵;
若生成Pj的系数为(α,β,γ),则生成Pj+3的系数为(γ,β,α),其中j=1,2,3。
根据上述生成规则生成的7个校验块,能够使得任意一个数据块Xi,都有3个检验快与之线性相关,由该数据块Xi与这3个校验块构成该数据块Xi的关联集合Ω(Xi),其中,i=1,2,...,9。
简单来说,对任意数据块Xi(i=1,...9),总存在3个校验块,这3个校验块都包含Xi的信息即与Xi线性相关,比如对于X1,P1、P4和Pall与其线性相关,均包含X1的信息。从而,将Xi和包含它信息的3个对应的校验块一起定义为Xi的关联集合Ω(Xi),比如对于X1,Ω(X1)={X1,P1,P4,Pall}。
本实施例中,对关联集合Ω(Xi)中的任一个分块即数据块或校验块来说,只要该关联集合Ω(Xi)中的其他分块没有全部故障,那么便可以通过该关联集合Ω(Xi)所表征的线性相关关系恢复出已故障的任一分块。而且,还可以与其他关联集合联合,恢复出多个故障的分块。
上述7个检验块与9个数据块的线性相关关系,举例来说,比如使得各校验块和各数据块满足如下的线性关系,其中,α为有限域GF(4)的本原元素:
P1=X1+X2+X3;
P2=X4+αX5+α2X6;
P3=X7+α2X8+(α+1)X9;
P4=X1+X4+X7;
P5=α2X2+αX5+X8;
P6=(α+1)X3+α2X6+X9;
Pall=P4+P5+P6
根据该具体方式对9个数据块编码得到7个校验块的编码结果如图4(b)所示,如图4(b)中箭头代表上述举例的线性关联关系。
进而,将这9个数据块和7个校验块分别存储到分布式存储系统中9+7=16个不同的存储设备中存储。
结合图5对这16个分块的分配过程进行介绍,图5中,示意性示出的存储机架数量为4个,为机架1-机架4,每个存储机架上分别设置4个存储设备,各存储设备与各机架的对应关系如图5中所示。值得说明的是,图5所示举例情况只是为了简单和便于对这16个分块的分配过程说明,实际上,分布式存储系统中存在的存储设备的数量远不止16个,即至少为16个,而且,存储机架的数量也可能多于4个或少于4个,且每个机架上放置的存储设备数量也不一定均等,但是分配的原理类似,如下说明。
对上述9个数据块和7个校验块这16个分块的中的每个分块,分配的规则是:对于当前待存储分块,当前哪个机架中包含的与其对应的关联集合中分块的数目最小,则把该分块存储到哪个机架中去。这是为了尽量将相关性强的分块分散到不同的机架上去。
因为一个机架内的存储设备容易接连发生故障,将线性相关性的分块放在不同的存储机架中,则可以减少线性相关的分块同时发生故障的概率。
举例来说,比如针对数据块X1来说,与其对应的关联集合中还包括:P1、P4和Pall,在不考虑存储顺序的前提下,如图5所示,假设在需要存储X1时,P1、P4和Pall已经分别存储在机架2、机架3和机架4中,则这4个机架中,只有机架1没有存储与X1对应的关联集合中的分块,则相应的确定机架1为存储X1的目标存储机架。
再比如,针对数据块X5来说,与其对应的关联集合中还包括:P2、P5和Pall,假设当存储X5时,与其对应的关联集合中的P2、P5和Pall已经存储,如图5所示,P2存储在机架1中,P5和Pall存储在机架4中,则,机架2和机架3中均可以作为目标存储机架,可以随机从中选取一个作为目标存储机架。在该针对数据块X5的举例中,进一步说明下:假设仅有机架1和机架4,没有机架2和机架3,此时,在P2存储在机架1中,P5和Pall存储在机架4中已经完成分配的情况下,机架1和机架4中由于机架1包含的与X5对应的关联集合中的分块少,则确定机架1为数据块X5的目标存储机架。
再比如,针对校验块P4来说,与其对应的关联集合中还包括:X1,X4和X7,与针对数据块X1的举例类似,当X1,X4和X7分别已经存储在机架1、机架2和机架4中时,确定机架3为其目标存储机架。
以上,举例说明了当前的待存储分块的目标存储机架的确定方式,在确定出目标存储机架后,将当前的待存储分块存储到该目标存储机架中的一个存储设备中,该存储设备假设称为目标存储设备。具体来说,由于分布式存储系统中,针对一个数据对象即待存储数据来说,其对应的9个数据块和7个校验块要分别存储在不同的存储设备中,因此,目标存储机架中的目标存储设备的确定即是以此为依据进行确定,即将当前待存储分块存储在目标存储机架上还没有存储该待存储数据对应的分块的存储设备中,当这样的存储设备在目标存储机架中存在多个时,可以随机选择其中的一个作为目标存储设备。
通过上述过程,完成了对当前待存储数据对应的各数据块和各校验块的分布式存储。
在该存储方式下,以下将举例说明当该待存储数据对应的不同数量的分块失效时,通过访问多少个其他分块便可以恢复该失效的分块。
如果有一个分块发生故障,不论是数据块还是校验块,则只需访问3个其它分块即可修复发生故障的该分块。比如X1发生故障,则通过访问X2,X3和P1即可修复X1。
如果两个分块发生故障,则最多只需访问6个分块即可恢复它们。比如X1和X2发生故障,可以通过访问X4,X7,P4恢复X1,通过访问X5,X8,P5恢复X2。
如果3个分块发生故障,最多需要访问9个分块就可以恢复它们。比如X1,X2,X5发生故障,可以首先通过访问X4,X7和P4来恢复X1,然后访问X3和P1来恢复出X2,最后访问X8和P5来恢复出X5,一共需要访问7个分块。
如果有4个分块发生故障,只要这4个分块不是具有线性相关关系的分块,则这个故障组合是可恢复的,因为可以建立独立的4个线性方程,从而解出未知的故障块的信息,恢复出来。相应的,当多于4个分块发生故障时,如果不是具有线性相关关系的4个分块全部失效,则也是可能恢复的。
为了进一步说明本发明实施例提供的所述分布式数据存储方法,下面简称本方法,相对于现有技术的最优LRC(16,10,5)具有更好的容错能力,更低的重建成本以及能够恢复更多的同时失效分块,将进行如下的对比分析:
与现有最优LRC(16,10,5)在容错能力上的对比如下表1所示。可以发现最优LRC(16,10,5)只能容忍4个分块出现故障,但是本方法可以容忍6个分块出现故障。根据上文中提及的折中不等式可以计算出当给定n=16,k=9,r=3时,不等式如果成立的话,d应该等于6,即可以容忍5个分块发生故障。从下表中发现,当5个分块发生故障时,本方法可以以92.6%的概率恢复出故障节点,因此本方法所提供的(16,9,3)码可以达到近似最优。综上,本方法的数据保护功能比最优LRC(16,10,5)强。
表1 容错能力对比表
与现有最优LRC(16,10,5)在重建成本上的对比如下表2所示。当一个分块发生故障时,最优LRC(16,10,5)需要访问5个分块才可以恢复,本方法只需要访问3个;当两个分块发生故障时,最优LRC(16,10,5)需要访问10个分块恢复,本方法最多只需要访问6个;当3个分块发生故障时,最优LRC(16,10,5)需要访问10个分块,该算法只需访问7到9个,大大减少了重建成本。
表2 重建成本对比表
综上,本发明实施例提供的所述分布式数据存储方法,能够以更低的重建成本恢复更多的同时失效分块,具有近似最优的存储效率、重建成本,大大提高了数据存储可靠性。
图6为本发明实施例一提供的分布式数据存储控制设备的结构示意图,如图6所示,该控制设备包括:
数据划分模块11,用于将待存储数据划分为m2个数据块,所述m2个数据块构成待存储数据矩阵 m为正整数。
矩阵构造模块12,用于根据如下公式(1),生成与所述待存储数据对应的第一校验块集合(P1,P2,...,Pm):
其中,G为生成矩阵,gi是G中的任意一个m2维列向量,用于生成对应的校验块Pi,使得Pi与所述m2个数据块中的m个数据块线性相关,i=1,2,...,m,gi=(gi1,gi2,...,gim),gij是gi中的第j个m维列向量,j=1,2,...,m;gij满足:
α为有限域GF(m+1)的本原元素;
所述检验块生成模块12,还用于根据如下公式(2),生成与所述待存储数据对应的第二校验块集合(Pm+1,...,P2m),使得所述第二校验块集合中的任意校验块Pm+i与所述m2个数据块中的m个数据块线性相关:
Pm+i=(Xi,Xi+m,...,Xi+m(m-1))(α(m-1)(i-1),...,α2(i-1),αi-1,α0) (2)
所述检验块生成模块12,还用于根据如下公式(3),生成与所述待存储数据对应的第三校验块集合(Pall),使得所述Pall与其他校验块线性相关:
Pall=P1+P2+...+P2m (3)
存储处理模块13,用于将所述m2个数据块以及所述第一校验块集合、所述第二校验块集合和所述第三校验块集合中的共2m+1个校验块,分别存储至不同的存储设备中。
可选的,所述m=3,所述m2个数据块为:X1,X2,...,X9,所述2m+1个校验块为:P1,P2,...,P6,Pall;
所述检验块生成模块12,具体用于根据如下规则生成2m+1个校验块P1,P2,...,P6,Pall:
P1与X1,X2和X3线性相关;P2与X4、X5和X6线性相关;P3与X7,X8,X9线性相关;P4与X1,X4和X7线性相关;P5与X8,X5和X2线性相关;P6与X3,X6和X9线性相关;Pall与P4,P5和P6线性相关;
与P1,P2,P3分别对应的列向量构成的系数矩阵为范德蒙矩阵;
若生成Pj的系数为(α,β,γ),则生成Pj+3的系数为(γ,β,α),其中j=1,2,3。
所述检验块生成模块12,具体用于根据如下规则生成校验块(P1,P2,...,P6,Pall):
P1=X1+X2+X3;
P2=X4+αX5+α2X6;
P3=X7+α2X8+(α+1)X9;
P4=X1+X4+X7;
P5=α2X2+αX5+X8;
P6=(α+1)X3+α2X6+X9;
Pall=P4+P5+P6。
具体来说,所述存储处理模块13包括:
确定单元131,用于从各存储机架中确定存储当前待存储分块的目标存储机架,其中,所述当前待存储分块是所述m2个数据块中的一个未存储的数据块,或者是所述2m+1个校验块中的一个未存储校验块;所述目标存储机架是存储有与所述当前待存储分块线性相关的分块数量最少的机架;
发送单元132,用于将所述当前待存储分块发送到所述目标存储机架上未存储其他分块的存储设备中存储。
本实施例的控制设备可以用于执行图3所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图7为本发明实施例二提供的分布式数据存储控制设备的结构示意图,如图7所示,该控制设备包括:
处理器21、存储器22、总线23和通信接口24;所述存储器22用于存储计算机执行指令,所述处理器21与所述存储器22通过所述总线23连接,当所述分布式数据存储控制设备运行时,所述处理器21执行所述存储器22存储的所述计算机执行指令,以使所述处理器21执行如下方法:将待存储数据划分为m2个数据块,所述m2个数据块构成待存储数据矩阵 m为正整数;
根据如下公式(1),生成与所述待存储数据对应的第一校验块集合(P1,P2,...,Pm):
其中,G为生成矩阵,gi是G中的任意一个m2维列向量,用于生成对应的校验块Pi,使得Pi与所述m2个数据块中的m个数据块线性相关,i=1,2,...,m,gi=(gi1,gi2,...,gim),gij是gi中的第j个m维列向量,j=1,2,...,m;gij满足:
α为有限域GF(m+1)的本原元素;
根据如下公式(2),生成与所述待存储数据对应的第二校验块集合(Pm+1,...,P2m),使得所述第二校验块集合中的任意校验块Pm+i与所述m2个数据块中的m个数据块线性相关:
Pm+i=(Xi,Xi+m,...,Xi+m(m-1))(α(m-1)(i-1),...,α2(i-1),αi-1,α0) (2)
根据如下公式(3),生成与所述待存储数据对应的第三校验块集合(Pall),使得所述Pall与其他校验块线性相关:
Pall=P1+P2+...+P2m (3)
将所述m2个数据块以及所述第一校验块集合、所述第二校验块集合和所述第三校验块集合中的共2m+1个校验块,分别存储至不同的存储设备中。
进一步地,所述m=3,所述m2个数据块为:X1,X2,...,X9,所述2m+1个校验块为:P1,P2,...,P6,Pall;所述处理器21具体用于根据如下规则生成所述2m+1个校验块P1,P2,...,P6,Pall:
P1与X1,X2和X3线性相关;P2与X4、X5和X6线性相关;P3与X7,X8,X9线性相关;P4与X1,X4和X7线性相关;P5与X8,X5和X2线性相关;P6与X3,X6和X9线性相关;Pall与P4,P5和P6线性相关;
与P1,P2,P3分别对应的列向量构成的系数矩阵为范德蒙矩阵;
若生成Pj的系数为(α,β,γ),则生成Pj+3的系数为(γ,β,α),其中j=1,2,3。
具体地,所述处理器21具体用于根据如下规则生成所述2m+1个校验块P1,P2,...,P6,Pall:
P1=X1+X2+X3;
P2=X4+αX5+α2X6;
P3=X7+α2X8+(α+1)X9;
P4=X1+X4+X7;
P5=α2X2+αX5+X8;
P6=(α+1)X3+α2X6+X9;
Pall=P4+P5+P6
进一步地,所述处理器21,还用于从各存储机架中确定存储当前待存储分块的目标存储机架,其中,所述当前待存储分块是所述m2个数据块中的一个未存储的数据块,或者是所述2m+1个校验块中的一个未存储校验块;所述目标存储机架是存储有与所述当前待存储分块线性相关的分块数量最少的机架;
所述通信接口24,用于将所述当前待存储分块发送到所述目标存储机架上未存储其他待存储分块的存储设备中存储。
本实施例的控制设备可以用于执行图3所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图8为本发明实施例提供的分布式数据存储系统的结构示意图,如图8所示,该系统包括:
如上任一项所述的控制设备,以及多个存储设备,所述多个存储设备的数量至少为m2+2m+1个,所述多个存储设备分组设置在不同的存储机架上。
其中,每个存储机架上设置的存储设备数量可以相等也可以不等,存储机架的数量根据实际需要进行设定,不做具体限制,但是,为了避免同一个存储机架上的各存储设备故障,造成不可恢复的结果,存储机架的数量需合理设定,且每个存储机架上的存储设备的数量也需合理设定,避免设置过多易导致同时故障不易恢复数据,过少设置利用率不高。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (11)
1.一种分布式数据存储方法,其特征在于,包括:
将待存储数据划分为m2个数据块,所述m2个数据块构成待存储数据矩阵 m为正整数;
根据如下公式(1),获得与所述待存储数据对应的第一校验块集合(P1,P2,...,Pm):
其中,G为生成矩阵,gi是G中的任意一个m2维列向量,用于生成对应的校验块Pi,使得Pi与所述m2个数据块中的m个数据块线性相关,i=1,2,...,m,gi=(gi1,gi2,...,gim),gij是gi中的第j个m维列向量,j=1,2,...,m;gij满足:
α为有限域GF(m+1)的本原元素;
根据如下公式(2),获得与所述待存储数据对应的第二校验块集合(Pm+1,…,P2m),使得所述第二校验块集合中的任意校验块Pm+i与所述m2个数据块中的m个数据块线性相关:
Pm+i=(Xi,Xi+m,...,Xi+m(m-1))(α(m-1)(i-1),...,α2(i-1),αi-1,α0) (2)
根据如下公式(3),获得与所述待存储数据对应的第三校验块集合(Pall),使得所述Pall与其他校验块线性相关:
Pall=P1+P2+...+P2m (3)
将所述m2个数据块以及所述第一校验块集合、所述第二校验块集合和所述第三校验块集合中的共2m+1个校验块,分别存储至不同的存储设备中。
2.根据权利要求1所述的方法,其特征在于,所述m=3。
3.根据权利要求2所述的方法,其特征在于,所述m2个数据块为:X1,X2,...,X9,所述2m+1个校验块为:P1,P2,...,P6,Pall;
根据如下规则生成所述2m+1个校验块P1,P2,...,P6,Pall:
P1与X1,X2和X3线性相关;P2与X4、X5和X6线性相关;P3与X7,X8,X9线性相关;P4与X1,X4和X7线性相关;P5与X8,X5和X2线性相关;P6与X3,X6和X9线性相关;Pall与P4,P5和P6线性相关;
与P1,P2,P3分别对应的列向量构成的系数矩阵为范德蒙矩阵;
若生成Pj的系数为(α,β,γ),则生成Pj+3的系数为(γ,β,α),其中j=1,2,3。
4.根据权利要求1至3任一项所述的方法,其特征在于,所述将所述m2个数据块以及所述第一校验块集合、所述第二校验块集合和所述第三校验块集合中的共2m+1个校验块,分别存储至不同的存储设备中,包括:
从各存储机架中确定存储当前待存储分块的目标存储机架,其中,所述当前待存储分块是所述m2个数据块中的一个未存储的数据块,或者是所述2m+1个校验块中的一个未存储校验块;所述目标存储机架是存储有与所述当前待存储分块线性相关的分块数量最少的机架;
将所述当前待存储分块发送到所述目标存储机架上未存储其他待存储分块的存储设备中存储。
5.一种分布式数据存储控制设备,其特征在于,包括:
数据划分模块,用于将待存储数据划分为m2个数据块,所述m2个数据块构成待存储数据矩阵 m为正整数;
检验块生成模块,用于根据如下公式(1),生成与所述待存储数据对应的第一校验块集合(P1,P2,...,Pm):
其中,G为生成矩阵,gi是G中的任意一个m2维列向量,用于生成对应的校验块Pi,使得Pi与所述m2个数据块中的m个数据块线性相关,i=1,2,...,m,gi=(gi1,gi2,...,gim),gij是gi中的第j个m维列向量,j=1,2,...,m;gij满足:
α为有限域GF(m+1)的本原元素;
所述检验块生成模块,还用于根据如下公式(2),生成与所述待存储数据对应的第二校验块集合(Pm+1,…,P2m),使得所述第二校验块集合中的任意校验块Pm+i与所述m2个数据块中的m个数据块线性相关:
Pm+i=(Xi,Xi+m,...,Xi+m(m-1))(α(m-1)(i-1),...,α2(i-1),αi-1,α0) (2)
所述检验块生成模块,还用于根据如下公式(3),生成与所述待存储数据对应的第三校验块集合(Pall),使得所述Pall与其他校验块线性相关:
Pall=P1+P2+...+P2m (3)
存储处理模块,用于将所述m2个数据块以及所述第一校验块集合、所述第二校验块集合和所述第三校验块集合中的共2m+1个校验块,分别存储至不同的存储设备中。
6.根据权利要求5所述的控制设备,其特征在于,所述m=3,所述m2个数据块为:X1,X2,...,X9,所述2m+1个校验块为:P1,P2,...,P6,Pall;
所述检验块生成模块,具体用于根据如下规则生成2m+1个校验块P1,P2,...,P6,Pall:
P1与X1,X2和X3线性相关;P2与X4、X5和X6线性相关;P3与X7,X8,X9线性相关;P4与X1,X4和X7线性相关;P5与X8,X5和X2线性相关;P6与X3,X6和X9线性相关;Pall与P4,P5和P6线性相关;
与P1,P2,P3分别对应的列向量构成的系数矩阵为范德蒙矩阵;
若生成Pj的系数为(α,β,γ),则生成Pj+3的系数为(γ,β,α),其中j=1,2,3。
7.根据权利要求5或6所述的控制设备,其特征在于,所述存储处理模块包括:
确定单元,用于从各存储机架中确定存储当前待存储分块的目标存储机架,其中,所述当前待存储分块是所述m2个数据块中的一个未存储的数据块,或者是所述2m+1个校验块中的一个未存储校验块;所述目标存储机架是存储有与所述当前待存储分块线性相关的分块数量最少的机架;
发送单元,用于将所述当前待存储分块发送到所述目标存储机架上未存储其他待存储分块的存储设备中存储。
8.一种分布式数据存储控制设备,其特征在于,包括:
处理器、存储器、总线和通信接口;所述存储器用于存储计算机执行指令,所述处理器与所述存储器通过所述总线连接,当所述分布式数据存储控制设备运行时,所述处理器执行所述存储器存储的所述计算机执行指令,以使所述处理器执行如下方法:
将待存储数据划分为m2个数据块,所述m2个数据块构成待存储数据矩阵 m为正整数;
根据如下公式(1),生成与所述待存储数据对应的第一校验块集合(P1,P2,...,Pm):
其中,G为生成矩阵,gi是G中的任意一个m2维列向量,用于生成对应的校验块Pi,使得Pi与所述m2个数据块中的m个数据块线性相关,i=1,2,...,m,gi=(gi1,gi2,...,gim),gij是gi中的第j个m维列向量,j=1,2,...,m;gij满足:
α为有限域GF(m+1)的本原元素;
根据如下公式(2),生成与所述待存储数据对应的第二校验块集合(Pm+1,…,P2m),使得所述第二校验块集合中的任意校验块Pm+i与所述m2个数据块中的m个数据块线性相关:
Pm+i=(Xi,Xi+m,...,Xi+m(m-1))(α(m-1)(i-1),...,α2(i-1),αi-1,α0) (2)
根据如下公式(3),生成与所述待存储数据对应的第三校验块集合(Pall),使得所述Pall与其他校验块线性相关:
Pall=P1+P2+...+P2m (3)
将所述m2个数据块以及所述第一校验块集合、所述第二校验块集合和所述第三校验块集合中的共2m+1个校验块,分别存储至不同的存储设备中。
9.根据权利要求8所述的控制设备,其特征在于,所述m=3,所述m2个数据块为:X1,X2,...,X9,所述2m+1个校验块为:P1,P2,...,P6,Pall;
所述处理器具体用于根据如下规则生成所述2m+1个校验块P1,P2,...,P6,Pall:
P1与X1,X2和X3线性相关;P2与X4、X5和X6线性相关;P3与X7,X8,X9线性相关;P4与X1,X4和X7线性相关;P5与X8,X5和X2线性相关;P6与X3,X6和X9线性相关;Pall与P4,P5和P6线性相关;
与P1,P2,P3分别对应的列向量构成的系数矩阵为范德蒙矩阵;
若生成Pj的系数为(α,β,γ),则生成Pj+3的系数为(γ,β,α),其中j=1,2,3。
10.根据权利要求8或9所述的控制设备,其特征在于,所述处理器还用于:
从各存储机架中确定存储当前待存储分块的目标存储机架,其中,所述当前待存储分块是所述m2个数据块中的一个未存储的数据块,或者是所述2m+1个校验块中的一个未存储校验块;所述目标存储机架是存储有与所述当前待存储分块线性相关的分块数量最少的机架;
所述通信接口,用于将所述当前待存储分块发送到所述目标存储机架上未存储其他待存储分块的存储设备中存储。
11.一种分布式数据存储系统,其特征在于,包括:
如权利要求8至10中任一项所述的控制设备,以及多个存储设备,所述多个存储设备的数量至少为m2+2m+1个,所述多个存储设备分组设置在不同的存储机架上。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2015/081644 WO2016201639A1 (zh) | 2015-06-17 | 2015-06-17 | 分布式数据存储方法、控制设备和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107615248A CN107615248A (zh) | 2018-01-19 |
CN107615248B true CN107615248B (zh) | 2019-12-13 |
Family
ID=57544677
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201580080264.5A Expired - Fee Related CN107615248B (zh) | 2015-06-17 | 2015-06-17 | 分布式数据存储方法、控制设备和系统 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN107615248B (zh) |
WO (1) | WO2016201639A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111782152A (zh) * | 2020-07-03 | 2020-10-16 | 深圳市欢太科技有限公司 | 数据存储方法、数据恢复方法、装置、服务器及存储介质 |
CN114518846A (zh) * | 2022-01-10 | 2022-05-20 | 阿里巴巴(中国)有限公司 | 数据处理方法及装置 |
CN114691414A (zh) * | 2022-03-24 | 2022-07-01 | 阿里巴巴(中国)有限公司 | 一种校验块生成方法及一种数据恢复方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102346694A (zh) * | 2007-03-29 | 2012-02-08 | 提琴存储器公司 | 一种在存储系统中计算奇偶校验的方法 |
CN103761195A (zh) * | 2014-01-09 | 2014-04-30 | 浪潮电子信息产业股份有限公司 | 一种利用分布式数据编码的存储方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007293442A (ja) * | 2006-04-21 | 2007-11-08 | Hitachi Ltd | ストレージシステム及びその制御方法 |
US8769035B2 (en) * | 2009-10-30 | 2014-07-01 | Cleversafe, Inc. | Distributed storage network for storing a data object based on storage requirements |
CN101834898B (zh) * | 2010-04-29 | 2013-01-30 | 中科院成都信息技术有限公司 | 一种网络分布式编码存储方法 |
CN103746774B (zh) * | 2014-01-03 | 2017-07-14 | 中国人民解放军国防科学技术大学 | 一种高效数据读取的容错编码方法 |
CN104461781B (zh) * | 2014-12-01 | 2017-10-31 | 华中科技大学 | 一种基于纠删码的数据块重建方法 |
-
2015
- 2015-06-17 CN CN201580080264.5A patent/CN107615248B/zh not_active Expired - Fee Related
- 2015-06-17 WO PCT/CN2015/081644 patent/WO2016201639A1/zh active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102346694A (zh) * | 2007-03-29 | 2012-02-08 | 提琴存储器公司 | 一种在存储系统中计算奇偶校验的方法 |
CN103761195A (zh) * | 2014-01-09 | 2014-04-30 | 浪潮电子信息产业股份有限公司 | 一种利用分布式数据编码的存储方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107615248A (zh) | 2018-01-19 |
WO2016201639A8 (zh) | 2017-12-14 |
WO2016201639A1 (zh) | 2016-12-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9600365B2 (en) | Local erasure codes for data storage | |
CN107656832B (zh) | 一种低数据重建开销的纠删码方法 | |
US10146618B2 (en) | Distributed data storage with reduced storage overhead using reduced-dependency erasure codes | |
CN109643258B (zh) | 使用高速率最小存储再生擦除代码的多节点修复 | |
WO2020047707A1 (zh) | 分布式存储系统的数据编码、解码及修复方法 | |
CN111078460B (zh) | 一种快速纠删码计算方法 | |
WO2018000788A1 (zh) | 一种数据存储方法和装置、一种数据恢复方法和装置 | |
KR20080071907A (ko) | Raid 장치 및 갈로아체를 이용한 데이터 복원 장치 | |
CN112000512B (zh) | 一种数据修复方法及相关装置 | |
Hou et al. | A new construction and an efficient decoding method for Rabin-like codes | |
JP5805727B2 (ja) | 縮退故障を有するメモリセルに対応するためのデータ符号化及び復号化 | |
CN112799875B (zh) | 基于高斯消元进行校验恢复的方法、系统、设备及介质 | |
CN105808170B (zh) | 一种能够修复单磁盘错误的raid6编码方法 | |
TW202011189A (zh) | 分散式存儲系統、方法和裝置 | |
CN111090540B (zh) | 基于纠删码的数据处理方法与装置 | |
CN111782152A (zh) | 数据存储方法、数据恢复方法、装置、服务器及存储介质 | |
CN111682874A (zh) | 一种数据恢复的方法、系统、设备及可读存储介质 | |
CN107615248B (zh) | 分布式数据存储方法、控制设备和系统 | |
US20200336157A1 (en) | Systematic and xor-based coding technique for distributed storage systems | |
CN112181707B (zh) | 分布式存储数据恢复调度方法、系统、设备及存储介质 | |
CN115543693B (zh) | 数据恢复方法及相关设备 | |
Chen et al. | A new Zigzag MDS code with optimal encoding and efficient decoding | |
WO2020029423A1 (zh) | 一种修复二进制阵列码校验矩阵的构造方法及修复方法 | |
CN114691414A (zh) | 一种校验块生成方法及一种数据恢复方法 | |
CN115113816A (zh) | 一种纠删码数据处理系统、方法、计算机设备及介质 |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20191213 |
|
CF01 | Termination of patent right due to non-payment of annual fee |