CN111901448B - 一种集群节点故障场景ctdb虚拟ip均衡分配方法 - Google Patents

一种集群节点故障场景ctdb虚拟ip均衡分配方法 Download PDF

Info

Publication number
CN111901448B
CN111901448B CN202010600977.2A CN202010600977A CN111901448B CN 111901448 B CN111901448 B CN 111901448B CN 202010600977 A CN202010600977 A CN 202010600977A CN 111901448 B CN111901448 B CN 111901448B
Authority
CN
China
Prior art keywords
node
virtual
fault
ips
nodes
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202010600977.2A
Other languages
English (en)
Other versions
CN111901448A (zh
Inventor
张�浩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Suzhou Inspur Intelligent Technology Co Ltd
Original Assignee
Suzhou Inspur Intelligent Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Suzhou Inspur Intelligent Technology Co Ltd filed Critical Suzhou Inspur Intelligent Technology Co Ltd
Priority to CN202010600977.2A priority Critical patent/CN111901448B/zh
Publication of CN111901448A publication Critical patent/CN111901448A/zh
Application granted granted Critical
Publication of CN111901448B publication Critical patent/CN111901448B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5007Internet protocol [IP] addresses
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0654Management of faults, events, alarms or notifications using network fault recovery

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明提供一种集群节点故障场景CTDB虚拟IP均衡分配方法,包括:节点故障时,根据故障限制条件将故障节点的虚拟IP分配到集群内的正常节点中当前持有业务IP数量最少的节点上;当前集群内的正常节点中若有多个节点持有相同数量的业务IP,则将故障节点的虚拟IP分配到正常节点中持有总虚拟IP数量最少的节点上;其中,故障限制条件为当前故障节点持有的总虚拟IP数量小于或等于当前集群内的正常节点中持有0个业务IP的节点数量。避免了节点故障再恢复后,出现一个节点多个业务IP,负载不均衡的情况,满足了实际生产中不断变化的需求,提高了集群的稳定性和高可用特性。

Description

一种集群节点故障场景CTDB虚拟IP均衡分配方法
技术领域
本发明涉及分布式存储集群领域中节点故障场景CTDB虚拟IP分配,具体涉及一种集群节点故障场景CTDB虚拟IP均衡分配方法。
背景技术
CTDB是一套集群高可用管理软件,在CTDB启动过程中,会从虚拟IP配置文件中读出配置的虚拟IP并根据指定算法将这些虚拟IP平均且随机分配到集群每个节点上。一种分配方案:当集群中的某些节点发生故障时CTDB会执行故障切换,将原先故障节点上分配的虚拟IP释放掉然后将该IP漂移到其他正常节点,相应的读写业务也会漂移到其他正常节点;当该节点故障后重新启动加入集群时,CTDB会选取其他节点上的空闲虚拟IP分配到该节点上,业务IP会保持在原节点上,不会飘走,从而保证正在跑业务的虚拟IP不漂移,业务不会中断。
这就可能存在一个问题,比如,集群有ABC三个节点,分别持有虚拟ip1、ip2、ip3,其中ip1和ip2是业务IP,故障A节点后,ip1飘到B上,A节点恢复后,B上有两个业务IP,即ip1和ip2,都不会飘走,最终结果B上有2个业务IP,C上有1个空闲IP,A上没有分到虚拟IP,这就导致分配结果不均衡。
发明内容
针对节点故障场景虚拟IP分配不均衡的问题,本发明一种集群节点故障场景CTDB虚拟IP均衡分配方法。
本发明的技术方案是:
本发明技术方案提供一种集群节点故障场景CTDB虚拟IP均衡分配方法,包括如下过程:
节点故障时,根据故障限制条件将故障节点的虚拟IP分配到集群内的正常节点中当前持有业务IP数量最少的节点上;
当前集群内的正常节点中若有多个节点持有相同数量的业务IP,则将故障节点的虚拟IP分配到正常节点中持有总虚拟IP数量最少的节点上;其中,故障限制条件为当前故障节点持有的总虚拟IP数量小于或等于当前集群内的正常节点中持有0个业务IP的节点数量。
进一步的,该方法的具体步骤包括:
节点故障时,确定当前是节点故障场景还是节点恢复场景;
若是节点故障场景,获取当前集群所有的故障节点及节点故障前持有的所有的虚拟IP;
向当前集群内的正常节点发消息获取正常节点所有的业务IP;
根据业务IP确定当前集群内每个正常节点持有的业务IP数量和总虚拟IP数量;
给每个故障节点的虚拟IP分配目的节点,其中,目的节点为集群内的正常节点中当前持有业务IP数量最少的节点;若有多个节点持有相同数量的业务IP,则为正常节点中持有总虚拟IP数量最少的节点。
进一步的,节点故障时,确定当前是节点故障场景还是节点恢复场景的步骤包括:
SS1-1:节点故障时,获取当前集群中正常节点数量以及本次节点故障前最后一次进行虚拟IP分配时的正常节点数量;
SS1-2:若当前集群中正常节点数量小于本次节点故障前最后一次进行虚拟IP分配时的正常节点数量;则判断为节点故障场景。
进一步的,若是节点故障场景,获取当前集群所有的故障节点及节点故障前持有的所有的虚拟IP的步骤中获取当前集群所有的故障节点的步骤包括:
SS2-11:获取历史正常节点的节点号组成历史数组以及获取当前集群中正常节点的节点号组成当前数组;
SS2-12:确认在历史数组中存在且在当前数组中不存在的节点号对应节点为故障节点;其中,历史正常节点的节点号为本次节点故障前最后一次进行虚拟IP分配时所有正常节点的节点号;
SS2-13:获取当前所有的故障节点的节点号形成故障节点数组。
进一步的,若是节点故障场景,获取当前集群所有的故障节点及节点故障前持有的所有的虚拟IP的步骤中获取节点故障前持有的所有的虚拟IP的步骤包括:
SS2-21:获取历史虚拟IP分配结果组成历史IP分配数组,其中,历史IP分配数组每一项包括两个元素,两个元素分别为节点号及对应的虚拟IP;历史虚拟IP分配结果为本次节点故障前最后一次进行虚拟IP分配结果;
SS2-22:根据故障节点数组里每一节点号遍历历史IP分配数组里的每一项,遍历到历史IP分配数组中的节点号与故障节点数组中的节点号相同时,获取历史IP分配数组里的该节点号及对应的虚拟IP形成节点故障前持有的虚拟IP数组。
进一步的,向当前集群内的正常节点发消息获取正常节点所有的业务IP的步骤包括:
SS3-1:向当前集群内的每个正常节点发消息;
SS3-2:每个正常节点收到消息后,执行命令获取本节点的业务IP,并返回本节点的业务IP;
SS3-3:将返回的所有的业务IP收集起来形成业务IP数组。
进一步的,根据业务IP确定当前集群内每个正常节点持有的业务IP数量和总虚拟IP数量的步骤包括:
SS4-1:根据所述的当前数组中的每个节点号遍历历史IP分配数组中的每一项,遍历到历史IP分配数组中的节点号与当前数组中的节点号相同时,判断该节点号对应的虚拟IP是否为业务IP,若是,将当前数组中的节点号对应的业务IP数量加一,总虚拟IP数量加一,否则,只将当前数组中的节点号对应的总虚拟IP数量加一;
SS4-2:将步骤SS4-1的结果形成正常节点IP列表,其中,列表中的每一项包括三个元素,三个元素分别为节点号、业务IP数量、总虚拟IP数量。
进一步的,给每个故障节点的虚拟IP分配目的节点的步骤包括:
SS5-1:选取节点故障前持有的虚拟IP数组一项中的故障节点的虚拟IP;
SS5-2:根据正常节点IP列表查找其中持有业务IP数量最少的节点当作目的节点,将选取的故障节点的虚拟IP分配到该目的节点上;
SS5-3:若有多个持有业务IP最少的节点,查找其中持有总虚拟IP数量最少的节点当作目的节点;
SS5-4:获取当前虚拟IP分配结果形成当前虚拟IP分配结果数组;
SS5-5:遍历当前虚拟IP分配结果数组查找与选择的故障节点的虚拟IP相同的虚拟IP,将当前虚拟IP分配结果数组中的该虚拟IP对应的节点号替换成的SS5-3中的目的节点的节点号,即更新当前虚拟IP分配结果数组里虚拟IP的持有节点;
SS5-6:更新正常节点IP列表,将对应节点号为步骤SS5-3中目的节点的节点号的项的业务IP数量加一,总虚拟IP数量加一,执行步骤SS5-1。
节点故障时,CTDB会进行故障节点的虚拟IP的分配过程,首先确定当前是节点故障场景还是节点恢复场景,若是节点故障场景,找到当前故障的所有节点及它们故障前持有的所有虚拟IP,再向正常节点发消息得到所有的业务IP,根据业务IP确定当前每个节点持有的业务IP数量和总虚拟IP数量,最后把每个故障节点的虚拟IP分配到目的节点上,目的节点满足:当前持有业务IP数量最少,若有多个节点持有业务IP数量相同,则选择其中持有总虚拟IP数量最少的节点。通过上述操作,可以保证节点故障时,CTDB进行虚拟IP分配,不会出现2个业务IP分到1个节点上的情况,从而,节点恢复后,虚拟IP分配结果也是均衡的。满足一些特定场景的需求,避免一个节点负载过重而另一个没有负载的情况,避免对客户业务造成严重影响。提高集群性能、稳定性和高可用特性。
从以上技术方案可以看出,本发明具有以下优点:能够保证节点故障时虚拟IP均衡分到正常节点上,节点恢复后,虚拟IP分配均衡,业务IP分布相对均衡,每个节点都能分到虚拟IP,使之能够满足一些特定场景的使用要求。避免了节点故障再恢复后,出现一个节点多个业务IP,负载不均衡的情况,满足了实际生产中不断变化的需求,提高了集群的稳定性和高可用特性。
此外,本发明设计原理可靠,结构简单,具有非常广泛的应用前景。
由此可见,本发明与现有技术相比,具有突出的实质性特点和显著地进步,其实施的有益效果也是显而易见的。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一个实施例的方法的示意性流程图。
具体实施方式
为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
本发明实施例提供一种集群节点故障场景CTDB虚拟IP均衡分配方法,包括如下过程:
节点故障时,根据故障限制条件将故障节点的虚拟IP分配到集群内的正常节点中当前持有业务IP数量最少的节点上;
当前集群内的正常节点中若有多个节点持有相同数量的业务IP,则将故障节点的虚拟IP分配到正常节点中持有总虚拟IP数量最少的节点上;其中,故障限制条件为当前故障节点持有的总虚拟IP数量小于或等于当前集群内的正常节点中持有0个业务IP的节点数量。
CTDB主节点进行虚拟IP分配时,会从各节点拉取节点故障前最后一次虚拟IP分配结果,这个过程不再详细描述,这里会得到几个变量,old_pnns_num是节点故障前最后一次虚拟ip分配时的正常节点数量,old_pnns是节点故障前最后一次虚拟IP分配时的正常节点节点号,old_pnns是一个数组,在这里可以叫作历史数组,old_ips_num是节点故障前最后一次虚拟IP分配的虚拟IP的数量,old_ips是节点故障前最后一次虚拟IP分配的结果,它是一个数组,在这里可以叫作历史IP分配数组,该数组每一项包括两个元素即(pnn,addr),pnn是节点号,addr是虚拟IP,表示addr被节点pnn持有,new_pnns_num是当前正常节点的数量,new_pnns是当前正常节点节点号,all_ips是当前虚拟IP分配结果形成的当前虚拟IP分配结果数组,每次进行虚拟IP都会得到一个all_ips,然后根据all_ips去进行release ip和take ip(收到release ip消息的节点把对应的虚拟IP从本节点网卡释放掉,收到takeip消息的节点把对应的虚拟IP添加到本节点网卡上)。
若new_pnns_num小于old_pnns_num,说明是节点故障场景,符合本发明使用场景,否则不适用。
如图1所示,需要说明的是在有些实施例中,该方法的具体实现步骤包括:
S1:节点故障时,确定当前是节点故障场景还是节点恢复场景;
S2若是节点故障场景,获取当前集群所有的故障节点及节点故障前持有的所有的虚拟IP;
S3:向当前集群内的正常节点发消息获取正常节点所有的业务IP;
S4:根据业务IP确定当前集群内每个正常节点持有的业务IP数量和总虚拟IP数量;
S5:给每个故障节点的虚拟IP分配目的节点,其中,目的节点为集群内的正常节点中当前持有业务IP数量最少的节点;若有多个节点持有相同数量的业务IP,则为正常节点中持有总虚拟IP数量最少的节点。
有些实施例中,步骤S1的具体步骤包括:
SS1-1:节点故障时,获取当前集群中正常节点数量new_pnns_num以及本次节点故障前最后一次进行虚拟IP分配时的正常节点数量old_pnns_num;
SS1-2:若当前集群中正常节点数量new_pnns_num小于本次节点故障前最后一次进行虚拟IP分配时的正常节点数量old_pnns_num;则判断为节点故障场景。
步骤S2中获取当前集群所有的故障节点的步骤包括:
SS2-11:获取历史正常节点的节点号组成历史数组old_pnns以及获取当前集群中正常节点的节点号组成当前数组new_pnns;
SS2-12:确认在历史数组中存在且在当前数组中不存在的节点号对应节点为故障节点;其中,历史正常节点的节点号为本次节点故障前最后一次进行虚拟IP分配时所有正常节点的节点号;
SS2-13:获取当前所有的故障节点的节点号形成故障节点数组bd_pnns。故障节点就是在old_pnns里存在,在new_pnns里不存在的节点。把所有的故障节点添加到bd_pnns里,故障节点的数量记为bd_pnns_num。
获取节点故障前持有的所有的虚拟IP的步骤包括:
SS2-21:获取历史虚拟IP分配结果组成历史IP分配数组old_ips,其中,历史IP分配数组每一项包括两个元素,两个元素分别为节点号及对应的虚拟IP;历史虚拟IP分配结果为本次节点故障前最后一次进行虚拟IP分配结果;
SS2-22:根据故障节点数组bd_pnns里每一节点号遍历历史IP分配数组old_ips里的每一项,遍历到历史IP分配数组old_ips中的节点号与故障节点数组bd_pnns中的节点号相同时,获取历史IP分配数组里的该节点号及对应的虚拟IP形成节点故障前持有的虚拟IP数组bd_ips。
根据bd_pnns,bd_pnns_num,old_ips,old_ips_num,对bd_pnns里每一项(记为节点号pnn_i),遍历old_ips里的每一项即(pnn_j,addr_j),满足pnn_i等于pnn_j,把addr_j添加到bd_ips里,bd_ips里故障节点虚拟IP总数量记为bd_ips_num。bd_ips即为节点故障前持有的虚拟IP。
步骤S3包括:
SS3-1:向当前集群内的每个正常节点发消息;
SS3-2:每个正常节点收到消息后,执行命令获取本节点的业务IP,并返回本节点的业务IP;
SS3-3:将返回的所有的业务IP收集起来形成业务IP数组working_ips。
主节点给new_pnns里的每个正常节点发消息,每个节点收到消息后,就执行命令获取本节点的业务IP,并返回给主节点,主节点把所有的业务IP收集起来形成业务IP数组,记为working_ips。
步骤S4中,计算当前每个节点持有的业务IP数量和总虚拟IP数量的步骤包括:
SS4-1:根据所述的当前数组new_pnns中的每个节点号遍历历史IP分配数组old_ips中的每一项,遍历到历史IP分配数组old_ips中的节点号与当前数组new_pnns中的节点号相同时,判断该节点号对应的虚拟IP是否为业务IP,若是,将当前数组new_pnns中的节点号对应的业务IP数量加一,总虚拟IP数量加一,否则,只将当前数组new_pnns中的节点号对应的总虚拟IP数量加一;
SS4-2:将步骤SS4-1的结果形成正常节点IP列表normal_node_ip_list,其中,列表中的每一项包括三个元素,三个元素分别为节点号、业务IP数量、总虚拟IP数量。
根据old_ips、old_ips_num、new_pnns、new_pnns_num、working_ips,针对每个new_pnns里的节点号(记为pnn_i),遍历old_ips,找到一项(pnn_j,addr_j),满足pnn_i等于pnn_j,若addr_j是业务IP,把pnn_i对应的业务IP数量加一,总虚拟IP数量加一,否则,只把pnn_i对应的总虚拟IP数量加一。最终得到normal_node_ip_list,它的每一项有三个元素(pnn,working_ip_num,total_ip_num),表示节点号为pnn的节点持有的业务IP的数量为working_ip_num,持有的总虚拟IP数量为total_ip_num。
步骤S5中,给每个故障节点的虚拟IP分配目的节点的步骤包括:
SS5-1:选取节点故障前持有的虚拟IP数组bd_ips一项中的故障节点的虚拟IP;
SS5-2:根据正常节点IP列表normal_node_ip_list查找其中持有业务IP数量最少的节点当作目的节点,将选取的故障节点的虚拟IP分配到该目的节点上;
SS5-3:若有多个持有业务IP最少的节点,查找其中持有总虚拟IP数量最少的节点当作目的节点;目的节点节点号记为pnn_i;
SS5-4:获取当前虚拟IP分配结果形成当前虚拟IP分配结果数组all_ips;
SS5-5:遍历当前虚拟IP分配结果数组all_ips查找与选择的故障节点的虚拟IP相同的虚拟IP,将当前虚拟IP分配结果数组中的该虚拟IP对应的节点号替换成的SS5-3中的目的节点的节点号,即更新当前虚拟IP分配结果数组all_ips里虚拟IP的持有节点;
SS5-6:更新正常节点IP列表normal_node_ip_list,将对应节点号为步骤SS5-3中目的节点的节点号pnn_i的项的业务IP数量working_ip_num加一,总虚拟IP数量total_ip_num加一,执行步骤SS5-1。
针对bd_ips里的每个IP,记为tmp_ip,找到一个目的节点,根据normal_node_ip_list找到其中持有业务IP数量最少的节点,把它当作目的节点,若有多个持有业务IP最少的节点,找到其中持有总虚拟IP数量最少的节点,把它当作目的节点,目的节点节点号记为pnn_i。遍历all_ips,找到一项(pnn_j,addr_j),满足tmp_ip和addr_j相等,则把pnn_j替换成pnn_i,即更新all_ips里虚拟ip addr_j的持有节点。更新normal_node_ip_list,把对应节点号为pnn_i的项的working_ip_num加一,total_ip_num加一。
故障节点的虚拟IP在漂移时,优先漂到正常节点里持有业务IP最少的节点上(根据故障条件限制,实则是持有业务IP为0的节点),若有多个持有业务IP最少的节点,就漂到其中持有总虚拟IP最少的节点上。保证节点故障时不会出现一个节点两个业务IP的情况,从而节点恢复时,(由于会保证业务IP不飘走)不会出现有节点没有虚拟IP的情况。
尽管通过参考附图并结合优选实施例的方式对本发明进行了详细描述,但本发明并不限于此。在不脱离本发明的精神和实质的前提下,本领域普通技术人员可以对本发明的实施例进行各种等效的修改或替换,而这些修改或替换都应在本发明的涵盖范围内/任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

Claims (8)

1.一种集群节点故障场景CTDB虚拟IP均衡分配方法,其特征在于,包括如下过程:
节点故障时,根据故障限制条件将故障节点的虚拟IP分配到集群内的正常节点中当前持有业务IP数量最少的节点上;
当前集群内的正常节点中若有多个节点持有相同数量的业务IP,则将故障节点的虚拟IP分配到正常节点中持有总虚拟IP数量最少的节点上;其中,故障限制条件为当前故障节点持有的总虚拟IP数量小于或等于当前集群内的正常节点中持有0个业务IP的节点数量。
2.根据权利要求1所述的一种集群节点故障场景CTDB虚拟IP均衡分配方法,其特征在于,该方法的具体步骤包括:
节点故障时,确定当前是节点故障场景还是节点恢复场景;
若是节点故障场景,获取当前集群所有的故障节点及节点故障前持有的所有的虚拟IP;
向当前集群内的正常节点发消息获取正常节点所有的业务IP;
根据业务IP确定当前集群内每个正常节点持有的业务IP数量和总虚拟IP数量;
给每个故障节点的虚拟IP分配目的节点,其中,目的节点为集群内的正常节点中当前持有业务IP数量最少的节点;若有多个节点持有相同数量的业务IP,则为正常节点中持有总虚拟IP数量最少的节点。
3.根据权利要求1所述的一种集群节点故障场景CTDB虚拟IP均衡分配方法,其特征在于,节点故障时,确定当前是节点故障场景还是节点恢复场景的步骤包括:
SS1-1:节点故障时,获取当前集群中正常节点数量以及本次节点故障前最后一次进行虚拟IP分配时的正常节点数量;
SS1-2:若当前集群中正常节点数量小于本次节点故障前最后一次进行虚拟IP分配时的正常节点数量;则判断为节点故障场景。
4.根据权利要求1所述的一种集群节点故障场景CTDB虚拟IP均衡分配方法,其特征在于,若是节点故障场景,获取当前集群所有的故障节点及节点故障前持有的所有的虚拟IP的步骤中获取当前集群所有的故障节点的步骤包括:
SS2-11:获取历史正常节点的节点号组成历史数组以及获取当前集群中正常节点的节点号组成当前数组;
SS2-12:确认在历史数组中存在且在当前数组中不存在的节点号对应节点为故障节点;其中,历史正常节点的节点号为本次节点故障前最后一次进行虚拟IP分配时所有正常节点的节点号;
SS2-13:获取当前所有的故障节点的节点号形成故障节点数组。
5.根据权利要求4所述的一种集群节点故障场景CTDB虚拟IP均衡分配方法,其特征在于,若是节点故障场景,获取当前集群所有的故障节点及节点故障前持有的所有的虚拟IP的步骤中获取节点故障前持有的所有的虚拟IP的步骤包括:
SS2-21:获取历史虚拟IP分配结果组成历史IP分配数组,其中,历史IP分配数组每一项包括两个元素,两个元素分别为节点号及对应的虚拟IP;历史虚拟IP分配结果为本次节点故障前最后一次进行虚拟IP分配结果;
SS2-22:根据故障节点数组中每一节点号遍历历史IP分配数组中的每一项,遍历到历史IP分配数组中的节点号与故障节点数组中的节点号相同时,获取历史IP分配数组里的该节点号及对应的虚拟IP形成节点故障前持有的虚拟IP数组。
6.根据权利要求5所述的一种集群节点故障场景CTDB虚拟IP均衡分配方法,其特征在于,向当前集群内的正常节点发消息获取正常节点所有的业务IP的步骤包括:
SS3-1:向当前集群内的每个正常节点发消息;
SS3-2:每个正常节点收到消息后,执行命令获取本节点的业务IP,并返回本节点的业务IP;
SS3-3:将返回的所有的业务IP收集起来形成业务IP数组。
7.根据权利要求6所述的一种集群节点故障场景CTDB虚拟IP均衡分配方法,其特征在于,根据业务IP确定当前集群内每个正常节点持有的业务IP数量和总虚拟IP数量的步骤包括:
SS4-1:根据所述的当前数组中的每个节点号遍历历史IP分配数组中的每一项,遍历到历史IP分配数组中的节点号与当前数组中的节点号相同时,判断该节点号对应的虚拟IP是否为业务IP,若是,将当前数组中的节点号对应的业务IP数量加一,总虚拟IP数量加一,否则,只将当前数组中的节点号对应的总虚拟IP数量加一;
SS4-2:将步骤SS4-1的结果形成正常节点IP列表,其中,列表中的每一项包括三个元素,三个元素分别为节点号、业务IP数量、总虚拟IP数量。
8.根据权利要求7所述的一种集群节点故障场景CTDB虚拟IP均衡分配方法,其特征在于,给每个故障节点的虚拟IP分配目的节点的步骤包括:
SS5-1:选取节点故障前持有的虚拟IP数组一项中的故障节点的虚拟IP;
SS5-2:根据正常节点IP列表查找其中持有业务IP数量最少的节点当作目的节点,将选取的故障节点的虚拟IP分配到该目的节点上;
SS5-3:若有多个持有业务IP最少的节点,查找其中持有总虚拟IP数量最少的节点当作目的节点;
SS5-4:获取当前虚拟IP分配结果形成当前虚拟IP分配结果数组;
SS5-5:遍历当前虚拟IP分配结果数组查找与选择的故障节点的虚拟IP相同的虚拟IP,将当前虚拟IP分配结果数组中的该虚拟IP对应的节点号替换成的SS5-3中的目的节点的节点号,即更新当前虚拟IP分配结果数组里虚拟IP的持有节点;
SS5-6:更新正常节点IP列表,将对应节点号为步骤SS5-3中目的节点的节点号的项的业务IP数量加一,总虚拟IP数量加一,执行步骤SS5-1。
CN202010600977.2A 2020-06-29 2020-06-29 一种集群节点故障场景ctdb虚拟ip均衡分配方法 Active CN111901448B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010600977.2A CN111901448B (zh) 2020-06-29 2020-06-29 一种集群节点故障场景ctdb虚拟ip均衡分配方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010600977.2A CN111901448B (zh) 2020-06-29 2020-06-29 一种集群节点故障场景ctdb虚拟ip均衡分配方法

Publications (2)

Publication Number Publication Date
CN111901448A CN111901448A (zh) 2020-11-06
CN111901448B true CN111901448B (zh) 2022-06-14

Family

ID=73207117

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010600977.2A Active CN111901448B (zh) 2020-06-29 2020-06-29 一种集群节点故障场景ctdb虚拟ip均衡分配方法

Country Status (1)

Country Link
CN (1) CN111901448B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113315653B (zh) * 2021-04-30 2022-07-12 新华三大数据技术有限公司 网络设备的管理方法及装置、网络设备、计算机设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107465562A (zh) * 2017-09-25 2017-12-12 郑州云海信息技术有限公司 一种ctdb自定义分配虚拟ip的方法、装置、设备
CN108881512A (zh) * 2018-06-15 2018-11-23 郑州云海信息技术有限公司 Ctdb的虚拟ip均衡分配方法、装置、设备及介质
CN108958991A (zh) * 2018-07-26 2018-12-07 郑州云海信息技术有限公司 集群节点故障业务快速恢复方法、装置、设备及存储介质

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107465562A (zh) * 2017-09-25 2017-12-12 郑州云海信息技术有限公司 一种ctdb自定义分配虚拟ip的方法、装置、设备
CN108881512A (zh) * 2018-06-15 2018-11-23 郑州云海信息技术有限公司 Ctdb的虚拟ip均衡分配方法、装置、设备及介质
CN108958991A (zh) * 2018-07-26 2018-12-07 郑州云海信息技术有限公司 集群节点故障业务快速恢复方法、装置、设备及存储介质

Also Published As

Publication number Publication date
CN111901448A (zh) 2020-11-06

Similar Documents

Publication Publication Date Title
CN108881512B (zh) Ctdb的虚拟ip均衡分配方法、装置、设备及介质
US7747717B2 (en) Fast application notification in a clustered computing system
CN109117275B (zh) 基于数据分片的对账方法、装置、计算机设备及存储介质
CN106981024B (zh) 一种交易限额计算处理系统及其处理方法
CN113067850B (zh) 一种多云场景下的集群编排系统
CN105988862A (zh) 分布式事务处理方法及装置
CN105069152B (zh) 数据处理方法及装置
CN108540315A (zh) 分布式存储系统、方法和装置
CN113655969B (zh) 一种基于流式分布式存储系统的数据均衡存储方法
CN110519354A (zh) 一种分布式对象存储系统及其业务处理方法和存储介质
CN111901448B (zh) 一种集群节点故障场景ctdb虚拟ip均衡分配方法
CN111147605B (zh) 服务注册方法、装置和设备
CN115756955A (zh) 一种数据备份、数据恢复的方法、装置及计算机设备
CN107943615B (zh) 基于分布式集群的数据处理方法与系统
CN111580959B (zh) 一种数据写入方法、数据写入装置、服务器及存储介质
CN111866210A (zh) 一种虚拟ip均衡分配方法、系统、终端及存储介质
CN115858250A (zh) 数据恢复方法、装置、存储介质及电子装置
CN110765190B (zh) 一种数据库集群自动扩容的方法、装置和电子设备
US20240176762A1 (en) Geographically dispersed hybrid cloud cluster
CN108881411A (zh) 一种大规模节点下ctdb集群分组的方法
CN114493602A (zh) 区块链交易的执行方法、装置、电子设备和存储介质
CN110502582B (zh) 一种分布式数据库的在线扩容方法
CN109254880A (zh) 一种处理数据库宕机的方法及装置
CN113254159B (zh) 有状态服务的迁移方法、装置、计算机设备及存储介质
CN110597809A (zh) 一种支持树状数据结构的一致性算法系统及其实现方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant