CN106790408B - 一种用于分布式存储系统节点修复的编码方法 - Google Patents
一种用于分布式存储系统节点修复的编码方法 Download PDFInfo
- Publication number
- CN106790408B CN106790408B CN201611078518.2A CN201611078518A CN106790408B CN 106790408 B CN106790408 B CN 106790408B CN 201611078518 A CN201611078518 A CN 201611078518A CN 106790408 B CN106790408 B CN 106790408B
- Authority
- CN
- China
- Prior art keywords
- node
- memory system
- distributed memory
- data
- value
- 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.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1074—Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
Abstract
一种用于分布式存储系统节点修复的编码方法,首先提取分布式存储系统的编码参数并构建存储系统的编码模型,引入保护列、设计列,得到扩展后的编码模型,然后根据归一化修复带宽的偏导确定两者的比例,进而得到保护列、设计列取值,最后根据保护列、设计列取值建立附加信息构造矩阵并完成附加信息的构造,将附加信息叠加到设计列的检验信息之上,完成generalized piggybacking code的编码构造。本发明没有额外存储开销,在节点修复过程中能够保持存储系统原先的译码特性不变,另外在节点修复过程中不需要复杂的矩阵运算,只需要简单的线性叠加运算,复杂度低,便于实现,具有很好的实用价值。
Description
技术领域
本发明涉及分布式存储领域,特别是一种用于分布式存储系统节点修复的编码方法。
背景技术
分布式存储系统因其投入成本低,存储效率高等优点而广泛被大型网络应用所采纳,但是受到频发的故障、维护等因素的影响,分布式存储系统各个分离的存储节点的可靠性已经成为影响分布式存储系统性能的重要因素。目前,以纠删码为代表的差错控制编码技术已经应用到分布式存储系统中。
最大距离可分(Maximum distance separable,MDS)码是一种最常用于存储系统的纠删码技术,在一个参数为(n,k,d)的MDS码中,n代表码长,k为信息的维度,它的最小汉明距离是d=n-k+1。对于固定的参数n和k,MDS码的最小汉明距离d=n-k+1达到了最大的可能取值,因此最大距离可分码可以纠正码字中多达(n-k)个删除错误。使用参数为(n,k)的最大距离可分码进行编码的分布式存储系统如图1所示,该分布式存储系统首先将待存储的原始数据分割成k个信息片段,然后使用(n,k)最大距离可分码编码成n个信息片段,最后再将这n个信息片段分散的存储在n个分离的节点中去。这样便可以用系统中任意k个节点信息恢复出原始数据,换言之,整个系统可以抵抗任意(n-k)的节点的损坏。
通过引入冗余信息,整个系统的可靠性有了大幅度的提升。当一些节点损坏后,利用健全节点的数据来恢复损坏节点内丢失的数据的节点修复技术也成为了保持整个分布式存储系统可靠性的一个最主要的手段。节点修复的示意图如图2所示,衡量一个节点修复技术性能的一个关键指标叫做“修复带宽”,修复带宽是指为了修复分布式存储系统中的单个损坏节点而需要从其他健全节点获取的数据量。
对于采用MDS编码的分布式存储系统,当然可以利用MDS码自身的删除修复特性来进行节点修复,但是这个过程的修复带宽比较大:假如采用参数为(n,k)的MDS编码的分布式存储的一个存储节点发生损毁,利用剩下任意k个健全节点的数据就能恢复出整个文件系统,从而修复了损毁节点的数据。可见此过程的修复带宽为k个节点的数据量,相当于原始存储信息的大小。当前有很多研究者都致力于分布式存储系统的节点修复的方法的研究,其中具有代表性的工作是再生码(Regenerating Codes)。2010年美国南加州大学的A.G.Dimakis教授提出了用再生码来减少分布式存储系统修复节点数据时所需要的修复带宽。再生码利用网络编码的思想,将存储和修复过程转化为多播问题,并利用图论中的最大流最小割理论推导出了再生码可以达到的修复带宽的理论下界。但是再生码在面对实际系统的使用存在几个很大的问题:1、再生码不能在存储系统原有的编码基础上升级,而是要重新设计部署整个系统,系统改造成本较大;2、再生码并不是对所有码参数(n,k为任意满足n>k的整数)都有效;3、再生码的构造过程复杂,其修复过程的计算复杂度也很大,因此目前几乎没有采用再生码的分布式存储系统。
发明内容
本发明解决的技术问题是:克服现有技术的不足,提供了一种用于分布式存储系统节点修复的编码方法。
本发明的技术解决方案是:一种用于分布式存储系统节点修复的编码方法,包括如下步骤:
(1)提取当前分布式存储系统所采用的纠删码参数,使用纠删码参数对原始信息进行编码并分别存储在分布式存储系统;
(2)生成多组分布式存储系统编码模型;
(3)生成扩展后的存储结构,其中,扩展后的存储结构中每一行分别代表分布式存储系统中的每一个存储节点;
(4)根据扩展后的存储结构生成附加信息构造矩阵,当分布式存储系统中系统节点数据损坏时,使用附加信息构造矩阵完成当前损坏节点修复。
所述的提取当前分布式存储系统所采用的纠删码参数,使用纠删码参数对原始信息进行编码并分别存储在分布式存储系统的方法为,提取当前分布式存储系统所采用的纠删码参数,假设当前分布式存储系统采用系统型纠删码参数(n,k,r),n表示系统型纠删码码长,k表示系统型纠删码码字中信息维度,r表示系统型纠删码码字中校验信息个数,n=r+k,在当前分布式存储系统中原始信息被分为k个数据段,然后利用参数为(n,k,r)的系统型纠删码将原始信息的k个数据段编码成n个数据段,编码后的n个数据段分别存储在分布式存储系统的n个离散节点中;所述的分布式存储系统包括n个节点,k个系统节点,r个校验节点,采用的r个维度为k的编码向量为p1、p2、…、pr。
所述的生成多组分布式存储系统编码模型的方法为,引入变量s、p,用维度为k的向量u=[u1,u2,…,uk]代表分布式存储系统需要编码的原始信息,进而得到当i不大于k时分布式存储系统中第i个节点存储的数据用ui表示,当i大于k时分布式存储系统中第i个节点存储的数据用表示,i=1,2,3,…,k,k+1,k+2,…,n,得到分布式存储系统中各个节点存储的数据分别用u1,u2,…,uk,表示,并作为编码模型,遍历s+p次,得到s+p组编码模型;其中,第j组编码模型记为uj,1,uj,2,…,uj,k,uj=[uj,1,uj,2,…,uj,k]表示第j组编码模型使用的原始信息代表向量,uj,x表示uj中的第x个原始信息,s表示保护列的列数,p表示设计列的列数,x=1,2,…,k,j=1,2,…,s+p,s为保护列的列数,p为设计列的列数。
所述的生成扩展后的存储结构的方法为,将第j组uj,1,uj,2,…,uj,k,作为当前分布式存储系统扩展后的存储结构的第j列,遍历所有j的取值,得到扩展后的存储结构,扩展后的存储结构中每一行分别代表分布式存储系统中的每一个存储节点,将扩展后的存储结构中第1到第k行的第1到第s列作为区域A,将第1到第k+1行的第s+1到第s+p列作为区域B,将扩展后的存储结构中第k+1到第k+r行的第1到第s列作为区域C,将扩展后的存储结构中第k+2到第k+r行的第s+1到第s+p列作为区域D。
所述的根据扩展后的存储结构生成附加信息构造矩阵,当分布式存储系统中系统节点数据损坏时,使用附加信息构造矩阵完成当前损坏节点修复的方法包括如下步骤:
(1)计算generalized piggybacking code的归一化修复带宽函数γ为
其中,
定义保护列、设计列的比例为
求出γ的下界为
将γ的下界记为Γlow(pp),进而得到
其中,s为保护列的列数,p为设计列的列数;
(2)求出Γlow(pp)关于pp的偏导数为
然后令Γlow(pp)关于pp的偏导数为0,确定Γlow(pp)取为正数的极小值时pp的值为
(3)如果不是0.25的倍数,则在左侧选取两个与最近且为0.25倍数的数,记为d1、d2,在右侧选取两个与最近且为0.25倍数的数,记为d3、d4,进而得到4组变量s、p取值,并记为(s1,p1)、(s2,p2)、(s3,p3)、(s4,p4),其中,若(s1,p1)、(s2,p2)、(s3,p3)、(s4,p4)中存在1组取值令γ最小,将该组取值作为变量s、p取值,若(s1,p1)、(s2,p2)、(s3,p3)、(s4,p4)中存在至少两组取值令γ最小且s+p的取值不等,将令γ最小且s+p最小的取值作为变量s、p取值,若(s1,p1)、(s2,p2)、(s3,p3)、(s4,p4)中存在至少两组取值令γ最小且s+p的取值相等,从令令γ最小且s+p的取值相等的至少两组取值中任选1组作为变量s、p取值;
如果是0.25的倍数,则将表示为最简分数,将最简分数的分子作为变量s取值,最简分数的分母减去分子作为变量p取值;
(4)根据步骤(3)得到的变量s、p取值,建立一个的附加信息构造矩阵,从扩展后的存储结构A区中按行依次取出数据,并按行将取出的数据依次填充到附加信息构造矩阵的对应位置,当A区所有的数据被取出并填充到附加信息构造矩阵后,把附加信息构造矩阵的(r-1)p个列的值进行叠加,进而得到(r-1)p个累加值,将这些累加值命名为附加信息,然后按任意顺序把(r-1)p个附加信息分别与扩展后的存储结构D区的(r-1)p个校验数据相加,并分别替换存储结构D区的(r-1)p个校验数据,完成用于分布式存储系统节点修复的编码,其中,当分布式存储系统中一个系统节点数据损坏时,下载所有B区健全节点数据,进而通过译码得到当前损坏节点的B区数据,从D区下载与A区当前损坏节点中相关的数据,得到A区当前损坏节点相关的附加信息与校验数据的叠加,将附加信息与校验数据的叠加分别与D区的原始校验数据、A区健全数据做差,进而得到当前损坏节点的A区数据,完成当前损坏节点修复。
本发明与现有技术相比的优点在于:
(1)本发明编码方法基于分布式存储系统原先选择的差错控制编码技术,没有额外存储开销,并且在节点修复过程中能够保持存储系统原先的译码特性不变,具有很好的使用价值;
(2)本发明编码方法在节点修复过程中不需要复杂的矩阵运算,只需要简单的线性叠加运算,复杂度低,便于实现;
附图说明
图1为基于最大距离可分码的分布式存储系统示意图;
图2为基于最大距离可分码的分布式存储系统节点修复示意图;
图3为本发明方法中generalized piggybacking code的实施流程图;
图4为本发明方法中分布式存储系统原始编码模型图;
图5为本发明方法中generalized piggybacking code扩展后的原始编码存储模型;
图6为本发明实施例中参数取值确定后对原始信息扩展后得到的存储模型图;
图7为本发明实施例中用generalized piggybacking code构造得到的存储模型图。
具体实施方式
本发明针对现有技术的不足,提出一种用于分布式存储系统节点数据修复的编码方法,包括两部分,部分A为generalized piggybacking code的编码构造过程,部分B为当采用generalized piggybacking code的分布式存储系统的一个系统节点损坏后,进行节点修复的实施过程,下面是这两部分的详细描述,但不用来限制本发明的范围。
如图3所示为generalized piggybacking code的编码构造流程,包括A1~A5共5个步骤:
A1将分布式存储系统抽象成用一列差错控制编码表示原始存储模型;
目前分布式存储系统基本都引入了纠删码来提高系统的可靠性,定义纠删码参数为(n,k),其中,n表示码长对应分布式存储系统中存储节点的个数,k表示信息维度,那么该系统奇偶校验节点的个数r满足下面关系式:
r=n-k (1)
本发明方法以系统型的最大距离可分码为例来进行说明,p1,p2…,pr是r个编码向量,用维度为k的向量u=[u1,u2,…,uk]表示分布式存储系统的原始信息,那么系统的n个节点中存储的数据分别为u1,u2,…,uk,如图4所示为本发明方法中分布式存储系统原始编码模型图。
A2扩展编码模型为多列矩阵,并将这些列分成保护列和设计列两部分。
将图4所示的编码模型进行列扩展,使得每一列都与原来模型采用相同的纠删编码方式。首先引入两个变量s,p,其中,s表示保护列的列数,p表示设计列的列数,用维度为k的向量u1,u2,…,us+p表示这s+p个列的原始信息,ui=[ui,1,ui,2,…,ui,k],i∈{1,2,…,s+p},进而得到扩展后的存储结构,如图5所示为本发明方法中扩展后的编码存储模型。图5中的每一行的s+p个数据将存储在同一个节点中,将整个存储阵列分成了A、B、C、D四个区域,本发明方法接下来的步骤会设计关于A区域数据的附加信息,并将得到的附加信息添加到D区域中。
A3根据generalized piggybacking code的归一化修复带宽函数γ,确定保护列的比例pp。
a)generalized piggybacking code的归一化修复带宽函数γ的表达式为
其中,k,r分别为分布式存储系统中系统节点和校验节点的个数;s,p分别为保护列和设计列的列数;为ks除以(r-1)p的余数。
b)定义保护列的比例为根据式(2)求出γ的一个下界
因此γ的下界Γlow(pp)可以表示为
c)求出Γlow(pp)关于pp的偏导数:
令偏导数为0,确定Γlow(pp)取正数的极小值时pp的值,则当时,
A4根据A3得到的比值,通过仿真最终确定保护列与设计列的值。
在附近,选择多组尽量小的s和p,使得尽量接近然后将这多组(s,p)的带入公式(2)中,选择使归一化修复带宽γ取值最低的那组。其中,本发明方法中关于变量s和p确定的一种实现方式为:
如果不是0.25的倍数,则首先在的上下各选择两个与相离最近的且是0.25倍数的数,然后将选取得到的四个数分别记为d1、d2、d3、d4,把d1、d2、d3、d4表示为最简分数,进而得到了关于变量s、p的4组取值,并分别记为(s1,p1)、(s2,p2)、(s3,p3)、(s4,p4),且满足d1=s1/(s1+p1)、d2=s2/(s2+p2)、d3=s3/(s3+p3)、d4=s4/(s4+p4),将这四组数据分别带入γ的表达式中,选择令γ最小的那组s、p取值,如果有若干组都令γ的值最小,则优先选择s+p的取值最小的那组,如果有若干组s、p的取值,使得s+p都相等且令γ的值都为最小,则选择任意一组;如果是0.25的倍数,直接将表示为最简分数,则s为最简分数的分子,p为最简分数的分母减去分子。
A5设计关于保护列原始信息的附加信息,并将这些方程添加到设计列中去。
本发明方法根据步骤A4确定的s和p的值,设计(r-1)p个关于如图5所示的A区中的ks个数据的附加信息,并把它们添加到D区的(r-1)p个校验数据中去。具体做法为
a)建立一个大小为的空阵列,然后从A区中按行一个一个的取出数据,并它们按行填充到空阵列中去。如果ks不能被(r-1)p整除,则空阵列的最后一行不会被填满,当A区所有的数据都被取出并填充到空阵列之后,把空阵列的所有(r-1)p个列的值都加起来,所得的(r-1)p个值就是我们设计的附加信息。
按任意顺序把所得的(r-1)p个附加信息与D区的(r-1)p个校验数据相加就得到了我们所设计的generalized piggybacking code,然后依次从D区取出(r-1)p个检验数据中的一个,并按任意顺序取出(r-1)p个附加信息中的一个,让两个数据相加后再放回到D区原来检验数据存储的位置。
当采用generalized piggybacking codes进行编码的分布式存储系统的某一个系统节点发生损坏时,可以用下面方法就行节点修复,如图6所示为参数s、p取值确定后对原始信息扩展后得到的存储模型图,下面以修复第l个系统节点为例,说明节点修复的具体步骤:
B1修复损坏节点中位于B区的数据。
该步骤要修复的数据为{ul,s+1,ul,s+2,…,ul,s+p},根据最大距离可分码的性质——设计列中的任意k个数据都可以恢复出原始信息,本发明方法从B区下载所有kp个健全数据刚好可以恢复出这p个损坏的数据。
B2获取与A区中损坏数据相关的附加信息。
A区中损坏的s个数据为{ul,1,ul,2,…,ul,s},根据前面所述的附加信息的构造过程可知A区中损坏的s个数据包含在D区的s个附加信息中,因此本发明方法从D区下载包含这s个附加信息的存储数据。利用B1中下载并恢复出的设计列的原始数据排除s个存储数据中对原始数据的校验部分,进而得到了关于{ul,1,ul,2,…,ul,s}的附加信息。
B3根据B2获得的线性附加方程,从A区中下载部分相关的健全数据,然后求出损坏数据。
根据附加信息的设计描述,得到从B2中获得的s个附加信息中除了有A区中损坏的还包含一些A区中健全数据,下载这些数据并从附加信息中减去就获得了A区中s个损坏的数据,下面结合实施例对本发明方法进行进一步的说明。
本发明方法以一个采用了(16,6)系统型最大距离可分码的分布式存储系统为例来说明generalized piggybacking code的构造过程,以及当一个系统节点损坏时如何修复该节点的数据的过程。
首先确定分布式存储系统的编码模型。码长n=16,信息维度k=6,所以校验节点的个数r=6,用长度为10的向量u=[u1,u2,…,u10]来表示原始存储信息,p1,p2,…,p6表示6个编码向量,那么在编码模型中16个节点存储的数据分别为
扩展存储模型为s个保护列,p个设计列。根据归一化修复带宽的偏导计算发现保护列的比例pp在附近时,系统的修复效率最高;然后通过计算对比,确定参数的取值为s=3,p=2;用长度为10的6个向量a,b,c,d,e表示这3个保护列和2个设计列的原始信息,进而得到扩展后的存储模型,如图6所示为参数取值确定后对原始信息扩展后得到的存储模型图。构造10个线性附加方程、1个3×10空阵列,将A区中的30个数据按照从第一行到第10行的顺序一个一个取出,并按行填充到空阵列中,得到
将阵列中10列的数据分别叠加,得到10个线性附加方程F1,F2,…,F10分别为
F1=a1+b4+c7
F2=b1+c4+a8
F3=c1+a5+b8
F4=a2+b5+c8
F5=b2+c5+a9
F6=c2+a6+b9
F7=a3+b6+c9
F8=b3+c6+a10
F9=c3+a7+b10
F10=a4+b7+c10
因此,最后generalized piggybacking code可以构造为如图7所示的存储模型,假如第3个系统节点损毁了,即丢失了a3,b3,c3,d3,e3,修复过程包括:首先从B区中下载d1,d2,d4,…,d10,e1,e2,e4,…,e10,pTe,求解出d3,e3;然后从D区下载与a3,b3,c3相关的数据根据获得的d,e分别求出得到F7,F8,F9,从A区中下载健全数据b6,c6,a7,c9,a10,b10,并将它们减去,就得到了a3,b3,c3,完成节点修复。
本发明说明书中未作详细描述的内容属本领域技术人员的公知技术。
Claims (1)
1.一种用于分布式存储系统节点修复的编码方法,其特征在于包括如下步骤:
(1)提取当前分布式存储系统所采用的纠删码参数,使用纠删码参数对原始信息进行编码并分别存储在分布式存储系统;
所述的提取当前分布式存储系统所采用的纠删码参数,使用纠删码参数对原始信息进行编码并分别存储在分布式存储系统的方法为:提取当前分布式存储系统所采用的纠删码参数,假设当前分布式存储系统采用系统型纠删码参数(n,k,r),n表示系统型纠删码码长,k表示系统型纠删码码字中信息维度,r表示系统型纠删码码字中校验信息个数,n=r+k,在当前分布式存储系统中原始信息被分为k个数据段,然后利用参数为(n,k,r)的系统型纠删码将原始信息的k个数据段编码成n个数据段,编码后的n个数据段分别存储在分布式存储系统的n个离散节点中;所述的分布式存储系统包括n个节点,k个系统节点,r个校验节点,采用的r个维度为k的编码向量为p1、p2、…、pr;
(2)生成多组分布式存储系统编码模型;
所述的生成多组分布式存储系统编码模型的方法为:引入变量s、p,用维度为k的向量u=[u1,u2,…,uk]代表分布式存储系统需要编码的原始信息,进而得到当i不大于k时分布式存储系统中第i个节点存储的数据用ui表示,当i大于k时分布式存储系统中第i个节点存储的数据用表示,i=1,2,3,…,k,k+1,k+2,…,n,得到分布式存储系统中各个节点存储的数据分别用表示,并作为编码模型,遍历s+p次,得到s+p组编码模型;其中,第j组编码模型记为uj=[uj,1,uj,2,…,uj,k]表示第j组编码模型使用的原始信息代表向量,uj,x表示uj中的第x个原始信息,s表示保护列的列数,p表示设计列的列数,x=1,2,…,k,j=1,2,…,s+p,s为保护列的列数,p为设计列的列数;
(3)生成扩展后的存储结构,其中,扩展后的存储结构中每一行分别代表分布式存储系统中的每一个存储节点;
所述的生成扩展后的存储结构的方法为:将第j组作为当前分布式存储系统扩展后的存储结构的第j列,遍历所有j的取值,得到扩展后的存储结构,扩展后的存储结构中每一行分别代表分布式存储系统中的每一个存储节点,将扩展后的存储结构中第1到第k行的第1到第s列作为区域A,将第1到第k+1行的第s+1到第s+p列作为区域B,将扩展后的存储结构中第k+1到第k+r行的第1到第s列作为区域C,将扩展后的存储结构中第k+2到第k+r行的第s+1到第s+p列作为区域D;
(4)根据扩展后的存储结构生成附加信息构造矩阵,当分布式存储系统中系统节点数据损坏时,使用附加信息构造矩阵完成当前损坏节点修复;
所述的根据扩展后的存储结构生成附加信息构造矩阵,当分布式存储系统中系统节点数据损坏时,使用附加信息构造矩阵完成当前损坏节点修复的方法包括如下步骤:
(41)计算generalized piggybacking code的归一化修复带宽函数γ为
其中,
定义保护列、设计列的比例为
求出γ的下界为
将γ的下界记为Γlow(pp),进而得到
其中,s为保护列的列数,p为设计列的列数;
(42)求出Γlow(pp)关于pp的偏导数为
然后令Γlow(pp)关于pp的偏导数为0,确定Γlow(pp)取为正数的极小值时pp的值为
(43)如果不是0.25的倍数,则在左侧选取两个与最近且为0.25倍数的数,记为d1、d2,在右侧选取两个与最近且为0.25倍数的数,记为d3、d4,进而得到4组变量s、p取值,并记为(s1,p1)、(s2,p2)、(s3,p3)、(s4,p4),其中,若(s1,p1)、(s2,p2)、(s3,p3)、(s4,p4)中存在1组取值令γ最小,将该组取值作为变量s、p取值,若(s1,p1)、(s2,p2)、(s3,p3)、(s4,p4)中存在至少两组取值令γ最小且s+p的取值不等,将令γ最小且s+p最小的取值作为变量s、p取值,若(s1,p1)、(s2,p2)、(s3,p3)、(s4,p4)中存在至少两组取值令γ最小且s+p的取值相等,从令令γ最小且s+p的取值相等的至少两组取值中任选1组作为变量s、p取值;
如果是0.25的倍数,则将表示为最简分数,将最简分数的分子作为变量s取值,最简分数的分母减去分子作为变量p取值;
(44)根据步骤(43)得到的变量s、p取值,建立一个的附加信息构造矩阵,从扩展后的存储结构A区中按行依次取出数据,并按行将取出的数据依次填充到附加信息构造矩阵的对应位置,当A区所有的数据被取出并填充到附加信息构造矩阵后,把附加信息构造矩阵的(r-1)p个列的值进行叠加,进而得到(r-1)p个累加值,将这些累加值命名为附加信息,然后按任意顺序把(r-1)p个附加信息分别与扩展后的存储结构D区的(r-1)p个校验数据相加,并分别替换存储结构D区的(r-1)p个校验数据,完成用于分布式存储系统节点修复的编码,其中,当分布式存储系统中一个系统节点数据损坏时,下载所有B区健全节点数据,进而通过译码得到当前损坏节点的B区数据,从D区下载与A区当前损坏节点中相关的数据,得到A区当前损坏节点相关的附加信息与校验数据的叠加,将附加信息与校验数据的叠加分别与D区的原始校验数据、A区健全数据做差,进而得到当前损坏节点的A区数据,完成当前损坏节点修复。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611078518.2A CN106790408B (zh) | 2016-11-29 | 2016-11-29 | 一种用于分布式存储系统节点修复的编码方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611078518.2A CN106790408B (zh) | 2016-11-29 | 2016-11-29 | 一种用于分布式存储系统节点修复的编码方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106790408A CN106790408A (zh) | 2017-05-31 |
CN106790408B true CN106790408B (zh) | 2019-08-09 |
Family
ID=58898964
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611078518.2A Active CN106790408B (zh) | 2016-11-29 | 2016-11-29 | 一种用于分布式存储系统节点修复的编码方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106790408B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108199720B (zh) * | 2017-12-15 | 2021-02-19 | 深圳大学 | 一种减小存储开销和提高修复效率的节点修复方法及系统 |
CN107977285A (zh) * | 2017-12-19 | 2018-05-01 | 郑州云海信息技术有限公司 | 一种纠删码存储机制的数据修改方法、装置及介质 |
CN108197484B (zh) * | 2018-01-23 | 2020-03-10 | 中南民族大学 | 一种分布式存储环境下实现节点数据安全的方法 |
CN108540520B (zh) * | 2018-02-06 | 2020-09-11 | 长安大学 | 基于部分重复码的局部性修复编码及节点故障修复方法 |
WO2020010504A1 (zh) * | 2018-07-10 | 2020-01-16 | 深圳花儿数据技术有限公司 | 分布式存储系统的数据修复方法及存储介质 |
CN110780813B (zh) * | 2019-10-09 | 2023-08-08 | 嘉应学院 | 一种基于二元域上子空间码的分布式存储系统 |
CN113391948B (zh) * | 2021-06-29 | 2022-10-21 | 西安电子科技大学 | 一种折叠式可扩展分布式存储编码及修复、扩展方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102624866A (zh) * | 2012-01-13 | 2012-08-01 | 北京大学深圳研究生院 | 一种存储数据的方法、装置及分布式网络存储系统 |
CN103944981A (zh) * | 2014-04-14 | 2014-07-23 | 中国科学院计算技术研究所 | 一种基于纠删码技术改进的云存储系统及实现方法 |
CN104932835A (zh) * | 2015-05-31 | 2015-09-23 | 上海交通大学 | 基于纠删码的分布式存储系统的扩容和缩容方法 |
CN105159603A (zh) * | 2015-08-18 | 2015-12-16 | 福建省海峡信息技术有限公司 | 一种分布式数据存储系统的修复方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140281761A1 (en) * | 2008-03-11 | 2014-09-18 | Peter Lablans | Reversible corruption of a digital medium stream by multi-valued modification in accordance with an automatically generated mask |
-
2016
- 2016-11-29 CN CN201611078518.2A patent/CN106790408B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102624866A (zh) * | 2012-01-13 | 2012-08-01 | 北京大学深圳研究生院 | 一种存储数据的方法、装置及分布式网络存储系统 |
CN103944981A (zh) * | 2014-04-14 | 2014-07-23 | 中国科学院计算技术研究所 | 一种基于纠删码技术改进的云存储系统及实现方法 |
CN104932835A (zh) * | 2015-05-31 | 2015-09-23 | 上海交通大学 | 基于纠删码的分布式存储系统的扩容和缩容方法 |
CN105159603A (zh) * | 2015-08-18 | 2015-12-16 | 福建省海峡信息技术有限公司 | 一种分布式数据存储系统的修复方法 |
Also Published As
Publication number | Publication date |
---|---|
CN106790408A (zh) | 2017-05-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106790408B (zh) | 一种用于分布式存储系统节点修复的编码方法 | |
CN103688514B (zh) | 一种最小存储再生码的编码和存储节点修复方法 | |
CN104052576B (zh) | 一种云存储下基于纠错码的数据恢复方法 | |
CN108540520B (zh) | 基于部分重复码的局部性修复编码及节点故障修复方法 | |
CN103336785B (zh) | 一种基于网络编码的分布式存储方法及其装置 | |
US9600365B2 (en) | Local erasure codes for data storage | |
CN101944067B (zh) | 存储数据的方法和存储器系统 | |
US20210271557A1 (en) | Data encoding, decoding and recovering method for a distributed storage system | |
Wang et al. | An integer programming-based bound for locally repairable codes | |
CN105721611A (zh) | 一种由极大距离可分存储码生成最小存储再生码的一般方法 | |
CN103577274A (zh) | 管理存储器阵列的方法和装置 | |
WO2018072294A1 (zh) | 一种校验矩阵的构造方法及水平阵列纠删码的构造方法 | |
KR20130029080A (ko) | 소거 없는 플래시 메모리의 다중 프로그래밍 | |
CN108132854B (zh) | 一种可同时恢复数据元素及冗余元素的纠删码解码方法 | |
CN105518996B (zh) | 一种基于二进制域里德所罗门码的数据编解码方法 | |
EP3182601B1 (en) | Data processing method and system based on quasi-cyclic ldpc | |
CN106788891A (zh) | 一种适用于分布式存储的最优局部修复码构造方法 | |
CN110389848B (zh) | 基于分块构造的部分重复码构造方法及故障节点修复方法 | |
CN105808170A (zh) | 一种能够以最小磁盘读写修复单磁盘错误的raid6编码方法 | |
CN107689983A (zh) | 基于低修复带宽的云存储系统及方法 | |
CN107196665A (zh) | 一种纠错纠删rs码的识别方法 | |
CN109062724B (zh) | 一种纠删码转换方法及终端 | |
CN110990375B (zh) | 一种基于调节矩阵的异构部分重复码的构造方法 | |
CN110781024B (zh) | 对称部分重复码的矩阵构造方法及故障节点修复方法 | |
US20180122494A1 (en) | Raid decoding architecture with reduced bandwidth |
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 |