CN108762978B - 一种局部部分重复循环码的分组构造方法 - Google Patents
一种局部部分重复循环码的分组构造方法 Download PDFInfo
- Publication number
- CN108762978B CN108762978B CN201810269452.8A CN201810269452A CN108762978B CN 108762978 B CN108762978 B CN 108762978B CN 201810269452 A CN201810269452 A CN 201810269452A CN 108762978 B CN108762978 B CN 108762978B
- Authority
- CN
- China
- Prior art keywords
- nodes
- node
- data block
- coded data
- local repair
- 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
Images
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
-
- 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
Abstract
本发明公开了一种局部部分重复循环码的分组构造方法,该方法的节点中冗余数据部分由前后两相邻节点的数据块简单复制生成,采用部分重复循环码作为局部码,在局部组内修复单节点故障过程中减少了连接存活节点数,则整个系统在修复故障节点过程中连接存活节点数也相应减少。
Description
技术领域
本发明属于计算机领域,涉及一种局部部分重复循环码的分组构造方法。
背景技术
信息数据的海量化使得分布式存储系统规模变大,为了确保数据的可用性,存储系统通常采用“复制”生成冗余数据,然而“复制”的冗余策略产生的存储代价过高,需要存储大量副本数据确保系统的高可靠性;为了确保数据的可靠性,通常采用“纠删码”策略,与复制策略相比,纠删码可以使分布式存储系统的存储开销达到最优,但是在修复单个故障节点过程中必须还原整个文件,带宽开销过大。针对“复制”和“纠删码”冗余策略存在的局限性,提出了再生码,但再生码在故障节点修复过程中连接的节点数量较多,具有较高的磁盘I/O开销。
发明内容
针对上述现有技术中存在的问题,本发明的目的在于,提供一种局部部分重复循环码的分组构造方法,该方法能够降低故障节点修复过程中的磁盘I/O开销和故障节点修复过程中的带宽开销。
为了实现上述目的,本发明采用如下技术方案:
一种局部部分重复循环码的分组构造方法,该方法用于将原始文件M存储到分布式存储系统的节点中,分布式存储系统的节点至少包括N个,包括以下步骤:
步骤1,将原始文件M分成多个数据块,将多个数据块分成m组,每组包括k个数据块;
步骤2,将分布式存储系统中的N个节点分成m个局部修复组,每个局部修复组包括n个节点V1...,Vi,...Vn,其中,Vi表示局部修复组内第i个节点,具体方法如下:
当N除以4的余数为0时,m个局部修复组中的每个局部修复组包括n=4个节点;
当N除以4的余数为1时,前m-1个局部修复组中每个局部修复组包括n=4个节点,第m个局部修复组包括n=5个节点;
当N除以4的余数为2时,前m-2个局部修复组中每个局部修复组包括n=4个节点,第m-1个局部修复组和第m个局部修复组分别包括n=5个节点,或者,前m-1个局部修复组中每个局部修复组包括n=4个节点,第m个局部修复组包括n=6个节点;
当N除以4的余数为3时,前m-3个局部修复组中每个局部修复组包括n=4个节点,第m-2个局部修复组、第m-1个局部修复组和第m个局部修复组分别包括n=5个节点,或者前m-2个局部修复组中每个局部修复组包括n=4个节点,第m-1个局部修复组和第m个局部修复组中一个局部修复组包括n=6个节点,另一个局部修复组包括5个节点;
步骤3,将步骤1得到的每组中的k个数据块存储到步骤2中的一个局部修复组中的n个节点上,采用的方法如下:
节点V1上存储的编码数据块为C1、C2和C5;节点V2上存储的编码数据块为C2、C3和C6;节点V3上存储的编码数据块为C3、C4和C6;节点V4上存储的编码数据块为C4、C5和C1;
节点V1上存储的编码数据块为C1、C2和C7;节点V2上存储的编码数据块为C2、C3和C8;节点V3上存储的编码数据块为C3、C4和C8;节点V4上存储的编码数据块为C4、C5和C9;节点V5上存储的编码数据块为C5、C6和C9;节点V6上存储的编码数据块为C6、C7和C1;
节点V1上存储的编码数据块为C1、C2和C6;节点V2上存储的编码数据块为C2、C3和C7;节点V3上存储的编码数据块为C3、C4和C7;节点V4上存储的编码数据块为C4、C5和C7;节点V5上存储的编码数据块为C5、C6和C1。
本发明还提供一种节点的故障修复方法,包括以下步骤:
按照权利要求1所述的局部部分重复循环码的分组构造方法将原始文件M存储到分布式存储系统的N个节点中,分布式存储系统中的N个节点分成m个局部修复组;
若局部修复组中的第i个节点Vi发生故障,采集相邻节点Vi-1和Vi+1上的节点Vi上存储的编码数据块,将采集到的编码数据块传送给节点Vi,即可实现节点Vi的故障修复。
与现有技术相比,本发明具有以下技术效果:本发明节点中冗余数据部分由前后两相邻节点的数据块简单复制生成,当修复组中存在单节点故障时,可以通过相邻节点快速实现故障节点的数据重构,修复过程运算简单。
下面结合附图和实施例对本发明的方案做进一步详细地解释和说明。
附图说明
图1是实施例中存储系统具有4个节点的局部修复组中单节点2出现故障的修复示意图;
图2是实施例中存储系统具有5个节点的局部修复组中单节点4出现故障的修复示意图;
图3是实施例中局部修复组包含4个节点的单节点故障修复的局部示意图;
图4是实施例中传统分段复制方法对应的局部修复组包含4个节点的单节点故障修复的局部示意图;
图5是实施例中本发明方法对应的局部修复组包含5个节点的单节点故障修复的局部示意图;
图6是实施例中传统分段复制方法对应的修复组包含5个节点的单节点故障修复的局部示意图;
具体实施方式
本发明提供一种局部部分重复循环码的分组构造方法,该方法用于将原始文件M存储到分布式存储系统的节点中,分布式存储系统的节点至少包括N个,该方法具体包括以下步骤:
步骤1,将原始文件M分成多个数据块,将多个数据块分成m组,每组包括k个数据块;
步骤2,将分布式存储系统中的N个节点分成m个局部修复组,每个局部修复组包括n个节点V1...,Vi,...Vn,其中,Vi表示局部修复组内第i个节点,具体方法如下:
当N除以4的余数为0时,m个局部修复组中的每个局部修复组包括n=4个节点;
当N除以4的余数为1时,前m-1个局部修复组中每个局部修复组包括n=4个节点,第m个局部修复组包括n=5个节点;
当N除以4的余数为2时,前m-2个局部修复组中每个局部修复组包括n=4个节点,第m-1个局部修复组和第m个局部修复组分别包括n=5个节点,或者前m-1个局部修复组中每个局部修复组包括n=4个节点,第m个局部修复组包括n=6个节点;
当N除以4的余数为3时,前m-3个局部修复组中每个局部修复组包括n=4个节点,第m-2个局部修复组、第m-1个局部修复组和第m个局部修复组分别包括n=5个节点,或者前m-2个局部修复组中每个局部修复组包括n=4个节点,第m-1个局部修复组和第m个局部修复组中一个局部修复组包括n=6个节点,另一个局部修复组包括5个节点。
步骤3,将步骤1得到的每组中的k个数据块存储到步骤2中的一个局部修复组中的节点上,采用的方法如下:
节点V1上存储的编码数据块为C1、C2和C5;节点V2上存储的编码数据块为C2、C3和C6;节点V3上存储的编码数据块为C3、C4和C6;节点V4上存储的编码数据块为C4、C5和C1;
节点V1上存储的编码数据块为C1、C2和C7;节点V2上存储的编码数据块为C2、C3和C8;节点V3上存储的编码数据块为C3、C4和C8;节点V4上存储的编码数据块为C4、C5和C9;节点V5上存储的编码数据块为C5、C6和C9;节点V6上存储的编码数据块为C6、C7和C1;
节点V1上存储的编码数据块为C1、C2和C6;节点V2上存储的编码数据块为C2、C3和C7;节点V3上存储的编码数据块为C3、C4和C7;节点V4上存储的编码数据块为C4、C5和C7;节点V5上存储的编码数据块为C5、C6和C1。
本发明的另一个方面还提供一种节点故障修复方法,包括以下步骤:
按照上述局部部分重复循环码的分组构造方法将将原始文件M存储到分布式存储系统的节点中;
若局部修复组中的节点Vi发生故障,采集相邻节点Vi-1和Vi+1上的节点Vi上存储的编码数据块,将采集到的编码数据块传送给节点Vi,即可实现节点Vi的故障修复。
随着存储数据的海量化,分布式存储系统中的节点也相应增多,若采用传统的分段复制局部性修复编码,在修复故障节点的过程中需要连接较多的存活节点来恢复数据,将增加节点的访问开销以及带宽开销,为此本发明采用部分重复循环码作为局部码,在局部组内修复单节点故障过程中减少了连接存活节点数,则整个系统在修复故障节点过程中连接存活节点数也相应减少。
实施例1
将大小为M=120M的文件存储于分布式存储系统中,首先对整个系统的节点数N=120进行分组,每组含n=4个节点,分为m=30组,每组所存储的文件数据块个数为k=4,在有限域GF(8)中构造(6,4)MDS码,生成6个编码数据块,用m=[m1 m2 m3 m4]表示分布式存储系统中存储节点的原始信息数据,其中的m1,m2,…,m4表示信息符号;c=[c1 c2 … c6]表示在分布式存储节点中存储的MDS码的生成码字,且c=m·GMDS,这里的(6,4)MDS码的生成矩阵GMDS=[I|P]4×6,其中I为4×4单位矩阵,P为4×2维子矩阵。(6,4)MDS码可以表示为:
c=m·GMDS=m·[I|P]4×6
在含n=4个存储节点的局部修复组内,将通过(6,4)MDS编码得到的6个编码数据块,分别复制一次,以重复循环的方式存储于4个节点中,在该具有4个存储节点的局部修复组内构造局部性修复编码,确保MDS性质以及简单修复特性。
图1给出了分布式存储系统中含n=4个存储节点的局部修复组中单节点2出现故障的修复方案。从节点1和节点3上分别采集数据2和3、6,并传送给节点2,完成节点2的修复,在此过程中连接的存活节点数为2(修复局部性为2),如图3所示,较传统的基于分段复制的局部性修复(修复局部性为3),如图4所示,减少了节点的访问开销。
实施例2
将大小为M=120M的文件存储于分布式存储系统中,此时整个系统的节点数N=121,对其进行分组,分为m=30组,每组含n=4个节点,最后一组含n=5个节点,每组所存储的文件数据块个数为k=4,存储系统的前29个局部组同实施例1;最后一组含n=5个存储节点的局部修复组内采用实施例1方法构造(7,4)MDS码,将生成的7个编码数据块,分别复制一次,得到两个副本,以重复循环的方式存储于5个节点中,由于存储节点数为奇数5,每个节点存储三份数据,存储总数为15,则将第7个编码数据块复制两次,得到其三个副本,其中一份存放于节点4,在该具有5个存储节点的局部修复组内构造局部性修复编码,确保MDS性质以及简单修复特性。
图2给出了分布式存储系统中含n=5个存储节点的局部修复组中单节点4出现故障的修复方案。从节点3和节点5上分别采集数据4、7和5,并传送给节点4,完成节点4的修复,在此过程中连接的存活节点数为2(修复局部性为2),如图5所示,较传统的基于分段复制的局部性修复(修复局部性为3),如图6所示,减少了节点的访问开销。
Claims (2)
1.一种局部部分重复循环码的分组构造方法,该方法用于将原始文件M存储到分布式存储系统的节点中,分布式存储系统的节点至少包括N个,其特征在于,包括以下步骤:
步骤1,将原始文件M分成多个数据块,将多个数据块分成m组,每组包括k个数据块;
步骤2,将分布式存储系统中的N个节点分成m个局部修复组,每个局部修复组包括n个节点V1...,Vi,...Vn,其中,Vi表示局部修复组内第i个节点,具体方法如下:
当N除以4的余数为0时,m个局部修复组中的每个局部修复组包括n=4个节点;
当N除以4的余数为1时,前m-1个局部修复组中每个局部修复组包括n=4个节点,第m个局部修复组包括n=5个节点;
当N除以4的余数为2时,前m-2个局部修复组中每个局部修复组包括n=4个节点,第m-1个局部修复组和第m个局部修复组分别包括n=5个节点,或者,前m-1个局部修复组中每个局部修复组包括n=4个节点,第m个局部修复组包括n=6个节点;
当N除以4的余数为3时,前m-3个局部修复组中每个局部修复组包括n=4个节点,第m-2个局部修复组、第m-1个局部修复组和第m个局部修复组分别包括n=5个节点,或者前m-2个局部修复组中每个局部修复组包括n=4个节点,第m-1个局部修复组和第m个局部修复组中一个局部修复组包括n=6个节点,另一个局部修复组包括5个节点;
步骤3,将步骤1得到的每组中的k个数据块存储到步骤2中的一个局部修复组中的n个节点上,采用的方法如下:
节点V1上存储的编码数据块为C1、C2和C5;节点V2上存储的编码数据块为C2、C3和C6;节点V3上存储的编码数据块为C3、C4和C6;节点V4上存储的编码数据块为C4、C5和C1;
节点V1上存储的编码数据块为C1、C2和C7;节点V2上存储的编码数据块为C2、C3和C8;节点V3上存储的编码数据块为C3、C4和C8;节点V4上存储的编码数据块为C4、C5和C9;节点V5上存储的编码数据块为C5、C6和C9;节点V6上存储的编码数据块为C6、C7和C1;
节点V1上存储的编码数据块为C1、C2和C6;节点V2上存储的编码数据块为C2、C3和C7;节点V3上存储的编码数据块为C3、C4和C7;节点V4上存储的编码数据块为C4、C5和C7;节点V5上存储的编码数据块为C5、C6和C1。
2.一种节点的故障修复方法,其特征在于,包括以下步骤:
按照权利要求1所述的局部部分重复循环码的分组构造方法将原始文件M存储到分布式存储系统的N个节点中,分布式存储系统中的N个节点分成m个局部修复组;
若局部修复组中的第i个节点Vi发生故障,采集相邻节点Vi-1和Vi+1上的节点Vi上存储的编码数据块,将采集到的编码数据块传送给节点Vi,即可实现节点Vi的故障修复。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810269452.8A CN108762978B (zh) | 2018-03-29 | 2018-03-29 | 一种局部部分重复循环码的分组构造方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810269452.8A CN108762978B (zh) | 2018-03-29 | 2018-03-29 | 一种局部部分重复循环码的分组构造方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108762978A CN108762978A (zh) | 2018-11-06 |
CN108762978B true CN108762978B (zh) | 2021-03-26 |
Family
ID=63980866
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810269452.8A Active CN108762978B (zh) | 2018-03-29 | 2018-03-29 | 一种局部部分重复循环码的分组构造方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108762978B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110389848B (zh) * | 2019-06-25 | 2023-03-14 | 长安大学 | 基于分块构造的部分重复码构造方法及故障节点修复方法 |
CN112799605B (zh) * | 2021-03-31 | 2021-06-29 | 中南大学 | 平方部分重复码构造方法、节点修复方法及容量计算方法 |
CN113419895B (zh) * | 2021-07-21 | 2022-06-14 | 广东工业大学 | 一种降低储存集群系统中修复开销的优化方法及装置 |
CN114924907B (zh) * | 2022-07-20 | 2022-10-04 | 中南大学 | 一种近似最优部分重复码构造方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105260259A (zh) * | 2015-09-16 | 2016-01-20 | 长安大学 | 一种基于系统最小存储再生码的局部性修复编码方法 |
WO2016210212A3 (en) * | 2015-06-26 | 2017-02-02 | Microsoft Technology Licensing, Llc | Flexible erasure coding with enhanced local protection group structures |
CN106788891A (zh) * | 2016-12-16 | 2017-05-31 | 陕西尚品信息科技有限公司 | 一种适用于分布式存储的最优局部修复码构造方法 |
CN106776112A (zh) * | 2017-02-09 | 2017-05-31 | 长安大学 | 一种基于Pyramid码的局部性修复编码方法 |
CN107656832A (zh) * | 2017-09-18 | 2018-02-02 | 华中科技大学 | 一种低数据重建开销的纠删码方法 |
-
2018
- 2018-03-29 CN CN201810269452.8A patent/CN108762978B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016210212A3 (en) * | 2015-06-26 | 2017-02-02 | Microsoft Technology Licensing, Llc | Flexible erasure coding with enhanced local protection group structures |
CN105260259A (zh) * | 2015-09-16 | 2016-01-20 | 长安大学 | 一种基于系统最小存储再生码的局部性修复编码方法 |
CN106788891A (zh) * | 2016-12-16 | 2017-05-31 | 陕西尚品信息科技有限公司 | 一种适用于分布式存储的最优局部修复码构造方法 |
CN106776112A (zh) * | 2017-02-09 | 2017-05-31 | 长安大学 | 一种基于Pyramid码的局部性修复编码方法 |
CN107656832A (zh) * | 2017-09-18 | 2018-02-02 | 华中科技大学 | 一种低数据重建开销的纠删码方法 |
Non-Patent Citations (1)
Title |
---|
云存储系统中基于MSR码的局部性修复编码;王静 等;《北京邮电大学学报》;20160831;第39卷(第4期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN108762978A (zh) | 2018-11-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108762978B (zh) | 一种局部部分重复循环码的分组构造方法 | |
CN109643258B (zh) | 使用高速率最小存储再生擦除代码的多节点修复 | |
US11531593B2 (en) | Data encoding, decoding and recovering method for a distributed storage system | |
CN108540520B (zh) | 基于部分重复码的局部性修复编码及节点故障修复方法 | |
CN110750382B (zh) | 用于提高数据修复性能的最小存储再生码编码方法及系统 | |
CN105260259B (zh) | 一种基于系统最小存储再生码的局部性修复编码方法 | |
US8392805B2 (en) | Non-MDS erasure codes for storage systems | |
CN110178122B (zh) | 分布式存储系统的数据同步修复方法及存储介质 | |
CN108132854B (zh) | 一种可同时恢复数据元素及冗余元素的纠删码解码方法 | |
CN110389848B (zh) | 基于分块构造的部分重复码构造方法及故障节点修复方法 | |
US11500725B2 (en) | Methods for data recovery of a distributed storage system and storage medium thereof | |
CN109086000B (zh) | 一种raid存储系统中的三容错数据布局方法 | |
US20120023362A1 (en) | System and method for exact regeneration of a failed node in a distributed storage system | |
CN106484559A (zh) | 一种校验矩阵的构造方法及水平阵列纠删码的构造方法 | |
CN108347306B (zh) | 分布式存储系统中类局部重构码编码及节点故障修复方法 | |
CN112000512B (zh) | 一种数据修复方法及相关装置 | |
CN105808170B (zh) | 一种能够修复单磁盘错误的raid6编码方法 | |
CN112799605B (zh) | 平方部分重复码构造方法、节点修复方法及容量计算方法 | |
CN113190377B (zh) | 一种基于分布式存储系统的可靠冗余方法及设备 | |
CN113391946B (zh) | 一种分布式存储中的纠删码的编解码方法 | |
CN109358980B (zh) | 一种对数据更新和单磁盘错误修复友好的raid6编码方法 | |
CN110895497B (zh) | 一种分布式存储中降低纠删码修复的方法及装置 | |
WO2020029418A1 (zh) | 一种修复二进制码生成矩阵构造方法及修复方法 | |
CN113258936B (zh) | 一种基于循环移位的双重编码的构造方法 | |
CN110781024B (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 |