CN103955343A - 一种基于i/o流水线的失效节点数据重构优化方法 - Google Patents
一种基于i/o流水线的失效节点数据重构优化方法 Download PDFInfo
- Publication number
- CN103955343A CN103955343A CN201410154239.4A CN201410154239A CN103955343A CN 103955343 A CN103955343 A CN 103955343A CN 201410154239 A CN201410154239 A CN 201410154239A CN 103955343 A CN103955343 A CN 103955343A
- Authority
- CN
- China
- Prior art keywords
- node
- block
- piecemeal
- data
- failure
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 47
- 238000005457 optimization Methods 0.000 title claims abstract description 12
- 230000004083 survival effect Effects 0.000 claims abstract description 22
- 238000003860 storage Methods 0.000 claims abstract description 17
- 230000008569 process Effects 0.000 abstract description 22
- 230000008901 benefit Effects 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 13
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000000151 deposition Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Abstract
本发明公开了一种基于I/O流水线的失效节点数据重构优化方法,包括:从纠删码存储集群中的存活节点中任选k个节点N1,N2,…,Nk,并初始化计数器i=0,j=1,节点Nj读取其自身的分块Blocki,j,并将其发送到Nj+1,并设置j=j+1,节点Nj读取其自身的分块Blocki,j,并与接收自节点Nj-1的分块Blocki,j-1进行线性组合计算,以得到结果分块Blocki,j’,并将结果分块Blocki,j’发送到节点Nj+1,设置j=j+1,并判断j是否等于k,如果等于则Nj读取分块Blocki,j与接收自Nj-1的分块Blocki,j-1’进行线性组合计算。本发明能显著地加快失效节点数据重构过程的速度。
Description
技术领域
本发明属于计算机存储领域,更具体地,涉及一种基于I/O流水线的失效节点数据重构优化方法。
背景技术
RAID编码是一种可以容许磁盘失效的保护技术。作为RAID码的一般化形式,纠删码(Erasure Codes)也具备这种容错特性。当前典型数据中心采用纠删码来避免多个节点上数据的失效,从而提供数据高可用性。特别地,可以将纠删码应用于存储集群,以保护集群节点的数据失效,从而构成具有容错特性的纠删码存储集群。
如图1所示,在现有(k+r,k)纠删码存储集群中,含有k个数据节点,r个校验节点。集群内数据分布示意图如图2所示。如图3所示,在(k+r,k)纠删码集群中,任意一个存储节点失效的示意图。重构过程表示当集群中有存储节点失效时,采用存活节点上数据来恢复失效节点数据的过程。如图4所示,纠删码集群中,传统的失效节点数据重构的示意图。如图5所示,纠删码集群中,传统的失效节点数据重构的流程图。纠删码存储集群中传统的失效节点数据重构过程大致可以分为以下几步:(1)替换节点分别从任意k个存活节点中取同一条带的存活分块;(2)替换节点将所获取的k个存活分块进行解码计算,解码出失效数据;(3)将解码出的失效数据写入替换节点;(4)判断失效节点数据是否重建完成,如果完成则重构结束,否则转到(1)继续执行;
纠删码集群中传统失效节点数据重构过程存在以下技术问题:首先,重构过程中,替换节点将分别从任意k个存活节点读取数据并进行解码操作,则此时替换节点的网络带宽将成为整个重构过程的瓶颈,从而制约了失效数据的重构速度;此外,存活节点的计算资源以及网络带宽资源没有得到充分的利用。
发明内容
针对现有技术的以上缺陷或改进需求,本发明提供了一种基于I/O流水线的失效节点数据重构优化方法,其目的在于,解决传统纠删码集群数据重构过程存在的上述技术问题,其不仅能充分利用存活节点的计算资源和网络带宽资源,同时还能显著地加快失效节点数据重构过程的速度。
为实现上述目的,按照本发明的一个方面,提供了一种基于I/O流水线的失效节点数据重构优化方法,是应用于纠删码存储集群中,所述方法包括如下步骤:
(1)从纠删码存储集群中的存活节点中任选k个节点,记为N1,N2,…,Nk,并初始化计数器i=0,j=1,其中k为纠删码存储集群中数据节点的数量;
(2)节点Nj读取其自身的分块Blocki,j,并将其发送到Nj+1,其中Blocki,j表示第j个节点Nj的第i个分块,并设置j=j+1;
(3)节点Nj读取其自身的分块Blocki,j,并与接收自节点Nj-1的分块Blocki,j-1进行线性组合计算,以得到结果分块Blocki,j’,并将结果分块Blocki,j’发送到节点Nj+1;
(4)设置j=j+1,并判断j是否等于k,如果等于则进入步骤(5),否则返回步骤(3);
(5)Nj读取分块Blocki,j与接收自Nj-1的分块Blocki,j-1’进行线性组合计算,以得到结果分块Blocki,j’,并将结果分块Blocki,j’发送到替换节点;
(6)替换节点将结果分块Blocki,j’写入该替换节点的磁盘;
(7)设置i=i+1,并判断i是否等于节点上的总分块数,如果等于,则重构过程结束,否则设置j=1,并返回步骤(2)。
总体而言,通过本发明所构思的以上技术方案与现有技术相比,能够取得下列有益效果:
1、避免了替换节点的网络带宽成为重构性能瓶颈:由于采用了步骤(2)至步骤(7)的流水过程,替换节点只需接收已重构数据,并将其写入指定位置即可;而在传统模式下,替换节点需要接收k个存活分块方可进行重构操作。从而避免了数据接收带宽此一重构性能瓶颈;
2、本发明能以k倍速度加快失效节点的数据重构过程:由于采用了步骤(2)至步骤(7)的流水线过程,替换节点只需要接收已重构的数据;而在传统模式下,替换节点需要接收k个存活分块方可进行重构操作,因此本发明中替换节点的重构网络带宽可以达到传统模式下替换节点重构网络带宽的k倍。
附图说明
图1是传统(k+r,k)纠删码存储集群磁盘示意图。
图2是纠删码存储集群中个存储节点数据分块示意图。
图3是纠删码存储集群中任意一个节点失效的示意图。
图4是传统纠删码集群中失效节点数据重构方法示意图。
图5是传统纠删码集群中失效节点数据重构方法流程图。
图6是本发明基于I/O流水线的失效节点数据重构优化方法的示意图。
图7是本发明基于I/O流水线的失效节点数据重构优化方法的流程图。
图8是以RS(9,6)编码为例并有一个节点失效时重构一个数据块的示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
以下首先就本发明的技术术语进行解释和说明:
分块数据:节点的分块数据表示节点中一定大小的数据块,如图2中所示的分块数据D0,0、D0,1、、、、D0,K-1等即为数据节点上的分块数据,校验分块P0,0、P0,1等即为校验节点上的分块数据。
偏移地址:表示为相对于节点首地址的偏移量,如图3中所示的0、1、、、n-1、n表示的离节点首地址偏移量为0*512字节、1*512字节、、、(n-1)*512字节、n*512字节的位置。
数据条带:所有节点上相同偏移地址的各个分块数据构成一个数据条带。在图2中表示为分块数据D0,0、D0,1、、、D0,K-1、P0,0、、、P0,N-K-1,这N块分块数据组成一个数据条带。如图2所示一分块数据的大小为512字节。
失效节点:在纠删码集群中数据失效的节点,如图3所示的失效节点i.
存活节点:在纠删码集群中数据未失效的节点,如图3所示的存活节点1、、、存活节点i-1、存活节点i+1、、、存活节点k+r-1。
替换节点:在纠删码集群中用于存放重建失效节点数据的节点,如图3所示的替换节点0。
重构过程:在纠删码集群中用任意k个存活节点数据来重建失效节点数据的过程。
如图6所示,本发明基于I/O流水线的失效节点数据重构优化方法是应用于纠删码存储集群中,并包括如下步骤:
(1)从纠删码存储集群中的存活节点中任选k个节点,记为N1,N2,…,Nk,并初始化计数器i=0,j=1,其中k为纠删码存储集群中数据节点的数量;
(2)节点Nj读取其自身的分块Blocki,j,并将其发送到Nj+1,其中Blocki,j表示第j个节点Nj的第i个分块,并设置j=j+1;
(3)节点Nj读取其自身的分块Blocki,j,并与接收自节点Nj-1的分块Blocki,j-1进行线性组合计算,以得到结果分块Blocki,j’,并将结果分块Blocki,j’发送到节点Nj+1;
(4)设置j=j+1,并判断j是否等于k,如果等于则进入步骤(5),否则返回步骤(3);
(5)Nj读取分块Blocki,j与接收自Nj-1的分块Blocki,j-1’进行线性组合计算,以得到结果分块Blocki,j’,并将结果分块Blocki,j’发送到替换节点;
(6)替换节点将结果分块Blocki,j’写入替换节点的磁盘;
(7)设置i=i+1,并判断i是否等于节点上的总分块数,如果等于,则重构过程结束,否则设置j=1,并返回步骤(2)。
以上仅仅说明了以串行方式实现基于IO流水线的失效节点数据重构优化过程,由于在实际系统中,失效节点数据重构是以条带为单位,每个条带重构失效数据的过程是完全独立的,且都以IO流水线的方式来进行失效数据重构,因此在实际系统中完全可以做到并行进行失效数据重构过程,并且,采用并行流水线的方式,替换节点只需要接收已重构的数据;而在传统模式下,替换节点需要接收k个存活分块方可进行重构操作,由此本发明中替换节点的重构网络带宽可以达到传统模式下替换节点重构网络带宽的k倍。简言之,该I/O流水线的重构方式能以k倍速度加快失效节点的数据重构过程。
如图8所示,以RS(9,6)编码为实例并且有一个节点失效(假定为第一个数据节点失效)时重构一个数据块的示意图。
图8中各个节点的偏移地址以512字节为基数,即每个数据分块为512字节。
图8中虚线以上部分表示传统重构一个数据块的过程,虚线以下部分表示本发明重构一个数据块的过程。
针对传统的纠删码集群数据重构过程而言,具体操作为:
第一步:替换节点直接从任意的6个存活节点{假设选取DN1、DN2、DN3、DN4、DN5以及PN1}的偏移为0字节的位置,分别读取大小为512字节的分块D0,1,D0,2,D0,3,D0,4,D0,5,P0,0。
第二步:将获取的分块D0,1,D0,2,D0,3,D0,4,D0,5,P0,0进行解码计算,解码出失效数据块D0,0,并将D0,0写入替换节点RN1偏移为0字节的位置。
针对本发明基于I/O流水线的失效节点数据重构优化方法,具体操作为:
第一步:任意选取6个存活节点{假设选取DN1、DN2、DN3、DN4、DN5以及PN1}。
第二步:PN1从偏移为0的位置,读取大小为512字节的分块P0,0发送给DN5。
第三步:DN5从偏移为0的位置,读取大小为512字节的分块D0,5和接收到的P0,0分块进行相应的线性组合计算,并将计算结果D0,5’发送给DN4.
第三步:DN4从偏移为0的位置,读取大小为512字节的分块D0,4和接收到的分块D0,5’进行相应的线性组合计算,并将计算结果D0,4’发送给DN3.
第四步:DN3从偏移为0的位置,读取大小为512字节的分块D0,3和接收到的分块D0,4’进行相应的线性组合计算,并将计算结果D0,3’发送给DN2.
第五步:DN2从偏移为0的位置,读取大小为512字节的分块D0,2和接收到的分块D0,3’进行相应的线性组合计算,并将计算结果D0,2’发送给DN1.
第六步:DN1从偏移为0的位置,读取大小为512字节的分块D0,1和接收到的分块D0,2’进行相应的线性组合计算,并将计算结果D0,1’发给替换节点RN1.
第七步:替换节点RN1接收到分块D0,1’,并将该分块写入到偏移为0的位置。
总而言之,本发明有以下的有益效果:
1、本发明避免了替换节点的网络带宽成为重构性能瓶颈:由于采用了步骤(2)至步骤(7)的流水过程,换节点只需接收已重构数据,并将其写入指定位置即可;而在传统模式下,替换节点需要接收k个存活分块方可进行重构操作。从而避免了数据接收带宽此一重构性能瓶颈;
2、本发明能以k倍速度加快失效节点的数据重构过程:由于采用了步骤(2)至步骤(7)的流水线过程,替换节点只需要接收已重构的数据;而在传统模式下,替换节点需要接收k个存活分块方可进行重构操作,因此本发明中替换节点的重构网络带宽可以达到传统模式下替换节点重构网络带宽的k倍。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (1)
1.一种基于I/O流水线的失效节点数据重构优化方法,是应用于纠删码存储集群中,其特征在于,所述方法包括如下步骤:
(1)从纠删码存储集群中的存活节点中任选k个节点,记为N1,N2,…,Nk,并初始化计数器i=0,j=1,其中k为纠删码存储集群中数据节点的数量;
(2)节点Nj读取其自身的分块Blocki,j,并将其发送到Nj+1,其中Blocki,j表示第j个节点Nj的第i个分块,并设置j=j+1;
(3)节点Nj读取其自身的分块Blocki,j,并与接收自节点Nj-1的分块Blocki,j-1进行线性组合计算,以得到结果分块Blocki,j’,并将结果分块Blocki,j’发送到节点Nj+1;
(4)设置j=j+1,并判断j是否等于k,如果等于则进入步骤(5),否则返回步骤(3);
(5)Nj读取分块Blocki,j与接收自Nj-1的分块Blocki,j-1’进行线性组合计算,以得到结果分块Blocki,j’,并将结果分块Blocki,j’发送到替换节点;
(6)替换节点将结果分块Blocki,j’写入该替换节点的磁盘;
(7)设置i=i+1,并判断i是否等于节点上的总分块数,如果等于,则重构过程结束,否则设置j=1,并返回步骤(2)。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410154239.4A CN103955343B (zh) | 2014-04-16 | 2014-04-16 | 一种基于i/o流水线的失效节点数据重构优化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410154239.4A CN103955343B (zh) | 2014-04-16 | 2014-04-16 | 一种基于i/o流水线的失效节点数据重构优化方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103955343A true CN103955343A (zh) | 2014-07-30 |
CN103955343B CN103955343B (zh) | 2016-08-24 |
Family
ID=51332620
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410154239.4A Expired - Fee Related CN103955343B (zh) | 2014-04-16 | 2014-04-16 | 一种基于i/o流水线的失效节点数据重构优化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103955343B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018001110A1 (zh) * | 2016-06-29 | 2018-01-04 | 中兴通讯股份有限公司 | 一种基于纠删码的存储数据重构方法和装置、存储节点 |
CN112667159A (zh) * | 2020-12-25 | 2021-04-16 | 深圳创新科技术有限公司 | 一种基于纠删码的数据并行重构方法及系统 |
WO2022105442A1 (zh) * | 2020-11-19 | 2022-05-27 | 苏州浪潮智能科技有限公司 | 一种基于纠删码的数据重构方法、装置、设备及存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103607304B (zh) * | 2013-11-21 | 2016-08-17 | 中国人民解放军国防科学技术大学 | 一种基于纠删码的失效数据线形修复方法 |
CN103645861B (zh) * | 2013-12-03 | 2016-04-13 | 华中科技大学 | 一种纠删码集群中失效节点的重构方法 |
-
2014
- 2014-04-16 CN CN201410154239.4A patent/CN103955343B/zh not_active Expired - Fee Related
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018001110A1 (zh) * | 2016-06-29 | 2018-01-04 | 中兴通讯股份有限公司 | 一种基于纠删码的存储数据重构方法和装置、存储节点 |
CN107544862A (zh) * | 2016-06-29 | 2018-01-05 | 中兴通讯股份有限公司 | 一种基于纠删码的存储数据重构方法和装置、存储节点 |
CN107544862B (zh) * | 2016-06-29 | 2022-03-25 | 中兴通讯股份有限公司 | 一种基于纠删码的存储数据重构方法和装置、存储节点 |
WO2022105442A1 (zh) * | 2020-11-19 | 2022-05-27 | 苏州浪潮智能科技有限公司 | 一种基于纠删码的数据重构方法、装置、设备及存储介质 |
CN112667159A (zh) * | 2020-12-25 | 2021-04-16 | 深圳创新科技术有限公司 | 一种基于纠删码的数据并行重构方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN103955343B (zh) | 2016-08-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9722637B2 (en) | Construction of MBR (minimum bandwidth regenerating) codes and a method to repair the storage nodes | |
KR101625273B1 (ko) | 더 짧은 블록 길이를 이용하여 더 긴 선형 블록 코드워드를 생성 및 디코딩하기 위한 장치, 시스템 및 방법 | |
CN109491835B (zh) | 一种基于动态分组码的数据容错方法 | |
CN103209210B (zh) | 一种提高基于纠删码的存储集群恢复性能的方法 | |
US8046658B2 (en) | Method and device for decoding blocks encoded with an LDPC code | |
CN103106124B (zh) | 一种基于纠删码集群存储系统的交叉重构方法 | |
CN104052576A (zh) | 一种云存储下基于纠错码的数据恢复方法 | |
US10523244B2 (en) | Device and associated methodoloy for encoding and decoding of data for an erasure code | |
CN103645861A (zh) | 一种纠删码集群中失效节点的重构方法 | |
CN105356968B (zh) | 基于循环置换矩阵的网络编码的方法及系统 | |
US20130147645A1 (en) | Encoding methods and systems for binary product codes | |
CN102915768A (zh) | 基于edac模块的三模冗余对存储器的容错装置及其方法 | |
CN103188035B (zh) | 迭代解映射解码方法和系统 | |
US10892781B2 (en) | Method and devices for a reduced repair and update erasure code | |
CN105518996A (zh) | 一种基于二进制域里德所罗门码的数据编解码方法 | |
CN103955343A (zh) | 一种基于i/o流水线的失效节点数据重构优化方法 | |
CN102414991B (zh) | 用于解码器的数据重排 | |
CN104052495A (zh) | 减少硬件缓冲器的低密度奇偶检查码阶层式译码架构 | |
US10187084B2 (en) | Method of encoding data and data storage system | |
CN108304264B (zh) | 一种基于spark流式计算的纠删码归档方法 | |
US9374107B1 (en) | Time shared protograph LDPC decoder | |
CN107733441B (zh) | 编码方法及装置、译码方法及装置 | |
CN101958718A (zh) | 用于ldpc码的改进型半并行译码器和译码方法 | |
US9413491B1 (en) | System and method for multiple dimension decoding and encoding a message | |
CN105656491A (zh) | 一种多码率二元qc-ldpc码译码器及译码方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20160824 |