CN113541870A - 一种纠删码存储单节点失效的修复优化方法 - Google Patents

一种纠删码存储单节点失效的修复优化方法 Download PDF

Info

Publication number
CN113541870A
CN113541870A CN202110772046.5A CN202110772046A CN113541870A CN 113541870 A CN113541870 A CN 113541870A CN 202110772046 A CN202110772046 A CN 202110772046A CN 113541870 A CN113541870 A CN 113541870A
Authority
CN
China
Prior art keywords
repair
nodes
data
node
storage
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.)
Pending
Application number
CN202110772046.5A
Other languages
English (en)
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.)
Xiamen University
Original Assignee
Xiamen University
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 Xiamen University filed Critical Xiamen University
Priority to CN202110772046.5A priority Critical patent/CN113541870A/zh
Publication of CN113541870A publication Critical patent/CN113541870A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0061Error detection codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0876Network utilisation, e.g. volume of load or congestion level
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0876Network utilisation, e.g. volume of load or congestion level
    • H04L43/0888Throughput
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0876Network utilisation, e.g. volume of load or congestion level
    • H04L43/0894Packet rate
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • H04L67/5682Policies or rules for updating, deleting or replacing the stored data

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Environmental & Geological Engineering (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

一种纠删码存储单节点失效的修复优化方法,涉及数据存储。利用全双工通信的特点独立看待每个节点的上传和下载带宽资源,将单节点失效的多条带修复问题抽象建模为图的问题,从整体的角度选择每个条带参与修复的节点,之后考虑调度各个条带节点间数据的传输顺序以充分利用系统中可用的带宽资源。可协助现有编码和单条带修复优化,在不减少单条带修复流量的前提下充分利用空闲的带宽资源,提高单节点修复的并行性从而减少单节点修复的总时间。在单节点故障发生时,分配并调度存储系统中各节点的修复任务,在单条带修复流确定阶段为每个条带选择合适的修复流,在多条带传输调度阶段确定适合的数据传输顺序来饱和地占用各节点可用的上传、下载带宽。

Description

一种纠删码存储单节点失效的修复优化方法
技术领域
本发明涉及数据存储技术领域,尤其是涉及针对单节点失效修复和修复优化的一种纠删码存储单节点失效的修复优化方法。
背景技术
为容纳爆炸性增长的数据量,如今的存储系统通常设于成百上千个存储节点(简称为节点)上,这导致原本属于意外发生的故障普遍发生。“备份”和“纠删码”是现有存储系统常用的冗余容错技术,都依赖于预先存储额外的冗余数据来修复丢失的数据。备份是直接复制多份原始数据并分别存储在不同节点上,数据丢失时只需从幸存的任意副本中获得原始数据。纠删码通常由两个参数(k,m)进行设置,将原始文件划分为固定大小的k个数据块,对数据块进行线性编码生成额外的m个冗余块(称为校验块),这k+m个块组成一个“条带”,条带中任意一个丢失的数据块可通过取回同个条带的幸存的k个块进行解码恢复。纠删码通过两个轻量级的计算操作,即“编码”和“解码”来实现原始数据和冗余数据间的有效转换。与简单地存储相同副本的备份方法相比,纠删码在保证相同容错能力的同时消耗更少的存储开销,因此在商业存储系统中更受喜爱。
纠删码虽然存储效率很高,但是容易产生大量的修复数据(即通过网络传输以进行修复的数据量),因为需要取回幸存的k个块来修复一个丢失块。为解决修复带来的I/O放大的问题,现有的研究方法主要集中于构建新型减少修复流量的纠删码(Cheng Huang,HuseyinSimitci,Yikang Xu,et al.Erasure Coding in Windows Azure Storage.InProc.of USENIX ATC,2012;A.Dimakis,P.Godfrey,Y.Wu,M.Wainwright,andK.Ramchandran.Network Coding for Distributed Storage Systems.IEEETransactions on Information Theory,56(9):4539–4551,2010)、设计修复算法来并行化修复过程(Jianzhong Huang,Xianhai Liang,Xiao Qin,Qiang Cao,and ChangshengXie.Push:A Pipelined Reconstruction I/O for Erasure-Coded StorageClusters.IEEE Transactions on Parallel and Distributed Systems,26(2):516–526,2014;Runhui Li,Xiaolu Li,Patrick P.C.Lee,and Qun Huang.Repair Pipelining forErasure-Coded Storage.In Proc.of USENIX ATC,2017)以及利用故障预测技术在故障发生前主动修复数据(Ao Ma,Fred Douglis,Guanlin Lu,Darren Sawyer,SurendarChandra,and Windsor Hsu.RAIDShield:Characterizing,Monitoring,and ProactivelyProtecting Against Disk Failures.In Proc.of USENIX FAST,2015;Zhirong Shen,Xiaolu Li,and Patrick P.C.Lee.Fast Predictive Repair in Erasure-CodedStorage.In Proc.of IEEE/IFIP DSN,2019.)。观察发现,大多数的现有工作主要集中于单条带修复的优化,而单节点故障(即节点中所有)需要从整体上考虑多个块的修复。直接将现有的修复优化方法应用在单节点失效修复存在着一些问题,(1)没有很好地设计利用全双工通信的特点来占用可用带宽资源;(2)没有巧妙地安排块的传输顺序以充分利用带宽;(3)不灵活,忽视不同修复优化算法间的弹性配合,无法满足不同可靠性的要求;(4)缺乏全节点修复的通用框架。因此,如何应用现有修复优化算法来有效解决单节点失效修复问题仍然是纠删码存储系统中一个具有挑战性且重要的问题。
发明内容
本发明的目的在于针对纠删码存储系统的修复开销大,且单节点失效常常发生等问题,提出一种通用的纠删码存储单节点失效的修复优化方法。
本发明的另一个目的在于提供一种用于纠删码存储单节点失效修复优化的框架系统,该框架系统可协助现有编码和单条带修复优化,在不减少单条带修复流量的前提下充分利用空闲的带宽资源,提高单节点修复的并行性从而减少单节点修复的总时间。
所述纠删码存储单节点失效的修复优化方法,包括以下步骤:
1)编码数据和分散存储;
2)修复流图抽象,以图的形式描述单条带的数据传输以及参与修复的块之间的依赖关系;
3)单条带修复流确定阶段,单条带修复流的映射结合存储系统中所有节点的上传、下载流量负载考虑,从整体角度确定单条带修复流来平衡节点的上传下载负载;
4)多条带传输调度阶段,平衡系统中节点整体的上传、下载流量负载后,调度数据的传输顺序以进一步提高修复并行性。
在步骤1)中,所述编码数据和分散存储的具体步骤可为:
(1.1)根据系统的可靠性需求和存储开销限制,选择满足系统容错需求和存储效率的纠删码;
(1.2)根据纠删码的参数将原始数据划分为固定大小的数据块;
(1.3)根据纠删码的参数和编码规则对数据块进行编码生成校验块;
(1.4)将同个条带的数据块和校验块分散存储在不同的节点中。
在步骤2)中,所述以图的形式描述单条带的数据传输以及参与修复的块之间的依赖关系,具体步骤如下:
(2.1)当单个节点失效时,根据纠删码的编码参数和条带采用的修复优化方法,将每个条带抽象为有向无环图来表示单条带的修复流;
(2.2)单条带的修复流图包含k+1个点,包括k个取数据的点和1个解码并存储修复数据的点(称为目标点),顶点间的有向边表明数据的传输方向,有向边的结构由条带采用的修复优化方法确定;
(2.3)根据节点内所有数据的分布信息(数据所属的条带的节点分布情况)将条带的修复流图中的k+1个点映射到实际的存储系统的节点,即从该条带的k+m-1个幸存节点中选取k个取数据的节点并从未存储该条带任何数据的节点中选取1个存储修复数据的目标节点;
在步骤3)中,所述从整体角度确定单条带修复流来平衡节点的上传下载负载,具体步骤如下:
(3.1)从单条带的修复流图得到图中各个顶点的上传、下载流量消耗
Figure BDA0003154012300000031
其中,1≤i≤k+1,根据消耗流量的不同将所有条带的所有顶点分成三类:(1)叶子顶点
Figure BDA0003154012300000032
(2)根顶点
Figure BDA0003154012300000033
(3)中间顶点
Figure BDA0003154012300000034
由于全双工通信的特点,上传和下载可以独立考虑,而叶子顶点仅耗费上传带宽、根节点仅耗费下载带宽,不同类型的顶点映射到存储节点中对存储节点的负载影响不同,以不同优先级考虑不同类的顶点;
(3.2)根据全局信息得到存储系统中所有存储节点当前的上传、下载负担(U,D),优先将中间顶点和根顶点映射到节点,尽可能平衡系统中各存储节点的上传、下载流量负载,再分配叶顶点以进一步平衡上传修复流量。
在步骤4)中,所述平衡系统中节点整体的上传、下载流量负载后,调度数据的传输顺序以进一步提高修复并行性的具体步骤如下:
(4.1)以最大流的形式建模传输调度问题,假设存储系统中共有n个存储节点,构造具有2n+2个点的流网络,所述2n+2个点的流网络包括1个源点,1个汇集点,n个发送点和n个接收点;源点与所有发送点连边,边的容量为1;发送点和接收点间的边由修复流图决定,边的容量为1;所有接收点与汇集点连边,边的容量为1;
(4.2)根据修复流图构建发送点和接收点间的连接,取出所有修复流图中没有前驱限制(即没有入度)的顶点,顶点的所有出边为当前无需等待可以立即执行的传输边,在流网络中连接这些出边所对应的发送点和接收点;
(4.3)流网络构建完成后,运行最大流算法得到最大流结果,最大流中发送点和接收点间流量为1的边为当前时间片要执行的传输;
(4.4)相应传输执行完成后,动态更改修复流图,从修复流图中删除已经传输完成的边,若修复流图中的顶点删边后成为孤立点,将孤立点也从修复流图中删去;
(4.5)若仍有修复流图不为空图,返回步骤(4.2)继续构造流网络,否则结束。
所述用于纠删码存储单节点失效修复优化的框架系统包括:
纠删码方案选择模块,用于根据系统的可靠性需求和存储开销需求,选择满足系统容错能力和编码效率的纠删码方案;
编码模块,用于根据纠删码方案的参数设置对存储的数据进行编码,将数据划分为固定大小的数据块,根据纠删码的编码规则,编码数据块生成对应的校验块;所述数据块和对应的校验块一起构成一个条带,存储系统在逻辑上为多个相互独立的条带的组合;将同个条带的数据块和校验块分发到不同的节点中进行存储,以保证存储系统的容错能力;
单节点失效修复决策模块,用于在出现单节点失效故障时,确定节点中所有失效块的编号以及采用的单条带失效修复算法,然后利用修复流量平衡算法得到各个失效块修复所需的取数据的节点和执行修复的目标节点;确定单条带修复流后,利用多条带传输调度算法得到各参与块的发送顺序,以尽可能利用存储系统中各节点的空闲带宽资源。
与现有技术相比,本发明具有以下突出的优点:
1、通用性强,能够协助多种线性纠删码和单条带修复方法优化单节点修复问题。
2、利用全双工通信的特性和存储系统中的可利用带宽资源,不修改编码或修复方法的情况下通过调度提高修复并行性,从而进一步减少全节点修复时间,保障系统的可靠性。利用全双工通信的特点独立看待每个节点的上传和下载带宽资源,将单节点失效的多条带修复问题抽象建模为图的问题,从整体的角度选择每个条带参与修复的节点,之后考虑调度各个条带节点间数据的传输顺序以充分利用系统中可用的带宽资源。
3、可协助现有编码和单条带修复优化,在不减少单条带修复流量的前提下充分利用空闲的带宽资源,提高单节点修复的并行性从而减少单节点修复的总时间。在单节点故障发生时,分配并调度存储系统中各节点的修复任务,其重点是将多条带的修复调度分为两个阶段:单条带修复流确定阶段和多条带传输调度阶段。在单条带修复流确定阶段为每个条带选择合适的修复流,在多条带传输调度阶段确定适合的数据传输顺序来饱和地占用各节点可用的上传、下载带宽。
附图说明
图1为纠删码存储系统中RS(4,2)纠删码的存储分布示例图。
图2为RS(4,2)纠删码的采用传统修复算法的单条带修复过程示例图。
图3为修复流量平衡对修复时间影响的示例图。
图4为传输顺序对修复时间影响的示例图。
图5为本发明的原型系统结构示意图。
图6为亚马逊云平台下不同网络带宽的实验结果图。
图7为亚马逊云平台下不同纠删码编码的实验结果图。
图8为亚马逊云平台下本发明方法分解实验的结果图。
图9为亚马逊云平台下多节点失效修复的实验结果图。
图10为本发明方法耗费计算时间的结果图。
具体实施方式
以下实施例将结合附图对本发明作进一步的说明。应当理解,此处所描述的具体实施例仅仅用于解释本发明,并不用于限定本发明。
一种纠删码存储单节点失效的修复优化方法,主要包括抽象修复图、确定单条带修复的参与节点以及多条带传输调度,具体方法步骤如下:
1)编码数据和分散存储:
(1.1)根据系统的可靠性需求和存储开销限制,选择满足系统容错需求和存储效率的纠删码;
(1.2)根据纠删码的参数将原始数据划分为固定大小的数据块;
(1.3)根据纠删码的参数和编码规则对数据块进行编码生成校验块;
(1.4)将同个条带的数据块和校验块分散存储在不同的节点中。
2)修复流图抽象,以图的形式描述单条带的数据传输以及参与修复的块之间的依赖关系:
(2.1)当单个节点失效时,根据纠删码的编码参数和条带采用的修复优化方法,将每个条带抽象为有向无环图来表示单条带的修复流;
(2.2)单条带的修复流图包含k+1个点,包括k个取数据的点和1个解码并存储修复数据的点(称为目标点),顶点间的有向边表明数据的传输方向,有向边的结构由条带采用的修复优化方法确定;
(2.3)根据节点内所有数据的分布信息(数据所属的条带的节点分布情况)将条带的修复流图中的k+1个点映射到实际的存储系统的节点,即从该条带的k+m-1个幸存节点中选取k个取数据的节点并从未存储该条带任何数据的节点中选取1个存储修复数据的目标节点;
3)单条带修复流确定阶段,单条带修复流的映射有多种选择方案,结合存储系统中所有节点的上传、下载流量负载考虑,从整体角度确定单条带修复流来平衡节点的上传下载负载。具体步骤如下:
(3.1)从单条带的修复流图得到图中各个顶点的上传、下载流量消耗
Figure BDA0003154012300000061
其中,1≤i≤k+1,根据消耗流量的不同将所有条带的所有顶点分成三类:(1)叶子顶点
Figure BDA0003154012300000062
(2)根顶点
Figure BDA0003154012300000063
(3)中间顶点
Figure BDA0003154012300000064
由于全双工通信的特点,上传和下载可以独立考虑,而叶子顶点仅耗费上传带宽、根节点仅耗费下载带宽,不同类型的顶点映射到存储节点中对存储节点的负载影响不同,以不同优先级考虑不同类的顶点;
(3.2)优先将中间顶点和根顶点映射到节点,尽可能平衡系统中各存储节点的上传、下载流量负载,再仔细分配叶顶点以进一步平衡上传修复流量;
映射中间顶点、根顶点和叶顶点的算法类似,以中间顶点的映射算法为例,具体步骤如下:
(3.2.1)根据全局信息得到存储系统中所有存储节点当前的上传、下载负担(U,D);
(3.2.2)从节点的所有失效块的修复流图中得到未被映射的中间顶点的集合T,用M表示已经映射的中间顶点集合;初始化M为空的集合,T中的每个顶点以元组(u,v)的形式表示消耗的上传、下载流量,将未映射顶点集合T中的顶点根据(v,u)降序排序;
(3.2.3)若集合T不为空,从T中按顺序取出一个待映射的顶点
Figure BDA0003154012300000065
此时顶点
Figure BDA0003154012300000066
为剩余待映射顶点中下载消耗最大的顶点;找到顶点
Figure BDA0003154012300000067
可映射的存储节点集合N,包括顶点所在的条带中所有幸存的存储块的节点,除去已经被映射到顶点对应修复流图其他顶点的存储节点(一个存储节点仅能被一个条带映射一次);找到可映射节点集合N中当前下载负担最小的节点N*,将顶点
Figure BDA0003154012300000068
映射到节点N*
(3.2.4)动态更新被映射节点N*当前的上传、下载负担,
Figure BDA0003154012300000069
将顶点
Figure BDA00031540123000000610
从未映射顶点集合T中删去
Figure BDA00031540123000000611
并加入已映射顶点集合M,
Figure BDA00031540123000000612
(3.2.5)若未映射顶点集合T不为空,返回步骤(3.2.3),否则结束。
(3.3)所有失效块的修复流图中的所有顶点映射完成后,完成单条带修复流的确定,修复流图中的顶点映射到实际存储节点后,顶点间的边指示节点间的数据传输路由和依赖关系;
4)多条带传输调度阶段,平衡系统中节点整体的上传、下载流量负载后,调度数据的传输顺序以进一步提高修复并行性,具体步骤为:
(4.1)以最大流的形式建模传输调度问题,假设存储系统中共有n个存储节点,构造具有2n+2个点的流网络,包括1个源点,1个汇集点,n个发送点{S1,S2,…,Sn}表示n个有能力发送数据的存储节点和n个接收点{R1,R2,…,Rn}表示n个有能力接收数据的存储节点;源点与所有发送点连边,边的容量为1;发送点和接收点间的边由修复流图决定,边的容量为1;所有接收点与汇集点连边,边的容量为1;
(4.2)根据修复流图构建发送点和接收点间的连接,取出所有修复流图中没有前驱限制(即没有入度)的顶点,顶点的所有出边为当前无需等待可以立即执行的传输边,在流网络中连接这些出边所对应的发送点和接收点;
(4.3)流网络构建完成后,运行最大流算法得到最大流结果,最大流中发送点和接收点间流量为1的边为当前时间片要执行的传输;
(4.4)相应传输执行完成后,动态更改修复流图,从修复流图中删除已经传输完成的边,若修复流图中的顶点删边后成为孤立点,将孤立点也从修复流图中删去;
(4.5)若仍有修复流图不为空图,返回步骤(4.2)继续构造流网络,否则结束。
本发明实施例的核心是在纠删码存储系统中实现平衡各节点上传、下载修复流量,并调度传输顺序从而更饱和地占用系统带宽资源加速修复过程。具体实现主要由以下几个模块组成:
1.纠删码方案选择模块:该模块根据系统的可靠性需求和存储开销需求,选择满足系统容错能力和编码效率的纠删码方案。
2.编码模块:该模块根据纠删码方案的参数设置对存储的数据进行编码。将数据划分为固定大小的数据块,根据纠删码的编码规则,编码数据块生成对应的校验块。数据块和对应的校验块一起构成一个条带,存储系统在逻辑上可以看作多个相互独立的条带的组合。将同个条带的数据块和校验块分发到不同的节点中进行存储,以保证存储系统的容错能力。图1给出RS(4,2)纠删码存储分布的示意图,数据块和校验块共6个块分别存储于6个不同的节点中。
3.单节点失效修复决策模块:当出现单节点失效故障时,该模块将被启动。首先确定节点中所有失效块的编号以及采用的单条带失效修复算法,然后利用修复流量平衡算法得到各个失效块修复所需的取数据的节点和执行修复的目标节点。图2所示为部署RS(4,2)纠删码的存储系统中的采用传统修复算法的单条带修复过程,其中恢复的数据块用虚线框表示。该修复过程从节点N2、N3、N4和N5中取回共4个块并将修复得到的块存储在目标节点N1中。图3展示修复三个失效块的具有不同修复流量的两种修复方案。图3(a)所示的修复方案中有两个条带选择节点N3作为目标节点,因此节点N3需要下载4个块。图3(b)所示的修复方案中三个条带选择的目标节点都不同,总体来看每个节点至多需要上传/下载2个块。由于上传、下载流量可以独立看待,整体流量更平衡的修复方案耗费更少的修复时间。确定单条带修复流后,利用多条带传输调度算法得到各参与块的发送顺序,以尽可能利用存储系统中各节点的空闲带宽资源。图4展示修复两个失效块的耗费不同修复时间的两种传输顺序方案,在第二个时间片图中的块C3和C7竞争节点N3的下载带宽,两种传输顺序导致图4(a)耗费4个时间片修复而图4(b)仅耗费3个时间片完成修复。
本发明实现的系统结构原型如图5所示,它包括位于元数据服务器上的一个全局协调器和在节点上运行的多个代理(每个节点有一个代理)。全局协调器管理条带的元数据(例如,从块到条带的映射,以及保存每个条带的k+m个块的节点),而代理等待修复命令并协同执行修复操作。一旦节点故障被报告给元数据服务器,协调器首先确定丢失块的身份以及相关条带的标识。然后建立每个丢失块的修复方案,包括选择k个幸存块参与修复、节点间的数据路由以及存储修复块的目标节点。修复解决方案被封装成修复命令,其格式由代理预先确定并理解,然后协调器将其发送给参与修复操作的代理(图5中的步骤①)。收到修复命令后,代理首先导出修复解决方案,然后通过(i)读取本地存储的请求的幸存块,(ii)将它们发送到指定的中继节点,以及(iii)解码修复丢失的块存储在本地(图5中的步骤②)协同工作。
以下给出本发明的性能测试:
本发明的原型系统部署在亚马逊云平台上进行测试以研究其在真实云场景中的性能,实验指标为修复吞吐量。实验环境包括17台m5.large类型的虚拟服务器,每个虚拟服务器配置2个虚拟CPU(2.5GHz Intel Xeon Platinum)、8GB内存和40GB存储,运行的操作系统为Ubuntu16.04 LTS。任意两个服务器间的网络带宽约为1Gb/s,磁盘带宽约为130MB/s。17个服务器中的1个服务器作为全局协调器,剩余的16个服务器为代理端运行本发明的服务端程序。实验的默认设置为块大小为64MB(Hadoop HDFS中采用的默认值),包大小为1MB,纠删码方案为RS(6,3)。关注三种典型的单条带修复优化方法:(1)传统修复算法,将k个块直接传输到目标节点;(2)部分并行修复算法,将单个块的修复分解为多个子阶段,利用子阶段的并行性加速修复;(3)流水线修复算法,将单个块的修复分解为多个子块的流水线修复操作,进一步缩短修复时间。每次测试修复100个块,重复5次测试。测量修复时间,即从报告节点故障到修复完成所有丢失数据的总时间。关注的实验指标为修复吞吐量,定义为单位时间修复的数据量,越高的修复吞吐量表明失效窗口越短,数据可靠性越高。测试采用对比实验,比较基准为随机选取的方法,这种方法随机选取每个条带幸存的k+m-1个块中的k个块来修复数据,并随机选取剩余未存储该条带任何数据的1个节点存放修复后的块。
1、网络带宽的影响:
测试评估本发明的方法与现有单条带修复算法耦合时,网络带宽对修复吞吐量的影响。将网络带宽从0.5gb/s变为5gb/s,并评估不同修复场景下的修复吞吐量,测试结果如图6所示。与基准相比,对于不同的修复算法,本发明的方法平均可以提高72.3%的修复吞吐量。本发明的方法在网络带宽占主导地位的情况下更具优势,修复吞吐量的提升从53.0%(当网络带宽为5gb/s时)提高到96.4%(当网络带宽为0.5gb/s时)。
2、不同纠删码编码实验:
该测试评估三种代表性的纠删码编码来验证本发明的方法的通用性。三种编码分别为RS码,LRC码和Butterfly码。由于编码本身的限制,Butterfly码只测试传统修复算法的情况。实验结果如图7所示,与基准相比,本发明的方法将不同纠删码的修复吞吐量平均提高60.4%。
3、分解实验:
该测试通过分解本方明的方法来评估各种设计技术的有效性。测试的技术为(1)修复流量平衡,仅平衡上传和下载的传输流量,不调度传输顺序,(2)传输调度,仅调度各个块传输的顺序,不考虑修复流量平衡。测试结果如图8所示,本发明方法的修复吞吐量分别比修复流量平衡技术和传输调度技术高45.7%和19.8%。
4、多节点修复性能试验:
本发明可以拓展到多节点修复,该实验测量当故障节点数从1个增加到3个时的修复吞吐量以研究本发明方法修复多个故障节点时的性能。实验结果如图9所示,本发明方法分别可以将修复吞吐量提高39.5%(在处理单节点故障时)和35.7%(在处理三节点故障时)。
5、计算时间试验:
该实验测量本发明方法在不同节点数(以n表示)和修复块数下生成修复解所需的计算时间,测试结果如图10所示。测试结果显示,当节点数固定时,计算时间随着修复的块数的增加而逐渐增加,因为在修复流量平衡和传输调度中需要处理更多的修复图。当修复的块数固定时,由于一次可以调度更多的块,因此当更多节点参与修复时,计算时间会下降。对于实验中的各参数设置,本发明的方法所需的计算时间始终小于0.9秒,从而证明本发明的方法有资格部署于在线修复场景。
本发明针对纠删码存储系统的修复开销大,且单节点失效常常发生的现象提出一种通用的单点修复加速框架。现有的关于纠删码修复的研究主要集中于新型纠删码的理论设计或单条带修复的优化改进,直接将现有的修复优化方法应用在单节点失效修复存在一些问题。本发明从整体的角度选择每个条带参与修复的节点以平衡上传、下载流量,之后考虑调度各个条带节点间数据的传输顺序以充分利用系统中可用的带宽资源。本发明在保证系统可靠性的同时,减少单点修复的总修复时间。

Claims (6)

1.一种纠删码存储单节点失效的修复优化方法,其特征在于包括以下步骤:
1)编码数据和分散存储;
2)修复流图抽象,以图的形式描述单条带的数据传输以及参与修复的块之间的依赖关系;
3)单条带修复流确定阶段,单条带修复流的映射结合存储系统中所有节点的上传、下载流量负载考虑,从整体角度确定单条带修复流来平衡节点的上传下载负载;
4)多条带传输调度阶段,平衡系统中节点整体的上传、下载流量负载后,调度数据的传输顺序以进一步提高修复并行性。
2.如权利要求1所述一种纠删码存储单节点失效的修复优化方法,其特征在于在步骤1)中,所述编码数据和分散存储的具体步骤为:
(1.1)根据系统的可靠性需求和存储开销限制,选择满足系统容错需求和存储效率的纠删码;
(1.2)根据纠删码的参数将原始数据划分为固定大小的数据块;
(1.3)根据纠删码的参数和编码规则对数据块进行编码生成校验块;
(1.4)将同个条带的数据块和校验块分散存储在不同的节点中。
3.如权利要求1所述一种纠删码存储单节点失效的修复优化方法,其特征在于在步骤2)中,所述以图的形式描述单条带的数据传输以及参与修复的块之间的依赖关系,具体步骤如下:
(2.1)当单个节点失效时,根据纠删码的编码参数和条带采用的修复优化方法,将每个条带抽象为有向无环图来表示单条带的修复流;
(2.2)单条带的修复流图包含k+1个点,包括k个取数据的点和1个解码并存储修复数据的点,顶点间的有向边表明数据的传输方向,有向边的结构由条带采用的修复优化方法确定;
(2.3)根据节点内所有数据的分布信息即数据所属的条带的节点分布情况将条带的修复流图中的k+1个点映射到实际的存储系统的节点,即从该条带的k+m-1个幸存节点中选取k个取数据的节点并从未存储该条带任何数据的节点中选取1个存储修复数据的目标节点。
4.如权利要求1所述一种纠删码存储单节点失效的修复优化方法,其特征在于在步骤3)中,所述从整体角度确定单条带修复流来平衡节点的上传下载负载,具体步骤如下:
(3.1)从单条带的修复流图得到图中各个顶点的上传、下载流量消耗
Figure FDA0003154012290000011
其中,1≤i≤k+1,根据消耗流量的不同将所有条带的所有顶点分成三类:(1)叶子顶点
Figure FDA0003154012290000021
(2)根顶点
Figure FDA0003154012290000022
(3)中间顶点
Figure FDA0003154012290000023
由于全双工通信的特点,上传和下载可以独立考虑,而叶子顶点仅耗费上传带宽、根节点仅耗费下载带宽,不同类型的顶点映射到存储节点中对存储节点的负载影响不同,以不同优先级考虑不同类的顶点;
(3.2)根据全局信息得到存储系统中所有存储节点当前的上传、下载负担(U,D),优先将中间顶点和根顶点映射到节点,尽可能平衡系统中各存储节点的上传、下载流量负载,再分配叶顶点以进一步平衡上传修复流量。
5.如权利要求1所述一种纠删码存储单节点失效的修复优化方法,其特征在于在步骤4)中,所述平衡系统中节点整体的上传、下载流量负载后,调度数据的传输顺序以进一步提高修复并行性的具体步骤如下:
(4.1)以最大流的形式建模传输调度问题,假设存储系统中共有n个存储节点,构造具有2n+2个点的流网络,所述2n+2个点的流网络包括1个源点,1个汇集点,n个发送点和n个接收点;源点与所有发送点连边,边的容量为1;发送点和接收点间的边由修复流图决定,边的容量为1;所有接收点与汇集点连边,边的容量为1;
(4.2)根据修复流图构建发送点和接收点间的连接,取出所有修复流图中没有前驱限制(即没有入度)的顶点,顶点的所有出边为当前无需等待可以立即执行的传输边,在流网络中连接这些出边所对应的发送点和接收点;
(4.3)流网络构建完成后,运行最大流算法得到最大流结果,最大流中发送点和接收点间流量为1的边为当前时间片要执行的传输;
(4.4)相应传输执行完成后,动态更改修复流图,从修复流图中删除已经传输完成的边,若修复流图中的顶点删边后成为孤立点,将孤立点也从修复流图中删去;
(4.5)若仍有修复流图不为空图,返回步骤(4.2)继续构造流网络,否则结束。
6.一种用于纠删码存储单节点失效修复优化的框架系统,其特征在于包括:
纠删码方案选择模块,用于根据系统的可靠性需求和存储开销需求,选择满足系统容错能力和编码效率的纠删码方案;
编码模块,用于根据纠删码方案的参数设置对存储的数据进行编码,将数据划分为固定大小的数据块,根据纠删码的编码规则,编码数据块生成对应的校验块;所述数据块和对应的校验块一起构成一个条带,存储系统在逻辑上为多个相互独立的条带的组合;将同个条带的数据块和校验块分发到不同的节点中进行存储,以保证存储系统的容错能力;
单节点失效修复决策模块,用于在出现单节点失效故障时,确定节点中所有失效块的编号以及采用的单条带失效修复算法,然后利用修复流量平衡算法得到各个失效块修复所需的取数据的节点和执行修复的目标节点,确定单条带修复流后,利用多条带传输调度算法得到各参与块的发送顺序,以尽可能利用存储系统中各节点的空闲带宽资源。
CN202110772046.5A 2021-07-08 2021-07-08 一种纠删码存储单节点失效的修复优化方法 Pending CN113541870A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110772046.5A CN113541870A (zh) 2021-07-08 2021-07-08 一种纠删码存储单节点失效的修复优化方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110772046.5A CN113541870A (zh) 2021-07-08 2021-07-08 一种纠删码存储单节点失效的修复优化方法

Publications (1)

Publication Number Publication Date
CN113541870A true CN113541870A (zh) 2021-10-22

Family

ID=78127122

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110772046.5A Pending CN113541870A (zh) 2021-07-08 2021-07-08 一种纠删码存储单节点失效的修复优化方法

Country Status (1)

Country Link
CN (1) CN113541870A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114143174A (zh) * 2021-11-30 2022-03-04 深信服科技股份有限公司 一种节点修复方法、装置、设备及可读存储介质
CN114564335A (zh) * 2022-01-14 2022-05-31 中国科学技术大学 基于条带合并的局部可修复码冗余度转换方法及存储介质
CN114785667A (zh) * 2022-03-18 2022-07-22 华东交通大学 一种适用于rs码数据修复的流水线修复方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105681425A (zh) * 2016-01-22 2016-06-15 广东顺德中山大学卡内基梅隆大学国际联合研究院 基于分布式存储系统的多节点修复方法及其系统
US20170063399A1 (en) * 2015-08-28 2017-03-02 Qualcomm Incorporated Systems and methods for repair redundancy control for large erasure coded data storage
CN110895497A (zh) * 2019-12-09 2020-03-20 成都信息工程大学 一种分布式存储中降低纠删码修复的方法及装置
CN111614720A (zh) * 2020-04-13 2020-09-01 厦门大学 针对集群存储系统单点失效修复的跨集群流量优化方法
CN112615756A (zh) * 2020-12-10 2021-04-06 北京信而泰科技股份有限公司 网络流量的调度方法和装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170063399A1 (en) * 2015-08-28 2017-03-02 Qualcomm Incorporated Systems and methods for repair redundancy control for large erasure coded data storage
CN105681425A (zh) * 2016-01-22 2016-06-15 广东顺德中山大学卡内基梅隆大学国际联合研究院 基于分布式存储系统的多节点修复方法及其系统
CN110895497A (zh) * 2019-12-09 2020-03-20 成都信息工程大学 一种分布式存储中降低纠删码修复的方法及装置
CN111614720A (zh) * 2020-04-13 2020-09-01 厦门大学 针对集群存储系统单点失效修复的跨集群流量优化方法
CN112615756A (zh) * 2020-12-10 2021-04-06 北京信而泰科技股份有限公司 网络流量的调度方法和装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
方俊涛: "分布式存储系统中失效数据的修复与响应技术研究", 《中国博士学位论文全文数据库 信息科技辑》, 15 June 2019 (2019-06-15), pages 3 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114143174A (zh) * 2021-11-30 2022-03-04 深信服科技股份有限公司 一种节点修复方法、装置、设备及可读存储介质
CN114564335A (zh) * 2022-01-14 2022-05-31 中国科学技术大学 基于条带合并的局部可修复码冗余度转换方法及存储介质
CN114564335B (zh) * 2022-01-14 2024-03-29 中国科学技术大学 基于条带合并的局部可修复码冗余度转换方法及存储介质
CN114785667A (zh) * 2022-03-18 2022-07-22 华东交通大学 一种适用于rs码数据修复的流水线修复方法
CN114785667B (zh) * 2022-03-18 2023-06-20 华东交通大学 一种适用于rs码数据修复的流水线修复方法

Similar Documents

Publication Publication Date Title
CN113541870A (zh) 一种纠删码存储单节点失效的修复优化方法
US10613935B2 (en) System and method for supporting integrity of data storage with erasure coding
US10235240B2 (en) System and method of reliable distributed data storage with controlled redundancy
CN111614720B (zh) 针对集群存储系统单点失效修复的跨集群流量优化方法
US10003357B2 (en) Systems and methods for verification of code resiliency for data storage
US20120259983A1 (en) Distributed processing management server, distributed system, distributed processing management program and distributed processing management method
Lin et al. Boosting {Full-Node} repair in {Erasure-Coded} storage
CN113552998B (zh) 用于管理存储系统中的条带的方法、设备和程序产品
CN111045843A (zh) 具有容错能力的分布式数据处理方法
Xu et al. SelectiveEC: Towards balanced recovery load on erasure-coded storage systems
CN108304264A (zh) 一种基于spark流式计算的纠删码归档方法
Zorgui et al. Centralized multi-node repair in distributed storage
Akash et al. Rapid: A fast data update protocol in erasure coded storage systems for big data
CN114116696B (zh) 云存储系统中考虑节点选择机制的故障节点数据重构方法
Jinan et al. Low latency replication coded storage over memory-constrained servers
CN114237985B (zh) 修复纠删码存储系统中失效存储块的方法及相关设备
Xie et al. AZ-Recovery: an efficient crossing-AZ recovery scheme for erasure coded cloud storage systems
US10409688B2 (en) System and method of using encryption algorithms in P2P encryption mode to restore integrity of data
CN112000278B (zh) 一种热数据存储的自适应局部重构码设计方法及云存储系统
Jinan et al. Latency optimal storage and scheduling of replicated fragments for memory constrained servers
CN114237970A (zh) 一种扩展纠删码存储系统的方法及装置
CN113504875A (zh) 一种基于多级调度的纠删码系统恢复方法及系统
Xu et al. CRL: Efficient Concurrent Regeneration Codes with Local Reconstruction in Geo-Distributed Storage Systems
Itani et al. Practical multiple node failure recovery in distributed storage systems
Ojus et al. A method for storage node allocation in erasure code based storage systems

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20211022

RJ01 Rejection of invention patent application after publication