CN106776129A - 一种基于最小存储再生码的多节点数据文件的修复方法 - Google Patents
一种基于最小存储再生码的多节点数据文件的修复方法 Download PDFInfo
- Publication number
- CN106776129A CN106776129A CN201611088866.8A CN201611088866A CN106776129A CN 106776129 A CN106776129 A CN 106776129A CN 201611088866 A CN201611088866 A CN 201611088866A CN 106776129 A CN106776129 A CN 106776129A
- Authority
- CN
- China
- Prior art keywords
- node
- matrix
- code element
- code
- data file
- 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
Links
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/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1469—Backup restoration techniques
-
- 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/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1435—Saving, restoring, recovering or retrying at system level using file system or storage system metadata
-
- 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/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1464—Management of the backup or restore process for networked environments
-
- 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
本发明公开了一种基于最小存储再生码的多节点数据文件的修复方法。其实现方案是:先限定各个参数的范围,构造编码修复时所需要的矩阵;将大小为B的原始数据文件存储在前k个系统节点中,对存储在系统节点中的源码元进行编码并存储至后k个奇偶校验节点;当有任意t(2≤t≤k)个系统节点出现故障时,每个辅助节点各自发送一个码元到每个新节点,新节点在获得了修复各自节点所需的码元后再互相交换该节点收到的码元,对故障节点进行修复,重建数据;最后可以由各个节点存储的码元恢复得到原始数据文件。本发明解决了现有单节点故障修复时所需存储容量大、占用网络带宽多且只能修复单一节点故障的问题,可用于分布式存储中多节点故障的修复。
Description
技术领域
本发明涉及分布式存储领域,尤其涉及一种基于最小存储再生码的多节点数据文件的修复方法。
背景技术
在分布式存储系统中,一个数据文件被分发到许多通过网络连接的存储节点中存储。如果某些存储节点从网络中暂时断开,或永久断开,该文件的内容可以从其他连接良好的节点中修复出来。保证数据存储可靠的一个简单方法是将数据复制成三个副本文件,然后分别存储在三个不同的节点,这种方法需要采用大型的云存储系统,它允许三个存储节点中出现单一节点的故障并能成功将其修复,如谷歌文件系统。但由于备份数据的容量是有用数据容量的两倍,所以采用这种方法来修复节点时,存储效率很低且只能修复一个故障节点。
Facebook存储系统的基础架构,是由数据率为10/14的高速率里德-索罗门(RS)码进行维护的,即每四个奇偶校验码元被附加到每十个信息码元上。RS码不仅是一种高速率编码方法,同时也具有高效率的解码算法。但尽管如此,Facebook的集群并不是所有的数据都用RS码来维护,因为在RS码的传统解码算法中,没有将网络带宽放在考虑范围之内。假设编码后的码元存储在不同的节点上,如果其中一个磁盘发生故障,则RS码需要下载其他存储节点上的10个码元来修复这一个节点故障,导致用于修复单个节点的数据量就是待修复节点数据量的10倍,从而加大了节点存储容量和数据传输带宽的负担。而在大规模分布式存储系统中,节点故障几乎每天都在发生,如果所有的数据都由RS码编码解码,那么在进行故障节点修复时所需要的节点存储容量和网络带宽资源将会很大。
发明内容
针对上述问题,本发明提出了一种基于最小存储再生码的多节点数据文件的修复方法,通过一种高效的编码方法,在分布式存储节点出现故障时,以最小的存储容量和带宽资源来交换数据完成多节点故障的修复,以改进现有单节点故障修复时需要节点存储容量大、占用网络带宽资源多的问题,提高分布式存储系统的可靠性。
为实现上述目的,本发明的技术方案包括如下步骤:
一种基于最小存储再生码的多节点数据文件的修复方法,包括以下步骤:
步骤一:构造编码修复所需矩阵,给定各个参数表示的含义及其限定的范围,再构造编码和修复时所需矩阵;
步骤二:对源码元进行编码并存储;
步骤三:故障节点修复,重建数据;
步骤四:由各个节点存储的码元修复原始数据文件。
进一步根据所述基于最小存储再生码的多节点数据文件的修复方法,步骤一中构造编码修复所需矩阵,给定各个参数表示的含义及其限定的范围,再构造编码和修复时所需矩阵;
按如下步骤进行:
(1-1)n表示分布式存储中存储节点的个数,t表示存储节点中出现故障的系统节点个数,d表示在修复故障节点时参与修复的节点个数;
存储节点分为两类:一类为系统节点,用于存储未经编码的码元,也叫源码元,共有k个;另一类为奇偶校验节点,用于在编码过程中进行奇偶校验,共有k个;n=2k,d=n-t,k≥t≥2;
源数据文件共有B=k2个码元,将这k2个码元均匀存储在k个系统节点中,每个节点存储k个码元;
(1-2)构造一个大小为k×k的非奇异矩阵U和一个超正则矩阵P,所述非奇异矩阵指该矩阵的行列式不为零,所述超正则矩阵是指这个矩阵可以分为几个子矩阵,且每个子矩阵都为非奇异矩阵;
柯西矩阵是一个超正则矩阵,选取一个柯西矩阵作为矩阵P;矩阵Q为矩阵P的逆矩阵,则矩阵Q为超正则矩阵;矩阵V=UP,U为非奇异矩阵,则矩阵V为非奇异矩阵,矩阵U=VQ;
用pij表示P矩阵的元素,qij表示Q矩阵的元素,pi表示矩阵P的第i列,i,j∈{1,2,...,k},ui为矩阵U的第i列,vi为矩阵V的i列;
为ui's的对偶基,为vi's的对偶基,且为的第i列,为的第i列,所述基之间满足关系和其中δij是克罗内克函数,满足关系:
(1-3)构造一个大小为2×2的超正则对称矩阵以及它的逆矩阵这两个矩阵满足关系:
进一步根据所述基于最小存储再生码的多节点数据文件的修复方法,步骤二中对源码元进行编码并存储;
数据文件由B=k(d+t-k)=k(n-k)=k2个码元组成,用i表示系统节点的索引,i=1,2,…,k,n个分布式存储节点中,n=2k,前k个节点存储源码元,后k个节点存储奇偶校验码元,对存储在系统节点中的源码元进行编码,并将编码后的码元存储到奇偶校验节点中;
用xi表示节点Ni中的k维向量,xim为向量xi中的各项,表示一个码元,i=1,2,…,k,m=1,2,…,k;
当j=1,2,…,k时,节点Nk+j为奇偶校验节点,通过将系统节点中的码元编码为k维向量映射到奇偶校验节点中存储,其中Ik表示一个k×k的单位矩阵,则每个奇偶校验节点Nk+j存储了一个k维向量:
所述表示(axj1+ex1j)、(axj2+ex2j)、…、(axjk+exkj),i=1,2,…,k,l=1,2,…,k,j=1,2,…,k;
节点N1中存储了一个4维向量x1,各项分别为x11、x12、x13、x14;
节点N5中存储了一个4维向量,各项分别为 其中节点N2,N3,N4的存储形式与节点N1相同,节点N6,N7,N8的存储形式与节点N5相同。
进一步根据所述基于最小存储再生码的多节点数据文件的修复方法,步骤三中故障节点修复,重建数据,若出现故障的节点个数为t,t≤k,则可以对这t个故障节点进行修复;
按如下步骤进行:
(3-1)在第一个修复阶段,d个在故障修复时参与修复的辅助节点分别向发生故障后需要重建的每一个新节点中发送一个码元,则在这t个新节点中,每个新节点共收到d个码元,即辅助节点分别发送该节点的第1,2,…,t行码元到节点N1,N2,…,Nt,则最后每个故障节点接收到了n–t个码元;
所述矩阵P非奇异矩阵,可得向量继而每一个故障节点都能得到重建数据时所需的码元;
经过第一阶段的修复,则新节点Ni可以通过得到节点Ni中存储的码元xii和xik,其中i=1,2,…,k,m=t+1,t+2,…,k,U为单位矩阵,通过构造矩阵Y,zi表示矩阵Z=YQ的第i列;
又因为矩阵P为非奇异矩阵,可得向量则节点N1,N2,N3中待计算的码元如下:
N1:x41,3x11,2x12+x21,2x13+x31,2x14+x41.
N2:x42,2x21+x12,3x22,2x23+x32,2x24+x42
N3:x43,2x31+x13,2x32+x23,3x33,2x34+x42.
又通过可得码元x11,x22,x33,x44,x14,x24,x34,x44;
(3-2)在第二个修复阶段,将对故障节点中剩余未知的码元进行修复;
新节点Ni发送码元给新节点Ni,i,i′∈{1,2,...,t},i≠i′,即新节点之间再互相交换数据,完成后,每两个新节点共享两个未知码元数据,并将这两个码元组成一个大小为2×1的矩阵,分别与矩阵和矩阵相乘,可得新节点Ni和新节点Ni中的两个未知码元;
同理,可得到剩余每对新节点中的未知码元。
进一步根据所述基于最小存储再生码的多节点数据文件的修复方法,步骤四中由各个节点存储的码元修复原始数据文件;
数据收集器是连接辅助节点用于修复原始数据的特殊节点,将数据收集器连接到前k个节点的k-s个节点,且连接到后k个节点的s个节点,s为0和k之间的正整数,经过故障节点修复后,数据收集器可以任取几个节点的数据,来修复原始数据文件;
结合步骤三,例如,取s=2,选取节点N3,N4,N5,N6进行数据文件修复,由于节点N3,N4中存储的码元为源码元,可直接下载得到,因此,数据收集器只需通过矩阵运算从节点N5,N6中解码得到x11,x12,x13,x14,x21,x22,x23,x24即可;
节点5中的码元如下:
(3x11,2x12+x21,2x13+x 31,2x14+x41).p1 (1)
(2x21+x12,3x22,2x23+x 32,2x24+x 42).p1 (2)
(2x 31+x13,2x 32+x23,3x 33,2x 34+x 43).p1 (3)
(2x 41+x14,2x 42+x24,2x 43+x 34,3x 44).p1 (4)
节点6中的码元如下:
(3x11,2x12+x21,2x13+x 31,2x14+x 41).p2 (5)
(2x21+x12,3x22,2x23+x 32,2x24+x 42).p2 (6)
(2x 31+x13,2x 32+x23,3x 33,2x 34+x 43).p2 (7)
(2x 41+x14,2x 42+x24,2x 43+x 34,3x 44).p2 (8)
式中标注了下划线的码元为已下载码元,用(4)式和(8)式中的未知码元x14,x24构造一个大小为1×2的矩阵与矩阵Π相乘来解码:[x14 x24].Π,矩阵Π为s×s的子矩阵,即因此可解码得到未知码元x14,x24,同理可得(3)式和(7)式中的未知码元x13,x23;
用(1)、(2)、(5),(6)式中的未知码元x11,x22,x12,x21构造一个大小为2×2的矩阵与矩阵Π相乘来解码:因此,可解码得到未知码元x11,x12,x21,x22,完成对原始数据文件的修复。
本发明与现有技术相比,具有如下优点:
1.本发明由于使用了一种基于最小存储再生码的多节点故障协同修复方法,使得在修复过程中,减少了每个节点需要存储的修复数据的数量;
2.本发明由于能减少每个节点需要存储的修复数据数量,进而可以减小在修复过程中网络带宽资源的消耗;
3.本发明在相关参数满足所需条件的情况下,可以修复t(2≤t≤k)个系统节点,其中k为系统节点的个数。
附图说明
图1为本发明所述的一种基于最小存储再生码的多节点数据文件的修复方法流程。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下结合附图,对本发明所述方案和效果作进一步详细描述。
如图1所示,本发明使用一种基于最小存储再生码的多节点数据文件的修复方法来完成分布式存储系统中多节点数据文件的修复,具体实现步骤如下:
步骤一:构造编码修复所需矩阵,给定各个参数表示的含义及其限定的范围,再构造编码和修复时所需矩阵,按如下步骤进行:
(1-1)n表示分布式存储中存储节点的个数,t表示存储节点中出现故障的系统节点个数,d表示在修复故障节点时参与修复的节点个数。存储节点分为两类:一类为系统节点,用于存储未经编码的码元,也叫源码元,共有k个;另一类为奇偶校验节点,用于在编码过程中进行奇偶校验,共有k个。n、k、t之间满足关系:n=2k,d=n-t,k≥t≥2。源数据文件共有B=k2个码元,将这k2个码元均匀存储在k个系统节点中,每个节点存储k个码元。
(1-2)构造一个大小为k×k的非奇异矩阵U和一个超正则矩阵P,其中非奇异矩阵是指该矩阵的行列式不为零,超正则矩阵是指这个矩阵可以分为几个子矩阵,且每个子矩阵都为非奇异矩阵。柯西矩阵是一个超正则矩阵,选取一个柯西矩阵作为矩阵P;矩阵Q为矩阵P的逆矩阵,则矩阵Q为超正则矩阵;矩阵V=UP,U为非奇异矩阵,则矩阵V为非奇异矩阵,再令矩阵U=VQ。用pij表示P矩阵的元素,qij表示Q矩阵的元素,pi表示矩阵P的第i列,i,j∈{1,2,...,k}。ui为矩阵U的第i列,vi为矩阵V的i列。为ui's的对偶基,为vi's的对偶基,且的第i列,为的第i列,这些基之间满足关系和其中δij是克罗内克函数,满足关系:
(1-3)构造一个大小为2×2的超正则对称矩阵以及它的逆矩阵这两个矩阵满足关系:
步骤二:对源码元进行编码并存储。
数据文件由B=k(d+t-k)=k(n-k)=k2个码元组成。用i表示系统节点的索引,i=1,2,…,k,n个分布式存储节点中,n=2k,前k个节点存储源码元,后k个节点存储奇偶校验码元。对存储在系统节点中的源码元进行编码,并将编码后的码元存储到奇偶校验节点中。
用xi表示节点Ni中的k维向量,xim为向量xi中的各项,表示一个码元,i=1,2,…,k;m=1,2,…,k。当j=1,2,…,k时,节点Nk+j为奇偶校验节点。通过将系统节点中的码元编码为k维向量映射到奇偶校验节点中存储,其中Ik表示一个k×k的单位矩阵。
则每个奇偶校验节点Nk+j存储了一个k维向量:
所述表示(axj1+ex1j)、(axj2+ex2j)、…、(axjk+exkj),i=1,2,…,k,l=1,2,…,k,j=1,2,…,k。
如表1所示,n=8,a=2,e=1,N1、N2、N3、N4为系统节点,N5、N6、N7、N8为奇偶校验节点。
表1 对源码元进行编码存储后各节点中的码元存储形式
节点N1中存储了一个4维向量x1,各项分别为x11、x12、x13、x14。节点N5中存储了一个4维向量,各项分别为其中节点N2,N3,N4的存储形式与节点N1相同,节点N6,N7,N8的存储形式与节点N5相同。仅以此为例,包括但不仅限于本种情况。
步骤三:故障节点修复,重建数据。
若出现故障的节点个数为t,t≤k,则可以对这t个故障节点进行修复。
(3-1)在第一个修复阶段,d个在故障修复时参与修复的辅助节点分别向发生故障后需要重建的每一个新节点中发送一个码元,则在这t个新节点中,每个新节点共收到d个码元。即辅助节点分别发送该节点的第1,2,…,t行码元到节点N1,N2,…,Nt。最后,每个故障节点接收到了n–t个码元。因为矩阵P是一个非奇异矩阵,可得向量继而每一个故障节点都能得到重建数据时所需的码元。经过第一阶段的修复,新节点Ni可以通过得到节点Ni中存储的码元xii和xik,其中i=1,2,…,k;m=t+1,t+2,…,k;U为单位矩阵,通过构造矩阵Y,zi表示矩阵Z=YQ的第i列。
如表1所示,取假设t=3,出现故障的节点是节点N1,N2,N3。则在第一个修复阶段中,节点N4到节点N8分别将各自节点的第一行码元发送给节点N1,第二行码元发送给节点N2,第三行码元发送给节点N3。当i=1,2,3时,新节点Ni接收到的码元为:x4i,
又因为矩阵P为非奇异矩阵,可得向量则节点N1,N2,N3中待计算的码元如下:
N1:x41,3x11,2x12+x21,2x13+x31,2x14+x41.
N2:x42,2x21+x12,3x22,2x23+x32,2x24+x42
N3:x43,2x31+x13,2x32+x23,3x33,2x34+x42.
又通过可得码元x11,x22,x33,x44,x14,x24,x34,x44。
(3-2)在第二个修复阶段,将对故障节点中剩余未知的码元进行修复。新节点Ni发送码元给新节点Ni,i,i′∈{1,2,...,t},i≠i′,即新节点之间再互相交换数据,完成后,每两个新节点共享两个未知码元数据,并将这两个码元组成一个大小为2×1的矩阵,分别与矩阵和矩阵相乘,可得新节点Ni和新节点Ni中的两个未知码元。
同理,可得到剩余每对新节点中的未知码元。
在第一阶段和第二阶段的修复过程中传输码元的总数为td+t(t-1)每个故障节点传输符号的总数为γ=d+t-1。
结合表1以及步骤(3-1)中示例,节点N1与节点N2交换码元2x12+x21和2x21+x12;节点N1和N2交换码元2x13+x31和2x31+x13,节点N2和节点N3交换码元2x23+x32和2x32+x23。通过和可解码得到x12,x21,x13,x31,同理,可解码得到其他码元。
步骤四:由各个节点存储的码元修复原始数据文件。
数据收集器是连接辅助节点用于修复原始数据的特殊节点,将数据收集器连接到前k个节点的k-s个节点,且连接到后k个节点的s个节点,s为0和k之间的正整数。经过故障节点修复后,数据收集器可以任取几个节点的数据,来修复原始数据文件。
结合步骤三,例如,取s=2,选取节点N3,N4,N5,N6进行数据文件修复,由于节点N3,N4中存储的码元为源码元,可直接下载得到,因此,数据收集器只需通过矩阵运算从节点N5,N6中解码得到x11,x12,x13,x14,x21,x22,x23,x24即可。
节点5中的码元如下:
(3x11,2x12+x21,2x13+x 31,2x14+x41).p1 (1)
(2x21+x12,3x22,2x23+x 32,2x24+x 42).p1 (2)
(2x 31+x13,2x 32+x23,3x 33,2x 34+x 43).p1 (3)
(2x 41+x14,2x 42+x24,2x 43+x 34,3x 44).p1 (4)
节点6中的码元如下:
(3x11,2x12+x21,2x13+x 31,2x14+x 41).p2 (5)
(2x21+x12,3x22,2x23+x 32,2x24+x 42).p2 (6)
(2x 31+x13,2x 32+x23,3x 33,2x 34+x 43).p2 (7)
(2x 41+x14,2x 42+x24,2x 43+x 34,3x 44).p2 (8)
式中标注了下划线的码元为已下载码元,用(4)式和(8)式中的未知码元x14,x24构造一个大小为1×2的矩阵与矩阵Π相乘来解码:[x14 x24].Π,矩阵Π为s×s的子矩阵,即因此可解码得到未知码元x14,x24,同理可得(3)式和(7)式中的未知码元x13,x23。用(1)、(2)、(5),(6)式中的未知码元x11,x22,x12,x21构造一个大小为2×2的矩阵与矩阵Π相乘来解码:因此,可解码得到未知码元x11,x12,x21,x22,完成了对原始数据文件的修复。
上述实施例仅仅是为清楚地说明本发明所作的举例,并非对实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其他不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举,而由此所引申出的显而易见的变化或变动仍处于本发明的保护范围之中。
Claims (5)
1.一种基于最小存储再生码的多节点数据文件的修复方法,其特征在于,包括以下步骤:
步骤一:构造编码修复所需矩阵,给定各个参数表示的含义及其限定的范围,再构造编码和修复时所需矩阵;
步骤二:对源码元进行编码并存储;
步骤三:故障节点修复,重建数据;
步骤四:由各个节点存储的码元修复原始数据文件。
2.根据权利要求1所述基于最小存储再生码的多节点数据文件的修复方法,其特征在于,步骤一中构造编码修复所需矩阵,给定各个参数表示的含义及其限定的范围,再构造编码和修复时所需矩阵;
按如下步骤进行:
(1-1)n表示分布式存储中存储节点的个数,t表示存储节点中出现故障的系统节点个数,d表示在修复故障节点时参与修复的节点个数;
存储节点分为两类:一类为系统节点,用于存储未经编码的码元,也叫源码元,共有k个;另一类为奇偶校验节点,用于在编码过程中进行奇偶校验,共有k个;n=2k,d=n-t,k≥t≥2;
源数据文件共有B=k2个码元,将这k2个码元均匀存储在k个系统节点中,每个节点存储k个码元;
(1-2)构造一个大小为k×k的非奇异矩阵U和一个超正则矩阵P,所述非奇异矩阵指该矩阵的行列式不为零,所述超正则矩阵是指这个矩阵可以分为几个子矩阵,且每个子矩阵都为非奇异矩阵;
柯西矩阵是一个超正则矩阵,选取一个柯西矩阵作为矩阵P;矩阵Q为矩阵P的逆矩阵,则矩阵Q为超正则矩阵;矩阵V=UP,U为非奇异矩阵,则矩阵V为非奇异矩阵,矩阵U=VQ;
用pij表示P矩阵的元素,qij表示Q矩阵的元素,pi表示矩阵P的第i列,i,j∈{1,2,...,k},ui为矩阵U的第i列,vi为矩阵V的i列;
为ui's的对偶基,为vi's的对偶基,且为的第i列,为的第i列,所述基之间满足关系和其中δij是克罗内克函数,满足关系:
(1-3)构造一个大小为2×2的超正则对称矩阵以及它的逆矩阵这两个矩阵满足关系:
3.根据权利要求1或2所述基于最小存储再生码的多节点数据文件的修复方法,其特征在于,步骤二中对源码元进行编码并存储;
数据文件由B=k(d+t-k)=k(n-k)=k2个码元组成,用i表示系统节点的索引,i=1,2,…,k,n个分布式存储节点中,n=2k,前k个节点存储源码元,后k个节点存储奇偶校验码元,对存储在系统节点中的源码元进行编码,并将编码后的码元存储到奇偶校验节点中;
用xi表示节点Ni中的k维向量,xim为向量xi中的各项,表示一个码元,i=1,2,…,k,m=1,2,…,k;
当j=1,2,…,k时,节点Nk+j为奇偶校验节点,通过将系统节点中的码元编码为k维向量映射到奇偶校验节点中存储,其中Ik表示一个k×k的单位矩阵,则每个奇偶校验节点Nk+j存储了一个k维向量:
所述表示(axj1+ex1j)、(axj2+ex2j)、…、(axjk+exkj),i=1,2,…,k,l=1,2,…,k,j=1,2,…,k;
节点N1中存储了一个4维向量x1,各项分别为x11、x12、x13、x14;
节点N5中存储了一个4维向量,各项分别为 其中节点N2,N3,N4的存储形式与节点N1相同,节点N6,N7,N8的存储形式与节点N5相同。
4.根据权利要求1-3任一项所述基于最小存储再生码的多节点数据文件的修复方法,其特征在于,步骤三中故障节点修复,重建数据,若出现故障的节点个数为t,t≤k,则可以对这t个故障节点进行修复;
按如下步骤进行:
(3-1)在第一个修复阶段,d个在故障修复时参与修复的辅助节点分别向发生故障后需要重建的每一个新节点中发送一个码元,则在这t个新节点中,每个新节点共收到d个码元,即辅助节点分别发送该节点的第1,2,…,t行码元到节点N1,N2,…,Nt,则最后每个故障节点接收到了n–t个码元;
所述矩阵P非奇异矩阵,可得向量继而每一个故障节点都能得到重建数据时所需的码元;
经过第一阶段的修复,则新节点Ni可以通过得到节点Ni中存储的码元xii和xik,其中i=1,2,…,k,m=t+1,t+2,…,k,U为单位矩阵,通过构造矩阵Y,zi表示矩阵Z=YQ的第i列;
又因为矩阵P为非奇异矩阵,可得向量则节点N1,N2,N3中待计算的码元如下:
N1:x41,3x11,2x12+x21,2x13+x31,2x14+x41.
N2:x42,2x21+x12,3x22,2x23+x32,2x24+x42
N3:x43,2x31+x13,2x32+x23,3x33,2x34+x42.
又通过可得码元x11,x22,x33,x44,x14,x24,x34,x44;
(3-2)在第二个修复阶段,将对故障节点中剩余未知的码元进行修复;
新节点Ni发送码元给新节点Ni,i,i′∈{1,2,...,t},i≠i′,即新节点之间再互相交换数据,完成后,每两个新节点共享两个未知码元数据,并将这两个码元组成一个大小为2×1的矩阵,分别与矩阵和矩阵相乘,可得新节点Ni和新节点Ni中的两个未知码元;
同理,可得到剩余每对新节点中的未知码元。
5.根据权利要求1-4任一项所述基于最小存储再生码的多节点数据文件的修复方法,其特征在于,步骤四中由各个节点存储的码元修复原始数据文件;
数据收集器是连接辅助节点用于修复原始数据的特殊节点,将数据收集器连接到前k个节点的k-s个节点,且连接到后k个节点的s个节点,s为0和k之间的正整数,经过故障节点修复后,数据收集器可以任取几个节点的数据,来修复原始数据文件;
结合步骤三,例如,取s=2,选取节点N3,N4,N5,N6进行数据文件修复,由于节点N3,N4中存储的码元为源码元,可直接下载得到,因此,数据收集器只需通过矩阵运算从节点N5,N6中解码得到x11,x12,x13,x14,x21,x22,x23,x24即可;
节点5中的码元如下:
(3x11,2x12+x21,2x13+x 31,2x14+x41).p1 (1)
(2x21+x12,3x22,2x23+x 32,2x24+x 42).p1 (2)
(2x 31+x13,2x 32+x23,3x 33,2x 34+x 43).p1 (3)
(2x 41+x14,2x 42+x24,2x 43+x34,3x 44).p1 (4)
节点6中的码元如下:
(3x11,2x12+x21,2x13+x 31,2x14+x 41).p2 (5)
(2x21+x12,3x22,2x23+x 32,2x24+x 42).p2 (6)
(2x 31+x13,2x 32+x23,3x 33,2x 34+x 43).p2 (7)
(2x 41+x14,2x 42+x24,2x 43+x 34,3x 44).p2 (8)
式中标注了下划线的码元为已下载码元,用(4)式和(8)式中的未知码元x14,x24构造一个大小为1×2的矩阵与矩阵Π相乘来解码:[x14 x24].П,矩阵Π为s×s的子矩阵,即因此可解码得到未知码元x14,x24,同理可得(3)式和(7)式中的未知码元x13,x23;
用(1)、(2)、(5),(6)式中的未知码元x11,x22,x12,x21构造一个大小为2×2的矩阵与矩阵Π相乘来解码:因此,可解码得到未知码元x11,x12,x21,x22,完成对多节点数据文件的修复。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611088866.8A CN106776129B (zh) | 2016-12-01 | 2016-12-01 | 一种基于最小存储再生码的多节点数据文件的修复方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611088866.8A CN106776129B (zh) | 2016-12-01 | 2016-12-01 | 一种基于最小存储再生码的多节点数据文件的修复方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106776129A true CN106776129A (zh) | 2017-05-31 |
CN106776129B CN106776129B (zh) | 2019-09-20 |
Family
ID=58914158
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611088866.8A Active CN106776129B (zh) | 2016-12-01 | 2016-12-01 | 一种基于最小存储再生码的多节点数据文件的修复方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106776129B (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108199720A (zh) * | 2017-12-15 | 2018-06-22 | 深圳大学 | 一种减小存储开销和提高修复效率的节点修复方法及系统 |
CN108628697A (zh) * | 2017-12-15 | 2018-10-09 | 深圳大学 | 一种基于二进制的节点修复方法及系统 |
CN108683422A (zh) * | 2018-03-27 | 2018-10-19 | 长安大学 | 一种可容多错交叉循环卷积码的局部性修复编码方法 |
CN110168505A (zh) * | 2018-07-10 | 2019-08-23 | 深圳花儿数据技术有限公司 | 分布式存储系统的数据修复方法及存储介质 |
CN110178122A (zh) * | 2018-07-10 | 2019-08-27 | 深圳花儿数据技术有限公司 | 分布式存储系统的数据同步修复方法及存储介质 |
CN110750382A (zh) * | 2019-09-18 | 2020-02-04 | 华中科技大学 | 用于提高数据修复性能的最小存储再生码编码方法及系统 |
CN113553212A (zh) * | 2021-07-28 | 2021-10-26 | 哈尔滨工业大学(深圳) | 用于卫星集群存储网络的混合再生编码修复方法及系统 |
CN113873045A (zh) * | 2021-11-11 | 2021-12-31 | 深圳市云语科技有限公司 | 一种基于能力协商的文件多节点传输方法 |
CN117632041A (zh) * | 2024-01-25 | 2024-03-01 | 国家计算机网络与信息安全管理中心天津分中心 | 基于再生码的分布式存储方法、装置和电子设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103688514A (zh) * | 2013-02-26 | 2014-03-26 | 北京大学深圳研究生院 | 一种最小存储再生码的编码和存储节点修复方法 |
CN105721611A (zh) * | 2016-04-15 | 2016-06-29 | 西南交通大学 | 一种由极大距离可分存储码生成最小存储再生码的一般方法 |
-
2016
- 2016-12-01 CN CN201611088866.8A patent/CN106776129B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103688514A (zh) * | 2013-02-26 | 2014-03-26 | 北京大学深圳研究生院 | 一种最小存储再生码的编码和存储节点修复方法 |
CN105721611A (zh) * | 2016-04-15 | 2016-06-29 | 西南交通大学 | 一种由极大距离可分存储码生成最小存储再生码的一般方法 |
Non-Patent Citations (1)
Title |
---|
JUN LI,BAOCHUN LI: "Cooperative Repair with Minimum-Storage Regenerating Codes for Distributed Storage", 《IEEE CONFERENCE ON COMPUTER COMMUNICATIONS》 * |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108628697A (zh) * | 2017-12-15 | 2018-10-09 | 深圳大学 | 一种基于二进制的节点修复方法及系统 |
CN108199720A (zh) * | 2017-12-15 | 2018-06-22 | 深圳大学 | 一种减小存储开销和提高修复效率的节点修复方法及系统 |
CN108199720B (zh) * | 2017-12-15 | 2021-02-19 | 深圳大学 | 一种减小存储开销和提高修复效率的节点修复方法及系统 |
CN108628697B (zh) * | 2017-12-15 | 2021-05-04 | 深圳大学 | 一种基于二进制的节点修复方法及系统 |
CN108683422A (zh) * | 2018-03-27 | 2018-10-19 | 长安大学 | 一种可容多错交叉循环卷积码的局部性修复编码方法 |
CN110178122B (zh) * | 2018-07-10 | 2022-10-21 | 深圳花儿数据技术有限公司 | 分布式存储系统的数据同步修复方法及存储介质 |
CN110168505A (zh) * | 2018-07-10 | 2019-08-23 | 深圳花儿数据技术有限公司 | 分布式存储系统的数据修复方法及存储介质 |
CN110178122A (zh) * | 2018-07-10 | 2019-08-27 | 深圳花儿数据技术有限公司 | 分布式存储系统的数据同步修复方法及存储介质 |
WO2020010504A1 (zh) * | 2018-07-10 | 2020-01-16 | 深圳花儿数据技术有限公司 | 分布式存储系统的数据修复方法及存储介质 |
WO2020010505A1 (zh) * | 2018-07-10 | 2020-01-16 | 深圳花儿数据技术有限公司 | 分布式存储系统的数据同步修复方法及存储介质 |
CN110168505B (zh) * | 2018-07-10 | 2022-10-21 | 深圳花儿数据技术有限公司 | 分布式存储系统的数据修复方法及存储介质 |
CN110750382B (zh) * | 2019-09-18 | 2020-10-30 | 华中科技大学 | 用于提高数据修复性能的最小存储再生码编码方法及系统 |
CN110750382A (zh) * | 2019-09-18 | 2020-02-04 | 华中科技大学 | 用于提高数据修复性能的最小存储再生码编码方法及系统 |
CN113553212A (zh) * | 2021-07-28 | 2021-10-26 | 哈尔滨工业大学(深圳) | 用于卫星集群存储网络的混合再生编码修复方法及系统 |
CN113553212B (zh) * | 2021-07-28 | 2023-07-18 | 哈尔滨工业大学(深圳) | 用于卫星集群存储网络的混合再生编码修复方法及系统 |
CN113873045A (zh) * | 2021-11-11 | 2021-12-31 | 深圳市云语科技有限公司 | 一种基于能力协商的文件多节点传输方法 |
CN113873045B (zh) * | 2021-11-11 | 2023-09-12 | 深圳市云语科技有限公司 | 一种基于能力协商的文件多节点传输方法 |
CN117632041A (zh) * | 2024-01-25 | 2024-03-01 | 国家计算机网络与信息安全管理中心天津分中心 | 基于再生码的分布式存储方法、装置和电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN106776129B (zh) | 2019-09-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106776129A (zh) | 一种基于最小存储再生码的多节点数据文件的修复方法 | |
CN102624866B (zh) | 一种存储数据的方法、装置及分布式网络存储系统 | |
CN103607304B (zh) | 一种基于纠删码的失效数据线形修复方法 | |
CN104052576B (zh) | 一种云存储下基于纠错码的数据恢复方法 | |
CN103729151B (zh) | 一种基于改进型纠删码的失效数据修复方法 | |
Shum et al. | Exact minimum-repair-bandwidth cooperative regenerating codes for distributed storage systems | |
CN104364765A (zh) | 分布式数据存储系统中的数据存储和维护的方法以及对应设备 | |
CN105260259A (zh) | 一种基于系统最小存储再生码的局部性修复编码方法 | |
CN108540520A (zh) | 基于部分重复码的局部性修复编码及节点故障修复方法 | |
CN103209210B (zh) | 一种提高基于纠删码的存储集群恢复性能的方法 | |
CN104461781A (zh) | 一种基于纠删码的数据块重建方法 | |
CN106776112A (zh) | 一种基于Pyramid码的局部性修复编码方法 | |
CN108347306B (zh) | 分布式存储系统中类局部重构码编码及节点故障修复方法 | |
CN110457161A (zh) | 一种高效高可靠的大数据存储系统、方法、计算机程序 | |
CN106484559A (zh) | 一种校验矩阵的构造方法及水平阵列纠删码的构造方法 | |
CN105721611A (zh) | 一种由极大距离可分存储码生成最小存储再生码的一般方法 | |
CN107844272A (zh) | 一种提高纠错能力的交叉分组编译码方法 | |
CN103106124B (zh) | 一种基于纠删码集群存储系统的交叉重构方法 | |
CN105518996B (zh) | 一种基于二进制域里德所罗门码的数据编解码方法 | |
CN103746774A (zh) | 一种高效数据读取的容错编码方法 | |
CN108132854A (zh) | 一种可同时恢复数据元素及冗余元素的纠删码解码方法 | |
CN108762978B (zh) | 一种局部部分重复循环码的分组构造方法 | |
CN108279995A (zh) | 一种基于安全再生码的分布式存储系统的存储方法 | |
CN104782101B (zh) | 用于分布式网络存储的自修复码的编码、重构和恢复方法 | |
CN105610879B (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 |