【技术实现步骤摘要】
一种低数据重建开销的纠删码方法
本专利技术属于计算机存储
,更具体地,涉及一种低数据重建开销的纠删码方法。
技术介绍
纠删码是一种保证数据冗余的编码方法,它首先将原始数据分裂为等大的数据块,然后再将数据块编码为校验块。当若干个数据块或校验块丢失时,纠删码技术可以保证原始数据仍然可以恢复。该技术广泛地应用在分布式存储系统和云存储系统上来提高系统可靠性,以防止磁盘失效或数据丢失等导致的数据不可访问。传统的编码方法中,n是数据块和校验块的总个数,k是数据块个数,m=n-k是校验块个数。首先,将大小为M的原始数据等分为k个数据块:D0、D1、…、Dk-1,编码之后产生m个编码块:C0、C1、…、Cm-1,数据块、编码块会存储在n个不同的存储节点上。存储节点是存储设备的逻辑抽象,既可以是一个磁盘也可以是一个存储服务器。相比于传统的副本技术,纠删码技术可以在较低的存储开销下提供与之对等的系统可靠性。然而,纠删码在数据修复过程中需要读取并传输多个磁盘上的数据,占用大量的存储资源和网络资源,所以在性能方面不及副本策略。以(n,k)里德-所罗门编码为例,只要该数据可修复,都需要k块整块数据块或校验块进行重建,所需要的数据量都是M。为了减小修复时的带宽,局部重建码(LocalReconstructionCodes,LRC)首先用部分校验块编码所有数据块来维持系统可靠性,然后对数据块进行分组并使用组内相互独立的编码,从而可以将大部分单点失效的重建约束在组内进行,通过增加存储开销的方式减少了修复开销。最小存储再生码中的蝴蝶码(ButterflyCoes),由于将编码块进行指 ...
【技术保护点】
一种低数据重建开销的纠删码方法,其特征在于,包括:(1)将数据量为M的原始文件等分为k个数据块,将k个数据块分别保存在k个数据节点上,并将k个数据块分为l/2组;(2)根据各组内数据块的个数将各组内的每个数据块分为多个数据片段,由各组对应的数据片段的布尔矩阵得到各组对应的两个局部校验块,分别由各组对应的两个局部校验块组成各组的局部生成矩阵;(3)由所有k个数据块的线性组合生成全局生成矩阵,通过分别计算全局生成矩阵中各行向量的所有数据块的乘积,得到了m个全局校验块;(4)依次检查各数据节点上的数据块是否出错或丢失,是则执行步骤(5),否则不作处理;(5)获取所有出现错误的组中失效的数据信息,记录各出现错误的组编号与各出现错误的组的额外校验块需求个数,根据局部校验组的校验个数与所有额外校验块需求个数的关系,确定是采用组内校验参与修复还是采用组内校验与全局校验共同参与修复的方式;(6)若采用组内校验参与修复,则获取组内参与修复的片段内容以及组内生成矩阵中相关的行向量以生成中间矩阵,将中间矩阵进行重排得到修复矩阵,由修复矩阵进行数据修复;(7)若采用组内校验与全局校验共同参与修复,则根据需要全 ...
【技术特征摘要】
1.一种低数据重建开销的纠删码方法,其特征在于,包括:(1)将数据量为M的原始文件等分为k个数据块,将k个数据块分别保存在k个数据节点上,并将k个数据块分为l/2组;(2)根据各组内数据块的个数将各组内的每个数据块分为多个数据片段,由各组对应的数据片段的布尔矩阵得到各组对应的两个局部校验块,分别由各组对应的两个局部校验块组成各组的局部生成矩阵;(3)由所有k个数据块的线性组合生成全局生成矩阵,通过分别计算全局生成矩阵中各行向量的所有数据块的乘积,得到了m个全局校验块;(4)依次检查各数据节点上的数据块是否出错或丢失,是则执行步骤(5),否则不作处理;(5)获取所有出现错误的组中失效的数据信息,记录各出现错误的组编号与各出现错误的组的额外校验块需求个数,根据局部校验组的校验个数与所有额外校验块需求个数的关系,确定是采用组内校验参与修复还是采用组内校验与全局校验共同参与修复的方式;(6)若采用组内校验参与修复,则获取组内参与修复的片段内容以及组内生成矩阵中相关的行向量以生成中间矩阵,将中间矩阵进行重排得到修复矩阵,由修复矩阵进行数据修复;(7)若采用组内校验与全局校验共同参与修复,则根据需要全局修复参与的局部组编号与其对应的失效块序号,读取全局生成矩阵中与需要全局修复参与的局部组相关的全局校验子矩阵,然后基于需要全局修复参与的局部组的局部生成矩阵、单位矩阵以及全局校验子矩阵生成校验矩阵,进而由该校验矩阵得到修复矩阵,以完成数据修复。2.根据权利要求1所述的方法,其特征在于,步骤(2)具体包括:(2.1)对于每个分组,若该组内数据块的个数为k1,则将该组内的每个数据块划分为个数据片段;(2.2)获取该组对应的数据片段的布尔矩阵其中,为行k1列的矩阵,将表示为a和b均是具有个元素的列向量,A和B均为行k1-1列的布尔矩阵;(2.3)若k1=2,则该组对应的校验块P0和校验块P1的编码规则如下:其中,表示布尔矩阵中的元素值;(2.4)若k1>2,则该组对应的校验块P0和校验块P1的编码规则如下:其中表示k1×k1阶的转置矩阵,在中的反对角线上的元素均为1,其它元素均为零;(2.5)由该组对应的校验块P0和校验块P1组成该组的局部生成矩阵Gl为:3.根据权利要求1所述的方法,其特征在于,步骤(3)具体包括:(3.1)由所有k个数据块的线性组合生成全局生成矩阵Gg,其中,Gg为m行k列的矩阵;(3.2)通过分别计算全局生成矩阵Gg中各行向量的所有数据块的乘积,得到m个全局校验块Cg,i,i=0~m,其中,第i个校验块Cg,i为全局生成矩阵Gg的第i行子矩阵与k个数据块的乘积,表示为:其中,αi表示全局生成矩阵Gg在有限域下的系数,其中,D0,D1,...,Dk-1表示k个数据块。4.根据权利要求1至3任意一项所述的方法,其特征在于,步骤(5)具体包括:(5.1)根据状态检查,获取出现错误的组中失效的数据块编号以及校验块编号,由失效的数据块编号以及校验块编号生成丢失块集合;(5.2)将丢失块集...
【专利技术属性】
技术研发人员:冯丹,叶柳青,胡燏翀,柳青,魏学亮,
申请(专利权)人:华中科技大学,
类型:发明
国别省市:湖北,42
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。