一种集群组网方法、分布式存储集群以及产品与流程

专利2026-06-04  4


本技术实施例涉及分布式存储集群的,具体而言,涉及一种集群组网方法、分布式存储集群以及产品。


背景技术:

1、随着大数据时代的快速发展,对于大规模数据的管理和存储是一个不小的挑战,san(storage area network,存储区域网)存储集群是一种通过将数据存储在多个节点上,以实现高可靠性、高可扩展性和高性能的数据存储管理方案,存储集群能够提高对外提供数据访问的性能,各节点的数据保持同步确保数据的安全性及一致性。

2、现有的分布式集群组网,依赖一个主节点和若干从节点的心跳通信连接来维持集群的成员关系,与主节点有持续心跳的从节点被认为在集群中,反之则认为其已脱离集群。

3、但是,这种通过主从节点之间的心跳通信进行组网的方式,从节点间的通信往往需要经过多次节点转发,导致通信延迟较高,不利于各节点间保持状态一致,进而影响到集群各节点实现负载均衡的能力,在大规模数据访问的场景下,无法满足高效率、低延迟的通信要求;当集群中节点的连接状态发生变化的情况下,重新组网的效率低下。


技术实现思路

1、本技术实施例提供一种集群组网方法、分布式存储集群以及产品,旨在提高集群组网的效率。

2、第一方面本技术实施例提供一种集群组网方法,应用于分布式存储集群中的任一节点,所述方法包括:

3、在所述分布式存储集群中链路的连接状态发生变化时,获取自身对应的所有可达节点,其中,所述分布式存储集群中任两个节点之间具有物理通信链路,所述可达节点为任一节点直接或间接通信的节点;

4、当本地存在自身对应的所有可达节点各自对应的最新视图消息时,确定满足组网条件;

5、在满足组网条件的情况下,基于该节点自身对应的所有可达节点求解当前连接状态下的最优全连通子图;

6、基于所述最优全连通子图进行组网,生成新的集群,其中,所述新的集群中任两个节点之间具有物理通信链路。

7、可选地,获取自身对应的所有可达节点,包括:

8、在本地的消息条目列表中获取自身对应的目标条目,所述消息条目列表中存储有自身对应的目标条目和任一节点的条目,所述条目中包括自身接收到的对应节点的视图消息;

9、在所述目标条目中获取最新视图消息,基于所述最新视图消息确定自身当前对应的所有可见节点的节点标识,其中,所述可见节点为与自身直接通信的节点;

10、基于当前对应的所有可见节点的节点标识,在所述消息条目列表中查找所有可见节点各自对应的条目;

11、根据所述所有可见节点各自对应的条目,确定自身对应的所有可达节点的节点标识。

12、可选地,获取自身对应的所有可达节点之后,所述方法还包括:

13、根据自身对应的所有可达节点的节点标识,在所述消息条目列表中获取各个可达节点对应的条目;

14、查找各个可达节点对应的条目,判断任一可达节点对应的条目中是否存储了该可达节点对应的最新视图消息。

15、可选地,判断任一可达节点对应的条目中是否存储了该可达节点对应的最新视图消息之后,所述方法还包括:

16、当任一可达节点对应的条目中未存储该可达节点对应的最新视图消息时,确定不满足组网条件;

17、在间隔目标时间段后,重新判断是否满足组网条件。

18、可选地,在满足组网条件的情况下,基于该节点自身对应的所有可达节点求解当前连接状态下的最优全连通子图,包括:

19、根据自身及自身对应的所有可达节点,确定初始节点集合,并根据所述初始节点集合生成初始视图;

20、对所述初始视图进行分割,得到包含有多个拟设的拟设集合,其中,每个拟设至少包括两个分割视图,每个节点仅存在一个分割视图中;

21、分别计算所述拟设集合中每个拟设对应的适应度;

22、对所述拟设集合中的多个拟设进行杂交处理或变异处理,得到多个新拟设;

23、基于所述多个新拟设,对所述拟设集合进行迭代更新;

24、在更新后的拟设集合中,选择适应度最大的拟设中包含的最大的全连通子图,作为最优全连通子图,所述全连通子图中任两个节点之间具有物理通信链路。

25、可选地,分别计算所述拟设集合中每个拟设对应的适应度,包括:

26、对于任一拟设,确定所述拟设包含的分割视图为全连通子图的数量以及任一全连通子图中的节点数量;

27、基于所述全连通子图的数量、集群最大节点数以及任一全连通子图中的节点数量,计算该拟设的适应度。

28、可选地,计算任一拟设的适应度的公式为:

29、

30、其中,f为适应度,n为所述集群最大节点数,n为任一全连通子图中的节点数量, vn为所述全连通子图的数量。

31、可选地,对所述拟设集合中的多个拟设进行杂交处理,包括:

32、从所述拟设集合中获取任意两个拟设,作为第一拟设和第二拟设;

33、令所述初始节点集合中至少一个节点使用所述第一拟设中的视图分割结果,剩余节点使用所述第二拟设中的视图分割结果,生成一个新拟设。

34、可选地,对所述拟设集合中的多个拟设进行变异处理,包括:

35、从所述拟设集合中获取任一拟设,对所述拟设中至少一个节点的视图分割结果进行随机改动,生成一个新拟设。

36、可选地,基于所述多个新拟设,对所述拟设集合进行迭代更新,包括:

37、对于任一新拟设,确定该新拟设对应的适应度;

38、判段该新拟设的适应度是否大于所述拟设集合中当前最小的适应度;

39、当该新拟设的适应度大于所述当前最小的适应度时,用该新拟设替换当前最小的适应度对应的拟设;

40、在该新拟设的适应度不大于所述当前最小的适应度时,丢弃该新拟设;

41、直到所述拟设集合中最小的适应度在目标次数迭代中均未发生变化时,停止对所述拟设集合的迭代更新。

42、可选地,基于所述多个新拟设,对所述拟设集合进行迭代更新之后,所述方法还包括:

43、在更新后的拟设集合中,适应度最大的拟设的数量大于1的情况下,分别在适应度最大的多个拟设中获取各自对应的最大的全连通子图;

44、从各个最大的全连通子图中,挑选节点标识最小的节点所在的最大的全连通子图,作为最优全连通子图。

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

46、在达到刷新间隔时间,或所述分布式存储集群中链路的连接状态发生变化的情况下,生成自身的最新视图消息,所述最新视图消息包括:当前的连接状态信息、上一个连接状态信息及集群节点状态信息;

47、将所述最新视图消息,存储在本地的消息条目列表中;

48、标记所述最新视图消息需要发送的节点,基于标记的所有节点的节点标识,更新转发节点列表;其中,标记所述最新视图消息需要发送的节点包括:标记自身的所有可见节点;

49、按照所述转发节点列表,对所述最新视图消息进行转发。

50、可选地,生成自身的最新视图消息,包括:

51、从本地的非易失存储器中获取上一个视图消息的消息序列号、自身的节点标识以及集群节点状态,在本地获取可见节点列表和上一个连接状态;

52、对所述上一个视图消息的消息序列号进行更新,得到最新的消息序列号,并写入所述非易失存储器中;

53、将所述最新的消息序列号、自身的节点标识、集群节点状态、可见节点列表和上一个连接状态写入本地的消息条目列表中对应条目的消息缓冲区中;

54、基于所述消息缓冲区中的数据生成最新视图消息。

55、可选地,对所述上一个视图消息的消息序列号进行更新,得到最新的消息序列号,包括:

56、当达到刷新间隔时间的情况下,将所述消息序列号增加1,作为最新的消息序列号;

57、当所述分布式存储集群中链路的连接状态发生变化的情况下,对所述消息序列号增加2,作为最新的消息序列号。

58、可选地,在生成自身的最新视图消息之前,还包括:

59、遍历与自身直连的所有节点,判断各个节点与自身是否能够正常通信;

60、在任一节点与自身能够正常通信的情况下,确定该节点为自身对应的可见节点;

61、获取所有可见节点的节点标识,并更新本地的可见节点列表。

62、可选地,在任一节点与自身能够正常通信的情况下,所述方法还包括:

63、判断任一可见节点是否存在本地的节点索引列表中;

64、若该可见节点不存在所述节点索引列表中,则在本地的消息条目列表中,为所述可见节点分配空条目;

65、建立所述可见节点的节点标识与所述空条目的索引信息,并添加到所述节点索引列表中。

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

67、接收任一可见节点发送的最新视图消息;

68、获取所述最新视图消息中的节点标识,确定所述最新视图消息的源节点;

69、根据所述节点标识,查找本地的节点索引列表,确定所述节点标识对应的条目在本地的消息条目列表中的位置;

70、标记所述最新视图消息需要发送的节点,基于标记的所有节点的节点标识,更新转发节点列表;其中,标记所述最新视图消息需要发送的节点,包括:标记自身可见,且所述源节点不可见的节点;

71、将所述最新视图消息写入所述条目中的消息缓冲区;

72、按照所述转发节点列表,对所述最新视图消息进行转发。

73、可选地,标记自身可见,且所述源节点不可见的节点,包括:

74、读取本地的可见节点列表,以及所述最新视图消息中所述源节点的可见节点列表;

75、标记存在于本地的可见节点列表中,且不存在所述源节点的可见节点列表中的所有节点。

76、可选地,在本地的节点索引列表中不存在所述源节点的情况下,还包括:

77、在本地的消息条目列表中,为所述源节点分配空条目;

78、建立所述源节点的节点标识与所述空条目的索引信息,并添加到所述节点索引列表中;

79、将所述源节点的最新视图消息,写入所述空条目的消息缓冲区。

80、第二方面,本技术实施例提供一种分布式存储集群,包括多个节点,其中任意两个节点间具有直连链路;任一节点,被配置为在本地维护以下数据:

81、节点索引列表,用于记录该节点的所有可达节点各自在消息条目列表中对应条目的索引信息;

82、可见节点列表,用于记录与所述节点直连的所有节点;

83、连接状态缓冲区,用于存储所述节点的上一个连接状态;

84、消息条目列表,与所述节点索引列表对应,用于存储各个节点标识对应的条目;其中,每个条目包括消息缓冲区及转发节点列表;所述消息缓冲区,用于记录所述节点标识对应的节点生成的最新视图消息;所述转发节点列表,用于记录所述条目中存储的最新视图消息需要发送到的节点的节点标识;

85、任一节点,被配置为在集群中链路的连接状态发生变化的情况下,执行如实施例第一方面所述的集群组网方法中的步骤进行重新组网,生成新的集群。

86、第三方面,本技术实施例提供一种计算机设备,包括:至少一个处理器,以及存储器,所述存储器存储有可在所述处理器上运行的计算机程序,其中,所述处理器执行所述计算机程序时执行实施例第一方面所述的集群组网方法。

87、第四方面,本技术实施例提供一种非易失性可读存储介质,所述非易失性可读存储介质存储有计算机程序,其中,所述计算机程序被处理器执行时执行第一方面所述的集群组网方法。

88、第五方面,本技术实施例提供一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令被处理器执行时实现第一方面所述的集群组网方法。

89、有益效果:

90、本方法应用于分布式存储集群中的任一节点,在所述分布式存储集群中链路的连接状态发生变化时,获取自身对应的所有可达节点,所述可达节点为任一节点直接或间接通信的节点;

91、当本地存在自身对应的所有可达节点各自对应的最新视图消息时,确定满足组网条件;在满足组网条件的情况下,基于该节点自身对应的所有可达节点求解当前连接状态下的最优全连通子图;基于所述最优全连通子图进行组网,生成新的集群,其中,所述新的集群中任两个节点之间具有物理通信链路。

92、即分布式存储集群中任两个节点之间具有物理通信链路,可以直接进行数据交互,从而提高了节点之间数据交互的效率,当分布式存储集群中出现链路变化时,可以在根据节点自身对应的可达节点,确定当前连接状态下的最优全连通子图,基于最优全连通子图重建的新的集群可以继续作为分布式存储集群的载体,而这个过程相比于主从节点之间基于心跳通信进行组网,可以提高集群组网的效率。


技术特征:

1.一种集群组网方法,其特征在于,应用于分布式存储集群中的任一节点,所述方法包括:

2.根据权利要求1所述的集群组网方法,其特征在于,获取自身对应的所有可达节点,包括:

3.根据权利要求2所述的集群组网方法,其特征在于,获取自身对应的所有可达节点之后,所述方法还包括:

4.根据权利要求3所述的集群组网方法,其特征在于,判断任一可达节点对应的条目中是否存储了该可达节点对应的最新视图消息之后,所述方法还包括:

5.根据权利要求1所述的集群组网方法,其特征在于,在满足组网条件的情况下,基于该节点自身对应的所有可达节点求解当前连接状态下的最优全连通子图,包括:

6.根据权利要求5所述的集群组网方法,其特征在于,分别计算所述拟设集合中每个拟设对应的适应度,包括:

7.根据权利要求6所述的集群组网方法,其特征在于,计算任一拟设的适应度的公式为:

8.根据权利要求5所述的集群组网方法,其特征在于,对所述拟设集合中的多个拟设进行杂交处理,包括:

9.根据权利要求5所述的集群组网方法,其特征在于,对所述拟设集合中的多个拟设进行变异处理,包括:

10.根据权利要求5所述的集群组网方法,其特征在于,基于所述多个新拟设,对所述拟设集合进行迭代更新,包括:

11.根据权利要求5所述的集群组网方法,其特征在于,基于所述多个新拟设,对所述拟设集合进行迭代更新之后,所述方法还包括:

12.根据权利要求1所述的集群组网方法,其特征在于,所述方法还包括:

13.根据权利要求12所述的集群组网方法,其特征在于,生成自身的最新视图消息,包括:

14.根据权利要求13所述的集群组网方法,其特征在于,对所述上一个视图消息的消息序列号进行更新,得到最新的消息序列号,包括:

15.根据权利要求12所述的集群组网方法,其特征在于,在生成自身的最新视图消息之前,还包括:

16.根据权利要求15所述的集群组网方法,其特征在于,在任一节点与自身能够正常通信的情况下,所述方法还包括:

17.根据权利要求1所述的集群组网方法,其特征在于,所述方法还包括:

18.根据权利要求17所述的集群组网方法,其特征在于,标记自身可见,且所述源节点不可见的节点,包括:

19.根据权利要求17所述的集群组网方法,其特征在于,在本地的节点索引列表中不存在所述源节点的情况下,还包括:

20.一种分布式存储集群,其特征在于,包括多个节点,其中任意两个节点间具有直连链路;任一节点,被配置为在本地维护以下数据:

21.一种计算机设备,其特征在于,包括:至少一个处理器,以及存储器,所述存储器存储有可在所述处理器上运行的计算机程序,其中,所述处理器执行所述计算机程序时执行权利要求1-19任意一项所述的集群组网方法。

22.一种非易失性可读存储介质,其特征在于,所述非易失性可读存储介质存储有计算机程序,其中,所述计算机程序被处理器执行时执行权利要求1-19任意一项所述的集群组网方法。

23.一种计算机程序产品,包括计算机程序/指令,其特征在于,该计算机程序/指令被处理器执行时实现权利要求1-19任意一项所述的集群组网方法。


技术总结
本申请实施例提供了一种集群组网方法、分布式存储集群以及产品,属于分布式存储集群的技术领域,所述方法包括在所述分布式存储集群中链路的连接状态发生变化时,获取自身对应的所有可达节点,所述分布式存储集群中任两个节点之间具有物理通信链路,所述可达节点为任一节点直接或间接通信的节点;当本地存在自身对应的所有可达节点各自对应的最新视图消息时,确定满足组网条件;在满足组网条件的情况下,基于该节点自身对应的所有可达节点求解当前连接状态下的最优全连通子图;基于所述最优全连通子图进行组网,生成新的集群,其中,所述新的集群中任两个节点之间具有物理通信链路。本申请实施例旨在提高集群组网的效率。

技术研发人员:赵鹏,张杰,张在理
受保护的技术使用者:苏州元脑智能科技有限公司
技术研发日:
技术公布日:2024/11/11
转载请注明原文地址: https://tieba.8miu.com/read-21408.html

最新回复(0)