一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于纠删码的多节点调度修复方法及系统与流程

2021-12-01 01:45:00 来源:中国专利 TAG:


1.本发明属于计算机存储领域,更具体地,涉及一种基于纠删码的多节点调度修复方法及系统。


背景技术:

2.随着信息技术的飞速发展,无时无刻都有海量的新数据产生并需要被持久化地存储下来。为了防止故障导致数据不可用,现有的大规模分布式存储系统引入了纠删码以保持系统可靠性并降低存储成本。
3.现有的纠删码集群处在一个异构网络中,因此,集群中节点之间的最低带宽链路阻碍了修复进程,并且许多存储设备可能同时出现故障,网络故障可能导致多台服务器断开连接及其数据不可用。因此,加速多节点的恢复也很重要。
4.传统的多节点修复采用简单的顺序修复方法;该方法存在各个受损节点不能并行修复的问题;当前有一些研究针对在异构的网络环境中实现纠删码的多节点快速修复技术,例如parallel pipeline cross

tree(ppct),通过与所有的helper分担多个requestor的带宽从而降低修复时间,但是该方法会导致网络的拥塞与竞争问题,修复并行度不高;因此,针对云存储中带宽异构的环境且存在的低带宽链路阻碍修复时间的情况,提出一个快速的多节点修复技术以修复数据,保证云存储中数据的可靠性是十分重要且有意义的。


技术实现要素:

5.针对现有技术的缺陷,本发明的目的在于提供一种基于纠删码的多节点调度修复方法及系统,旨在解决现有的低带宽链路阻碍纠删码快速修复数据,导致数据修复效率较低的问题。
6.为实现上述目的,一方面,本发明提供了一种基于纠删码的多节点调度修复方法,包括以下步骤:
7.获取当前网络带宽状态,包括各个节点之间的带宽;
8.为每个失效节点选择对应的新生节点requestor以存储修复数据,并从所有幸存节点中为每一个失效节点选择k个helper节点;其中,k为原始数据块;
9.根据带宽大小,对所有候选链路进行从大到小排序;其中,候选链路表示链路的两个节点为失效节点对应的不同helper节点;
10.从排序后的候选链路中依次选择带宽最大的候选链路插入到纠删码集群中,纠删码集群中最小链路带宽大于等于未插入候选链路的带宽;
11.根据候选链路的节点状态确定链路方向,纠删码完成对失效节点的修复任务。
12.优选地,采用iperf或心跳机制获取当前网络带宽状态;
13.优选地,根据候选链路的节点状态确定链路方向的方法为:
14.若候选链路中包含受损节点n
f
,则受损节点n
f
为下载节点且链路的修复任务为n
f

15.且若候选链路中的一个节点已经作为上传节点,且修复任务为修复受损节点n
f

则上传节点可继续作为一个下载节点,且修复任务为修复受损节点n
r
;其中,n
r
≠n
f

16.优选地,采用空闲节点绕过最低带宽链路,具体方法为:
17.从候选链路中选取最低带宽链路;
18.从纠删码集群中条带外的空闲节点中选择满足带宽条件的空闲节点;
19.利用空闲节点构建候选链路,替代最低带宽链路,利用多级转发绕过最低带宽链路以加速修复失效节点;
20.满足带宽条件的空闲节点为:对失效节点的第一修复时间小于对失效节点的第二修复时间;第一修复时间为利用空闲节点构建的多级候选链路插入纠删码,对失效节点的修复时间;第二修复时间为将最低带宽链路插入纠删码,对失效节点的修复时间。
21.优选地,新生节点的选择方法为:
22.若失效磁盘可以读写数据时,则失效节点可以作为新生节点requestor;否则,只能选择条带外的节点作为新生节点requestor。
23.另一方面,本发明提供了一种基于纠删码的多节点调度修复系统,包括:
24.带宽获取模块,用于获取当前网络带宽状态,包括各个节点之间的带宽;
25.节点选择模块,用于为每个失效节点选择对应的新生节点requestor以存储修复数据,并从所有幸存节点中为每一个失效节点选择k个helper节点;其中,k为原始数据块;
26.排序模块,用于根据带宽大小,对所有候选链路进行从大到小排序;其中,候选链路表示链路的两个节点为失效节点对应的不同helper节点;
27.插入模块,用于从排序后的候选链路中依次选择带宽最大的候选链路插入到纠删码集群中,纠删码集群中最小链路带宽大于等于未插入候选链路的带宽;
28.修复模块,用于根据候选链路的节点状态确定链路方向,纠删码完成对失效节点的修复任务。
29.优选地,带宽获取模块采用iperf或心跳机制获取当前网络带宽状态。
30.优选地,修复模块根据候选链路的节点状态确定链路方向的方法为:
31.若候选链路中包含受损节点n
f
,则受损节点n
f
为下载节点且链路的修复任务为n
f

32.且若候选链路中的一个节点已经作为上传节点,且修复任务为修复受损节点n
f
;则上传节点可继续作为一个下载节点,且修复任务为修复受损节点n
r
;其中,n
r
≠n
f

33.优选地,基于纠删码的多节点调度修复系统,还包括空闲节点构建链路模块,用于采用空闲节点绕过最低带宽链路,具体执行过程为:
34.从候选链路中选取最低带宽链路;
35.从纠删码集群中条带外的空闲节点中选择满足带宽条件的空闲节点;
36.利用空闲节点构建候选链路,替代最低带宽链路,利用多级转发绕过最低带宽链路以加速修复失效节点;
37.满足带宽条件的空闲节点为:对失效节点的第一修复时间小于对失效节点的第二修复时间;第一修复时间为利用空闲节点构建的多级候选链路插入纠删码,对失效节点的修复时间;第二修复时间为将最低带宽链路插入纠删码,对失效节点的修复时间。
38.优选地,节点选择模块包括新生节点单元,用于新生节点的选择,其具体执行方法为:
39.若失效磁盘可以读写数据时,则失效节点可以作为新生节点requestor;否则,只
能选择条带外的节点作为新生节点requestor。
40.总体而言,通过本发明所构思的以上技术方案与现有技术相比,具有以下有益效果:
41.本发明所提供的基于纠删码的多节点调度修复方法,根据带宽大小,对所有候选链路进行从大到小排序,从排序后的候选链路中依次选择带宽最大的候选链路插入到纠删码集群中,尽可能使用大的带宽链路以并行修复多个受损节点,根据带宽状态进行修复失效节点可最大化每个时间戳的最小带宽链路,从而可以充分利用带宽资源,提升失效节点的修复效率。
42.本发明所提供的基于纠删码的多节点调度修复方法,使用空闲节点绕过每个修复方案的最低带宽链路,进一步降低了修复时间,大幅提升了修复性能,提升了整个系统的可靠性。
附图说明
43.图1是本发明实施例提供的各个节点之间的带宽示意图;
44.图2是本发明实施例提供的修复节点1和节点2的方法示意图。
具体实施方式
45.为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
46.下面介绍下本发明需要了解的基本概念:
47.在一个基于纠删码rs(n,k)的储存系统中,一个文件被分为k个原始数据块,原始数据块通过编码矩阵被编码成n个总数据块,其中,n=m k;m为校验块个数;n个总数据块的集合称为条带,其中,n个数据块分布在n个存储节点上,可以容忍任何n

k节点故障;同时处于该条带外的节点被称为空闲节点,这些空闲节点并不会参与数据修复过程的编码计算,其带宽资源处于空闲状态。
48.一方面,本发明提供了一种基于纠删码的多节点调度修复方法,包括以下步骤:
49.获取当前网络带宽状态,包括各个节点之间的带宽;
50.为每个失效节点选择对应的新生节点requestor以存储修复数据,并从所有幸存节点中为每一个失效节点选择k个helper节点;其中,k为原始数据块;
51.根据带宽大小,对所有候选链路进行从大到小排序;其中,候选链路表示链路的两个节点为失效节点对应的不同helper节点;
52.从排序后的候选链路中依次选择带宽最大的候选链路插入到纠删码集群中,纠删码集群中最小链路带宽大于等于未插入候选链路的带宽;
53.根据候选链路的节点状态确定链路方向,纠删码完成对失效节点的修复任务。
54.优选地,采用iperf或心跳机制获取当前网络带宽状态;
55.优选地,根据候选链路的节点状态确定链路方向的方法为:
56.若候选链路中包含受损节点n
f
,则受损节点n
f
为下载节点且链路的修复任务为n
f

57.且若候选链路中的一个节点已经作为上传节点,且修复任务为修复受损节点n
f

则上传节点可继续作为一个下载节点,且修复任务为修复受损节点n
r
;其中,n
r
≠n
f

58.优选地,采用空闲节点绕过最低带宽链路,具体方法为:
59.从候选链路中选取最低带宽链路;
60.从纠删码集群中条带外的空闲节点中选择满足带宽条件的空闲节点;
61.利用空闲节点构建候选链路,替代最低带宽链路,利用多级转发绕过最低带宽链路以加速修复失效节点;
62.满足带宽条件的空闲节点为:对失效节点的第一修复时间小于对失效节点的第二修复时间;第一修复时间为利用空闲节点构建的多级候选链路插入纠删码,对失效节点的修复时间;第二修复时间为将最低带宽链路插入纠删码,对失效节点的修复时间。
63.优选地,新生节点的选择方法为:
64.若失效磁盘可以读写数据时,则失效节点可以作为新生节点requestor;否则,只能选择条带外的节点作为新生节点requestor。
65.另一方面,本发明提供了一种基于纠删码的多节点调度修复系统,包括:
66.带宽获取模块,用于获取当前网络带宽状态,包括各个节点之间的带宽;
67.节点选择模块,用于为每个失效节点选择对应的新生节点requestor以存储修复数据,并从所有幸存节点中为每一个失效节点选择k个helper节点;其中,k为原始数据块;
68.排序模块,用于根据带宽大小,对所有候选链路进行从大到小排序;其中,候选链路表示链路的两个节点为失效节点对应的不同helper节点;
69.插入模块,用于从排序后的候选链路中依次选择带宽最大的候选链路插入到纠删码集群中,纠删码集群中最小链路带宽大于等于未插入候选链路的带宽;
70.修复模块,用于根据候选链路的节点状态确定链路方向,纠删码完成对失效节点的修复任务。
71.优选地,带宽获取模块采用iperf或心跳机制获取当前网络带宽状态。
72.优选地,修复模块根据候选链路的节点状态确定链路方向的方法为:
73.若候选链路中包含受损节点n
f
,则受损节点n
f
为下载节点且链路的修复任务为n
f

74.且若候选链路中的一个节点已经作为上传节点,且修复任务为修复受损节点n
f
;则上传节点可继续作为一个下载节点,且修复任务为修复受损节点n
r
;其中,n
r
≠n
f

75.优选地,基于纠删码的多节点调度修复系统,还包括空闲节点构建链路模块,用于采用空闲节点绕过最低带宽链路,具体执行过程为:
76.从候选链路中选取最低带宽链路;
77.从纠删码集群中条带外的空闲节点中选择满足带宽条件的空闲节点;
78.利用空闲节点构建候选链路,替代最低带宽链路,利用多级转发绕过最低带宽链路以加速修复失效节点;
79.满足带宽条件的空闲节点为:对失效节点的第一修复时间小于对失效节点的第二修复时间;第一修复时间为利用空闲节点构建的多级候选链路插入纠删码,对失效节点的修复时间;第二修复时间为将最低带宽链路插入纠删码,对失效节点的修复时间。
80.优选地,节点选择模块包括新生节点单元,用于新生节点的选择,其具体执行方法为:
81.若失效磁盘可以读写数据时,则失效节点可以作为新生节点requestor;否则,只
能选择条带外的节点作为新生节点requestor。
82.实施例
83.如图2所示,是一个rs(6,4)的例子,n1~n2为4个原始数据节点;n5和n6是编码后生成的2个校验节点,一共6个节点构成一个条带;当n1和n2节点失效时,选择原始失效节点n1和n2为requestor节点,从剩余四个节点选择候选链路可以恢复失效节点,本实施例中对于每个失效节点选择n3~n6节点参与修复;
84.本实施例提供的基于纠删码的多节点调度修复方法,包括以下步骤:
85.s1:使用iperf或心跳机制以获取当前网络带宽状况,包括各个节点之间的带宽,如图1所示;
86.s2:为每个失效节点选择一个新生节点requestor以存储修复数据,并从所有幸存节点中为每一个失效节点选择k个helper节点;如图2所示,将n1和n2作为新生节点存储恢复出的数据;
87.s3:所有候选链路根据带宽从大到小进行排序;其中,候选链路表示链路的两个节点由每个失效节点对应的helper节点构成,在该部链路的修复任务和修复方法尚未确定;
88.如图2所示,将n3~n6节点之间的候选链路按照带宽从大到小进行排序,例如helper节点3和helper节点4构成的候选链路的带宽为6mb/s,该候选链路的带宽是最大的;
89.s4:从排序后的候选链路中依次选择带宽最大的链路插入到纠删码集群中,使得插入后集群中最小链路带宽是最大的;
90.如图2所示,按照对候选节点的排序,步骤1插入helper节点3和helper节点4构成的候选链路3

4,此时链路的方向与修复任务尚未确定;步骤2从排序好的候选链路中选择helper节点2和helper节点4构成的候选链路2

4插入到集群中;
91.通过每次获取最大带宽的候选链路插入到集群中,可以保证每次插入后集群中最小链路带宽是最大的;
92.s5:根据候选链路的节点状态确定链路方向,纠删码完成对失效节点的修复任务。
93.具体地,s5中确定链路方向的方法为:
94.候选链路中包含受损节点n
f
,则n
f
为下载节点且链路的修复任务为n
f
;如图2中的步骤2,在插入由helper节点2和helper节点4构成的候选链路2

4时,由于节点2为受损节点,因此节点2为下载节点,节点4为上传节点,构建的链路方向为由节点4指向节点2;
95.或候选链路中的一个节点已经作为一个上传(下载)节点,且修复任务为修复n
f
,则上述节点可继续作为一个下载(上传)节点,且修复任务为n
r
(n
r
≠n
f
);如图2中的步骤5,在插入由helper节点6和helper节点5构成的候选链路6

5,节点5作为候选链路5

1的上传节点,且修复任务为节点1,因此插入候选链路6

5时,节点5可以作为下载节点,构建的候选链路6

5的链路方向为节点6指向节点5,同时修复任务为修复节点2;
96.优选地,采用空闲节点绕过最低带宽链路,具体包括如下步骤:
97.(1)从所有候选链路中获取最低带宽链路;
98.例如,图2中的时间戳1生成的修复方案中最低带宽链路为链路5

1,链路带宽为4mb/s;
99.(2)从集群中条带外的空闲节点中选择满足带宽条件的节点;
100.例如,在条带外寻找到满足带宽条件的空闲节点i,候选链路a从节点5出发,到达
空闲节点i;候选链路b从空闲节点到达节点1;候选链路c从节点5出发到达节点1;候选链路a与候选链路b叠加插入纠删码,对失效节点的修复时间为t1;候选链路c插入纠删码,对失效节点的修复时间为t2;如果t1<t2,则认为空闲节点i是满足带宽条件的,采用候选链路a与候选链路b叠加的方式替代候选链路c,可以减少修复过程中因最低带宽链路而导致的修复时间;利用空闲节点可以实现多级转发以绕过低带宽链路,加速修复失效节点。
101.需指出,在本实施例中数据块只是通过空闲节点进行缓冲后转发,并不进行计算等过程。
102.本实施例在数据发生丢失时,根据当前的网络状况调度多个受损节点的并行修复以及采用空闲节点绕过最低带宽链路进行修复,充分利用了节点的高带宽资源以快速修复数据。
103.在本实施例中,基于上述纠删码的多节点调度修复方法,可以根据当前的网络状况以生成一个修复方法使得最大化最小带宽链路;
104.总体而言,本发明所提供的基于纠删码的多节点调度修复方法,可以在带宽异构的网络环境下进行快速的修复。实验表明,相对于当前最优ppct而言,本发明可以显著提升多节点修复性能。
105.本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献