CN105260259B - 一种基于系统最小存储再生码的局部性修复编码方法 - Google Patents
一种基于系统最小存储再生码的局部性修复编码方法 Download PDFInfo
- Publication number
- CN105260259B CN105260259B CN201510589073.3A CN201510589073A CN105260259B CN 105260259 B CN105260259 B CN 105260259B CN 201510589073 A CN201510589073 A CN 201510589073A CN 105260259 B CN105260259 B CN 105260259B
- Authority
- CN
- China
- Prior art keywords
- node
- data
- msr
- memory
- reparation
- 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
Landscapes
- Error Detection And Correction (AREA)
Abstract
本发明公开了一种基于系统最小存储再生码的局部性修复编码方法,包括构造系统最小存储再生码的存储结构及生成矩阵,建立基于系统最小存储再生码的局部性修复编码结构,采用建立的局部性修复编码对修复组内单节点故障、两不相邻节点故障以及两相邻节点故障进行修复。该局部性修复编码方法采用系统最小存储再生码作为局部码,存储节点存放原始数据副本,降低了存储节点修复过程中的磁盘I/O开销和修复带宽开销;存储节点中冗余数据部分由前后两个存储节点的最小存储再生编码数据部分生成,基于此编码结构,当修复组中存在单节点、两相邻节点以及两不相邻节点故障时,都可以通过前后节点快速实现故障节点数据重构,恢复出故障节点数据。
Description
技术领域
本发明属于计算机领域,涉及一种基于系统最小存储再生码的局部性修复编码方法。
背景技术
分布式存储系统通常采用“复制”和“纠删码”策略生成冗余数据,确保数据存储的可靠性和可用性。然而“复制”的冗余策略存储代价过高,需要存储大量副本数据确保系统较高的可靠性,“纠删码”策略在节点修复过程中带宽开销过大,需要存储系统具有较高的网络带宽。针对“复制”和“纠删码”冗余策略存在的局限性,Dimakis等人提出了再生码,包括最小存储再生(Minimum Storage Regenerating,MSR)码和最小带宽再生(MinimumBandwidth Regenerating,MBR)码,但再生码在故障节点修复过程中连接的节点数量较多,具有较高的磁盘I/O开销,成为存储系统中故障节点修复的主要性能瓶颈。现有的局部性修复编码虽然具有较低的磁盘I/O开销,但现有局部性修复编码方案修复故障节点时没有考虑节点存储开销。
发明内容
针对上述现有技术中存在的缺陷或不足,本发明的目的在于,提供一种基于系统最小存储再生码的局部性修复编码方法,该方法可以降低故障节点修复过程中的磁盘I/O开销,且具有较低的节点存储开销。
为了实现上述目的,本发明采用如下技术方案:
一种基于系统最小存储再生码的局部性修复编码方法,具体包括以下步骤:
步骤一,构造系统MSR码及其存储结构
记分布式存储系统中存储节点的原始信息数据中的信息符号有k位,生成的系统MSR码有n位,构造(n,k)系统MSR码,则(n,k)系统MSR码c为:
c=m·GMSR
上式中,m=[m1 m2 … mk],表示分布式存储系统中存储节点的原始信息数据,m1,m2,…,mk表示信息符号;GMSR=[I|P]k×n,表示(n,k)系统MSR码的生成矩阵,其中I为k×k单位矩阵,P为k×(n-k)维子矩阵;
根据(n,k)系统MSR码c得到(n,k)系统MSR码的存储结构;
步骤二,构造基于系统MSR码的局部性修复编码
将步骤一得到的系统MSR码作为局部码,在分布式存储系统的存储节点中选取f个存储节点构成修复组,在该具有f个存储节点的修复组内构造局部性修复编码;
步骤三,修复组内节点故障修复
根据局部性修复编码对修复组内节点进行故障修复。
具体地,所述步骤二的具体实现方法包括:
将步骤一构造出来的系统MSR码作为局部码,给定修复组中f个存储节点的原始信息数据m1,m2,…,mf;给定修复组中f个存储节点的系统MSR码的生成矩阵GMSR_1,GMSR_2,…,GMSR_f,得到对应的P1,P2,…,Pf;节点i为f个存储节点中的第i个存储节点,根据第i个存储节点的原始信息数据mi和Pi,得到系统MSR编码数据miPi;用相邻节点i-1和i+1中存储的系统MSR编码数据mi-1Pi-1和mi+1Pi+1,得到节点i中存储的局部性修复编码生成的冗余数据mi-1Pi-1+mi+1Pi+1。
具体地,所述步骤三中,根据局部性修复编码对修复组内节点进行故障修复,包括修复组内单节点i故障修复、修复组内两不相邻节点i-1和i+1故障修复和修复组内两相邻节点i和i+1故障修复。
具体地,所述修复组内单节点i故障修复,其具体方法包括:
节点i-1从节点i-2上采集数据mi-2Pi-2,与自身存储的数据mi-2Pi-2+miPi进行异或操作,恢复出数据miPi,并传送给节点i;节点i根据子矩阵GMSR_i中的Pi矩阵,恢复出原始信息数据mi,节点i从其相邻节点i-1和相邻节点i+1上分别采集数据mi-1Pi-1和mi+1Pi+1,并对采集到的数据进行异或操作,得到冗余数据mi-1Pi-1+mi+1Pi+1;
具体地,所述修复组内单节点i故障修复,其具体方法包括:
节点i+1从节点i+2上采集数据mi+2Pi+2,与自身存储的数据miPi+mi+2Pi+2进行异或操作,恢复出数据miPi,并传送给节点i;节点i根据子矩阵GMSR_i中的Pi矩阵,恢复出原始信息数据mi,节点i从其相邻节点i-1和相邻节点i+1上分别采集数据mi-1Pi-1和mi+1Pi+1,并对采集到的数据进行异或操作,得到冗余数据mi-1Pi-1+mi+1Pi+1。
具体地,组内两不相邻节点i-1和i+1故障修复,其具体方法包括:
对于故障节点i-1,通过节点i-3、i-2和节点i实现节点i-1上的数据重构,恢复出原始信息数据mi-1、系统MSR编码数据mi-1Pi-1和冗余数据mi-2Pi-2+miPi;节点i-2从节点i-3上采集数据mi-3Pi-3,与自己存储的数据mi-3Pi-3+mi-1Pi-1进行异或操作,恢复出数据mi-1Pi-1,并传送给节点i-1;节点i-1根据子矩阵GMSR_i-1中的Pi-1矩阵,恢复出原始信息数据mi-1;节点i-1从其相邻节点i-2和相邻节点i上分别采集数据mi-2Pi-2和miPi,并对采集到的数据进行异或操作,得到冗余数据mi-2Pi-2+miPi;
对于故障节点i+1,通过节点i和节点i+2、i+3实现节点i+1上的数据重构,恢复出原始信息数据mi+1和系统MSR编码数据mi+1Pi+1,以及冗余数据miPi+mi+2Pi+2;节点i+2从节点i+3上采集数据mi+3Pi+3,与自己存储的数据mi+1Pi+1+mi+3Pi+3进行异或操作,恢复出数据mi+1Pi+1,并传送给节点i+1;节点i+1根据子矩阵GMSR_i+1中的Pi+1矩阵,恢复出原始信息数据mi+1;节点i+1从其相邻节点i和相邻节点i+2上分别采集数据miPi和mi+2Pi+2,并对采集到的数据进行异或操作,得到冗余数据miPi+mi+2Pi+2。
具体地,所述组内两相邻节点i和i+1故障修复,其具体实现方法包括:
对于故障节点i,通过节点i-2和节点i-1,重构系统MSR编码数据miPi,进一步通过MSR编码矩阵GMSR_i,恢复原始信息数据mi;故障节点i+1通过节点i+2和i+3重构mi+1和mi+ 1Pi+1;在恢复出系统MSR编码数据miPi和mi+1Pi+1的基础上,节点i和i+1相互利用对方MSR编码数据,以及相邻节点i-1和i+2上的编码数据mi-1Pi-1和mi+2Pi+2,恢复出冗余数据mi-1Pi-1+mi+ 1Pi+1和miPi+mi+2Pi+2,实现故障节点上的数据重构;节点i-1从节点i-2上采集数据mi-2Pi-2,与自己存储的数据mi-2Pi-2+miPi进行异或操作,恢复出数据miPi,并传送给节点i;节点i根据子矩阵GMSR_i中的Pi矩阵,恢复出原始信息数据mi;节点i+2从节点i+3上采集数据mi+3Pi+3,与自己存储的数据mi+1Pi+1+mi+3Pi+3进行异或操作,恢复出数据mi+1Pi+1,并传送给节点i+1;节点i+1根据子矩阵GMSR_i+1中的Pi+1矩阵,恢复出原始信息数据mi+1;节点i从相邻节点i-1和相邻节点i+1上分别采集数据mi-1Pi-1和mi+1Pi+1,并对采集到的数据进行异或操作,得到冗余数据mi-1Pi-1+mi+1Pi+1;节点i+1从其相邻节点i和相邻节点i+2上分别采集数据miPi和mi+2Pi+2,并对采集到的数据进行异或操作,得到冗余数据miPi+mi+2Pi+2。
与现有技术相比,本发明具有以下技术效果:
1、考虑到存储系统中存储的数据量大,若采用非系统MSR码构造局部性修复编码,数据采集节点若要获取部分原始数据,需要对整个MSR码数据部分进行译码,将增加磁盘I/O开销以及带宽开销,为此在分布式存储系统中采用系统MSR码,存储节点存放原始数据副本,磁盘I/O开销和修复带宽开销比较低。
2、在本发明构造的基于系统最小存储再生码的局部性修复编码结构中,存储节点中冗余数据部分由前后两个存储节点的最小存储再生编码数据部分生成,基于此编码结构,当修复组中存在单节点、两相邻节点以及两不相邻节点故障时,都可以通过前后节点快速实现故障节点数据重构,恢复出故障节点数据。
附图说明
图1是本发明方法对应的基于系统MSR码的局部性修复编码结构图;
图2是本发明方法修复组内存在单节点故障时的节点修复示意图;图2(a)是修复方案一的修复示意图;图2(b)是修复方案二的修复示意图;
图3是本发明方法修复组内存在两不相邻节点故障时的节点修复示意图;
图4是本发明方法修复组内存在两相邻节点故障时的节点修复示意图;
图5是实施例中对应的基于系统MSR码的局部性修复编码结构图;
图6是实施例中修复组内存在单节点故障时的节点修复示意图;图6(a)是修复方案一的修复示意图;图6(b)是修复方案二的修复示意图;
图7是实施例中修复组内存在两不相邻节点故障时的节点修复示意图;
图8是实施例中修复组内存在两相邻节点故障时的节点修复示意图;
下面结合附图和实施例对本发明的方案做进一步详细地解释和说明。
具体实施方式
遵从上述技术方案,本发明的基于系统最小存储再生码的局部性修复编码方法,主要包括以下步骤:
步骤一,构造系统MSR码及其存储结构。
系统MSR码指的是系统最小存储再生码,记分布式存储系统中存储节点的原始信息数据中的信息符号有k位,生成的系统MSR码有n位,在有限域GF(q)中构造(n,k)系统MSR码,其中q代表有限域GF(q)中元素的个数,如果用n(k,q)表示n的最大值,则
当k≥q时,n(k,q)=k+1;当k<q时,有
用m=[m1 m2 … mk]表示分布式存储系统中存储节点的原始信息数据,其中的m1,m2,…,mk表示信息符号;c=[c1 c2 … cn]表示在分布式存储节点中存储的系统MSR码的生成码字,且c=m·GMSR,GMSR=[I|P]k×n表示(n,k)系统MSR码的生成矩阵,其中I为k×k单位矩阵,P为k×(n-k)维子矩阵。
则(n,k)系统MSR码可以表示为:
c=m·GMSR=m·[I|P]k×n=[m|mP]
则(n,k)系统MSR码的存储结构可以表示为:
存储节点 |
m |
mP |
设α1,α2,…,αn-k为GF(q)中的n-k个非零元素,则(n,k)系统MSR码的生成矩阵GMSR可以表示为:
步骤二,构造基于系统MSR码的局部性修复编码。
将步骤一构造出来的(n,k)系统MSR码作为局部码,在分布式存储系统的存储节点中选取f个存储节点构成修复组,在该具有f个存储节点的修复组内构造局部性修复编码,确保最大距离可分(Maximum Distance Separable,MDS)性质以及简单修复特性。具体地,用节点i表示f个存储节点中的第i个节点,m1,m2…mf表示修复组内f个存储节点的原始信息数据,且mi=[mi1,mi2,…,mik];给定修复组内f个存储节点的(n,k)系统MSR码的生成矩阵GMSR_1,GMSR_2,…,GMSR_f,得到对应的P1,P2,…,Pf;以节点i为例,根据第i个存储节点的原始信息数据mi和Pi,得到(n,k)系统MSR编码数据miPi;用相邻节点i-1和i+1中存储的(n,k)系统MSR编码数据mi-1Pi-1和mi+1Pi+1,得到节点i中存储的局部性修复编码生成的冗余数据mi-1Pi-1+mi+1Pi+1;基于(n,k)系统MSR码的局部性修复编码的具体结构如图1所示。由图1可知,(n,k)系统MSR编码数据的生成矩阵G为:
其中GMSR_i=[I|Pi]k×n(i=1,2,…,f)。
冗余数据生成矩阵Q为:
步骤三,修复组内节点故障修复。
下文中描述的三种情况,其中的节点i为f个存储节点的修复组内的任意节点,若在具体的节点修复过程中,节点i的相邻节点i-k≤0(k=1,2,3)时,则此时相邻节点i-k用节点i+f-k代替;同样地,若在具体节点修复过程中,节点i的相邻节点i+k>f(k=1,2,3),则此时相邻节点i+k用节点i-f+k代替。
情况一:修复组内单节点故障修复
假定存在f个存储节点的修复组内节点i出现故障,如图2所示,可以通过前后三个节点重构节点i中的MSR编码数据miPi和冗余数据mi-1Pi-1+mi+1Pi+1。
节点i修复方案有两种,修复方案一,参见图2(a),节点i-1从节点i-2上采集数据mi-2Pi-2,与自己存储的数据mi-2Pi-2+miPi进行异或操作,恢复出数据miPi,并传送给节点i。节点i根据子矩阵GMSR_i中的Pi矩阵,恢复出原始信息数据mi。同时,节点i从其相邻节点i-1和相邻节点i+1上分别采集数据mi-1Pi-1和mi+1Pi+1,并对采集到的数据进行异或操作,得到冗余数据mi-1Pi-1+mi+1Pi+1。
修复方案二,参见图2(b),节点i+1从节点i+2上采集数据mi+2Pi+2,与自己存储的数据miPi+mi+2Pi+2进行异或操作,恢复出数据miPi,并传送给节点i。节点i根据子矩阵GMSR_i中的Pi矩阵,恢复出原始信息数据mi。同时,节点i从其相邻节点i-1和相邻节点i+1上分别采集数据mi-1Pi-1和mi+1Pi+1,并对采集到的数据进行异或操作,得到冗余数据mi-1Pi-1+mi+1Pi+1。
鉴于图1中基于系统MSR码的局部性修复编码结构,若节点1出现故障,可以通过节点f-1、节点f和节点2实现数据重构,或者通过节点f、节点2和节点3实现数据重构;若节点f出现故障,可以通过节点f-1、节点1和节点2实现数据重构,或者通过节点f-1、节点f-2和节点1实现数据重构。
情况二:修复组内两不相邻节点故障修复
图3给出了分布式存储系统修复组内两不相邻节点故障修复的一般模型,其中两不相邻节点i-1和i+1发生故障。对于故障节点i-1,可以通过前面两个节点i-3、i-2和后面一个节点i实现节点i-1上的数据重构,恢复出原始信息数据mi-1、系统MSR编码数据mi-1Pi-1和冗余数据mi-2Pi-2+miPi;节点i-2从节点i-3上采集数据mi-3Pi-3,与自己存储的数据mi-3Pi-3+mi-1Pi-1进行异或操作,恢复出数据mi-1Pi-1,并传送给节点i-1。节点i-1根据子矩阵GMSR_i-1中的Pi-1矩阵,恢复出原始信息数据mi-1。同时,节点i-1从其相邻节点i-2和相邻节点i上分别采集数据mi-2Pi-2和miPi,并对采集到的数据进行异或操作,得到冗余数据mi-2Pi-2+miPi。
对于故障节点i+1,可以通过前面一个节点i和后面两个节点i+2、i+3实现节点i+1上的数据重构,恢复出原始信息数据mi+1和系统MSR编码数据mi+1Pi+1,以及冗余数据miPi+mi+ 2Pi+2。节点i+2从节点i+3上采集数据mi+3Pi+3,与自己存储的数据mi+1Pi+1+mi+3Pi+3进行异或操作,恢复出数据mi+1Pi+1,并传送给节点i+1。节点i+1根据子矩阵GMSR_i+1中的Pi+1矩阵,恢复出原始信息数据mi+1。同时,节点i+1从其相邻节点i和相邻节点i+2上分别采集数据miPi和mi+ 2Pi+2,并对采集到的数据进行异或操作,得到冗余数据miPi+mi+2Pi+2。
情况三,修复组内两相邻节点故障修复
图4给出了分布式存储系统修复组内两相邻节点故障修复的一般模型,修复组内两相邻节点i和i+1发生故障。对于故障节点i,可以通过节点i-2和节点i-1,重构MSR编码数据miPi,进一步通过MSR编码矩阵GMSR_i,恢复原始信息数据mi;同样地,故障节点i+1通过节点i+2和i+3重构mi+1和mi+1Pi+1。在恢复出编码数据miPi和mi+1Pi+1的基础上,节点i和i+1相互利用对方MSR编码数据,以及相邻节点i-1和i+2上的编码数据mi-1Pi-1和mi+2Pi+2,恢复出冗余数据mi-1Pi-1+mi+1Pi+1和miPi+mi+2Pi+2,实现故障节点上的数据重构。节点i-1从节点i-2上采集数据mi-2Pi-2,与自己存储的数据mi-2Pi-2+miPi进行异或操作,恢复出数据miPi,并传送给节点i。节点i根据子矩阵GMSR_i中的Pi矩阵,恢复出原始信息数据mi。同时,节点i+2从节点i+3上采集数据mi+3Pi+3,与自己存储的数据mi+1Pi+1+mi+3Pi+3进行异或操作,恢复出数据mi+1Pi+1,并传送给节点i+1。节点i+1根据子矩阵GMSR_i+1中的Pi+1矩阵,恢复出原始信息数据mi+1。进一步地,节点i从相邻节点i-1和相邻节点i+1上分别采集数据mi-1Pi-1和mi+1Pi+1,并对采集到的数据进行异或操作,得到冗余数据mi-1Pi-1+mi+1Pi+1。同样地,节点i+1从其相邻节点i和相邻节点i+2上分别采集数据miPi和mi+2Pi+2,并对采集到的数据进行异或操作,得到冗余数据miPi+mi+2Pi+2。
从上述步骤可以看出,本发明方法采用如图1所示基于系统MSR码的局部性修复编码结构,存储节点存放原始信息数据、系统MSR编码数据以及局部性修复编码生成的冗余数据。当修复组内存在单节点故障、两相邻节点故障以及两不相邻节点故障时,都可以通过前后节点快速实现故障节点数据重构,恢复出故障节点数据。
实施例:
本实施例为在有限域GF(8)中构造(7,4系)统MSR码,用m=[m1 m2 m3 m4]表示分布式存储系统中存储节点的原始信息数据,其中的m1,m2,…,m4表示信息符号;c=[c1 c2 …c7]表示在分布式存储节点中存储的系统MSR码的生成码字,且c=m·GMSR,这里(7,4)系统MSR码的生成矩阵GMSR=[I|P]4×7,其中I为4×4单位矩阵,P为4×3维子矩阵。(7,4)系统MSR码可以表示为
c=m·GMSR=m·[I|P]4×7=[m|mP]
(7,4)系统MSR码的结构可以表示为:
存储节点 |
m |
mP |
设α1,α2,α3为GF(8)中的3个非零元素,则(7,4)系统MSR码的生成矩阵为
将构造出来的(7,4)系统MSR码作为局部码,在分布式存储系统的存储节点中选取f=10个存储节点构成修复组,在该具有10个存储节点的修复组内构造局部性修复编码,确保MDS性质以及简单修复特性,构造的基于(7,4)系统MSR码的局部性修复编码的具体结构如图5所示。由图5可知,(7,4)系统MSR编码数据的生成矩阵G为:
其中GMSR_i=[I|Pi]4×7(i=1,2,…,10)。
冗余数据生成矩阵Q为:
图6给出了具有10个存储节点修复组中节点5出现故障,有两种修复方案。修复方案一,参见图6(a),节点4从节点3上采集数据m3P3,与自己存储的数据m3P3+m5P5进行异或操作,恢复出数据m5P5,并传送给节点5。节点5根据子矩阵GMSR_5中的P5矩阵,恢复出原始信息数据m5。同时,节点5从其相邻节点4和相邻节点6上分别采集数据m4P4和m6P6,并对采集到的数据进行异或操作,得到冗余数据m4P4+m6P6,实现故障节点5中的数据重构。
修复方案二,参见图6(b),节点6从节点7上采集数据m7P7,与自己存储的数据m5P5+m7P7进行异或操作,恢复出数据m5P5,并传送给节点5。节点5根据子矩阵GMSR_5中的P5矩阵,恢复出原始信息数据m5。同时,节点5从其相邻节点4和相邻节点6上分别采集数据m4P4和m6P6,并对采集到的数据进行异或操作,得到冗余数据m4P4+m6P6,实现故障节点5中的数据重构。
图7给出了具有10个存储节点修复组中两不相邻节点4和6故障修复。对于故障节点4,可以通过节点2、节点3和节点5实现节点4上的数据重构,恢复出原始信息数据m4、系统MSR编码数据m4P4和冗余数据m3P3+m5P5。具体地,节点3从节点2上采集数据m2P2,与自己存储的数据m2P2+m4P4进行异或操作,恢复出数据m4P4,并传送给节点4。节点4根据子矩阵GMSR_4中的P4矩阵,恢复出原始信息数据m4。同时,节点4从其相邻节点3和相邻节点5上分别采集数据m3P3和m5P5,并对采集到的数据进行异或操作,得到冗余数据m3P3+m5P5,实现故障节点4中的数据重构。
对于故障节点6,可以通过节点5和节点7、节点8实现节点6上的数据重构,恢复出原始信息数据m6和系统MSR编码数据m6P6,以及冗余数据m5P5+m7P7。具体地,节点7从节点8上采集数据m8P8,与自己存储的数据m6P6+m8P8进行异或操作,恢复出数据m6P6,并传送给节点6。节点6根据子矩阵GMSR_6中的P6矩阵,恢复出原始信息数据m6。同时,节点6从其相邻节点5和相邻节点7上分别采集数据m5P5和m7P7,并对采集到的数据进行异或操作,得到冗余数据m5P5+m7P7,实现故障节点6中的数据重构。
图8给出了具有10个存储节点修复组中两相邻节点5和6故障修复。对于故障节点5,节点4从节点3上采集数据m3P3,与自己存储的数据m3P3+m5P5进行异或操作,恢复出数据m5P5,并传送给节点5。节点5根据子矩阵GMSR_5中的P5矩阵,恢复出原始信息数据m5;同样地,故障节点6通过节点7和节点8重构m6和m6P6,节点7从节点8上采集数据m8P8,与自己存储的数据m6P6+m8P8进行异或操作,恢复出数据m6P6,并传送给节点6。节点6根据子矩阵GMSR_6中的P6矩阵,恢复出原始信息数据m6。进一步地,节点5从相邻节点4和相邻节点6上分别采集数据m4P4和m6P6,并对采集到的数据进行异或操作,得到冗余数据m4P4+m6P6。同样地,节点6从其相邻节点5和相邻节点7上分别采集数据m5P5和m7P7,并对采集到的数据进行异或操作,得到冗余数据m5P5+m7P7。至此,实现了故障节点5和故障节点6中的数据重构。
Claims (7)
1.一种基于系统最小存储再生码的局部性修复编码方法,其特征在于,具体包括以下步骤:
步骤一,构造系统MSR码及其存储结构
分布式存储系统中存储节点的原始信息数据中的信息符号有k位,生成的系统MSR码有n位,构造(n,k)系统MSR码,则(n,k)系统MSR码c为:
c=m·GMSR
上式中,m=[m1 m2 L mk],表示分布式存储系统中存储节点的原始信息数据,m1,m2,L,mk表示信息符号;GMSR=[I|P]k×n,表示(n,k)系统MSR码的生成矩阵,其中I为k×k单位矩阵,P为k×(n-k)维子矩阵;
根据(n,k)系统MSR码c得到(n,k)系统MSR码的存储结构;
步骤二,构造基于系统MSR码的局部性修复编码
将步骤一得到的系统MSR码作为局部码,在分布式存储系统的存储节点中选取f个存储节点构成修复组,在具有该f个存储节点的修复组内构造局部性修复编码;
步骤三,修复组内节点故障修复
根据局部性修复编码对修复组内节点进行故障修复。
2.如权利要求1所述的基于系统最小存储再生码的局部性修复编码方法,其特征在于,所述步骤二的具体实现方法包括:
将步骤一构造出来的系统MSR码作为局部码,给定修复组中f个存储节点的原始信息数据m1,m2,L,mf;给定修复组中f个存储节点的系统MSR码的生成矩阵GMSR_1,GMSR_2,L,GMSR_f,得到对应的P1,P2,L,Pf;节点i为f个存储节点中的第i个存储节点,根据第i个存储节点的原始信息数据mi和Pi,得到系统MSR编码数据miPi;用相邻节点i-1和i+1中存储的系统MSR编码数据mi-1Pi-1和mi+1Pi+1,得到节点i中存储的局部性修复编码生成的冗余数据mi-1Pi-1+mi+1Pi+1。
3.如权利要求1所述的基于系统最小存储再生码的局部性修复编码方法,其特征在于,所述步骤三中,根据局部性修复编码对修复组内节点进行故障修复,包括修复组内单节点i故障修复、修复组内两不相邻节点i-1和i+1故障修复和修复组内两相邻节点i和i+1故障修复。
4.如权利要求3所述的基于系统最小存储再生码的局部性修复编码方法,其特征在于,所述修复组内单节点i故障修复,其具体方法包括:
节点i-1从节点i-2上采集数据mi-2Pi-2,与自身存储的数据mi-2Pi-2+miPi进行异或操作,恢复出数据miPi,并传送给节点i;节点i根据子矩阵GMSR_i中的Pi矩阵,恢复出原始信息数据mi,节点i从其相邻节点i-1和相邻节点i+1上分别采集数据mi-1Pi-1和mi+1Pi+1,并对采集到的数据进行异或操作,得到冗余数据mi-1Pi-1+mi+1Pi+1。
5.如权利要求3所述的基于系统最小存储再生码的局部性修复编码方法,其特征在于,所述修复组内单节点i故障修复,其具体方法包括:
节点i+1从节点i+2上采集数据mi+2Pi+2,与自身存储的数据miPi+mi+2Pi+2进行异或操作,恢复出数据miPi,并传送给节点i;节点i根据子矩阵GMSR_i中的Pi矩阵,恢复出原始信息数据mi,节点i从其相邻节点i-1和相邻节点i+1上分别采集数据mi-1Pi-1和mi+1Pi+1,并对采集到的数据进行异或操作,得到冗余数据mi-1Pi-1+mi+1Pi+1。
6.如权利要求3所述的基于系统最小存储再生码的局部性修复编码方法,其特征在于,组内两不相邻节点i-1和i+1故障修复,其具体方法包括:
对于故障节点i-1,通过节点i-3、i-2和节点i实现节点i-1上的数据重构,恢复出原始信息数据mi-1、系统MSR编码数据mi-1Pi-1和冗余数据mi-2Pi-2+miPi;节点i-2从节点i-3上采集数据mi-3Pi-3,与自己存储的数据mi-3Pi-3+mi-1Pi-1进行异或操作,恢复出数据mi-1Pi-1,并传送给节点i-1;节点i-1根据子矩阵GMSR_i-1中的Pi-1矩阵,恢复出原始信息数据mi-1;节点i-1从其相邻节点i-2和相邻节点i上分别采集数据mi-2Pi-2和miPi,并对采集到的数据进行异或操作,得到冗余数据mi-2Pi-2+miPi;
对于故障节点i+1,通过节点i和节点i+2、i+3实现节点i+1上的数据重构,恢复出原始信息数据mi+1和系统MSR编码数据mi+1Pi+1,以及冗余数据miPi+mi+2Pi+2;节点i+2从节点i+3上采集数据mi+3Pi+3,与自己存储的数据mi+1Pi+1+mi+3Pi+3进行异或操作,恢复出数据mi+1Pi+1,并传送给节点i+1;节点i+1根据子矩阵GMSR_i+1中的Pi+1矩阵,恢复出原始信息数据mi+1;节点i+1从其相邻节点i和相邻节点i+2上分别采集数据miPi和mi+2Pi+2,并对采集到的数据进行异或操作,得到冗余数据miPi+mi+2Pi+2。
7.如权利要求3所述的基于系统最小存储再生码的局部性修复编码方法,其特征在于,所述组内两相邻节点i和i+1故障修复,其具体实现方法包括:
对于故障节点i,通过节点i-2和节点i-1,重构系统MSR编码数据miPi,进一步通过MSR编码矩阵GMSR_i,恢复原始信息数据mi;故障节点i+1通过节点i+2和i+3重构mi+1和mi+1Pi+1;在恢复出系统MSR编码数据miPi和mi+1Pi+1的基础上,节点i和i+1相互利用对方MSR编码数据,以及相邻节点i-1和i+2上的编码数据mi-1Pi-1和mi+2Pi+2,恢复出冗余数据mi-1Pi-1+mi+1Pi+1和miPi+mi+2Pi+2,实现故障节点上的数据重构;节点i-1从节点i-2上采集数据mi-2Pi-2,与自己存储的数据mi-2Pi-2+miPi进行异或操作,恢复出数据miPi,并传送给节点i;节点i根据子矩阵GMSR_i中的Pi矩阵,恢复出原始信息数据mi;节点i+2从节点i+3上采集数据mi+3Pi+3,与自己存储的数据mi+1Pi+1+mi+3Pi+3进行异或操作,恢复出数据mi+1Pi+1,并传送给节点i+1;节点i+1根据子矩阵GMSR_i+1中的Pi+1矩阵,恢复出原始信息数据mi+1;节点i从相邻节点i-1和相邻节点i+1上分别采集数据mi-1Pi-1和mi+1Pi+1,并对采集到的数据进行异或操作,得到冗余数据mi-1Pi-1+mi+ 1Pi+1;节点i+1从其相邻节点i和相邻节点i+2上分别采集数据miPi和mi+2Pi+2,并对采集到的数据进行异或操作,得到冗余数据miPi+mi+2Pi+2。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510589073.3A CN105260259B (zh) | 2015-09-16 | 2015-09-16 | 一种基于系统最小存储再生码的局部性修复编码方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510589073.3A CN105260259B (zh) | 2015-09-16 | 2015-09-16 | 一种基于系统最小存储再生码的局部性修复编码方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105260259A CN105260259A (zh) | 2016-01-20 |
CN105260259B true CN105260259B (zh) | 2018-01-02 |
Family
ID=55099959
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510589073.3A Expired - Fee Related CN105260259B (zh) | 2015-09-16 | 2015-09-16 | 一种基于系统最小存储再生码的局部性修复编码方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105260259B (zh) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106788454B (zh) * | 2016-11-29 | 2020-04-24 | 陕西尚品信息科技有限公司 | 一种局部性不相等码的构造方法 |
CN106776112B (zh) * | 2017-02-09 | 2019-08-02 | 长安大学 | 一种基于Pyramid码的局部性修复编码方法 |
CN107171865A (zh) * | 2017-06-30 | 2017-09-15 | 郑州云海信息技术有限公司 | 一种多节点存储系统以及LUN ownernode切换方法 |
CN108628697B (zh) * | 2017-12-15 | 2021-05-04 | 深圳大学 | 一种基于二进制的节点修复方法及系统 |
CN108647108B (zh) * | 2018-03-21 | 2021-04-13 | 长安大学 | 一种基于循环vfrc的最小带宽再生码的构造方法 |
CN108683422B (zh) * | 2018-03-27 | 2021-08-27 | 长安大学 | 一种可容多错交叉循环卷积码的局部性修复编码方法 |
CN108762978B (zh) * | 2018-03-29 | 2021-03-26 | 长安大学 | 一种局部部分重复循环码的分组构造方法 |
US11500725B2 (en) * | 2018-07-10 | 2022-11-15 | Here Data Technology | Methods for data recovery of a distributed storage system and storage medium thereof |
CN110178122B (zh) * | 2018-07-10 | 2022-10-21 | 深圳花儿数据技术有限公司 | 分布式存储系统的数据同步修复方法及存储介质 |
CN109062724B (zh) * | 2018-07-21 | 2019-04-05 | 湖北大学 | 一种纠删码转换方法及终端 |
CN109151054B (zh) * | 2018-09-21 | 2021-03-23 | 长安大学 | 一种层次码的构造方法及故障节点的修复方法 |
CN109684127A (zh) * | 2018-12-29 | 2019-04-26 | 西安电子科技大学 | 基于完全图最小带宽再生码的局部性节点修复方法 |
CN111971945A (zh) * | 2019-04-03 | 2020-11-20 | 东莞理工学院 | 一种用于数据中心的机架感知再生码 |
CN110750382B (zh) * | 2019-09-18 | 2020-10-30 | 华中科技大学 | 用于提高数据修复性能的最小存储再生码编码方法及系统 |
CN110781163B (zh) * | 2019-09-29 | 2023-01-17 | 长安大学 | 基于完全图的异构部分重复码构造及故障节点修复方法 |
CN113419895B (zh) * | 2021-07-21 | 2022-06-14 | 广东工业大学 | 一种降低储存集群系统中修复开销的优化方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103688515A (zh) * | 2013-03-26 | 2014-03-26 | 北京大学深圳研究生院 | 一种最小带宽再生码的编码和存储节点修复方法 |
CN103688514A (zh) * | 2013-02-26 | 2014-03-26 | 北京大学深圳研究生院 | 一种最小存储再生码的编码和存储节点修复方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7155721B2 (en) * | 2002-06-28 | 2006-12-26 | Hewlett-Packard Development Company, L.P. | Method and apparatus for communicating information between lock stepped processors |
WO2014059651A1 (zh) * | 2012-10-19 | 2014-04-24 | 北京大学深圳研究生院 | 一种射影自修复码的编码、数据重构及修复方法 |
-
2015
- 2015-09-16 CN CN201510589073.3A patent/CN105260259B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103688514A (zh) * | 2013-02-26 | 2014-03-26 | 北京大学深圳研究生院 | 一种最小存储再生码的编码和存储节点修复方法 |
CN103688515A (zh) * | 2013-03-26 | 2014-03-26 | 北京大学深圳研究生院 | 一种最小带宽再生码的编码和存储节点修复方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105260259A (zh) | 2016-01-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105260259B (zh) | 一种基于系统最小存储再生码的局部性修复编码方法 | |
CN106776129B (zh) | 一种基于最小存储再生码的多节点数据文件的修复方法 | |
CN103336785B (zh) | 一种基于网络编码的分布式存储方法及其装置 | |
CN104871138B (zh) | 用于多维raid重构和缺陷避免的方法和系统 | |
CN104052576B (zh) | 一种云存储下基于纠错码的数据恢复方法 | |
CN103688514B (zh) | 一种最小存储再生码的编码和存储节点修复方法 | |
CN103392172B (zh) | 纠正存储阵列中的擦除 | |
CN108540520A (zh) | 基于部分重复码的局部性修复编码及节点故障修复方法 | |
CN106776112B (zh) | 一种基于Pyramid码的局部性修复编码方法 | |
CN103729151B (zh) | 一种基于改进型纠删码的失效数据修复方法 | |
US20210271557A1 (en) | Data encoding, decoding and recovering method for a distributed storage system | |
CN110178122B (zh) | 分布式存储系统的数据同步修复方法及存储介质 | |
CN104461781A (zh) | 一种基于纠删码的数据块重建方法 | |
WO2014153716A1 (zh) | 一种最小带宽再生码的编码和存储节点修复方法 | |
CN107844272A (zh) | 一种提高纠错能力的交叉分组编译码方法 | |
CN103746774B (zh) | 一种高效数据读取的容错编码方法 | |
CN103607304A (zh) | 一种基于纠删码的失效数据线形修复方法 | |
CN103761171B (zh) | 一种针对二进制编码冗余存储系统的低带宽数据重构方法 | |
CN108762978B (zh) | 一种局部部分重复循环码的分组构造方法 | |
CN110389848B (zh) | 基于分块构造的部分重复码构造方法及故障节点修复方法 | |
CN106484559A (zh) | 一种校验矩阵的构造方法及水平阵列纠删码的构造方法 | |
CN108228382A (zh) | 一种针对evenodd码单盘故障的数据恢复方法 | |
CN101251812A (zh) | 一种应用于集群系统数据容错的方法 | |
CN110895497A (zh) | 一种分布式存储中降低纠删码修复的方法及装置 | |
CN104102558B (zh) | 一种基于纠删码的文件追加方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into 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: 20180102 Termination date: 20190916 |
|
CF01 | Termination of patent right due to non-payment of annual fee |