CN103106124B - 一种基于纠删码集群存储系统的交叉重构方法 - Google Patents

一种基于纠删码集群存储系统的交叉重构方法 Download PDF

Info

Publication number
CN103106124B
CN103106124B CN201210591296.XA CN201210591296A CN103106124B CN 103106124 B CN103106124 B CN 103106124B CN 201210591296 A CN201210591296 A CN 201210591296A CN 103106124 B CN103106124 B CN 103106124B
Authority
CN
China
Prior art keywords
rowstep
node
replaced
stick
cluster
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
Application number
CN201210591296.XA
Other languages
English (en)
Other versions
CN103106124A (zh
Inventor
黄建忠
曹强
谢长生
黄思倜
张峰豪
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huazhong University of Science and Technology
Original Assignee
Huazhong University of Science and Technology
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huazhong University of Science and Technology filed Critical Huazhong University of Science and Technology
Priority to CN201210591296.XA priority Critical patent/CN103106124B/zh
Publication of CN103106124A publication Critical patent/CN103106124A/zh
Application granted granted Critical
Publication of CN103106124B publication Critical patent/CN103106124B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Hardware Redundancy (AREA)

Abstract

本发明公开了一种基于纠删码集群存储系统的交叉重构方法,包括:第i个替换节点RNi将自身条带号的基准值rowstep初始化为0,替换节点RNi向集群中任意k个存活节点发出请求,获取这k个存活节点的第rowstep+i个条块,分别记为B1,…,Bk,替换节点RNi使用条块B1,…,Bk计算出属于集群的第rowstep+i个条带的f个失效块,分别记为RBrowstep+i,1,…,RBrowstep+i,f,替换节点RNi将失效块RBrowstep+i,i写入本地磁盘,成为本地的第rowstep+i个条块。本发明能够降低网络带宽开销和加快重构速度。

Description

一种基于纠删码集群存储系统的交叉重构方法
技术领域
本发明属于数据存储领域,更具体地,涉及一种基于纠删码集群存储系统的交叉重构方法。
背景技术
随着计算机技术和网络技术的发展,集群存储系统需要具有高存储利用率和高容错率的容错技术以应对海量数据对集群可靠性提出的挑战。纠删码容错技术在上述两方面具有优势而越来越受到重视。
纠删码容错技术通过纠删码算法将数据进行编码得到少量冗余,再将数据与冗余一起存储。如图1所示,每个节点的磁盘空间被划分成一个个条块。整个集群的磁盘空间由一个个相互独立的条带组成。每个条带将k个数据块通过一定编码算法计算出r个冗余块,将这k+r个条块分布到集群的不同节点。集群可以使用某一条带中的任意k个条块,解码得到该条带内的所有数据块和冗余块。因此该集群存储系统最多可以容忍r个节点失效。
但是纠删码容错技术存在一个缺点,即任意一个节点失效都需要通过网络传输k个存活节点的数据来恢复这个失效节点上的数据,这个过程的网络带宽开销大。特别是随着数据量的爆炸性增长,不断增大的存储规模使得出现失效节点已成为集群存储系统的常态。为了恢复失效节点上的数据并替换失效的节点,纠删码集群存储系统需要让新加入的节点向k个存活的节点获取数据以进行重构,引起网络带宽的大量占用。特别是当集群中有f(f≥2)个节点同时失效时,现有的重构方法或者需要让这f个替换节点各自向k个存活节点获取数据,需要占用f×k倍的网络带宽开销,从而造成重构时间的延长,降低集群的可靠性。所以,多节点同时失效而引起的大量网络带宽开销是纠删码集群存储系统的目前重构方法面临的巨大挑战。
发明内容
针对现有技术的缺陷,本发明的目的在于提供一种基于纠删码集群存储系统的交叉重构方法,旨在解决现有重构方法面对纠删码集群存储系统中出现多个节点同时失效的情况下造成大量网络带宽开销的问题,本发明的方法将需要恢复的数据划分给各个替换节点,每个替换节点只负责一部分条带的恢复,各自重构之后得到的少量数据在两两替换节点之间相互发送和接收,能够降低网络带宽开销和加快重构速度,同时具有高可靠性和高可扩展性。
为实现上述目的,本发明提供了一种基于纠删码集群存储系统的交叉重构方法,包括以下步骤:
(1)纠删码集群存储系统的第i个替换节点RNi将自身条带号的基准值rowstep初始化为0,其中i=1,…,f,f为系统中失效节点的数量;
(2)替换节点RNi向集群中任意k个存活节点发出请求,获取这k个存活节点的第rowstep+i个条块,分别记为B1,…,Bk,其中k为系统中数据节点的数量;
(3)替换节点RNi使用条块B1,…,Bk根据下式计算出属于集群的第rowstep+i个条带的f个失效块,分别记为RBrowstep+i,1,…,RBrowstep+i,f
RBrow,j=DECj(B1,…,Bk)
其中DEC()代表水平编码算法的解码操作,row表示正在处理的是集群中第row个条带的各个条块,j表示通过这次解码操作计算出来的是第j个替换节点上的失效块,且有j=1,…,f;
(4)替换节点RNi将失效块RBrowstep+i,i写入本地磁盘,成为本地的第rowstep+i个条块;
(5)替换节点RNi将失效块RBrowstep+i,1,…,RBrowstep+i,i-1,RBrowstep+i,i+1,…,RBrowstep+i,f一一对应地发送给替换节点RN1,…,RNi-1,RNi+1,…,RNf,同时替换节点RNi接收从替换节点RN1,…,RNi-1,RNi+1,…,RNf发来的各一个失效块,一一对应地记为RBrowstep+1,i,…,RBrowstep+i-1,i,RBrowstep+i+1,i,…,RBrowstep+f,i
(6)替换节点RNi将在步骤(5)中从其他替换节点接收到的f-1个失效块写入本地磁盘;
(7)替换节点RNi将自身条带号的基准值rowstep加f;
(8)替换节点RNi判断是否已恢复所有条块,若是,则返回步骤(2),否则过程结束。
条块B1,…,Bk可以是数据块,也可以是冗余块。
水平编码算法包括CRS和VRS算法。
步骤(3)具体为,第i个替换节点RNi取row的值为rowstep+i,然后依次取j=1,…,f,分别计算出f个失效块RBrowstep+i,1,…,RBrowstep+i,f
通过本发明所构思的以上技术方案,与现有技术相比,本发明具有以下的有益效果:
(1)网络带宽的开销小:由于在步骤(2)中让一个替换节点只向获取存活节点获取一部分数据,所以减少了重复的数据在网络中的传输量,从而减少了对网络带宽的占用。
(2)重构速度的加快使得集群可靠性良好:由于替换节点的网络带宽是制约重构速度的瓶颈,步骤(2)带来的小的网络带宽开销能让替换节点缩短重构时间,减小集群在重构期间出现下一个失效节点的可能,从而提高了集群的可靠性。
(3)可扩展性良好:由步骤(2)和步骤(5)可知,当集群中同时失效的节点数量增多时,每个替换节点需要向存活节点获取的数据量将减小,替换节点两两之间相互传递已被重构出来的数据,保证了失效数据能够被完整恢复,因此本发明方法在失效节点个数越多的情况下重构速度越快,从而具有良好的可扩展性。
附图说明
图1为现有纠删码集群存储系统的数据条带化分布与重构示意图;
图2为本发明基于纠删码集群存储系统的交叉重构方法的流程图;
图3为本发明方法的数据流向示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
首先给出本发明相关概念的定义:
●条带:在纠删码中,条带是可以独立地恢复出失效数据的信息集合。
●条块:处于同一存储设备上的属于同一条带的数据的集合。一个条块可以只包含数据或者冗余,也可以同时包含数据和冗余。本发明方法使用水平编码,一个条块只包含数据或者冗余。
●水平编码:一种纠删码,所有数据块和校验块在同一条带上。
●数据块:只存储原始数据的条块,本说明书使用DBrow,i表示属于第row个条带且位于第i个数据节点的数据块。
●冗余块:只存储冗余数据的条块,本说明书使用PBrow,i表示属于第row个条带且位于第i个冗余节点的冗余块。
●数据节点:存储数据块的节点,本说明书使用DNi来表示第i个数据节点。
●冗余节点:存储冗余块的节点,本说明书使用PNi来表示第i个冗余节点。
●失效节点:集群中由于存储介质损坏、网络故障或者宕机等原因而不可使用的节点。
●存活节点:集群中能正常工作的节点。
●替换节点:新加入集群中用来替换失效节点的节点,本说明书使用RNi表示第i个替换节点。
●失效数据:位于失效节点上的数据。
●重构:在替换节点上进行的恢复失效数据的操作。
●失效块:位于失效节点上的条块。特别地,本说明书中也使用“失效块”来称呼被重构过程计算得到的条块,它与被失效节点丢失的条块在信息上是完全一致的,说明书中用RBrow,i来表示属于集群中第row个条带且位于第i个替换节点上的失效块。
本发明提供的一种基于纠删码集群存储系统的交叉重构方法使用IRS(k,r,f)表示,k,r,f均为正整数。其中k是数据节点的个数,r是冗余节点的个数,f是失效节点的个数,也是替换节点的个数。该方法让多个替换节点在重构过程中相互合作,以达到减少网络带宽开销,加快重构速度的目的,适用于集群中同时出现多个节点失效的情况。
如图2所示,本发明基于纠删码集群存储系统的交叉重构方法包括以下步骤:
(1)纠删码集群存储系统的第i个替换节点RNi将自身条带号的基准值rowstep初始化为0,其中i=1,…,f,f为系统中失效节点的数量;具体而言,集群中每个替换节点都执行本发明方法所示的步骤,这里使用标号i来表示可以任意选取一个替换节点;
(2)替换节点RNi向集群中任意k个存活节点发出请求,获取这k个存活节点的第rowstep+i个条块,分别记为B1,…,Bk,其中k为系统中数据节点的数量;具体而言,条块B1,…,Bk可以是数据块,也可以是冗余块;
(3)替换节点RNi使用条块B1,…,Bk根据下式计算出属于集群的第rowstep+i个条带的f个失效块,分别记为RBrowstep+i,1,…,RBrowstep+i,f
RBrow,j=DECj(B1,…,Bk)
上式中,DEC()代表一种水平编码算法,包括CRS(CauchyReed-Solomon)、VRS(Vandermonde Reed-Solomon)等的解码操作,它可以计算出f个失效块,下标row表示正在处理的是集群中第row个条带的各个条块,下标j表示通过这次解码操作计算出来的是第j个替换节点上的失效块,其中j=1,…,f;具体而言,第i个替换节点RNi取row的值为rowstep+i,然后依次取j=1,…,f,分别计算出f个失效块RBrowstep+i,1,…,RBrowstep+i,f;因为替换节点RNi表示集群中的任意一个替换节点,因此到本步骤结束时为止替换节点RN1计算得到属于第rowstep+1个条带的f个失效块:RBrowstep+1,1…,RBrowstep+1,f;替换节点RN2计算得到属于第rowstep+2个条带的f个失效块:RBrowstep+2,1,…,RBrowstep+2,f,依次类推;
(4)替换节点RNi将失效块RBrowstep+i,i写入本地磁盘,成为本地的第rowstep+i个条块;
(5)替换节点RNi将失效块RBrowstep+i,1,…,RBrowstep+i,i-1,RBrowstep+i,i+1,…,RBrowstep+i,f一一对应地发送给替换节点RN1,…,RNi-1,RNi+1,…,RNf,在这里,替换节点的标号与失效块的第2个下标对应,表示替换节点RNi将属于第rowstep+i个条带的失效块发送给其他替换节点;同时,替换节点RNi接收从替换节点RN1,…,RNi-1,RNi+1,…,RNf发来的各一个失效块,一一对应地记为RBrowstep+1,i,…,RBrowstep+i-1,i,RBrowstep+i+1,i,…,RBrowstep+f,i,在这里,替换节点的标号与失效块的第1个下标对应,表示其他替换节点将应该位于第i个失效节点上的失效块发送给第i个替换节点RNi
(6)替换节点RNi将在步骤(5)中从其他替换节点接收到的f-1个失效块写入本地磁盘;具体而言,到步骤(6)结束为止,替换节点RNi完成了对本地磁盘的第rowstep+1个到第rowstep+f个条块的恢复;因为替换节点RNi表示集群中的任意一个替换节点,所以到步骤(6)结束为止,集群中的第rowstep+1个到第rowstep+f个条带都已经被恢复;
(7)替换节点RNi将自身条带号的基准值rowstep加f;
(8)替换节点RNi判断是否已恢复所有条块,若是,则返回步骤(2),否则过程结束;具体而言,从步骤(2)到步骤(6),集群完成对当前f个条带的恢复,之后以f为步长递增rowstep进行接下来的循环,每一轮循环顺序恢复f个条带。
为了使本发明方法更容易理解,下面结合图3所示的实施例IRS(k,r,2)来说明。图3为出现两个失效节点(f=2)的情况下,本发明方法的数据流向示意图。如图3所示,DN1,…,DNk为数据节点,PN1,…,PNr为冗余节点,其中数据节点DN1和DN2失效,替换节点RN1和RN2进行交叉重构来替换失效节点DN1和DN2。图3下方的虚线方框里是替换节点RN1和RN2在交叉重构中根据步骤(2)到(6)一次循环计算出来的失效块,箭头为数据流向。
为了便于显示,图3将替换节点RN1和RN2的条带号基准rowstep设置为0,并指定替换节点RN1获取DN3,…,DNk,PN1,PN2这k个存活节点的第1个条块,即条块DB3,…,DBk,PB1,PB2;同样指定替换节点RN2获取上述k个存活节点的第2个条块。接着,替换节点RN1计算出属于第1个条带的2个失效块RB1,1和RB1,2,并将失效块RB1,1写入本地磁盘,成为替换节点RN1的第1个条块;替换节点RN2计算出属于第2个条带的2个失效块RB2,1和RB2,2,并将失效块RB2,2写入本地磁盘,成为替换节点RN2的第2个条块。
此时,替换节点RN1多余的失效块RB1,2是替换节点RN2需要的,替换节点RN2多余的失效块RB2,1是替换节点RN1需要的。于是替换节点RN1和RN2相互交换上述2个失效块。失效块RB2,1成为替换节点RN1的第2个条块,失效块RB1,2成为替换节点RN2的第1个条块。所以整个集群的第1个和第2个条带被完整恢复。替换节点RN1和RN2互相交换各自缺少的失效块,是本发明方法被称为交叉重构的含义所在。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (3)

1.一种基于纠删码集群存储系统的交叉重构方法,其特征在于,包括以下步骤:
(1)纠删码集群存储系统的第i个替换节点RNi将自身条带号的基准值rowstep初始化为0,其中i=1,…,f,f为系统中失效节点的数量;
(2)替换节点RNi向集群中任意k个存活节点发出请求,获取这k个存活节点的第rowstep+i个条块,分别记为B1,…,Bk,其中k为系统中数据节点的数量;
(3)替换节点RNi使用条块B1,…,Bk根据下式计算出属于集群的第rowstep+i个条带的f个失效块,分别记为RBrowstep+i,1,…,RBrowstep+i,f
RBrow,j=DECj(B1,…,Bk)
其中DEC()代表水平编码算法的解码操作,row表示正在处理的是集群中第row个条带的各个条块,j表示通过这次解码操作计算出来的是第j个替换节点上的失效块,且有j=1,…,f;本步骤具体为,第i个替换节点RNi取row的值为rowstep+i,然后依次取j=1,…,f,分别计算出f个失效块RBrowstep+i,1,…,RBrowstep+i,f
(4)替换节点RNi将失效块RBrowstep+i,i写入本地磁盘,成为本地的第rowstep+i个条块;
(5)替换节点RNi将失效块RBrowstep+i,1,…,RBrowstep+i,i-1,RBrowstep+i,i+1,…,RBrowstep+i,f一一对应地发送给替换节点RN1,…,RNi-1,RNi+1,…,RNf,同时替换节点RNi接收从替换节点RN1,…,RNi-1,RNi+1,…,RNf发来的各一个失效块,一一对应地记为RBrowstep+1,i,…,RBrowstep+i-1,i,RBrowstep+i+1,i,…,RBrowstep+f,i
(6)替换节点RNi将在步骤(5)中从其他替换节点接收到的f-1个失效块写入本地磁盘;
(7)替换节点RNi将自身条带号的基准值rowstep加f;
(8)替换节点RNi判断是否已恢复所有条块,若是,则返回步骤(2),否则过程结束。
2.根据权利要求1所述的交叉重构方法,其特征在于,条块B1,…,Bk可以是数据块,也可以是冗余块。
3.根据权利要求1所述的交叉重构方法,其特征在于,水平编码算法包括CRS和VRS算法。
CN201210591296.XA 2012-12-29 2012-12-29 一种基于纠删码集群存储系统的交叉重构方法 Active CN103106124B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210591296.XA CN103106124B (zh) 2012-12-29 2012-12-29 一种基于纠删码集群存储系统的交叉重构方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210591296.XA CN103106124B (zh) 2012-12-29 2012-12-29 一种基于纠删码集群存储系统的交叉重构方法

Publications (2)

Publication Number Publication Date
CN103106124A CN103106124A (zh) 2013-05-15
CN103106124B true CN103106124B (zh) 2015-06-17

Family

ID=48314002

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210591296.XA Active CN103106124B (zh) 2012-12-29 2012-12-29 一种基于纠删码集群存储系统的交叉重构方法

Country Status (1)

Country Link
CN (1) CN103106124B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE112013007300T5 (de) * 2013-08-05 2016-05-12 Intel Corporation Speichersysteme mit adaptiver Löschcode-Generierung
CN103645861B (zh) * 2013-12-03 2016-04-13 华中科技大学 一种纠删码集群中失效节点的重构方法
CN104935481B (zh) * 2015-06-24 2018-03-09 华中科技大学 一种分布式存储下基于冗余机制的数据恢复方法
CN105630423B (zh) * 2015-12-25 2018-11-27 华中科技大学 一种基于数据缓存的纠删码集群存储扩容方法
US10740198B2 (en) 2016-12-22 2020-08-11 Purdue Research Foundation Parallel partial repair of storage
CN109101360B (zh) * 2017-06-21 2020-11-20 北京大学 一种基于布隆过滤器和交叉编码的数据完整性保护方法
CN109426587B (zh) * 2017-08-25 2020-08-28 杭州海康威视数字技术股份有限公司 一种数据恢复方法及装置
CN109254956B (zh) * 2018-07-27 2022-09-02 深圳市江波龙电子股份有限公司 一种数据下载的方法、装置及电子设备
CN110865901B (zh) * 2018-08-28 2021-05-04 华为技术有限公司 组建ec条带的方法和装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102270161A (zh) * 2011-06-09 2011-12-07 华中科技大学 一种基于纠删码的多等级容错数据存储、读取和恢复方法
CN102624866A (zh) * 2012-01-13 2012-08-01 北京大学深圳研究生院 一种存储数据的方法、装置及分布式网络存储系统
CN102681793A (zh) * 2012-04-16 2012-09-19 华中科技大学 一种基于纠删码集群存储系统的局部式数据更新方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102270161A (zh) * 2011-06-09 2011-12-07 华中科技大学 一种基于纠删码的多等级容错数据存储、读取和恢复方法
CN102624866A (zh) * 2012-01-13 2012-08-01 北京大学深圳研究生院 一种存储数据的方法、装置及分布式网络存储系统
CN102681793A (zh) * 2012-04-16 2012-09-19 华中科技大学 一种基于纠删码集群存储系统的局部式数据更新方法

Also Published As

Publication number Publication date
CN103106124A (zh) 2013-05-15

Similar Documents

Publication Publication Date Title
CN103106124B (zh) 一种基于纠删码集群存储系统的交叉重构方法
CN104052576B (zh) 一种云存储下基于纠错码的数据恢复方法
US11003533B2 (en) Data processing method, system, and apparatus
CN104461781B (zh) 一种基于纠删码的数据块重建方法
Silberstein et al. Lazy means smart: Reducing repair bandwidth costs in erasure-coded distributed storage
CN103209210B (zh) 一种提高基于纠删码的存储集群恢复性能的方法
JP5298393B2 (ja) 並列リードソロモンraid(rs−raid)アーキテクチャ、デバイス、および方法
CN111465922B (zh) 具有对等数据清理的存储系统
WO2020027911A1 (en) Storage systems with peer data recovery
US20160006463A1 (en) The construction of mbr (minimum bandwidth regenerating) codes and a method to repair the storage nodes
CN105573681B (zh) 一种ssd盘片内部raid组建方法及系统
CN104111880B (zh) 一种容三盘失效纠删码的单数据盘失效快速重建方法
CN104902009B (zh) 一种基于可擦除编码和链式备份的分布式存储系统
CN110089035B (zh) 存储控制器、数据处理芯片及数据处理方法
CN109491835B (zh) 一种基于动态分组码的数据容错方法
CN102681793A (zh) 一种基于纠删码集群存储系统的局部式数据更新方法
CN112835738B (zh) 一种条带数据存储结构的构建方法
CN101609420A (zh) 实现磁盘冗余阵列重建的方法和磁盘冗余阵列及其控制器
CN103914402B (zh) 一种基于纠删码缓存的重构优化方法
CN106951340B (zh) 一种基于局部性优先的rs纠删码数据布局方法及系统
US20150089328A1 (en) Flex Erasure Coding of Controllers of Primary Hard Disk Drives Controller
WO2016058262A1 (zh) 一种基于二进制域里德所罗门码的数据编解码方法
CN106484559A (zh) 一种校验矩阵的构造方法及水平阵列纠删码的构造方法
CN104598168A (zh) 一种数据恢复方法及对象存储设备
CN103761171B (zh) 一种针对二进制编码冗余存储系统的低带宽数据重构方法

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