一种基于B树的高可用集群优化方法与流程

文档序号:33713938发布日期:2023-04-01 03:04阅读:52来源:国知局
一种基于B树的高可用集群优化方法与流程
一种基于b树的高可用集群优化方法
技术领域
1.本发明属于数据处理领域,尤其是涉及一种基于b树的高可用集群优化方法。


背景技术:

2.为了提高集群的可用性,在每台主机上部署了高可用服务,用于多个主机之间利用心跳机制探测其他主机的健康情况,以保证集群内虚拟机的高可用。
3.在高可用1.0版本,如果发生如下情况,就会重新搭建主机之间的树形关系:其他主机探测到某主机异常;主机自主上报异常;主机取消高可用功能;集群关闭高可用功能;主机开启高可用功能;集群开启高可用功能。
4.由上述可知,树形图会频繁发生销毁、重建,由此导致的结果是主节点的频繁变更导致大量的数据上报,造成网络包泛滥,当可用区内主机量很大时,会造成很大的网络开销。


技术实现要素:

5.有鉴于此,本发明旨在提出一种基于b树的高可用集群优化方法,以至少解决背景技术中的至少一个问题。
6.为达到上述目的,本发明的技术方案是这样实现的:
7.一种基于b树的高可用集群优化方法,首先判定主机的新增或删减是否会影响原图,在尽可能小的影响树形图的前提下,对高可用图进行局部调整,且不销毁原图,以保证故障的上报不会经常导致图失效。
8.进一步的,包括全局部署高可用配置,具体如下:
9.a1、获取可用区内所有的集群;
10.a2、对所有集群进行处理;
11.a3、当所有集群处理完毕,则配置完毕;
12.在步骤a2中,
13.如果已无集群,则配置完毕;
14.如果有集群,则进行集群部署高可用配置。
15.进一步的,包括集群部署高可用配置,具体如下:
16.b1、获取集群内所有的主机;
17.b2、对所有的主机进行处理;
18.b3、集群部署高可用配置结束;
19.在步骤b2中,
20.如果无主机,且该集群有高可用树形图,则销毁原图;
21.如果无主机,且该集群无高可用树形图,则配置完毕;
22.如果有主机,且集群不具备高可用能力,则销毁原图;
23.如果有主机,且该集群具备高可用能力,筛选所有可用主机,具体如下:
24.如果该集群无树形图,则新创建树形图,将树形图结构下发给所有可用主机;
25.如果该集群有树形图,校对原图内主机是否与筛选的可用主机列表一致,对于一致的主机不予处理,对于原图中没有的主机则新增主机;
26.对于原图中有而可用主机列表中不存在的节点则删除主机节点;
27.对于树形图中有变更的节点,下发改动配置;
28.校对下发的配置是否与原图中的配置相同,如有差异,则进行调整。
29.进一步的,包括主机部署高可用配置,具体如下:
30.如果主机所在集群不支持高可用功能,且该集群已有树形图,则销毁原图;
31.如果主机所在集群不支持高可用功能,且该集群没有树形图,则配置结束;
32.如果主机所在集群支持高可用功能,该集群没有树形图,且主机不可用,则配置结束;
33.如果主机所在集群支持高可用功能,该集群没有树形图,且该主机可用,则新建树形图,将树形图结构下发给改主机;
34.如果主机所在集群支持高可用功能,且该集群有树形图,具体如下:
35.如果该主机已配置高可用,但主机已故障,则删除主机节点,并将变更下发给该主节点及下属从节点;
36.如果主机已配置高可用,且主机可用,则校对下发的配置是否与原图中的配置相同,如有差异,则进行调整;
37.如果主机未配置高可用,且主机已故障,则配置结束;
38.如果主机未配置高可用,但主机可用,则新增主机节点,并将变更下发给该主节点和下属从节点;
39.主机部署高可用配置结束。
40.进一步的,包括新增主机,具体如下:
41.新增节点,判断是否需要新增分组,如果需要新增分组,则新增节点为主节点,否则新增节点添加到slave个数最少的分组内。
42.进一步的,包括删除主机节点,具体如下:
43.如果该节点为master节点,且该节点下有slave节点,则从组内选择一个从节点作为新晋主节点;
44.如果该节点为master节点,且该节点下没有slave节点,具体如下:
45.如果没有其他主节点,则销毁原图;
46.如果有其他主节点,且删除主机后,分组总数有变化,则从其他组内随机选择slave最多的一个节点作为新的主节点;
47.如果有其他主节点,且删除主机后,分组总数不变化,则直接删掉该主节点;
48.如果该节点为slave节点,则直接删除该节点。
49.进一步的,包括b树的创建规则,具体如下:
50.首先,系统有配置最小分组、组内最大主机个数模块;
51.设定最小分组ha_option=3,组内阶数host_unit=40;
52.当主机总数host_count《min(ha_option,host_unit),则b树的组数为host_count,每组主机数为1;
53.当主机总数min(ha_option,host_unit)《host_count《(ha_option*host_unit),则b树的组数为ha_option,每组主机数为
54.math.ceil(host_count/ha_option);
55.当主机数host_count》ha_option*host_unit,则b数的组数是math.ceil(host_count/host_unit),每组主机数为host_unit;
56.设定好了组数和每组主机个数,在可用主机内随机选择一个主机作为主节点,其他节点作为从节点,不同组的主节点保持通信,维护兄弟节点的心跳检测;
57.新增节点和删除节点也是基于该规则进行判定是否需要调整组数。
58.进一步的,本方案公开了一种电子设备,包括处理器以及与处理器通信连接,且用于存储所述处理器可执行指令的存储器,其特征在于:所述处理器用于执行一种基于b树的高可用集群优化方法。
59.进一步的,本方案公开了一种服务器,包括至少一个处理器,以及与所述处理器通信连接的存储器,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述处理器执行,以使所述至少一个处理器执行一种基于b树的高可用集群优化方法。
60.进一步的,本方案公开了一种计算机可读取存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现一种基于b树的高可用集群优化方法。
61.相对于现有技术,本发明所述的一种基于b树的高可用集群优化方法具有以下有益效果:
62.本发明所述的一种基于b树的高可用集群优化方法,首先判定主机的新增或删减是否会影响原图,在尽可能的影响树形图的前提下,对高可用图进行局部调整,且不销毁原图,保证故障的上报不会经常发生图失效的情形,对图的调整、主机的管理带来了便利。
附图说明
63.构成本发明的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
64.图1是全局部署高可用配置;
65.图2是集群部署高可用配置;
66.图3是主机部署高可用配置;
67.图4是主机纳管配置高可用;
68.图5是主机故障取消高可用;
69.图6是b树的创建规则。
具体实施方式
70.需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
71.下面将参考附图并结合实施例来详细说明本发明。
72.本方案公开了一种基于b树的高可用集群优化方法,当故障上报时,本着“尽可能小范围变更树形图”的原则,对高可用图进行重新构建;
73.当有新的主机被纳管到集群时,无需销毁原图,并重新构建,而是在不影响树形图
平衡的情况下,将该主机挂载到已有主节点上。
74.在高可用1.0中,主机纳管、主机故障首先销毁原图,然后重新构建树形图,导致主机的角色和所隶属的组别经常发生变化,在新搭建环境时,网络包泛滥,图的唯一标识符频繁失效,反而不利于高可用的实现;
75.在新的高可用2.0中,首先判定主机的新增或删减是否会影响原图,在尽可能的影响树形图的前提下,对高可用图进行局部调整,且不销毁原图,保证故障的上报不会经常发生图失效的情形,对图的调整、主机的管理带来了便利。
76.如图1所示,全局部署高可用配置包括以下步骤:
77.1.获取可用区内所有的集群;
78.2.对所有集群进行处理:
79.(2-a)如果已无集群,则配置完毕;
80.(2-b)如果有集群,则集群部署高可用配置,详细步骤参见图2;
81.3.当所有集群处理完毕,则配置完毕。
82.如图2所示,集群部署高可用配置包括以下步骤:
83.1.获取集群内所有的主机;
84.2.对所有的主机进行处理:
85.(2-a)如果无主机,且该集群有高可用树形图,则销毁原图;
86.(2-b)如果无主机,且该集群无高可用树形图,则配置完毕;
87.(2-c)如果有主机,且集群不具备高可用能力,则销毁原图;
88.(2-d)如果有主机,且该集群具备高可用能力,筛选所有可用主机:
89.(2-d-i)如果该集群无树形图,则新创建树形图,将树形图结构下发给所有可用主机;
90.(2-d-ii)如果该集群有树形图,校对原图内主机是否与筛选的可用主机列表一致,
91.对于一致的主机不予处理,对于原图中没有的主机使用图4规则新增;对于
92.原图中有而可用主机列表中不存在的节点,采用图5规则删除;
93.(2-d-iii)对于树形图中有变更的节点,下发改动配置;
94.(2-d-iv)校对下发的配置是否与原图中的配置相同,如有差异,则进行调整;
95.3.至此,集群部署高可用配置结束。
96.如图3所示,主机部署高可用配置包括以下步骤:
97.1.如果主机所在集群不支持高可用功能,且该集群已有树形图,则销毁原图;
98.2.如果主机所在集群不支持高可用功能,且该集群没有树形图,则配置结束;
99.3.如果主机所在集群支持高可用功能,该集群没有树形图,且主机不可用,则配置结束;
100.4.如果主机所在集群支持高可用功能,该集群没有树形图,且该主机可用,则新建树形图,将树形图结构下发给改主机;
101.5.如果主机所在集群支持高可用功能,该集群有树形图:
102.(5-a)如果该主机已配置高可用,但主机已故障,则采用图5规则删除该节点,并将变
103.更下发给该主节点及下属从节点;
104.(5-b)如果主机已配置高可用,且主机可用,则校对下发的配置是否与原图中的配置
105.相同,如有差异,则进行调整;
106.(5-c)如果主机未配置高可用,且主机已故障,则配置结束;
107.(5-d)如果主机未配置高可用,但主机可用,则采用图4规则新增节点,并将变更下
108.发给该主节点和下属从节点;
109.6.至此,主机部署高可用配置结束。
110.如图4所示,新增主机包括以下步骤:
111.1.新增节点,根据图6算法判断是否需要新增分组:
112.(1-a)如果需要新增分组,则新增节点为主节点;
113.(1-b)如果无需新增分组,则新增节点添加到slave个数最少的分组内;
114.2.至此,新增主机节点结束。
115.如图5所示,删除主机节点包括以下步骤:
116.1.如果该节点为master节点,且该节点下有slave节点,则从组内选择一个从节点作为新晋主节点;
117.2.如果该节点为master节点,且该节点下没有slave节点:
118.(2-a)如果没有其他主节点,则销毁原图;
119.(2-b)如果有其他主节点,且删除主机后,分组总数有变化,则从其他组内随机选择slave最多的一个节点作为新的主节点;
120.(2-c)如果有其他主节点,且删除主机后,分组总数不变化,则直接删掉该主节点;
121.3.如果该节点为slave节点,则直接删除该节点;
122.4.至此,删除主机节点结束。
123.如图6所示,b树的创建规则(该创建规则参照b数的创建规则,但是严格意义上,并不属于b树,因为为了维护较为简单的树形结构,树的高度严格保持为3,且节点之间没有差异,所以并没有按顺序排列)为:
124.1.系统有配置最小分组、组内最大主机个数模块,因为不是本专利申请保护的重点,所以不予赘述;
125.2.假设最小分组ha_option=3,组内阶数host_unit=40;
126.3.当主机总数host_count《min(ha_option,host_unit),则b树的组数为host_count,每组主机数为1;
127.4.当主机总数min(ha_option,host_unit)《host_count《(ha_option*host_unit),则b树的组数为ha_option,每组主机数为math.ceil(host_count/ha_option);
128.5.当主机数host_count》ha_option*host_unit,则b数的组数是math.ceil(host_count/host_unit),每组主机数为host_unit;
129.6.设定好了组数和每组主机个数,在可用主机内随机选择一个主机作为主节点,其他节点作为从节点,不同组的主节点保持通信,维护兄弟节点的心跳检测;
130.7.新增节点和删除节点也是基于该规则进行判定是否需要调整组数;
131.8.至此,b数的创建规则完毕。
132.本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及方法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
133.在本技术所提供的几个实施例中,应该理解到,所揭露的方法和系统,可以通过其它的方式实现。例如,以上所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。上述单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。
134.最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围,其均应涵盖在本发明的权利要求和说明书的范围当中。
135.以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1