一种由极大距离可分存储码生成最小存储再生码的一般方法

文档序号:9931426阅读:1397来源:国知局
一种由极大距离可分存储码生成最小存储再生码的一般方法
【技术领域】
[0001] 本发明涉及分布式存储系统领域,特别涉及一种适用于分布式存储系统的将系统 节点具有最佳修复性质的极大距离可分存储码转换成最小存储再生码的编码技术。
【背景技术】
[0002] 为提高分布式存储系统的可靠性,冗余是不可或缺的。一般来说,有两种增加冗余 的机制:复制和纠删。与重复码相比,在冗余量相同的情况下纠删码能提供更多的可靠性, 所以更具优势。而在所有的纠删码中,极大距离可分(MDS)码如Reed-Solomon码因为在冗余 量相同的情况下具有最大的纠删错误能力,被广泛用于Google Colossus、Microsoft Azure等多个分布式云存储系统。通常,将源文件均分成k份,采用一个(k+r,k)的MDS码进行 编码后得到k+r份数据,然后分别存放在k+r个独立的存储设备上,这些设备也被称为节点。
[0003] 但是对于大型分布式云存储系统,各个节点的可靠性不高,失效现象经常发生,节 点失效会增加数据丢失的可能性、降低系统的可靠性,而其中单节点失效高达98.08%。为 了维持一定的冗余量,系统会频繁地进行节点修复,常用的修复方式是从其它存活的节点 中下载数据以修复该失效节点,这些节点也被称之为帮助节点。在修复过程中,所下载数据 的量被称为修复带宽,实际系统中为降低开销,修复带宽应该最小化。然而,传统MDS存储码 的修复方法是连接任意k个帮助节点下载全部数据,从而重构源文件,然后再编码产生失效 节点里的数据,相应的修复带宽最大,这给分布式存储系统带来极大的开销。
[0004] 文南犬〃Network coding for distributed storage systems,IEEE Trans〇on Information Theory,vol。56,11〇。9,口口。4539_4551,September 2010(基于网络编码的分布 式存储系统,IEEE信息论汇刊,第56卷,第9期,第4539-4551页,2010年9月)〃确定了存储编 码的最小修复带宽,达到最小修复带宽的节点被称为具有最佳修复性质,所有节点都具有 最佳修复性质被称之为再生码,其中最重要是两类编码:最小存储再生(MSR)码和最小修复 带宽再生(MBR)码。
[0005] 具体地,MSR编码将一份大小为kN个元素的源文件均分成k份,每份包含N个元素, 用长度为N的列向量6表示,0<i〈k.对原始数据编码后得到r份校验数据,同样用长度为N 的列向量fi表示,k < i<k+r。将这k+r份数据分别存放在一个包含在k+r个节点的分布式存 储系统中。一个(k+r,k)MSR码具有:(1 )MDS性质,即连接任意k个节点可以重构源文件,参见 附图1;(2)最佳修复性质,即一个失效节点的修复带宽为y =dN/(d-k+l),这可以通过连接 d(k < cK k+r-1)个帮助节点个数,从每个帮助节点中下载N/(d-k+l)个元素实现,如附图2 所示。
[0006] 特别需要指出,上述文献中所构造的存储码是功能修复码,即代替失效节点的新 节点存储的数据可以与失效节点原来的数据不一样但在功能上等价;然而,要求代替失效 节点的新节点存储的数据与失效节点原来的数据完全一样的精确修复MSR码,能在实际应 用中减小系统的复杂度,因而更受实际系统欢迎。此外,目前已知的精确修复MSR码都考虑d = k+r-l的情形来最大的减小修复带宽。本发明也考虑这一种情况。
[0007] 实际的分布式存储系统通常要求所采用的MSR码的码率k/(k+r)尽可能地大以减 少存储开销,但是目前只有4类这样的MSR码,如〃Repair optimal erasure codes through hadamard designs,IEEE Trans〇on Information Theory,vol〇59,no〇5,pp〇3021_3037, May 2013(基于hadamard设计的最佳修复纠删码,IEEE信息论汇刊,第59卷,第5期,第3021-3037页,2013年5月)〃等等中的构造。此外,目前存在一些对于码率大于1/2的MDS存储码,如 文献〃A framework of constructions of minimal storage regenerating codes with the optimal access/update property,IEEE Trans〇on Information Theory,vol〇61, 11〇。4 4口。1920-1932,4口41 2015(-个具有最佳存取/更新性质的MSR码的构造框架,IEEE 信息论汇刊,第61卷,第4期,第1920-1932页,2015年4月)〃等等中的构造。而这类MDS存储码 只能最佳修复系统节点而不能最佳修复校验节点。

【发明内容】

[0008] 本发明的目的在于提供一种由系统节点具有最佳修复性质的MDS存储码转换成 MSR码的一般方法。
[0009] 本发明的上述目的这样实现的,一种将系统节点具有最佳修复性质的MDS存储码 转换成MSR码的一般方法,包括以下步骤:
[0010] (1)选择系统节点具有最佳修复性质的节点容量为N的(k+r,k)MDS存储码&作为 基码;
[0011] (2)产生r个码&的实例,得到节点容量为rN的(k+r,k )MDS存储码C2;
[0012] (3)利用r个置换分别对C2中每个实例的校验节点进行置换从而得到节点容量为 rN 的(k+r,k)MDS 存储码 C3;
[0013] ⑷对于〇 < j矣l〈r,将C3实例j节点1上的数据与实例1节点j上的数据做两个线性 无关的线性组合并分别代替C3中实例j节点1与实例1节点j的数据,从而得到节点容量为rN 的(k+r,k)MSR码C4。
[0014]在本发明的将系统节点具有最佳修复性质的MDS存储码转换成MSR码的一般方法 中,所述的基码Ci是非二元的。
[0015]在本发明的将系统节点具有最佳修复性质的极大距离可分存储码转换成MSR码的 一般方法中,所述的r个置换是{0,1,…,r-1}上的置换。
[0016]在本发明的将系统节点具有最佳修复性质的极大距离可分存储码转换成MSR码的 一般方法中,在修复基码CjPMSR码C4的某个存储节点时,所连接的帮助节点个数为k+r-1。
[0017] 在本发明的将系统节点具有最佳修复性质的极大距离可分存储码转换成MSR码的 一般方法中,中间产生的码C2,C 3和转换后的码C4,其系统节点存储的数据完全一样。
[0018] 在本发明的将系统节点具有最佳修复性质的极大距离可分存储码转换成MSR码的 一般方法中,修复所述的MSR码C4的系统节点j时,修复方法与作为基码Cj^MDS存储码对应 的节点j时修复方法相同.
[0019] 在本发明的将系统节点具有最佳修复性质的极大距离可分存储码转换成MSR码的 一般方法中,修复所述的MSR码的校验节点j时,下载剩下k+r-1的节点中的第r j到r j+r-1个 元素。
[0020] 本发明有益效果是:(1)系统的存储开销非常小;(II)任意一个失效节点都能被最 佳修复,修复失效节点的过程中只消耗最小的带宽资源;(III)若采用系统节点具有最佳1/ 0修复性质的MDS存储码作为基码,修复失效节点时I/O开销也最小。
[0021] 下面结合附图对本发明进行详细说明。
【附图说明】
[0022] 图1是采用MDS码的分布式存储系统的编码、存储、重构源文件、修复单个节点的示 意图;
[0023] 图2是现有技术中MSR码的修复单个节点失效的示意图;
[0024]图3是现有技术中MSR码存储节点的数据示意图;
[0025] 图4是本发明过程中间码C2存储节点的数据示意图;
[0026] 图5是本发明过程中间码C3校验节点的数据示意图;
[0027]图6是本发明生成的MSR码C4校验节点的数据示意图;
[0028]图7是本发明产生的MSR码的一个例子;
[0029]图8是本发明生成MSR码C4产生的流程图。
【具体实施方式】
[0030]本发明所提出的MSR码,由系统节点具有最佳修复性质的节点容量为N的(k+r,k) MDS存储码&转换而来。
[0031]假定采用码&的存储系统的系统节点与校验节点所存储的数据分别为f/,0< i〈k 和g/,0< j〈r,其中f/是长度为N的列向量,舄^七/^^是哪介非奇异方阵^系统节 /=〇. 点i的数据f/可通过下载Si,jf/,0< j矣i〈k和Si,k+ig^,0<l〈r恢复出来,其中Si,j和Si,k+1 是N/r X N的矩阵。则所提出的MSR码的生成与修复、重构按下述方法进行.
[0032] MSR码的生成:
[0033] 1.把一份大小为krN的文件分成r份子文件,每份子文件的大小为kN,对每一份子 文件都按照基码&编码方式进行编码得到r个实例,这些实例构成节点容量为rN的(k+r,k) MDS存储码,记为C2,记子文件1编码后存放在系统节点i和校验节点j上的数据分别为和 容(/) = 2!4^('>,其中〇<1,」〈 1',〇<:[〈让,则/^可以通过*^.,广.,0幻_矣 :[〈让和5*,知名;'),.0<8 :/=0 <r恢复出来。C2码的结构见附图4。
[0034] 2 ?产生r个{0,1,…,r-1}上的置换,记为po,P1,。。。,pr-i。对于上一步骤中的矩阵 Si, j,(a)若对任意的0 < i〈k,存在矩阵Si使得Si, j = Si对所有的0 < j矣i〈k+r都成立,则这r个 置换是任意的{〇,1,…,r-1}上的置换;(b)否则这r个置换需满足
[0035] pi( j)=pj(i) ,0 < i,j<r,
[0036] 这里P1将作用在实例1上的r个校验点中数据,0 < l〈r。
[0037] 保持码C2中校验数据系统节点的数据不变,仅通过上述置换调整其校验数据的位 置来生成码C3,记码C 3实例1中存放在
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1