一种可协调的纠删码修复方法、装置及可读介质与流程

文档序号:35668522发布日期:2023-10-07 13:09阅读:46来源:国知局
一种可协调的纠删码修复方法、装置及可读介质

本发明涉及分布式存储领域,具体涉及一种可协调的纠删码修复方法、装置及可读介质。


背景技术:

1、随着大数据时代的到来,数据量的激增导致本应是偶然的故障现在变得司空见惯。分布式存储系统依靠数据冗余实现数据容错,纠删码是一种低成本的冗余方案,在不降低数据容错能力的情况下,显著地减少了系统的存储开销。纠删码对一些大小固定的块进行编码以生成一些冗余块。即使缺失部分块,纠删码仍可用幸存块恢复出原始数据。在减小系统存储开销的同时,纠删码也不可避免地放大了修复流量,因为在纠删码中修复单个块需要从远程节点取回多个幸存块。放大的修复流量很容易导致冗长的修复过程,并使系统容易受到后续故障的影响。

2、纠删码研究者为促进数据修复做出了巨大的努力,现有的研究方法主要可以分为以下几类:

3、(1)构建修复高效的纠删码,此类纠删码可以在理论上减少纠删码所需的修复流量。

4、(2)设计纠删码调度算法,使纠删码修复并行化,从而在不改变修复流量的情况下平衡系统的带宽利用率。

5、典型的纠删码修复算法主要有以下几种:

6、(1)cr,直接将用于修复的块(包括数据块与冗余块)传输到目标节点;

7、(2)ppr,将单块修复分解为子阶段,并利用子阶段的执行并行性加速修复;

8、(3)ecpipe,它将一个块分成相等大小的切片,并对切片的修复过程构建修复流水线,以加速其修复过程。

9、然而,经观察发现,大多数现有的纠删码存储研究与流量无关,这意味着他们经常修复丢失的数据而不考虑与前台流量的潜在的带宽争用,这可能导致修复的时间被极大地延长,冗长的修复肯定会降低整个系统的可靠性,因为系统中的可靠性往往都是高度相关的。同时,纠删码修复与前台带宽的争用也常常会极大地影响前台系统的访问延迟。为了深入研究其根本原因,进行了实验测试,并发现了现有修复调度算法的三个局限性:

10、(1)它们通常基于先前报告的带宽,但是面对短期不平衡且动态变化的前台流量时可能是过时的;

11、(2)现有的修复调度算法的结构是不变的,无法在修复过程中充分的使用节点的修复带宽;

12、(3)现有的修复算法是掉队者无关的,即现有的修复算法无法识别修复过程中所出现的掉队者,因此很容易导致意外的修复停顿。


技术实现思路

1、针对上述提到的技术问题。本技术的实施例的目的在于提出了一种可协调的纠删码修复方法、装置及可读介质,来解决以上背景技术部分提到的技术问题。

2、第一方面,本发明提供了一种可协调的纠删码修复方法,包括以下步骤:

3、s1,获取集群中各个节点的带宽使用情况,并确定集群的失效节点中的失效块,将集群的失效节点中每个失效块的修复方案分解为多个修复任务,包括上传任务和下载任务,根据带宽使用情况将上传任务和下载任务分配给集群中各个幸存节点,得到第一分配方案;

4、s2,基于上传任务与下载任务的匹配对第一分配方案进行调整,得到第二分配方案;

5、s3,在修复过程中,根据第二分配方案中每个幸存节点所分配的上传任务与下载任务的数量以及监测到的每个幸存节点的带宽使用情况监控修复进度;

6、s4,根据修复进度采用掉队者感知重调机制调整修复任务的传输顺序和执行位置。

7、作为优选,步骤s1中获取集群中各个节点的带宽使用情况,并确定集群的失效节点中的失效块,具体包括:

8、每个阶段间隔时间t统计监测器监测到的每个节点的带宽使用情况,带宽使用情况包括实时下载带宽和实时上传带宽;

9、响应于集群中存在失效节点,并接收到修复请求,通过查询条带放置信息,得到集群中条带的放置情况及需要修复的失效块。

10、作为优选,集群的失效节点中的每个失效块的修复方案为k个上传任务与k个下载任务的组合,并且每隔时间t对上传任务和下载任务进行分配,幸存节点中所分配的上传任务的数量至多为1个,所分配的下载任务的数量为0个或1个及以上。

11、作为优选,步骤s1中根据带宽使用情况将上传任务和下载任务分配给集群中各个幸存节点,得到第一分配方案,具体包括:

12、将集群中不包含失效块所在条带中的数据块与冗余块且预计下载时间最小的幸存节点作为目的放置节点,预计下载时间为该幸存节点中已分配的下载任务的数量与实时下载带宽的比值,在目的放置节点中分配1个下载任务;

13、将剩余的k-1个下载任务分配至包含失效块所在条带中的数据块与冗余块所对应的幸存节点以及目的放置节点中,在分配过程中若被分配下载任务的幸存节点并未被分配上传任务且其不为目的放置节点,则为其分配一个上传任务,得到若干个分配方案;

14、遍历每个分配方案,并计算每个分配方案中每个幸存节点的预计修复时间,预计修复时间为预计下载时间和预计上传时间中的最大值,预计上传时间为该幸存节点中已分配的上传任务的数量与实时上传带宽的比值,选择每个分配方案中所有幸存节点中预计修复时间的最大值作为最大预计修复时间;

15、选择若干个分配方案中最大预计修复时间最小的分配方案作为初始分配方案;

16、在初始分配方案中,响应于确定存在剩余的未被分配的上传任务,则在包含失效块所在条带中的数据块与冗余块所对应的幸存节点中找到未被分配上传任务且拥有最小预计上传时间的幸存节点,分配剩余的未被分配的上传任务,得到第一分配方案。

17、作为优选,步骤s2中具体包括:

18、s21,在第一分配方案中选取只有1个上传任务的幸存节点作为修复的起始节点,将起始节点放入第一节点集合中,将其余幸存节点放入第二节点集合中;

19、s22,在第一节点集合中选择其中一个起始节点并与第二节点集合中且拥有最少待匹配的下载任务的幸存节点进行匹配,匹配完成后将该起始节点从第一节点集合中移出,并将该幸存节点中的待匹配的下载任务的数量减1,若该幸存节点中的待匹配的下载任务的数量被减少为0,则将其加入第一节点集合中;

20、s23,重复步骤s22,直至每个幸存节点的剩余下载任务和上传任务均分配完成,得到第二分配方案。

21、作为优选,步骤s3具体包括:

22、计算第二分配方案中每个幸存节点中已分配的下载任务的数量与实时下载带宽的比值,得到期望下载时间;

23、计算第二分配方案中每个幸存节点中已分配的上传任务的数量与实时上传带宽的比值,得到期望上传时间;

24、将期望下载时间和期望上传时间中的最大值作为期望时间;

25、在修复过程中,定期检查每个幸存节点的修复任务,并判断该修复任务是否能在期望时间内完成,得到修复进度。

26、作为优选,步骤s4具体包括:

27、若修复进度中幸存节点的修复任务无法在期望时间内完成,则将该幸存节点判定为掉队者;

28、采用传输重排序的方式调整修复任务的传输顺序,响应于检测到掉队者,将掉队者参与的上传任务或下载任务中存在的未完成的修复任务作为推迟任务,先执行其他无需掉队者参与的修复任务,并将推迟任务放入等待队列中,若在此阶段的间隔时间t结束前掉队者完成了除推迟任务之外的修复任务,则重启推迟任务的传输;若在此阶段的间隔时间t结束前掉队者未完成除推迟任务之外的修复任务,则推迟任务将在下一个阶段重启;

29、采用绕过掉队者的方式调整修复任务的执行位置,响应于检测到掉队者,且推迟任务为下载任务,则将下载任务重定向至所对应的目的放置节点,以作为下载任务的执行位置。

30、第二方面,本发明提供了一种可协调的纠删码修复装置,包括:

31、第一分配模块,被配置为获取集群中各个节点的带宽使用情况,并确定集群的失效节点中的失效块,将集群的失效节点中每个失效块的修复方案分解为多个修复任务,包括上传任务和下载任务,根据带宽使用情况将上传任务和下载任务分配给集群中各个幸存节点,得到第一分配方案;

32、第二分配模块,被配置为基于上传任务与下载任务的匹配对第一分配方案进行调整,得到第二分配方案;

33、进度监控模块,被配置为在修复过程中,根据第二分配方案中每个幸存节点所分配的上传任务与下载任务的数量以及监测到的每个幸存节点的带宽使用情况监控修复进度;

34、传输模块,被配置为根据修复进度采用掉队者感知重调机制调整修复任务的传输顺序和执行位置。

35、第三方面,本发明提供了一种电子设备,包括一个或多个处理器;存储装置,用于存储一个或多个程序,当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现如第一方面中任一实现方式描述的方法。

36、第四方面,本发明提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第一方面中任一实现方式描述的方法。

37、相比于现有技术,本发明具有以下有益效果:

38、(1)本发明提出的可协调的纠删码修复方法利用纠删码的可调性来加速存在动态前台流量的修复,将一个修复方案分解为多个修复任务,每个修复任务负责上传或下载一个块进行修复,被称作上传任务或下载任务,能根据集群中节点的带宽变化,灵活地分配修复任务,提高了集群中的带宽利用率,增大了纠删码修复的修复带宽。

39、(2)本发明提出的可协调的纠删码修复方法可以跨幸存节点分配修复任务,以使可用带宽饱和,并基于任务的分配建立一个可调整的修复解决方案以导航修复,分时隙地给出修复方案,以应对前台流量的动态变化,以减小前台流量变化对纠删码修复的影响,减少了纠删码与前台流量的带宽争用,在增大纠删码修复带宽的同时,尽可能地减小对前台流量的影响。

40、(3)本发明提出的可协调的纠删码修复方法采用掉队者感知重调机制,通过定期监控修复进度,进一步及时安排重新传输顺序并调整修复方案,以减轻因出现掉队者造成的修复停顿。本发明可以支持多种纠删码进行修复加速,同时在面对不同的前端负载时,均能以低干扰加速修复,还可以适用于加速单节点修复和多节点修复。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1