CN103607304B - 一种基于纠删码的失效数据线形修复方法 - Google Patents
一种基于纠删码的失效数据线形修复方法 Download PDFInfo
- Publication number
- CN103607304B CN103607304B CN201310593541.5A CN201310593541A CN103607304B CN 103607304 B CN103607304 B CN 103607304B CN 201310593541 A CN201310593541 A CN 201310593541A CN 103607304 B CN103607304 B CN 103607304B
- Authority
- CN
- China
- Prior art keywords
- node
- memory node
- path
- data block
- 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
Abstract
本发明公开了一种基于纠删码的失效数据线形修复方法,目的是设计针对纠删码特点的失效数据修复方法。方案是构建由一个控制节点和N个存储节点构成的分布存储系统,控制节点装有任务管理程序和结果回收程序,存储节点装有修复程序;任务管理程序为失效数据块选择新存储节点LN;从数据对象的可用数据块中选择可用数据块,构建线形修复路径;修复程序进行解码计算,将解码计算结果沿线形修复路径传送和合并;LN的修复程序接收来自线形修复路径最后一个存储节点的解码计算结果,结果回收程序接收LN的修复成功信息。采用本发明能有效避免网络中的瓶颈带宽,缩短修复数据的传输距离,降低失效数据修复的带宽成本,提高失效数据的修复效率。
Description
技术领域
本发明涉及分布存储系统的数据容错方法,尤其是基于纠删码的失效数据修复方法。
背景技术
数据容错是海量数据分布存储的关键技术之一,数据容错对于提高系统的可用性和可靠性至关重要。目前,数据容错技术主要包括基于复制的容错技术和基于纠删码的容错技术。
基于复制的容错技术简单直观,易于实现和部署,需要为每个数据对象创建若干同样大小的副本,存储空间开销较大。基于纠删码的容错技术通过将数据对象分割为多个数据块,通过利用纠删码算法对原始的数据块进行编码得到冗余的数据块,把多个数据块的信息融合到较少的冗余信息中,有效节省存储空间。与基于复制的容错技术相比,基于纠删码的容错技术具有冗余度低、存储空间利用率高等优点,已经逐步成为大数据时代数据容错的主流技术。
基于纠删码的容错技术的基本思想是对k个原始数据块进行编码计算得到m个冗余数据块;只需k+m个数据块中的任意k个数据块,就可通过解码计算恢复得到原始的k个数据块。
具体而言,每个冗余数据块Cj(j=1,2,…,m)都是k个原始数据块Di(i=1,2,…,k)的线性组合,编码计算可表示为公式(1),其中,Gji(j=1,2,…,m,i=1,2,…,k)是数据块编码系数。也就是说,对于冗余数据块Cj(j=1,2,…,m)而言,首先,编码系数Gji(i=1,2,…,k)与数据块Di(i=1,2,…,k)进行逐位相乘,得到k个新数据块Tji=Gji×Di(i=1,2,…,k);然后,k个新数据块Tji(i=1,2,…,k)进行逐位相加,得到冗余数据块
Gj1×D1+…+Gji×Di+…+Gjk×Dk=Cj (1)
每个原始数据块Di(i=1,2,…,k)都是其它任意k个可用数据块Ej(j=1,2,…,k)(原始数据块或者冗余数据块)的线性组合,解码计算可表示为公式(2),其中,Hij(i=1,2,…,k,j=1,2,…,k)是数据块解码系数。也就是说,对于原始数据块Di(i=1,2,…,k)而言,首先,解码系数Hij(j=1,2,…,k)与可用数据块Ej(j=1,2,…,k)进行逐位相乘,得到k个新数据块Sij=Hij×Ej(j=1,2,…,k);然后,k个新数据块Sij(j=1,2,…,k)进行逐位相加,得到原始数据块
Hi1×E1+…+Hij×Ej+…+Hik×Ek=Di (2)
尽管随着技术的进步,各种软硬件资源的可靠性得到了显著提高,但是,随着存储资源规模的不断扩大,资源的失效概率明显上升。此外,为了有效降低维护成本,失效资源不会逐一及时更新,而是成批维护的。在大规模分布存储系统中,资源失效是一种常态行为。由此可见,在大规模分布存储系统中,失效数据修复对于保证系统的容错能力至关重要。
虽然在拥有相同容错能力的前提下,基于纠删码的容错技术在存储开销方面具有明显优势,但是,在数据块失效时,基于纠删码的容错技术需要多个数据块才能解码恢复失效的原始数据块,需要占用较多的网络带宽资源,从而影响失效数据的修复效率。
现有的数据修复方法主要包括星形修复方法和树形修复方法:
(1)星形修复方法是:为失效数据块选择的新存储节点从若干可用存储节点获取可用数据块,并由失效数据块的新存储节点负责解码计算得到修复数据块。
(2)树形修复方法是:首先,构建以失效数据块的新存储节点为根、可用存储节点为子节点的生成树;然后,从叶节点逐级向上传输数据,每级节点对本地存储的可用数据块进行解码计算,与其子节点上传的数据合并后发送给其父节点;根节点(即,失效数据块的新存储节点)负责完成最后的解码计算得到修复数据块。
星形修复方法的带宽成本高,且修复时间受限于失效数据块的新存储节点与可用存储节点之间的瓶颈带宽。与星形修复方法相比,树形修复方法可以有效避开失效数据块的新存储节点与可用存储节点之间的瓶颈带宽;但是,树形修复方法的修复效率受生成树结构影响较大,易产生较高的修复带宽成本,且其修复时间仍然受限于生成树中父节点与子节点之间的瓶颈带宽。
因此,如何针对纠删码的特点,设计高效的失效数据修复方法,有效避免网络中的瓶颈带宽,显著降低失效数据修复的带宽成本,有效提高失效数据的修复效率,已经成为分布存储领域的热点研究问题。
发明内容
本发明要解决的技术问题是:针对纠删码的特点,提出一种基于纠删码的失效数据线形修复方法,有效避免网络中的瓶颈带宽,降低失效数据修复的带宽成本,提高失效数据的修复效率。
本发明技术方案包括以下步骤:
第一步,构建一个分布存储系统,它由多个节点构成,每个节点都是一台可独立运行的计算机,各节点通过网络设备互连。
分布存储系统中的节点分为两类:控制节点和存储节点。控制节点和存储节点上均安装有操作系统、TCP/IP协议软件,配置了网络环境。
分布存储系统包括一个控制节点,负责与用户交互,接收用户提交的失效数据块修复请求;负责存储解码系数,构建线形修复路径,向各存储节点分发失效数据块修复任务和接收修复成功信息,向用户返回修复成功信息。
分布存储系统包括N个存储节点(N为正整数),它们负责存储数据对象的原始数据块和冗余数据块,执行失效数据块修复任务,并向控制节点返回修复成功信息。设数据对象DO分割为k个原始数据块,对其进行编码计算得到m个冗余数据块,这k+m(k+m<N)个数据块分别存储在不同的存储节点上。在分布存储系统中,每个数据块拥有唯一的数据块编号。
控制节点上安装有任务管理程序和结果回收程序。任务管理程序接收用户提交的失效数据块修复请求,为失效数据块选择新存储节点;从数据对象DO的k+m-1(除去失效数据块)个可用数据块中选择k个可用数据块;根据存储节点之间的网络距离构建线形修复路径,向k个可用数据块所在的存储节点发送失效数据块修复请求及修复所需的相关信息。结果回收程序负责接收存储节点的修复成功信息并返回给用户。
存储节点上安装有修复程序。修复程序负责接收来自控制节点的失效数据块修复请求,并对存储节点上存储的可用数据块进行解码计算,完成修复后向控制节点发送修复成功信息。
第二步,控制节点执行任务管理程序,为待修复的失效数据块Di(1≤i≤k)选择新存储节点LN;从数据对象DO的k+m-1(除去失效数据块)个可用数据块中选择k个可用数据块;根据存储节点之间的网络距离构建线形修复路径,向k个可用数据块所在的存储节点发送失效数据块Di(1≤i≤k)修复请求、可用数据块编号及其解码系数Hij(1≤i≤k,j=1,2,…,k)、线形修复路径数组Path、失效数据块Di(1≤i≤k)的新存储节点LN的编号,具体方法是:
2.1控制节点的任务管理程序接收用户提交的失效数据块Di(1≤i≤k)修复请求。
2.2控制节点的任务管理程序从可用存储节点中选择一个存储节点作为失效数据块Di(1≤i≤k)的新存储节点LN,选择原则是新存储节点LN未存储数据对象DO的任何数据块。
2.3控制节点的任务管理程序从数据对象DO的k+m-1(除去失效数据块)个可用数据块中选择k个可用数据块,k个可用数据块所在的存储节点构成集合NSet。
2.4控制节点的任务管理程序根据存储节点之间的网络距离构建线形修复路径,采用线形修复路径数组Path存储线形修复路径中的存储节点,Path[j]表示线形修复路径的第j个存储节点,1≤j≤k,线形修复路径长度也为k,具体步骤如下:
2.4.1初始化信息,具体包括:
2.4.1.1目标存储节点TN=LN。
2.4.1.2线形修复路径节点序号j=k。
2.4.2根据集合NSet中的所有存储节点与目标存储节点TN之间的网络距离,确定与目标存储节点TN距离最近的存储节点NN,Path[j]=NN。
2.4.3将存储节点NN从NSet中删除,即,NSet=NSet-{NN}。
2.4.4更新目标存储节点,TN=NN。
2.4.5更新线形修复路径节点序号,j=j-1。
2.4.6如果j=0,那么,线形修复路径构建结束,转第2.5步;否则,转到第2.4.2步,继续构建线形修复路径。
2.5控制节点的任务管理程序向k个可用数据块所在的存储节点发送失效数据块Di(1≤i≤k)修复请求、可用数据块编号及其解码系数Hij(1≤i≤k,j=1,2,…,k)、线形修复路径数组Path、失效数据块Di(1≤i≤k)的新存储节点LN的编号。
第三步,线形修复路径中的各存储节点执行修复程序,接收来自控制节点的失效数据块Di(1≤i≤k)修复请求、可用数据块编号及其解码系数Hij(1≤i≤k,j=1,2,…,k)、线形修复路径数组Path、失效数据块Di(1≤i≤k)的新存储节点LN的编号;基于可用数据块及其解码系数Hij(1≤i≤k,j=1,2,…,k)进行解码计算,并将解码计算结果沿着线形修复路径进行传送和合并,并将合并后的最终解码结果发送给失效数据块Di(1≤i≤k)的新存储节点LN。
3.1初始化信息,线形修复路径节点序号j=1。
3.2存储节点Path[j]的修复程序接收来自控制节点的失效数据块Di(1≤i≤k)修复请求、可用数据块编号及其解码系数Hij(1≤i≤k,j=1,2,…,k)、线形修复路径数组Path、失效数据块Di(1≤i≤k)的新存储节点LN的编号。
3.3存储节点Path[j]的修复程序根据可用数据块编号获取本地存储的可用数据块Ej,进行本地解码计算,将解码系数Hij(1≤i≤k,1≤j≤k)与可用数据块Ej(1≤j≤k)进行逐位相乘,即,Sij=Hij×Ej(1≤i≤k,1≤j≤k),解码计算结果得到新数据块Sij(1≤i≤k,1≤j≤k)。
3.4如果j>1,那么,存储节点Path[j]的修复程序接收存储节点Path[j]在线形修复路径中的前继存储节点Path[j-1]发送来的解码计算结果数据块Si(j-1),并将Si(j-1)与本地解码计算结果数据块Sij(1≤i≤k,1≤j≤k)进行合并,即,Sij=Sij+Si(j-1),将数据块Sij和Si(j-1)进行逐位相加,转第3.5步;否则,转第3.5步。
3.5如果j<k,那么,存储节点Path[j]的修复程序将解码计算结果数据块Sij(1≤i≤k,1≤j≤k)发送给存储节点Path[j]在线形修复路径中的后继存储节点Path[j+1],转第3.6步;否则,存储节点Path[j]的修复程序将解码计算结果数据块Sij(1≤i≤k,1≤j≤k)发送给失效数据块Di(1≤i≤k)的新存储节点LN,转第四步。
3.6更新线形修复路径节点序号,j=j+1,转第3.2步。
第四步,失效数据块Di(1≤i≤k)的新存储节点LN的修复程序接收来自线形修复路径的最后一个存储节点的最终解码计算结果,向控制节点发送修复成功信息。
第五步,控制节点的结果回收程序接收来自新存储节点LN的修复成功信息,并向用户返回修复成功信息。
与现有技术相比,本发明具有以下技术优点:
1.本发明2.3步和2.4步控制节点根据存储节点之间的网络距离构建线形修复路径,有效避免了网络中的瓶颈带宽,缩短了修复数据的传输距离,为有效降低失效数据修复的带宽成本奠定基础。
2.本发明3.2步、3.3步、3.4步和3.5步线形修复路径中的各存储节点对各自存储的可用数据块进行解码计算,最大限度地开发解码计算的并行性;每个存储节点将本地解码计算结果与前继存储节点的解码计算结果进行合并,然后发送给后继存储节点,有效减少传输数据量,显著减少了对网络带宽资源的占用,有效提高了失效数据的修复效率。
附图说明
图1是本发明第一步构建的分布存储系统的物理结构图。
图2是本发明分布存储系统的软件部署图。
图3是本发明总流程图。
图4是本发明第二步控制节点执行任务管理程序的流程图。
图5是本发明2.4步控制节点执行任务管理程序根据存储节点之间的网络距离构建线形修复路径的流程图。
图6是本发明第三步存储节点执行修复程序的流程图。
具体实施方式
图1是本发明第一步构建的分布存储系统的物理结构图。分布存储系统的节点由控制节点和存储节点组成。控制节点和存储节点均是包含处理器、存储器、磁盘和网络接口的计算机。控制节点和存储节点之间通过互连网络相连。
图2是本发明分布存储系统的软件部署图。控制节点上安装有操作系统、TCP/IP网络软件、任务管理程序和结果回收程序。其中操作系统、TCP/IP网络软件是通用软件,从公开发行的软件包中获得;任务管理程序和结果回收程序是本发明的专用软件。计算节点上安装有操作系统、TCP/IP网络软件、修复程序。其中操作系统、TCP/IP网络软件是通用软件,从公开发行的软件包中获得;修复程序是本发明的专用软件。
图3是本发明总流程图。具体流程如下:
第一步,构建一个分布存储系统,它由多个节点构成,每个节点都是一台可独立运行的计算机,各节点通过网络设备互连。
第二步,控制节点执行任务管理程序,为待修复的失效数据块Di(1≤i≤k)选择新存储节点LN;从数据对象DO的k+m-1(除去失效数据块)个可用数据块中选择k个可用数据块;根据存储节点之间的网络距离构建线形修复路径,向k个可用数据块所在的存储节点发送失效数据块Di(1≤i≤k)修复请求、可用数据块编号及其解码系数Hij(1≤i≤k,j=1,2,…,k)、线形修复路径数组Path、失效数据块Di(1≤i≤k)的新存储节点LN的编号。
第三步,线形修复路径中的各存储节点执行修复程序,接收来自控制节点的失效数据块Di(1≤i≤k)修复请求、可用数据块编号及其解码系数Hij(1≤i≤k,j=1,2,…,k)、线形修复路径数组Path、失效数据块Di(1≤i≤k)的新存储节点LN的编号;基于可用数据块及其解码系数Hij(1≤i≤k,j=1,2,…,k)进行解码计算,并将解码计算结果沿着线形修复路径进行传送和合并,并将合并后的最终解码结果发送给失效数据块Di(1≤i≤k)的新存储节点LN。
第四步,失效数据块Di(1≤i≤k)的新存储节点LN的修复程序接收来自线形修复路径的最后一个存储节点的最终解码计算结果,向控制节点发送修复成功信息。
第五步,控制节点的结果回收程序接收来自新存储节点LN的修复成功信息,并向用户返回修复成功信息。
图4是本发明第二步控制节点执行任务管理程序的流程图。具体流程如下:
2.1控制节点的任务管理程序接收用户提交的失效数据块Di(1≤i≤k)修复请求。
2.2控制节点的任务管理程序从可用存储节点中选择一个存储节点作为失效数据块Di(1≤i≤k)的新存储节点LN,选择原则是新存储节点LN未存储数据对象DO的任何数据块。
2.3控制节点的任务管理程序从数据对象DO的k+m-1(除去失效数据块)个可用数据块中选择k个可用数据块,k个可用数据块所在的存储节点构成集合NSet。
2.4控制节点的任务管理程序根据存储节点之间的网络距离构建线形修复路径。
2.5控制节点的任务管理程序向k个可用数据块所在的存储节点发送失效数据块Di(1≤i≤k)修复请求、可用数据块编号及其解码系数Hij(1≤i≤k,j=1,2,…,k)、线形修复路径数组Path、失效数据块Di(1≤i≤k)的新存储节点LN的编号。
图5是本发明2.4步控制节点执行任务管理程序根据存储节点之间的网络距离构建线形修复路径的流程图。具体流程如下:
2.4.1初始化信息,具体包括:
2.4.1.1目标存储节点TN=LN。
2.4.1.2线形修复路径节点序号j=k。
2.4.2根据集合NSet中的所有存储节点与目标存储节点TN之间的网络距离,确定与目标存储节点TN距离最近的存储节点NN,Path[j]=NN。
2.4.3将存储节点NN从NSet中删除,即,NSet=NSet-{NN}。
2.4.4更新目标存储节点,TN=NN。
2.4.5更新线形修复路径节点序号,j=j-1。
2.4.6如果j=0,那么,线形修复路径构建结束,转第2.5步;否则,转到第2.4.2步,继续构建线形修复路径。
图6是本发明第三步线形修复路径中的各存储节点执行修复程序的流程图。具体流程如下:
3.1初始化信息,线形修复路径节点序号j=1。
3.2存储节点Path[j]的修复程序接收来自控制节点的失效数据块Di(1≤i≤k)修复请求、可用数据块编号及其解码系数Hij(1≤i≤k,j=1,2,…,k)、线形修复路径数组Path、失效数据块Di(1≤i≤k)的新存储节点LN的编号。
3.3存储节点Path[j]的修复程序根据可用数据块编号获取本地存储的可用数据块Ej,进行本地解码计算,将解码系数Hij(1≤i≤k,1≤j≤k)与可用数据块Ej(1≤j≤k)进行逐位相乘,即,Sij=Hij×Ej(1≤i≤k,1≤j≤k),解码计算结果得到新数据块Sij(1≤i≤k,1≤j≤k)。
3.4如果j>1,那么,存储节点Path[j]的修复程序接收存储节点Path[j]在线形修复路径中的前继存储节点Path[j-1]发送来的解码计算结果数据块Si(j-1),并将其与本地解码计算结果数据块Sij(1≤i≤k,1≤j≤k)进行合并,即,Sij=Sij+Si(j-1),将数据块Sij和Si(j-1)进行逐位相加,转第3.5步;否则,转第3.5步。
3.5如果j<k,那么,存储节点Path[j]的修复程序将解码计算结果数据块Sij(1≤i≤k,1≤j≤k)发送给存储节点Path[j]在线形修复路径中的后继存储节点Path[j+1],转第3.6步;否则,存储节点Path[j]的修复程序将解码计算结果数据块Sij(1≤i≤k,1≤j≤k)发送给失效数据块Di(1≤i≤k)的新存储节点LN,转第四步。
3.6更新线形修复路径节点序号,j=j+1,转第3.2步。
Claims (1)
1.一种基于纠删码的失效数据线形修复方法,其特征在于包括以下步骤:
第一步,构建一个由多个节点构成分布存储系统,每个节点都是一台可独立运行的计算机,各节点通过网络设备互连;分布存储系统中的节点分为两类:控制节点和存储节点,控制节点和存储节点上均安装有操作系统、TCP/IP协议软件,配置了网络环境;
分布存储系统包括一个控制节点,负责与用户交互,接收用户提交的失效数据块修复请求;负责存储解码系数,构建线形修复路径,向各存储节点分发失效数据块修复任务和接收修复成功信息,向用户返回修复成功信息;
分布存储系统包括N个存储节点,N为正整数,它们负责存储数据对象的原始数据块和冗余数据块,执行失效数据块修复任务,并向控制节点返回修复成功信息;设数据对象DO分割为k个原始数据块,对其进行编码计算得到m个冗余数据块,这k+m个数据块分别存储在不同的存储节点上,k+m<N;在分布存储系统中,每个数据块拥有唯一的数据块编号;
控制节点上安装有任务管理程序和结果回收程序,任务管理程序接收用户提交的失效数据块修复请求,为失效数据块选择新存储节点;从数据对象DO的k+m-1个可用数据块中选择k个可用数据块;根据存储节点之间的网络距离构建线形修复路径,向k个可用数据块所在的存储节点发送失效数据块修复请求及修复所需的相关信息;结果回收程序负责接收存储节点的修复成功信息并返回给用户;
存储节点上安装有修复程序,修复程序负责接收来自控制节点的失效数据块修复请求,并对存储节点上存储的可用数据块进行解码计算,完成修复后向控制节点发送修复成功信息;
第二步,控制节点执行任务管理程序,为待修复的失效数据块Di选择新存储节点LN;从数据对象DO的k+m-1个可用数据块中选择k个可用数据块;根据存储节点之间的网络距离构建线形修复路径,向k个可用数据块所在的存储节点发送失效数据块Di修复请求、可用数据块编号及其解码系数Hij、线形修复路径数组Path、失效数据块Di的新存储节点LN的编号,1≤i≤k,j=1,2,…,k,具体方法是:
2.1控制节点的任务管理程序接收用户提交的失效数据块Di修复请求;
2.2控制节点的任务管理程序从可用存储节点中选择一个存储节点作为失效数据块Di的新存储节点LN,选择原则是新存储节点LN未存储数据对象DO的任何数据块;
2.3控制节点的任务管理程序从数据对象DO的k+m-1个可用数据块中选择k个可用数据块,k个可用数据块所在的存储节点构成集合NSet;
2.4控制节点的任务管理程序根据存储节点之间的网络距离构建线形修复路径,采用线形修复路径数组Path存储线形修复路径中的存储节点,Path[j]表示线形修复路径的第j个存储节点,1≤j≤k,线形修复路径长度也为k,具体步骤如下:
2.4.1初始化信息,具体包括:
2.4.1.1目标存储节点TN=LN;
2.4.1.2线形修复路径节点序号j=k;
2.4.2根据集合NSet中的所有存储节点与目标存储节点TN之间的网络距离,确定与目标存储节点TN距离最近的存储节点NN,Path[j]=NN;
2.4.3将存储节点NN从NSet中删除,即,NSet=NSet‐{NN};
2.4.4更新目标存储节点,TN=NN;
2.4.5更新线形修复路径节点序号,j=j-1;
2.4.6如果j=0,转第2.5步;否则,转到第2.4.2步;
2.5控制节点的任务管理程序向k个可用数据块所在的存储节点发送失效数据块Di修复请求、可用数据块编号及其解码系数Hij、线形修复路径数组Path、失效数据块Di的新存储节点LN的编号;解码系数Hij是指纠删码解码计算Hi1×E1+…+Hij×Ej+…+Hik×Ek=Di中的解码系数,Ej是可用数据块,“×”表示Hij与可用数据块Ej进行逐位相乘;
第三步,线形修复路径中的各存储节点执行修复程序,接收来自控制节点的失效数据块Di修复请求、可用数据块编号及其解码系数Hij、线形修复路径数组Path、失效数据块Di的新存储节点LN的编号;基于可用数据块及其解码系数Hij进行解码计算,并将解码计算结果沿着线形修复路径进行传送和合并,并将合并后的最终解码结果发送给失效数据块Di的新存储节点LN:
3.1初始化信息,线形修复路径节点序号j=1;
3.2存储节点Path[j]的修复程序接收来自控制节点的失效数据块Di修复请求、可用数据块编号及其解码系数Hij、线形修复路径数组Path、失效数据块Di的新存储节点LN的编号;
3.3存储节点Path[j]的修复程序根据可用数据块编号获取本地存储的可用数据块Ej,进行本地解码计算,将解码系数Hij与可用数据块Ej进行逐位相乘,即,Sij=Hij×Ej,解码计算结果得到新数据块Sij;
3.4如果j>1,存储节点Path[j]的修复程序接收存储节点Path[j]在线形修复路径中的前继存储节点Path[j-1]发送来的解码计算结果数据块Si(j-1),并将Si(j-1)与本地解码计算结果数据块Sij进行合并,即,Sij=Sij+Si(j-1),将数据块Sij和Si(j-1)进行逐位相加,转第3.5步;否则,转第3.5步;
3.5如果j<k,存储节点Path[j]的修复程序将解码计算结果数据块Sij发送给存储节点Path[j]在线形修复路径中的后继存储节点Path[j+1],转第3.6步;否则,存储节点Path[j]的修复程序将解码计算结果数据块Sij发送给失效数据块Di的新存储节点LN,转第四步;
3.6更新线形修复路径节点序号,j=j+1,转第3.2步;
第四步,失效数据块Di的新存储节点LN的修复程序接收来自线形修复路径的最后一个存储节点的最终解码计算结果,向控制节点发送修复成功信息;
第五步,控制节点的结果回收程序接收来自新存储节点LN的修复成功信息,并向用户返回修复成功信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310593541.5A CN103607304B (zh) | 2013-11-21 | 2013-11-21 | 一种基于纠删码的失效数据线形修复方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310593541.5A CN103607304B (zh) | 2013-11-21 | 2013-11-21 | 一种基于纠删码的失效数据线形修复方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103607304A CN103607304A (zh) | 2014-02-26 |
CN103607304B true CN103607304B (zh) | 2016-08-17 |
Family
ID=50125505
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310593541.5A Active CN103607304B (zh) | 2013-11-21 | 2013-11-21 | 一种基于纠删码的失效数据线形修复方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103607304B (zh) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103944981B (zh) * | 2014-04-14 | 2017-03-22 | 中国科学院计算技术研究所 | 一种基于纠删码技术改进的云存储系统及实现方法 |
CN103955343B (zh) * | 2014-04-16 | 2016-08-24 | 华中科技大学 | 一种基于i/o流水线的失效节点数据重构优化方法 |
CN104035732B (zh) * | 2014-06-17 | 2017-01-18 | 中国人民解放军国防科学技术大学 | 一种面向纠删码的数据放置方法 |
CN104102558B (zh) * | 2014-07-13 | 2017-01-25 | 中国人民解放军国防科学技术大学 | 一种基于纠删码的文件追加方法 |
CN105227637B (zh) * | 2015-09-06 | 2019-10-18 | 浙江宇视科技有限公司 | 一种提高云存储资源修复效率的方法和装置 |
CN107153506A (zh) * | 2016-03-02 | 2017-09-12 | 上海云熵网络科技有限公司 | 基于再生码的分布式存储系统与处理方法 |
CN107885615B (zh) * | 2016-09-30 | 2020-09-04 | 上海云熵网络科技有限公司 | 分布式存储数据的复原方法与系统 |
CN106788455B (zh) * | 2016-11-29 | 2019-11-22 | 陕西尚品信息科技有限公司 | 一种基于包的最优局部可修复系统码的构造方法 |
US10740198B2 (en) | 2016-12-22 | 2020-08-11 | Purdue Research Foundation | Parallel partial repair of storage |
CN109067852A (zh) * | 2018-07-15 | 2018-12-21 | 中国人民解放军国防科技大学 | 一种基于纠删码的跨中心协同修复方法 |
CN109343998B (zh) * | 2018-10-09 | 2021-10-29 | 中国人民解放军国防科技大学 | 一种基于纠删码的全分布修复方法 |
CN109857585A (zh) * | 2019-02-20 | 2019-06-07 | 哈尔滨工程大学 | 一种基于平衡二叉树的纠删码失效节点重构方法 |
CN109889440B (zh) * | 2019-02-20 | 2021-02-02 | 哈尔滨工程大学 | 一种基于最大生成树的纠删码失效节点重构路径选择方法 |
CN111858128B (zh) * | 2019-04-26 | 2023-12-29 | 深信服科技股份有限公司 | 一种纠删码数据修复方法、装置、设备及存储介质 |
CN110212923B (zh) * | 2019-05-08 | 2020-11-17 | 西安交通大学 | 一种基于模拟退火的分布式纠删码存储系统数据修复方法 |
CN111385200B (zh) * | 2020-03-04 | 2022-03-04 | 中国人民解放军国防科技大学 | 用于数据块修复的控制方法和装置 |
CN112445656B (zh) * | 2020-12-14 | 2024-02-13 | 北京京航计算通讯研究所 | 分布式存储系统中数据的修复方法及装置 |
CN114595092B (zh) * | 2022-04-28 | 2022-09-20 | 阿里云计算有限公司 | 分布式存储系统、数据重构方法、设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102270161A (zh) * | 2011-06-09 | 2011-12-07 | 华中科技大学 | 一种基于纠删码的多等级容错数据存储、读取和恢复方法 |
CN103209210A (zh) * | 2013-03-04 | 2013-07-17 | 华中科技大学 | 一种提高基于纠删码的存储集群恢复性能的方法 |
-
2013
- 2013-11-21 CN CN201310593541.5A patent/CN103607304B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102270161A (zh) * | 2011-06-09 | 2011-12-07 | 华中科技大学 | 一种基于纠删码的多等级容错数据存储、读取和恢复方法 |
CN103209210A (zh) * | 2013-03-04 | 2013-07-17 | 华中科技大学 | 一种提高基于纠删码的存储集群恢复性能的方法 |
Non-Patent Citations (2)
Title |
---|
《云计算环境下的分布存储关键技术》;王意洁等,;《软件学报》;20120430;962-986 * |
《基于纠删码的分布式存储系统中针对多数据失效的树型并行修复技术(英文)》;孙伟东等,;《中国通信》;20130430;113-125 * |
Also Published As
Publication number | Publication date |
---|---|
CN103607304A (zh) | 2014-02-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103607304B (zh) | 一种基于纠删码的失效数据线形修复方法 | |
CN103729151B (zh) | 一种基于改进型纠删码的失效数据修复方法 | |
CN108540520B (zh) | 基于部分重复码的局部性修复编码及节点故障修复方法 | |
Qi et al. | BFT-Store: Storage partition for permissioned blockchain via erasure coding | |
CN106776129B (zh) | 一种基于最小存储再生码的多节点数据文件的修复方法 | |
CN103944981B (zh) | 一种基于纠删码技术改进的云存储系统及实现方法 | |
CN105260259B (zh) | 一种基于系统最小存储再生码的局部性修复编码方法 | |
CN104364765A (zh) | 分布式数据存储系统中的数据存储和维护的方法以及对应设备 | |
CN104035732B (zh) | 一种面向纠删码的数据放置方法 | |
CN103209210B (zh) | 一种提高基于纠删码的存储集群恢复性能的方法 | |
WO2014210501A1 (en) | Asynchronous message passing for large graph clustering | |
US20150127974A1 (en) | Method of storing a data item in a distributed data storage system, corresponding storage device failure repair method and corresponding devices | |
WO2011140991A1 (zh) | 分布式文件系统的文件处理方法及装置 | |
CN103106124B (zh) | 一种基于纠删码集群存储系统的交叉重构方法 | |
CN103810061A (zh) | 一种高可用云存储方法 | |
CN109889440B (zh) | 一种基于最大生成树的纠删码失效节点重构路径选择方法 | |
CN110178122A (zh) | 分布式存储系统的数据同步修复方法及存储介质 | |
CN110389848B (zh) | 基于分块构造的部分重复码构造方法及故障节点修复方法 | |
CN107689983A (zh) | 基于低修复带宽的云存储系统及方法 | |
CN105069152A (zh) | 数据处理方法及装置 | |
CN109194444A (zh) | 一种基于网络拓扑的平衡二叉树修复方法 | |
CN103544270A (zh) | 面向数据中心的通用化网络编码容错存储平台及工作方法 | |
CN109067852A (zh) | 一种基于纠删码的跨中心协同修复方法 | |
CN108762978A (zh) | 一种局部部分重复循环码的分组构造方法 | |
CN104113562A (zh) | 基于网络编码的分布式数据存储和修复系统及其方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |