节点修复方法及相关设备

文档序号:36174935发布日期:2023-11-24 23:07阅读:82来源:国知局
节点修复方法及相关设备

本技术实施例涉及数据存储,尤其涉及一种节点修复方法及相关设备。


背景技术:

1、里德-所罗门码(rs(k,m))是擦除码家族中应用最广泛的一种纠删码。尤其是在分布式存储系统中。

2、为了实现高可用性和低存储成本,纠删码被广泛地使用来代替复制。与复制相比,纠删码可以降低存储成本,但也带来了更高的修复开销。例如,目前的多节点修复算法是并行多个单节点修复算法,这将会产生两个严重的问题:节点间负载不平衡和多个独立的单节点修复产生的冗余块传输。当修复条带内的多个块时,每个节点的上传块数和下载块数不平衡,容易导致修复时间取决于负载最重的节点,其中网络传输开销在实际应用中占据主导地位,且这种开销随着故障节点的增加而线性增加,从而造成修复时间的提升。


技术实现思路

1、本技术实施例提供了一种节点修复方法及相关设备,用于解决分布式存储系统下修复多个节点所带来的网络传输问题,以尽可能地加快修复速度。

2、本技术实施例第一方面提供了一种节点修复方法,应用于分布式存储系统,包括:

3、获取所述分布式存储系统中的所有数据节点;其中,所述所有数据节点包括故障节点及幸存节点,所述幸存节点为所述所有数据节点中除开所述故障节点的节点;

4、将所述幸存节点进行调度分组,其中,任一组次中的所述幸存节点为成对存在;

5、将同一组次中的所述幸存节点进行归并操作,以将当前幸存节点中的节点修复数据传输至同一组次中的其他幸存节点,形成节点修复块;其中,所述节点修复块由所述其他幸存节点的节点修复数据及所述当前幸存节点的节点修复数据形成;

6、将任一组次中的所述节点修复块传输至所述故障节点,对所述故障节点进行修复,以使得所述故障节点根据所述节点修复块完成故障修复。

7、可选地,所述将所述幸存节点进行调度分组包括:

8、将k个所述幸存节点分为个组,其中,任一个组中包括两个所述幸存节点,所述k为正整数;

9、所述将同一组次中的所述幸存节点进行归并操作,以将当前幸存节点中的节点修复数据传输至同一组次中的其他幸存节点,包括:

10、将第一幸存节点的第一幸存节点修复数据传输至第二幸存节点;其中,所述第一幸存节点为在所述个组中处于同一组次且位于后半部分的幸存节点,所述第二幸存节点为在所述个组中处于同一组次且位于前半部分的幸存节点。

11、可选地,所述将第一幸存节点的节点修复数据传输至第二幸存节点之后,所述方法还包括:

12、将所述个组进行归并操作,获取个组;其中,任一个组中包括四个所述幸存节点;

13、获取第三幸存节点的第三幸存节点修复数据及第四幸存节点的第四幸存节点修复数据,并确定所述第三幸存节点对应的第三加权系数及所述第四幸存节点对应的第四加权系数;其中,所述第三幸存节点及所述所述第四幸存节点分别为在所述个组中处于同一组次且位于后半部分的幸存节点;

14、确定基于所述第三幸存节点修复数据、所述第四幸存节点修复数据及所述第三加权系数的与所述第五幸存节点对应的第五幸存节点修复数据,并确定基于所述第三幸存节点修复数据、所述第四幸存节点修复数据及所述第四加权系数的与所述第六幸存节点对应的第六幸存节点修复数据;其中,所述第五幸存节点及所述第六幸存节点分别为在所述个组中处于同一组次且位于前半部分的幸存节点;

15、将所述第五幸存节点修复数据传输至所述第五幸存节点,将所述第六幸存节点修复数据传输至所述第六幸存节点。

16、可选地,所述方法还包括:

17、若同一分组中的所述幸存节点的数量的一半小于所述故障节点的数量,将当前分组中前半部分的所述幸存节点的节点修复数据传输至后半部分的所述幸存节点;

18、所述形成节点修复块,包括:

19、将经过传输所述节点修复数据后的任一所述幸存节点进行归并,生成所述节点修复块;其中,所述节点修复块包含当前幸存节点获取的所有节点修复数据。

20、可选地,所述方法还包括:

21、若存在未位于任一个组中的幸存节点,确定未位于任一个组中的幸存节点为剩余幸存节点,并将所有所述剩余幸存节点归并至剩余组;

22、所述形成节点修复块,包括:

23、确定所述剩余组中的剩余幸存节点的节点修复数据及与所述节点修复数据对应的加权系数;

24、根据所述剩余幸存节点的节点修复数据及加权系数生成与所述剩余组对应的节点修复块。

25、可选地,若所述剩余组中的所述剩余幸存节点的数量小于所述故障节点的数量,且所述故障节点包括第一故障节点、第二故障节点及第三故障节点,所述剩余幸存节点包括第一剩余幸存节点及第二剩余幸存节点,所述根据所述剩余幸存节点的节点修复数据及加权系数生成与所述剩余组对应的节点修复块,包括:

26、根据所述第一剩余幸存节点的节点修复数据、所述第二剩余幸存节点的节点修复数据及第一剩余加权系数确定第一剩余节点修复块;其中,所述第一剩余加权系数为与所述第一故障节点对应的加权系数;

27、根据所述第一剩余幸存节点的节点修复数据、所述第二剩余幸存节点的节点修复数据及第二剩余加权系数确定第二剩余节点修复块;其中,所述第二剩余加权系数为与所述第二故障节点对应的加权系数;

28、根据所述第一剩余幸存节点的节点修复数据、所述第二剩余幸存节点的节点修复数据及第三剩余加权系数确定第三剩余节点修复块;其中,所述第三剩余加权系数为与所述第三故障节点对应的加权系数;

29、所述将任一组次中的所述节点修复块传输至所述故障节点,对所述故障节点进行修复,包括:

30、将所述第一剩余节点修复块、所述第二剩余节点修复块或所述第三剩余节点修复块分别传输至所述第一故障节点、所述第二故障节点或所述第三故障节点,以分别对所述第一故障节点、所述第二故障节点或所述第三故障节点进行修复。

31、可选地,所述将任一组次中的所述节点修复块传输至所述故障节点,对所述故障节点进行修复,包括:

32、将任一组次中的所述幸存节点进行排序;

33、若所述故障节点的数量为m个,将任一组次中排序为前m个的所述幸存节点对应的所述节点修复块分别传输至所述故障节点,对m个所述故障节点进行修复;其中,所述m为正整数。

34、本技术实施例第二方面提供了一种节点修复系统,应用于分布式存储系统,包括:

35、获取单元,用于获取所述分布式存储系统中的所有数据节点;其中,所述所有数据节点包括故障节点及幸存节点,所述幸存节点为所述所有数据节点中除开所述故障节点的节点;

36、分组单元,用于将所述幸存节点进行调度分组,其中,任一组次中的所述幸存节点为成对存在;

37、归并单元,用于将同一分组中的所述幸存节点进行归并操作,以将当前幸存节点中的节点修复数据传输至同一分组中的其他幸存节点,形成节点修复块;其中,所述节点修复块由所述其他幸存节点的节点修复数据及所述当前幸存节点的节点修复数据形成;

38、传输单元,用于将任一分组中的所述节点修复块传输至所述故障节点,对所述故障节点进行修复,以使得所述故障节点根据所述节点修复块完成故障修复。

39、本技术实施例第二方面提供的用于执行第一方面所述的节点修复方法。

40、本技术实施例第三方面提供了一种节点修复装置,包括:

41、中央处理器,存储器,输入输出接口,有线或无线网络接口以及电源;

42、所述存储器为短暂存储存储器或持久存储存储器;

43、所述中央处理器配置为与所述存储器通信,并执行所述存储器中的指令操作以执行第一方面所述的节点修复方法。

44、本技术实施例第四方面提供了一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括指令,当所述指令在计算机上运行时,使得计算机执行第一方面所述的节点修复方法。

45、从以上技术方案可以看出,本技术实施例具有以下优点:通过本技术实施例公开的一种节点修复方法,先获取分布式存储系统中的所有数据节点;其中,所有数据节点包括故障节点及幸存节点,幸存节点为所有数据节点中除开故障节点的节点;再将幸存节点进行调度分组,其中,任一组次中的幸存节点为成对存在;然后将同一组次中的幸存节点进行归并操作,以将当前幸存节点中的节点修复数据传输至同一组次中的其他幸存节点,形成节点修复块;其中,节点修复块由其他幸存节点的节点修复数据及当前幸存节点的节点修复数据形成;最后将任一组次中的节点修复块传输至故障节点,对故障节点进行修复,以使得故障节点根据节点修复块完成故障修复。从而,在分布式存储系统中,能通过幸存节点有效修复故障节点,同时,将幸存节点进行分组传输,也便于故障节点修复时降低网络传输开销,从而加快修复速度,从而尽可能地优化在分布式存储系统下的多节点修复过程。

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