CN111506428A - 一种基于纠删码存储系统的负载均衡修复调度方法 - Google Patents
一种基于纠删码存储系统的负载均衡修复调度方法 Download PDFInfo
- Publication number
- CN111506428A CN111506428A CN202010313968.5A CN202010313968A CN111506428A CN 111506428 A CN111506428 A CN 111506428A CN 202010313968 A CN202010313968 A CN 202010313968A CN 111506428 A CN111506428 A CN 111506428A
- Authority
- CN
- China
- Prior art keywords
- nodes
- tasks
- reconstruction
- repair
- source
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Hardware Redundancy (AREA)
Abstract
本发明公开了一种基于纠删码存储系统的负载均衡修复调度方法,特征是包含对负载均衡状态评估,分批调度重构任务和选择源节点,为不饱和的任务补充源节点的连接,和选择替代节点步骤。本发明方法由于采用更新最大流的方式来动态的选择重构任务和源节点,相比于传统的按顺序分批执行修复和随机选择源节点的方式,能够动态的构建均匀的数据布局以及实现源节点的负载均衡;由于替代节点的选择采用寻找完美匹配的方式,克服了传统随机选择替代节点做不到均衡的缺点;本发明通过动态的调度重构任务,提高了系统的修复速度,并减少了在修复过程中对前端任务的干扰,提高了分布式存储系统的服务质量和性能。
Description
技术领域
本发明属于计算机分布式存储系统中的纠删码技术领域,具体涉及通过在纠删码修复过程中动态调度重构任务从而达到负载均衡的高效调度方法。
背景技术
根据2013年,James S.Plank和Cheng Huang在第11届USENIX文件和存储技术会议(11th USENIX Conference on File and Storage Technologies,FAST 2013)上的报告《Erasure Coding for Storage Applications》中所介绍的内容,其强调了纠删码在分布式存储系统中的广泛使用,虽然纠删码可使用少量的冗余提供与副本技术相当的可靠性,但其修复通常需要消耗大量的网络资源去读取数据执行解码计算,所以网络常成为纠删码存储系统中修复的性能瓶颈。存储系统通常采用随机的数据布局去保持大量数据的存储均衡,但由于有限的系统资源,故障修复一般是采取分批进行的,一批修复的条带数量是少量的,且数据分布不均衡;另外,系统常随机选取替代节点和源节点参与修复,所以进一步加剧了修复流量的不均衡,导致存储系统的修复性能降低。
发明内容
本发明的目的是提出一种基于纠删码存储系统的负载均衡修复调度方法,以克服现有技术的上述缺陷,达到在单点故障修复过程中修复流量的负载均衡,进一步均匀计算资源和磁盘I/O资源的占用,在提高修复速度的同时减少对前端应用的性能干扰。
本发明基于纠删码存储系统的负载均衡修复调度方法,其特征在于包括以下步骤:
第一步:负载均衡状态评估
设分布式存储系统部署(k,m)的纠删码,其中k是数据块的数量,m是校验块的数量;当发生单点故障,待重构的任务在主节点构成重构队列;构造出关于替代节点和源节点的二部图Gr-s=(N,N,E),其中两部分的点集N都是系统中的幸存节点,设系统中幸存节点数量为n,边集合E代表执行当前这批重构任务时替代节点与源节点的对应关系,修复时间片为系统空闲情况下通过跨节点传输k个块来修复单个故障块所花费的时间;设一个分布式存储系统部署(k,m)的故障块大小是B,系统节点的带宽是同构的,都是Bw,那么该修复时间片就是kB/Bw;定义修复并行度为在修复时间片内系统能够修复的故障块数量,当Gr-s达到最优的源和替代节点负载均衡时,修复并行度达到最优值,即为n,即系统一批执行的重构任务数量为n;通过对每一批重构任务计算修复并行度来判断是否达到最优调度,若修复并行度已达到最优值n,则按当前调度执行该批重构任务,算法终止;否则,转第二步;
第二步:分批调度重构任务和选择源节点
构造一个二部图Gs=(T,N,E),其中T是n个待重构的任务集合,N是系统中n个幸存节点集合;对任意重构任务Ti∈T,若存在Ni∈N是Ti所在条带的源节点,则在Ti与Ni之间连一条边(Ti,Ni)∈E;重构一个故障块,从该故障块所在条带中剩余的k+m-1个源节点中读取任意的k个块,即为Gs中每个重构任务从E中选择k条边;若每个幸存节点为重构任务都恰好贡献了k个块,则达到最优的负载均衡;
将上述问题转化为最大流问题求解,目标是尽可能达到一批重构任务的源节点负载均衡:基于二部图Gs构造源节点的流图FGs,添加源s和汇t,连接s和T中的每个重构任务并标记边的容量为k,连接t和N中每个幸存节点并标记边的容量为k,把原先Gs中的边容量标记为1,得到流图FGs;利用Ford-Fulkerson算法,计算得到FGs的流值fFGs;若fFGs达到了饱和值kN,则执行第三步;否则,通过在剩下的重构队列中寻找新的任务替代这些不饱和的重构任务来更新fFGs;每次在fFGs中寻找最不饱和的重构任务作为将被替换的任务,在重构队列中找到在fFGs中有更多关联不饱和源节点的新任务替换进去;如果达到设定的阈值(如遍历完整个重构队列)时,fFGs的值没有再继续增加,终止第二步;
第三步:为不饱和的任务补充源节点的连接
若还有未饱和的重构任务,则选择连接数量最小的幸存节点为这些任务补充新的源;
第四步:选择替代节点
从构造替代节点的二部图Gr开始,所有替代节点的选择必须和重构任务所选择的源节点不同,即Gr是Gs的补图;再次利用Ford-Fulkerson算法在Gr中寻找完美匹配;
若重构队列中不为空,则重复上述四步来为下批任务进行调度,直至队列为空。
本发明基于纠删码存储系统的负载均衡修复调度方法,包含对负载均衡状态评估,分批调度重构任务和选择源节点,为不饱和的任务补充源节点的连接,和选择替代节点步骤;由于采用更新最大流的方式来动态的选择重构任务和源节点,相比于传统的按顺序分批执行修复和随机选择源节点的方式,能够动态的构建均匀的数据布局以及实现源节点的负载均衡;替代节点的选择采用寻找完美匹配的方式,克服了传统随机选择替代节点做不到均衡的缺点;通过动态的调度重构任务,提高了系统的修复速度,并减少了在修复过程中对前端任务的干扰,提高了分布式存储系统的服务质量和性能。
附图说明
图1为修复并行度的理论最优值示意图。
图2为源节点二部图Gs构造示意图。
图3为源节点二部图Gs的流图FGs。
图4为寻找FGs最大流的状态图。
图5为更新FGs最大流的示意图。
图6为源节点和替代节点二部图Gr-s的构造示意图。
具体实施方式
下面结合附图通过具体实施例对本发明基于纠删码存储系统的负载均衡修复调度方法作进一步的详细说明。
实施例1:
本实施例基于纠删码存储系统的负载均衡修复调度方法,具体包括以下步骤:
第一步:负载均衡状态评估
设系统存在7个幸存节点,部署(3,2)的纠删码,图1为本发明实施例中修复并行度达到理论最优值7的示意图。图2即源节点二部图Gs构造示意图,执行下述步骤进行调度,目的是提高修复并行度以逼近理论最优值,从而提高修复性能。
第二步:分批调度重构任务和选择源节点
参见图2所示的源节点二部图Gs构造示意图。图中两部分中的一部分是7个任务节点,另外一部分是系统中的7个幸存节点。每个重构任务与k+m-1=4个源节点连接。幸存节点下面的数值代表了该节点作为源节点的次数,可以看到随机的数据布局在小范围内源节点负载是不均匀的。
图3为源节点二部图Gs的流图FGs。基于Gs,得到源节点的流图FGs。在图3中,s和t是加入的源和汇,虚线表示新加入的连接虚拟边并把边上的容量标记为k=3,实线是Gs中的连接边并将边上的容量标记为1。
接着为FGs寻找最大流,图4为寻找FGs最大流的状态图。利用Ford-Fulkerson算法可以求得图4中最大流如图中用黑色箭头所示,最大流值为17。任务节点与幸存节点间箭头上的流值为1,即代表该任务有一条对应的源节点选择。图4中的T7是最不饱和的任务,将在重构队列中寻找任务来替代它,删除T7后不饱和的源节点列表是N5、N6、N7。
接着更新最大流,图5为更新后FGs最大流的示意图。在重构队列中寻找一个新的任务,它需要满足条件:该任务比待替换的任务关联更多的不饱和源节点。图4中的T7只关联1个不饱和源节点,即N5。而图5中T7是在重构队列中找到的新的任务,有3个关联的不饱和源节点:N5、N6、N7。替换掉图4中的T7后更新图4中的最大流,得到新的流如图5所示,最大流值为19。
第三步:为不饱和的任务补充源节点的连接
设在图5中更新完最大流后,已达到设定的阈值(如重构队列已遍历完),即无法再增加流值,这时需要为这些不饱和的T5、T6补充源节点连接,这时为每个不饱和任务在剩下未选择的源节点中选取负载最轻的作为补充的源节点,图6为源节点和替代节点二部图Gr-s的构造示意图。参见图6中替代节点与源节点的选取。比如任务T5在负载相同的N2、N3中选择任意一个节点如N2作为补充的源节点,T6选择负载最轻的N3作为补充的源节点。
第四步:选择替代节点
可以得到替代节点的二部图为Gs的补图Gr,再次利用Ford-Fulkerson算法可以求得Gr的完美匹配,参见图6中替代节点与重构任务的选取。
通过对源节点和替代节点的选择,可以得到关于源和替代节点的二部图Gr-s,参见图6中所示,可以为每个重构任务求得修复并行度然后汇总得到当前一批重构任务总的修复并行度。如图6中所示,任务T2在节点N2执行重构任务,它所连接的N3源节点负载最重,即该条链路网络传输最慢,可以计算T2的修复并行度为:其他的重构任务也是同理求得,最后得到图6中整批重构任务的修复并行度为5.5。
通过上述对本发明基于纠删码存储系统的负载均衡修复调度方法具体实施操作过程的分析说明,显示了在构造重构任务与源节点的二部图以及对应的流图基础上,通过更新最大流的方式来优化重构任务的顺序(图4、图5中对T7的更新)及源节点的选择,基于完美匹配选择替代节点,在单点故障修复过程中优化修复流量的负载。本实施例中使用修复并行度评估系统的负载均衡程度达到了5.5(达到理论最优值7的78.57%,在实际部署系统中修复并行度平均能达到理论最优值的90%以上)。本发明方法由于采用更新最大流的方式来动态的选择重构任务和源节点,相比于传统的按顺序分批执行修复和随机选择源节点的方式,能够动态的构建均匀的数据布局以及实现源节点的负载均衡;由于替代节点的选择采用寻找完美匹配的方式,克服了传统随机选择替代节点做不到均衡的缺点;本发明通过动态的调度重构任务,提高了系统的修复速度,并减少了在修复过程中对前端任务的干扰,提高了分布式存储系统的服务质量和性能。
Claims (1)
1.一种基于纠删码存储系统的负载均衡修复调度方法,其特征在于包括以下步骤:
第一步:负载均衡状态评估
设分布式存储系统部署(k,m)的纠删码,其中k是数据块的数量,m是校验块的数量;当发生单点故障,待重构的任务在主节点构成重构队列;构造出关于替代节点和源节点的二部图Gr-s=(N,N,E),其中两部分的点集N都是系统中的幸存节点,设系统中幸存节点数量为n,边集合E代表执行当前这批重构任务时替代节点与源节点的对应关系,修复时间片为系统空闲情况下通过跨节点传输k个块来修复单个故障块所花费的时间;设一个分布式存储系统部署(k,m)的故障块大小是B,系统节点的带宽是同构的,都是Bw,那么该修复时间片就是kB/Bw;定义修复并行度为在修复时间片内系统能够修复的故障块数量,当Gr-s达到最优的源和替代节点负载均衡时,修复并行度达到最优值,即为n,即系统一批执行的重构任务数量为n;通过对每一批重构任务计算修复并行度来判断是否达到最优调度,若修复并行度已达到最优值n,则按当前调度执行该批重构任务,算法终止;否则,转第二步;
第二步:分批调度重构任务和选择源节点
构造一个二部图Gs=(T,N,E),其中T是n个待重构的任务集合,N是系统中n个幸存节点集合;对任意重构任务Ti∈T,若存在Ni∈N是Ti所在条带的源节点,则在Ti与Ni之间连一条边(Ti,Ni)∈E;重构一个故障块,从该故障块所在条带中剩余的k+m-1个源节点中读取任意的k个块,即为Gs中每个重构任务从E中选择k条边;若每个幸存节点为重构任务都恰好贡献了k个块,则达到最优的负载均衡;
将上述问题转化为最大流问题求解,目标是尽可能达到一批重构任务的源节点负载均衡:基于二部图Gs构造源节点的流图FGs,添加源s和汇t,连接s和T中的每个重构任务并标记边的容量为k,连接t和N中每个幸存节点并标记边的容量为k,把原先Gs中的边容量标记为1,得到流图FGs;利用Ford-Fulkerson算法,计算得到FGs的流值fFGs;若fFGs达到了饱和值kN,则执行第三步;否则,通过在剩下的重构队列中寻找新的任务替代这些不饱和的重构任务来更新fFGs;每次在fFGs中寻找最不饱和的重构任务作为将被替换的任务,在重构队列中找到在fFGs中有更多关联不饱和源节点的新任务替换进去;如果达到设定的阈值时,fFGs的值没有再继续增加,终止第二步;
第三步:为不饱和的任务补充源节点的连接
若还有未饱和的重构任务,则选择连接数量最小的幸存节点为这些任务补充新的源;
第四步:选择替代节点
从构造替代节点的二部图Gr开始,所有替代节点的选择必须和重构任务所选择的源节点不同,即Gr是Gs的补图;再次利用Ford-Fulkerson算法在Gr中寻找完美匹配;
若重构队列中不为空,则重复上述四步来为下批任务进行调度,直至队列为空。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010313968.5A CN111506428B (zh) | 2020-04-20 | 2020-04-20 | 一种基于纠删码存储系统的负载均衡修复调度方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010313968.5A CN111506428B (zh) | 2020-04-20 | 2020-04-20 | 一种基于纠删码存储系统的负载均衡修复调度方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111506428A true CN111506428A (zh) | 2020-08-07 |
CN111506428B CN111506428B (zh) | 2022-09-02 |
Family
ID=71872767
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010313968.5A Active CN111506428B (zh) | 2020-04-20 | 2020-04-20 | 一种基于纠删码存储系统的负载均衡修复调度方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111506428B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112714031A (zh) * | 2021-03-29 | 2021-04-27 | 中南大学 | 一种基于带宽感知的故障节点快速修复方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150142863A1 (en) * | 2012-06-20 | 2015-05-21 | Singapore University Of Technology And Design | System and methods for distributed data storage |
CN105302500A (zh) * | 2015-11-24 | 2016-02-03 | 中国科学技术大学 | 一种基于动态条带构造的分布式编码方法 |
CN106445726A (zh) * | 2016-09-28 | 2017-02-22 | 上海爱数信息技术股份有限公司 | 一种分布式纠删码存储系统的数据修复方法 |
CN108833277A (zh) * | 2018-08-15 | 2018-11-16 | 西安电子科技大学 | 一种通信网络负载均衡最大流路由方法 |
CN110190926A (zh) * | 2019-04-26 | 2019-08-30 | 华中科技大学 | 基于网络计算的纠删码修复方法、纠删码更新方法及系统 |
CN110597655A (zh) * | 2019-06-26 | 2019-12-20 | 中大编码有限公司 | 一种迁移与基于纠删码的重构相耦合的快速预知修复方法和实现 |
-
2020
- 2020-04-20 CN CN202010313968.5A patent/CN111506428B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150142863A1 (en) * | 2012-06-20 | 2015-05-21 | Singapore University Of Technology And Design | System and methods for distributed data storage |
CN105302500A (zh) * | 2015-11-24 | 2016-02-03 | 中国科学技术大学 | 一种基于动态条带构造的分布式编码方法 |
CN106445726A (zh) * | 2016-09-28 | 2017-02-22 | 上海爱数信息技术股份有限公司 | 一种分布式纠删码存储系统的数据修复方法 |
CN108833277A (zh) * | 2018-08-15 | 2018-11-16 | 西安电子科技大学 | 一种通信网络负载均衡最大流路由方法 |
CN110190926A (zh) * | 2019-04-26 | 2019-08-30 | 华中科技大学 | 基于网络计算的纠删码修复方法、纠删码更新方法及系统 |
CN110597655A (zh) * | 2019-06-26 | 2019-12-20 | 中大编码有限公司 | 一种迁移与基于纠删码的重构相耦合的快速预知修复方法和实现 |
Non-Patent Citations (3)
Title |
---|
HSING-BUNG CHEN: "Parallel Erasure Coding: Exploring Task Parallelism in Erasure Coding for Enhanced Bandwidth and Energy Efficiency", 《 2016 IEEE INTERNATIONAL CONFERENCE ON NETWORKING, ARCHITECTURE AND STORAGE (NAS)》 * |
SHIJING LI: "Joint Scheduling and Source Selection for Background Traffic in Erasure-Coded Storage", 《 IEEE TRANSACTIONS ON PARALLEL AND DISTRIBUTED SYSTEMS》 * |
裴晓强: "基于纠删码的分布式容错存储技术研究", 《中国博士学位论文全文数据库 信息科技辑》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112714031A (zh) * | 2021-03-29 | 2021-04-27 | 中南大学 | 一种基于带宽感知的故障节点快速修复方法 |
CN112714031B (zh) * | 2021-03-29 | 2021-06-22 | 中南大学 | 一种基于带宽感知的故障节点快速修复方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111506428B (zh) | 2022-09-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108540520B (zh) | 基于部分重复码的局部性修复编码及节点故障修复方法 | |
CN102281329B (zh) | 一种PaaS云平台的资源调度方法和系统 | |
Kermarrec et al. | Repairing multiple failures with coordinated and adaptive regenerating codes | |
CN107229693B (zh) | 基于深度学习的大数据系统配置参数调优的方法和系统 | |
US6122283A (en) | Method for obtaining a lossless compressed aggregation of a communication network | |
CN109491835B (zh) | 一种基于动态分组码的数据容错方法 | |
CN111614720B (zh) | 针对集群存储系统单点失效修复的跨集群流量优化方法 | |
CN110190926B (zh) | 基于网络计算的纠删码更新方法及系统 | |
CN111506428B (zh) | 一种基于纠删码存储系统的负载均衡修复调度方法 | |
CN1798068A (zh) | 在网络中提供有限中继保护通道的方法和设备 | |
US11467905B1 (en) | Stripe merging method and system based on erasure codes | |
CN112714031B (zh) | 一种基于带宽感知的故障节点快速修复方法 | |
CN111130898B (zh) | 基于业务特征和节点可靠性的电力通信网故障恢复方法 | |
CN104254838A (zh) | 用于在云网络中使用文件分块和复制的分布式文件系统的方法和装置 | |
CN108536396B (zh) | 一种基于网络编码的存储扩展方法 | |
CN109889440A (zh) | 一种基于最大生成树的纠删码失效节点重构路径选择方法 | |
Akhlaghi et al. | A fundamental trade-off between the download cost and repair bandwidth in distributed storage systems | |
US20180262927A1 (en) | Using synergistic shapely values to increase robustness of a cellular network | |
CN109067409B (zh) | 一种高效的列表球型极化解码方法及系统 | |
CN115150246B (zh) | 基于新型嵌套链架构的面向海量实时物联网的上链方法 | |
US20190034277A1 (en) | Storing a plurality of correlated data in a dispersed storage network | |
CN113098660B (zh) | 一种基于部分复制技术的不等局部可修复喷泉码构造方法 | |
WO2018209541A1 (zh) | 基于t-设计的部分重复码的编码结构以及构造方法 | |
CN111786744B (zh) | 一种基于avx-512指令集的5g极化码自适应高效译码方法 | |
CN108108241A (zh) | 一种用于分布式系统的满足可靠性需求的任务调度方法 |
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 | ||
CB03 | Change of inventor or designer information |
Inventor after: Lv Min Inventor after: Xu Liangliang Inventor after: Li Qiliang Inventor after: Xie Lingjiang Inventor after: Xu Yinlong Inventor before: Lv Min Inventor before: Xu Liangliang Inventor before: Li Qiliang Inventor before: Xie Ling Inventor before: Xu Yinlong |
|
CB03 | Change of inventor or designer information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |