当前位置: 首页 > 专利查询>长安大学专利>正文

一种基于Pyramid码的局部性修复编码方法技术

技术编号:15541347 阅读:72 留言:0更新日期:2017-06-05 10:47
本发明专利技术公开了一种基于Pyramid码的局部性修复编码方法,将Pyramid码的最小编码结构C作为基本编码结构,把分布式存储系统的存储节点根据Pyramid码的最小编码结构所需存储节点数进行分组。同时,本发明专利技术还公开了一种基于Pyramid码的局部性修复编码方法修复故障存储节点的方法。在本发明专利技术构造的基于Pyramid码的局部性修复编码结构中,局部修复组内存储节点的校验块全部由局部修复组内存储的数据块进行局部编码生成,基于此编码结构,当局部修复组中存在单节点和两节点故障时,都只需要通过连接局部修复组内有限的存活节点快速实现局部修复组内故障节点的数据重构,恢复出故障存储节点数据。

A local repair coding method based on Pyramid codes

The invention discloses a local repair encoding method based on Pyramid codes, the minimum encoding structure C Pyramid code encoding as the basic structure, the storage nodes in distributed storage systems are grouped according to the minimum required number of storage nodes encoding Pyramid code structure. At the same time, the invention also discloses a local repair coding method based on Pyramid code to repair the fault storage node. In the structure of the invention is based on local repair Pyramid encoding structure, check block storage node local repair within the group by storing local repair group within the data block local encoding, the encoding based on the structure, when the single node and the two node fault local repair group, only need to connect through to realize fast data reconstruction of fault node local repair group within the limited survival node local repair group, a data storage node fault recovery.

【技术实现步骤摘要】
一种基于Pyramid码的局部性修复编码方法
本专利技术属于计算机领域,涉及一种基于Pyramid码的局部性修复编码方法。
技术介绍
当前分布式存储系统通常采用纠删码提高存储可靠性,其中最大距离可分(MaximumDistanceSeparable,MDS)码,在确保系统可靠性的同时,能提高系统的存储效率。然而,纠删码在修复故障节点时需要下载整个文件大小的数据量,修复带宽开销过大。为了降低传统纠删码的修复带宽开销,Dimakis等人提出了再生码,显著降低了故障节点的修复带宽开销。通过对修复带宽和存储开销进行分析,Dimakis等人于2010年又提出了最小存储再生(MinimumStorageRegeneration,MSR)码和最小带宽再生(MinimumBandwidthRegeneration,MBR)码。简单再生码(SimpleRegeneratingCodes)以较高的存储开销为代价,在修复单节点故障时具有较好的修复局部性,但没有进一步考虑多故障节点的修复。MSR码和MBR码在修复故障节点时,只关注了修复带宽开销和存储开销,没有考虑磁盘存储开销,不适用于云存储系统。云存储系统中两个或多个节点同时发生故障的概率很大,已有的SRC和LRC在修复一个节点故障时具有很好的修复局部性,但是在修复两个或多个故障节点时需要连接多个存活节点,磁盘I/O开销较高。
技术实现思路
针对上述现有技术中存在的缺陷或不足,本专利技术的目的在于,提供一种基于Pyramid码的局部性修复编码方法,该方法可以降低故障节点修复过程中的磁盘I/O开销,且具有较优的节点存储开销。为了实现上述目的,本专利技术采用如下技术方案:一种基于Pyramid码的局部性修复编码方法,具体包括以下步骤:分布式存储系统中存储节点数目众多,设其中有n个存储节点存储数据块,将每8个存储节点作为一个最小编码结构C,每个最小编码结构C视为一个局部修复组,则C=D·G,D=[d11,d12,...,dij,...,dtj],dij为第i个局部修复组存储的j个数据块,i表示第i个局部修复组,i≤t,j表示局部修复组内存储的数据块数目,1≤j≤4且为整数,G=[I|P]表示生成C所需的生成矩阵,其中I为单位矩阵,P为子矩阵,其中g12、g13、g21、g24、g31、g34、g42和g43为Pyramid码的编码系数,且各列之间g线性独立,保证子矩阵P满秩,所述校验块为数据块经过生成矩阵G线性编码生成;根据Pyramid码编码方式和鲁棒性得到Pyramid码的最小编码结构C,将所述Pyramid码的最小编码结构C作为基本编码结构,把分布式存储系统的存储节点根据Pyramid码的最小编码结构所需存储节点数进行分组。若存储节点个数n刚好能被8整除,则直接在每个局部修复组内采用Pyramid码进行编码;若存储节点个数n不能被8整除,则将最后一组存储节点和不能整除所得余数放在一组并采用MDS码进行编码。具体地,若t=n/8为整数,所需存储的文件分为4t个数据块并存储在t个局部修复组内,每个局部修复组内包含4个数据块和4个校验块;若n/8为非整数,则整数部分为t,余数部分记为δ,δ个存储节点内包含ε个数据块,ε≤4且为整数,则所需存储的文件分为4t+ε个数据块,其中前t-1个局部修复组中,每个局部修复组包含8个节点并分别存储4个数据块和4个校验块,第t个局部修复组包含8+δ个节点并存储4+ε个数据块,对第t个局部修复组采用MDS编码方式进行编码。本专利技术还提供一种分布式存储系统中存储节点故障修复方法,具体包括以下步骤:按上述方法对分布式存储系统中n个存储节点进行编码后得到t个局部修复组,设第i个局部修复组内有存储节点出现故障,未出现故障的存储节点为存活存储节点;其中第i个局部修复组内包含四个数据块di1、di2、di3和di4以及四个校验块ci1、ci2、ci3和ci4,其中di1、di2、di3和di4是按照两行两列排列的数据块,ci1为di1和di2经过生成矩阵G线性编码生成,ci2为di3和di4经过生成矩阵G线性编码生成,ci3为di1和di3经过生成矩阵G线性编码生成,ci4为di2和di4经过生成矩阵G线性编码生成;(1)若第i个局部修复组内出现一个存储节点故障:若出现故障的存储节点存储的是四个数据块中的任意一个,则通过出现故障的存储节点同行或者同列的存活存储节点进行修复;若出现故障的存储节点存储的是四个校验块中的任意一个,则通过生成故障的存储节点存储的校验块时对应的存活存储节点进行修复;(2)若第i个局部修复组内出现两个存储节点故障:若出现故障的存储节点存储的是两个数据块或两个校验块:若所述两个数据块或两个校验块同行或同列,则分别通过所述两个数据块或两个校验块所在列或行的存活节点进行修复;若所述两个数据块或两个校验块非同行或同列,则通过所述两个数据块中的一个数据块所在列和另一数据块所在行的三个存活节点进行修复;若出现故障的存储节点存储的是一个数据块和一个校验块,则通过所述一个数据块所在列和所述一个校验块所在行的三个存活节点进行修复,或者通过所述一个数据块所在行和所述一个校验块所在列的三个存活节点进行修复。所述若局部修复组内出现两个存储节点故障时,也可同时进行两个存储节点故障修复。本专利技术具有以下技术效果:1、考虑到存储系统中存储的数据量大,采用Pyramid码进行编码,将原文件分为若干数据块存储在n个存储节点,保证了存储节点的存储开销,Pyramid码在故障存储节点修复中保证了有限的存活节点参与,较小的修复局部性使故障存储节点修复过程中的修复带宽开销低。2、本专利技术构造的基于Pyramid码的局部性修复编码结构中,局部修复组内存储节点的校验块全部由局部修复组内存储的数据块进行线性编码生成,基于此编码结构,当局部修复组中存在单节点和两节点故障时,都只需要通过连接局部修复组内有限的存活节点快速实现局部修复组内故障节点的数据重构,恢复出故障存储节点数据。附图说明图1是本专利技术实施例1对应的基于Pyramid码的局部性修复编码结构图;(a):n个存储节点能被8整除;(b):n个存储节点不能被8整除。图2是本专利技术实施例2局部修复组内单节点故障时存储节点修复示意图;图3是本专利技术实施例2局部修复组内两节点故障时存储节点修复示意图;(a):两个数据节点故障修复;(b):一个数据节点和一个校验节点故障修复;(c):两个校验节点故障修复;(d):非同行同列存储节点故障修复。图4是本专利技术实施例3有8个存储节点时的局部性修复编码结构图。图5是本专利技术实施例3中局部修复组内单节点故障修复示意图;图6是本专利技术实施例3中局部修复组内两节点故障修复示意图;其中(a):两个数据节点故障修复;(b):一个数据节点和一个校验节点故障修复;(c):两个校验节点故障修复;(d):非同行同列节点故障修复。下面结合附图和实施例对本专利技术的方案做进一步详细地解释和说明。具体实施方式本专利技术所指的修复,实际上是解码的过程,因为编码过程为线性编码,C=D·G,G为满秩矩阵,则修复过程即是解码过程,即D=C·G-1。例如,ci1由di1和di2经过生成矩阵G线性编码生成,若di1发生故障,则连接数据节点di2和校验节点ci1,本文档来自技高网...
一种基于Pyramid码的局部性修复编码方法

【技术保护点】
一种基于Pyramid码的局部性修复编码方法,在分布式存储系统中,所需存储的文件系统中的每个文件,在存储时被切分成若干个数据块,每个数据块都被存储在分布式存储系统的不同的存储节点上,本方法是对包含n个存储节点的分布式存储系统进行局部性修复编码,其中n为≥8的自然数;其特征在于,包括以下步骤:若n/8=t为整数,文件系统被切分为4t个数据块并存储在t个局部修复组内的存储节点上,每个局部修复组中存储4个数据块和4个校验块,其中,每个所述局部修复组视为一个最小编码结构C,所述最小编码结构C由n个存储节点中任意每8个存储节点构成,所述校验块为数据块经过生成矩阵G线性编码生成,G表示生成C所需的生成矩阵,

【技术特征摘要】
1.一种基于Pyramid码的局部性修复编码方法,在分布式存储系统中,所需存储的文件系统中的每个文件,在存储时被切分成若干个数据块,每个数据块都被存储在分布式存储系统的不同的存储节点上,本方法是对包含n个存储节点的分布式存储系统进行局部性修复编码,其中n为≥8的自然数;其特征在于,包括以下步骤:若n/8=t为整数,文件系统被切分为4t个数据块并存储在t个局部修复组内的存储节点上,每个局部修复组中存储4个数据块和4个校验块,其中,每个所述局部修复组视为一个最小编码结构C,所述最小编码结构C由n个存储节点中任意每8个存储节点构成,所述校验块为数据块经过生成矩阵G线性编码生成,G表示生成C所需的生成矩阵,其中g12、g13、g21、g24、g31、g34、g42和g43为Pyramid码的编码系数,各列之间编码系数线性独立,所述最小编码结构C=D·G,D=[d11,d12,...,dij,...,dtj],dij为第i个局部修复组存储的j个数据块,i表示第i个局部修复组,i≤t,j表示局部修复组内存储的数据块数目,1≤j≤4且为整数;若n/8为非整数,文件系统被切分为4t+ε个数据块,其中前t-1个局部修复组中每个局部修复组存储4个数据块,第t个局部修复组存储4+ε个数据块,其中,ε为n/8的余数个存储节点中包含的数据块个数,ε≤4且为整数,对第t个局部修复组采用MDS编码方式进行编码后存储文件系统。2.一种分布式存储系统中存储节点故障修复方法,其特征在于,包括以下步骤:步骤一、采用权利要求1所述方法对包含有n个存储节点的分布式存储系统进行局部性修复编码;步骤二,若第i个局部修复组内出现存储节点故障,未出现故障的存储节点为存活存储节点,第i个局部修复组内存储4个数据块di1、di2、di3和...

【专利技术属性】
技术研发人员:王静张崇杨洋
申请(专利权)人:长安大学
类型:发明
国别省市:陕西,61

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1