一种再生码构造方法、文件重构方法及节点修复方法转让专利
申请号 : CN202110348155.4
文献号 : CN112732203B
文献日 : 2021-06-22
发明人 : 朱兵 , 曾志伟 , 赵旭煜 , 王伟平 , 王建新
申请人 : 中南大学
摘要 :
权利要求 :
1.一种再生码构造方法,其特征在于包括如下步骤:S1.获取组合设计和存储数据块;获取的组合设计具体为,选择满足组合条件的t‑设计,λ为t‑平衡数,表示任意t元子集均出现在λ个区组中,其中,记b为区组个数, ;
记r为元素重复度, ;
组合条件为:
;
其中,t为子集的元素数;v为设计的阶,具体为设计中不同元素的总数;m为区组容量,具体为一个区组中的元素个数;
获取的存储数据块具体为,设存储原文件大小为M ,将原文件拆分成个大小相等的数据块;
S2.对区组排序并编号,统计元素出现的区组及位置,得到文件符号;
S3.对数据块进行编码,得到编码块;
S4.为每个编码块分配一个不同的文件符号;
S5.将每个元素一致的文件符号集合所对应的编码块放置在同一存储节点中,得到再生码。
2.根据权利要求1所述的再生码构造方法,其特征在于步骤S2的文件符号设为 ,其中1≤i≤b,1≤j≤m,b为区组个数,m为区组容量;同时 表示元素h出现在第i个区组中的第j个位置;将区组编号记为B1,B2,…,Bb,对于区组Bi,将其中的元素由小到大顺序排列,位置编号记为{1,2,…,m}。
3.根据权利要求2所述的再生码构造方法,其特征在于步骤S3具体为利用双层编码策略对数据块进行编码;外层获得的MDS码构造如下:利用参数为 MDS码对 个数据块进行编码,获得b(m‑t+1)个编码块,其中b为区组个数,m为区组容量,t为子集的元素数,λ为t‑平衡数,表示任意t元子集出现在λ个区组;
内层获得的MDS码构造如下:将上述利用外层编码得到的b(m‑t+1)个编码块均分为b组,利用参数为(m,m‑t+1) MDS码对每组中的m‑t+1个编码块进行二次编码,最终得到bm个编码块。
4.根据权利要求3所述的再生码构造方法,其特征在于步骤S4具体包括,为上述获得的每一个编码块分配一个文件符号作为标识,不失一般性地,将 的前个文件符号 作为外层编码生成的冗余块的标识;将 的文件符号 作为内层编码生成的冗余块的标识,其中, 表示元素h出现在第i个区组中的第j个位置,m为区组容量。
5.根据权利要求4所述的再生码构造方法,其特征在于步骤S5具体包括,每当发现一个文件符号 ,若其元素h与之前的文件符号 不同,则分配一个新的存储节点并编号为h;对于每一个文件符号 ,若其元素h已分配存储节点,则将元素h相同的文化符号所对应的编码块存放到编码为h的存储节点中,则一个存储节点存储r个编码块,r为元素重复度;得到参数为[n,k=n‑t,d=n‑t+1]的再生码,n为节点个数,k为下载数据的个数,d为参与修复的节点个数,t为子集的元素数, 表示元素h出现在第i个区组中的第j个位置。
6.一种基于权利要求1 5之一所述的再生码构造方法的文件重构方法,其特征在于包~
括如下步骤:
A1.根据步骤S1 S5构造再生码;
~
A2.连接到存储节点;
A3.在下载当前编码块时,进行重构第一次判断;
A4.在完成一个编码块的下载后,进行重构第二次判断;
A5.利用内层及外层的MDS编码规则恢复原文件。
7.根据权利要求6所述的文件重构方法,其特征在于步骤A3的重构第一次判断具体包括,对于当前具有相同区组编号i0的文件符号 ,是否已经下载了m‑t+1个文件符号所代表的编码块, 表示元素h出现在第i0个区组中的第j个位置,m为区组容量;
若判断为是,则停止下载当前编码块;若判断为否,则下载当前编码块;步骤A4的重构第二次判断具体包括,判断是否已经下载了 个编码块;若判断为是,则停止下载过程,若判断为否,则继续下载过程,b为区组个数,t为子集的元素数,λ为t‑平衡数,表示任意t元子集出现在λ个区组中。
8.一种基于权利要求1 5之一所述的再生码构造方法的节点修复方法,其特征在于包~
括如下步骤:
B1.根据步骤S1 S5构造再生码;
~
B2.确定失效节点的序号;
B3.在组合设计中确定失效节点出现过的区组序号;
B4.从n‑t+1个节点中下载编码块,共下载r(m‑t+1)个编码块,r为元素重复度,n为节点个数,t为子集的元素数,m为区组容量;
B5.将步骤B4下载的r(m‑t+1)个编码块分成r组,每组的编码块具有相同的区组编号i;
B6.对每一组编码块利用内层获得的MDS码的编码规则恢复一个编码块;将r组编码块恢复出r个编码块;
B7.将恢复出的r个编码块存储到一个新的存储节点,并将此节点加入原存储系统中完成修复过程。
9.根据权利要求8所述的节点修复方法,其特征在于步骤B2具体为,从剩下的完好节点中对元素编号,记为{h1,...,hv‑1},将元素编号与 设计中的元素对比,确定失效节点的序号h0;其中v为设计的阶,m为区组容量,λ为t‑平衡数;步骤B3的区组序号记为{i1,...,ir};步骤B4的文件符号具体为 ,表示h0出现在第i个区组中的第j个位置,。
说明书 :
一种再生码构造方法、文件重构方法及节点修复方法
技术领域
背景技术
Storage System)应运而生。该系统利用分布式技术,将存储节点通过网络联结起来形成一
个能存储海量数据的集群。分布式系统将数据文件分散放置于多个存储节点中,由于网络
故障或物理损坏,单个存储节点可能会失效,因此分布式系统必须引入冗余信息来保证可
靠性。常见的冗余策略有多副本策略和纠删码策略。多副本策略就是把原文件复制若干倍
后再存储,当有节点失效时,替换节点就可以直接从它的副本中复制数据,因此系统中只要
存在一个完整的数据副本,源文件就能正常使用;但这种方案存储效率和系统可靠性较低。
纠删码策略采用纠删码处理原始文件,常用的纠删码为(n, k)最大距离可分(Maximum
Distance Separable, MDS)码,即将原始文件分成大小相等的k份,由这k份文件经线性编
码后生成n‑k份冗余信息,利用n个节点存储n个线性无关的编码块,终端用户可以通过连接
到任意k个节点恢复出原始文件。显然纠删码策略存储效率更高,但是实现也更复杂,应用
难度大。
为文件重构过程。当存储系统中有存储节点失效时,为了保证分布式系统的整体功能,需要
对该失效节点进行恢复,该过程被称为节点修复过程。
向该新节点存储相应的数据。图1为现有技术中RS码修复过程示意图,易见,为恢复一个节
点中的存储信息而下载了k个节点的存储数据,修复节点时的数据传输量远大于节点的存
储量,即节点的修复过程需要浪费大量的网络带宽。
storage systems,” IEEE Trans. Inf. Theory, vol. 56, no. 9, pp. 4539–4551,
Sep. 2010] 引入了网络编码的概念,即在修复失效节点时,取较多的节点参与修复,且参
与修复的节点先将本节点内的数据经过线性组合后再上传,这能极大地降低修复失效节点
的带宽消耗,该文使用信息流图对分布式存储系统进行建模,并对其进行最小割分析,如图
2所示。图2中S表示信息源,即原始数据。每个存储节点 由输入节点 、输出节点
和有向边 来表示,有向边上的权值为该节点的数据存储量,其值均为
α。DC (Data Collector)表示数据收集器,数据收集器DC收集任意k个节点的数据,就能恢
复原始数据;从d个节点获取数据,就能修复失效节点。对图2进行最小割分析,将信息源S和
数据收集者DC分开的曲线称为该信息流图的割,该曲线切过的所有有向边的权值和称为割
的值。根据最大流‑最小割定理,当最小割的值不小于信息源S中的原始数据量大小时,DC能
够恢复原始数据。基于对信息流图的最小割分析,Dimakis等人给出了单节点修复带宽γ和
单节点存储量α之间的折衷曲线,所谓再生码(Regenerating Codes)即α和γ取该折衷曲线
上的点时对应的编码。在折衷曲线上存在两类特殊的点,即数据存储量α最小值点和修复带
宽γ最小值点,分别对应于:最小存储再生码(Minimum‑Storage Regenerating, MSR),称
为MSR编码(MSR Codes),
减小,这是因为随着参与修复的辅助节点数目d的增加,每个节点修复时传输的数据量β变
小,且β变小的速度比d增大的速度更快,从而使总修复带宽减小。可见再生码的修复带宽优
于RS码,但再生码的修复过程中的节点访问数d>k。另外,修复节点需要对其存储的数据执
行随机线性网络编码操作,为了满足所有编码包是相互独立的,再生码的运算需要在一个
较大的有限域内进行。
足 MDS 特性即可。
via embedded error correction and block designs,” IEEE Trans. Inf. Theory,
vol. 61, no. 4, pp. 1933–1947, Apr. 2015]提出了一种基于组合设计放置策略的精确
修复再生码。组合设计是一组满足某些特性的子集的集合(子集被称为区组)。一个给定的
区组设计由(X,B)指定,带有参数(r,n),r≤n,即X是具有n个元素的集合,B是X的r元子集的
集合。在该文中主要使用了斯坦纳系(Steiner systems)和重复组合区组设计(Duplicated
Combination Block Design, DCBD)这两种设计,实现了分布式存储系统参数限制为[n,k,
d=k=n‑1],[n,k=n‑2,d=n‑1]和[n,k,d>k]的精确构造。这种构造比MSR码和MBR码之间的空
间共享性能更好,并且是实现这种性能的第一类编码。此外,该构造可以在参数限制为[n,
k,d=k=n‑1]的最优功能修复折衷曲线上达到不平凡的点,并且在高码率下渐近最优。但是
该文提出的构造方式对参数限制比较严格,只容许1 2个节点的失效,实用性不高。
~
发明内容
组Bi,将其中的元素由小到大顺序排列,位置编号记为{1,2,…,m}。
为区组容量,t为子集的元素数,λ为t‑平衡数,表示任意t元子集出现在λ个区组;
块的标识;将 的文件符号 作为内层编码生成的冗余块的标识,
其中, 表示元素h出现在第i个区组中的第j个位置,m为区组容量。
配存储节点,则将元素h相同的文化符号 所对应的编码块存放到编码为h的存储节点
中,则一个存储节点存储r个编码块,r为元素重复度;得到参数为[n,k=n‑t,d=n‑t+1]的再
生码,n为节点个数,k为下载数据的个数,d为参与修复的节点个数,t为子集的元素数,
表示元素h出现在第i个区组中的第j个位置。
第i0个区组中的第j个位置,m为区组容量;若判断为是,则停止下载当前编码块;若判断为
否,则下载当前编码块;
子集的元素数,λ为t‑平衡数,表示任意t元子集出现在λ个区组中。
量,λ为t‑平衡数;步骤B3的区组序号记为{i1,...,ir};步骤B4的文件符号具体为 ,表
示h0出现在第i个区组中的第j个位置, 。
附图说明
具体实施方式
个区组中的第j个位置;将区组编号记为B1,B2,…,Bb,对于区组Bi,将其中的元素先后顺序
排列,编号记为位置{1,2,…,m}。
数,λ为t‑平衡数,表示任意t元子集出现在λ个区组;
的文件符号 作为内层编码生成的冗余块的标识,其中, 表示
元素h出现在第i个区组中的第j个位置,m为区组容量。
则分配一个新的存储节点并编号为h;对于每一个文件符号 ,若其元素h已分配存储节
点,则将元素h相同的文化符号 所对应的编码块存放到编码为h的存储节点中,则一个
存储节点存储r个编码块,r为元素重复度;得到参数为[n,k=n‑t,d=n‑t+1]的再生码,n为节
点个数,k为下载数据的个数,d为参与修复的节点个数,t为子集的元素数。
{2,3,5,6},{2,4,5,6}}。
置为GF(43)。
建8个存储节点;将每个h一致的符号 所对应的编码块放置在同一存储节点中,那么一
个存储节点存储7个编码块,最终得到如图4所示的存储编码。
,即增加了 个冗余块,因此,在文件重构过程中需要收集
个不同的编码块。在本实施方式中,最多取n‑t个存储节点,用于下载
数据。
所代表的编码块, 表示元素h出现在第i0个区组中的第j个位置,m为区组容量,
若判断为是,则停止下载当前编码块,若判断为否,则下载当前编码块;
过程,若判断为否,则继续下载过程,b为区组个数,t为子集的元素数,λ为t‑平衡数,表示任
意t元子集均出现在λ个区组中;
MDS编码规则恢复编码块;若同一区组中编码块数目为m‑
t+1个,那么利用内层(m, m‑t+1) MDS编码规则恢复编码块。
的编码块外的所有数据,Node 5中下载除 对应的编码块外的所有数据,至此共下载39
个编码块,数据下载过程结束。
从 中消去其余编码块后结果如下:
到。
复方法根据步骤S3的内层参数为(m,m‑t+1)的MDS码提供的冗余信息,由于内层参数为(m,
m‑t+1)的MDS码只有t‑1个数据符号作为冗余信息,因此共需下载r(m‑t+1)个编码块。
的MDS码提供t‑1份冗余信息,那么对于属于同一个区组的编码块能容忍t‑1个编码块的失
效。进一步地,整个存储系统能容忍t个节点的失效,共失效tr个编码块,该过程中失效的编
码不能只由内层(m,m‑t+1) MDS码提供的冗余信息进行恢复,而还必须依赖于外层参数为
的MDS码来进行恢复;其中内层(m,m‑t+1)MDS码能为这
tr个失效编码块提供 份冗余信息,外层
MDS码能为这些冗余文件提供 份冗余信息,因此利用这 份
冗余信息能恢复这失效的tr个编码块。
具体修复过程如下:
作后即可恢复 。类似地对每一组均进行上述恢复操作,最终能获得
,而这正是失效节点中的编码块。
素h分配一个新的存储节点,那么存储系统的总节点数n=v。