CN110519406B - 一种虚拟地址分配方法、装置及ctdb集群和存储介质 - Google Patents

一种虚拟地址分配方法、装置及ctdb集群和存储介质 Download PDF

Info

Publication number
CN110519406B
CN110519406B CN201910760117.2A CN201910760117A CN110519406B CN 110519406 B CN110519406 B CN 110519406B CN 201910760117 A CN201910760117 A CN 201910760117A CN 110519406 B CN110519406 B CN 110519406B
Authority
CN
China
Prior art keywords
node
virtual address
target
candidate
corresponding relation
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
CN201910760117.2A
Other languages
English (en)
Other versions
CN110519406A (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.)
Jinan Inspur Data Technology Co Ltd
Original Assignee
Jinan Inspur Data 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 Jinan Inspur Data Technology Co Ltd filed Critical Jinan Inspur Data Technology Co Ltd
Priority to CN201910760117.2A priority Critical patent/CN110519406B/zh
Publication of CN110519406A publication Critical patent/CN110519406A/zh
Application granted granted Critical
Publication of CN110519406B publication Critical patent/CN110519406B/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/5084Providing for device mobility
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers

Landscapes

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

Abstract

本申请公开了一种虚拟地址分配方法、装置及一种CTDB集群和计算机可读存储介质,该方法包括:基于目标对应关系进行虚拟地址的节点分配;其中,所述目标对应关系为虚拟地址与节点的对应关系;当检测到目标节点故障时,将所述目标节点挂载的虚拟地址分配至正常节点;当所述目标节点恢复时,根据所述目标对应关系确定所述目标节点对应的虚拟地址;将所述虚拟地址迁移至所述目标节点。本申请提供的虚拟地址分配方法,当故障节点恢复后同样依据目标对应关系进行虚拟地址的迁移,可以保证节点故障前后持有的虚拟地址是相同的,实现固定分配。

Description

一种虚拟地址分配方法、装置及CTDB集群和存储介质
技术领域
本申请涉及计算机技术领域,更具体地说,涉及一种虚拟地址分配方法、装置及一种CTDB集群和一种计算机可读存储介质。
背景技术
CTDB是一套集群高可用管理软件,在CTDB启动过程中,会根据指定算法将虚拟地址平均且随机分配到集群每个节点上,当集群中的某些节点发生故障时CTDB会执行故障切换,将原先故障节点上分配的虚拟地址释放掉然后将该虚拟地址漂移到其他正常节点,相应的读写业务也会漂移到其他正常节点。当故障节点恢复并加入集群时,CTDB会随机选取其他节点上的虚拟地址分配到该节点上。
可见,上述方案中无法保证节点故障前持有的虚拟地址在该节点故障恢复后依然能够被该节点重新持有。
因此,如何保证节点故障前后持有的虚拟地址是相同的是本领域技术人员需要解决的技术问题。
发明内容
本申请的目的在于提供一种虚拟地址分配方法、装置及一种CTDB集群和一种计算机可读存储介质,保证节点故障前后持有的虚拟地址是相同的。
为实现上述目的,本申请提供了一种虚拟地址分配方法,包括:
基于目标对应关系进行虚拟地址的节点分配;其中,所述目标对应关系为虚拟地址与节点的对应关系;
当检测到目标节点故障时,将所述目标节点挂载的虚拟地址分配至正常节点;
当所述目标节点恢复时,根据所述目标对应关系确定所述目标节点对应的虚拟地址;
将所述虚拟地址迁移至所述目标节点。
其中,所述基于目标对应关系进行虚拟地址的节点分配,包括:
确定所述目标对应关系;
基于所述目标对应关系判断目标虚拟地址对应的节点是否为正常节点;
若是,则根据所述目标对应关系进行所述目标虚拟地址的分配;
若否,则从正常节点中选取候选节点,并将所述目标虚拟地址分配至所述候选节点。
其中,所述确定所述目标对应关系,包括:
按预设规则对所有所述虚拟地址进行排序,并基于排序结果确定每个所述虚拟地址的标识;
确定节点总数,并将每个所述虚拟地址的标识与所述节点总数的取余结果作为每个所述虚拟地址对应的节点的节点标识。
其中,若所述虚拟地址包括IPV4地址和IPV6地址,则所述按预设规则对所有所述虚拟地址进行排序,包括:
将每个所述虚拟地址扩充为长度为四的整型数组;其中,所述整型数组中的每个元素对应32位数据,所述IPV4地址对应的整型数组的前三个元素为0;
调用qsort函数对所有所述整型数组进行由小至大的排序。
其中,所述从正常节点中选取候选节点,包括:
从正常节点中随机选取所述候选节点。
其中,所述从正常节点中选取候选节点,包括:
S1:将最后一个被分配到虚拟地址的节点确定为基础节点,并将所述基础节点的节点标识作为基础节点标识;
S2:将所述基础节点标识加一作为候选节点标识;
S3:判断所述候选节点标识是否小于节点总数;若是,则进入S5;若否,则进入S4;
S4:将所述候选节点标识与所述节点总数的取余结果作为新的候选节点标识,并进入S5;
S5:判断所述候选节点标识对应的节点是否为正常节点;若是,则进入S6;若否,则进入S7;
S6:将所述候选节点标识对应的节点确定为所述候选节点;
S7:将所述候选节点标识作为新的基础节点标识,并重新进入S2。
为实现上述目的,本申请提供了一种虚拟地址分配装置,包括:
分配模块,用于基于目标对应关系进行虚拟地址的节点分配;其中,所述目标对应关系为虚拟地址与节点的对应关系;
故障模块,用于当检测到目标节点故障时,将所述目标节点挂载的虚拟地址分配至正常节点;
确定模块,用于当所述目标节点恢复时,根据所述目标对应关系确定所述目标节点对应的虚拟地址;
迁移模块,用于将所述虚拟地址迁移至所述目标节点。
其中,所述分配模块包括:
确定单元,用于确定所述目标对应关系;
判断单元,用于基于所述目标对应关系判断目标虚拟地址对应的节点是否为正常节点;若是,则启动第一分配单元的工作流程;若否,则启动第二分配单元的工作流程;
所述第一分配单元,用于根据所述目标对应关系进行所述目标虚拟地址的分配;
所述第二分配单元,用于从正常节点中选取候选节点,并将所述目标虚拟地址分配至所述候选节点。
为实现上述目的,本申请提供了一种CTDB集群,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上述虚拟地址分配方法的步骤。
为实现上述目的,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述虚拟地址分配方法的步骤。
通过以上方案可知,本申请提供的一种虚拟地址分配方法,包括:基于目标对应关系进行虚拟地址的节点分配;其中,所述目标对应关系为虚拟地址与节点的对应关系;当检测到目标节点故障时,将所述目标节点挂载的虚拟地址分配至正常节点;当所述目标节点恢复时,根据所述目标对应关系确定所述目标节点对应的虚拟地址;将所述虚拟地址迁移至所述目标节点。
本申请提供的虚拟地址分配方法,预先设定虚拟地址与节点的目标对应关系,基于目标对应关系进行虚拟地址的分配,正常节点所分配到的虚拟地址是固定的,故障节点对应的虚拟地址可以平均地分配到其他正常节点上,实现了均衡,避免了某个节点持有虚拟地址过多导致节点提供业务出现负载不均衡的问题。当故障节点恢复后同样依据目标对应关系进行虚拟地址的迁移,可以保证节点故障前后持有的虚拟地址是相同的,实现固定分配。本申请还公开了一种虚拟地址分配装置及一种CTDB集群和一种计算机可读存储介质,同样能实现上述技术效果。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本申请。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:
图1为根据一示例性实施例示出的一种虚拟地址分配方法的流程图;
图2为根据一示例性实施例示出的另一种虚拟地址分配方法的流程图;
图3为根据一示例性实施例示出的一种选取候选节点的方法的流程图;
图4为根据一示例性实施例示出的一种虚拟地址分配装置的结构图;
图5为根据一示例性实施例示出的一种CTDB集群的结构图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例公开了一种虚拟地址分配方法,保证节点故障前后持有的虚拟地址是相同的。
参见图1,根据一示例性实施例示出的一种虚拟地址分配方法的流程图,如图1所示,包括:
S101:基于目标对应关系进行虚拟地址的节点分配;其中,所述目标对应关系为虚拟地址与节点的对应关系;
本实施例的执行主体为CTDB集群,CTDB集群可以看作是多个计算机通过网络连接起来、相互通信,作为一个整体对外提供服务。每个计算机是一个节点,每个节点上都运行有CTDB服务,不同节点上的CTDB通过网络连接互相通信来工作。CTDB运行时,会选举出一个节点作为主节点,如果集群中存在节点故障,每个其他节点都能检测到。主节点进行虚拟地址分配,分配完成后形成本步骤中的目标对应关系。此处可以以数据表的形式存储该对应关系,该数据表中的每一项都指定哪个节点应该持有哪个虚拟地址。
在本实施例中,预先设定虚拟地址与节点的目标对应关系,目标对应关系例如(item_ip,item_pnn),表示item_ip的虚拟地址对应item_pnn的节点。基于目标对应关系进行虚拟地址的分配,正常节点所分配到的虚拟地址是固定的,故障节点对应的虚拟地址可以平均地分配到其他正常节点上。此处的正常节点可以为原先就正常的节点,也可以为故障后又恢复正常的节点。
即本步骤可以包括:确定所述目标对应关系;基于所述目标对应关系判断目标虚拟地址对应的节点是否为正常节点;若是,则根据所述目标对应关系进行所述目标虚拟地址的分配;若否,则从正常节点中选取候选节点,并将所述目标虚拟地址分配至所述候选节点。
在具体实施中,循环遍历所有虚拟地址,对于每个虚拟地址基于上述目标对应关系确定其对应的节点,若该节点为正常节点,则将该虚拟地址分配给该节点,同时记录该节点为最后分配到虚拟地址的节点last_pnn。若该节点为故障节点,则将该虚拟地址分配给其他的正常节点,即上述候选节点。可以理解的是,虚拟地址的分配是一个完整的过程,仅在检测到节点故障和故障节点恢复正常时执行。
需要说明的是,本实施例不对选取候选节点的标准进行限定,可以随机选取,即所述从正常节点中选取候选节点的步骤可以包括:从正常节点中随机选取所述候选节点。当然,也可以基于对故障节点对应的虚拟地址进行平均分配的原则进行选取,将在后续实施例进行详细介绍。
S102:当检测到目标节点故障时,将所述目标节点挂载的虚拟地址分配至正常节点;
在本步骤中,当目标节点发生故障时,将该目标节点上挂载的虚拟地址分配至正常节点,分配过程与上一步骤介绍的类似,在此不再赘述。
S103:当所述目标节点恢复时,根据所述目标对应关系确定所述目标节点对应的虚拟地址;
S104:将所述虚拟地址迁移至所述目标节点。
在具体实施中,若目标节点的故障恢复,根据目标对应关系确定该目标节点对应的虚拟地址,将挂载在其他节点上的这些虚拟地址迁移回该目标节点,保证了节点故障前后持有的虚拟地址是相同的。
本申请实施例提供的虚拟地址分配方法,预先设定虚拟地址与节点的目标对应关系,基于目标对应关系进行虚拟地址的分配,正常节点所分配到的虚拟地址是固定的,故障节点对应的虚拟地址可以平均地分配到其他正常节点上,实现了均衡,避免了某个节点持有虚拟地址过多导致节点提供业务出现负载不均衡的问题。当故障节点恢复后同样依据目标对应关系进行虚拟地址的迁移,可以保证节点故障前后持有的虚拟地址是相同的,实现固定分配。
本实施例介绍上述目标对应关系的构建过程,具体如图2所示,包括:
S201:按预设规则对所有所述虚拟地址进行排序,并基于排序结果确定每个所述虚拟地址的标识;
在本步骤中,首先基于预设规则对所有所述虚拟地址进行排序,此处的预设规则可以为按照虚拟地址的大小由小至大进行排序,当然也可以为其他的规则,在此不进行具体限定。
具体的,虚拟地址可以包括IPV4地址和IPV6地址,IPV4地址可以表示为如192.168.1.100的格式,共占32位,即一个整型数据的长度,IPV6可以表示为如3A41:B202:3000::20的格式,共占128位,即四个整型数据的长度。所述按预设规则对所有所述虚拟地址进行排序的步骤可以包括:将每个所述虚拟地址扩充为长度为四的整型数组;其中,所述整型数组中的每个元素对应32位数据,所述IPV4地址对应的整型数组的前三个元素为0;调用qsort函数对所有所述整型数组进行由小至大的排序。
在具体实施中,进行虚拟地址的排序时主要是比较两个虚拟地址的大小,考虑到可能存在IPV4和IPV6之间比较大小的情况,比较时预先为两个虚拟地址各准备一个长度为四的整型数组,将两个虚拟地址转换到两个数组中,若是IPV4就放到数组的最后一个元素中,通过依次比较两个数组对应位置的四个元素大小来确定两个虚拟地址的大小。调用qsort函数进行快速排序,最终可将所有虚拟地址按从小到大的顺序排列。
S202:确定节点总数,并将每个所述虚拟地址的标识与所述节点总数的取余结果作为每个所述虚拟地址对应的节点的节点标识。
在本步骤中,以虚拟地址的标识与节点总数的区域结果作为虚拟地址对应的节点的节点标识,建立虚拟地址的标识与节点的节点标识的对应关系,完成目标对应关系的构建。
优选的,在第一个实施例中,若目标虚拟地址对应的节点为故障节点,可以基于平均分配的原则选取候选节点,具体如图3所示,从正常节点中选取候选节点的步骤可以包括:
S1:将最后一个被分配到虚拟地址的节点确定为基础节点,并将所述基础节点的节点标识作为基础节点标识;
S2:将所述基础节点标识加一作为候选节点标识;
S3:判断所述候选节点标识是否小于节点总数;若是,则进入S5;若否,则进入S4;
S4:将所述候选节点标识与所述节点总数的取余结果作为新的候选节点标识,并进入S5;
S5:判断所述候选节点标识对应的节点是否为正常节点;若是,则进入S6;若否,则进入S7;
S6:将所述候选节点标识对应的节点确定为所述候选节点;
S7:将所述候选节点标识作为新的基础节点标识,并重新进入S2。
在本实施例中,循环遍历所有故障节点对应的虚拟地址,后续将这些虚拟地址称之为待分配虚拟地址,对于每一个待分配虚拟地址,从最后一个被分配到虚拟地址的节点last_pnn的下一个节点开始寻找正常节点,将寻找到的第一个正常节点确定为候选节点,若遍历到了最后一个节点,则从节点标识为0的节点重新开始寻找。
由此可见,在本实施例中,故障节点对应的虚拟地址可以平均地分配到其他正常节点上,实现了均衡,避免了某个节点持有虚拟地址过多导致节点提供业务出现负载不均衡的问题,满足了实际生产中不断变化的需求,提高了集群的负载处理性能、稳定性和高可用特性。
下面对本申请实施例提供的一种虚拟地址分配装置进行介绍,下文描述的一种虚拟地址分配装置与上文描述的一种虚拟地址分配方法可以相互参照。
参见图4,根据一示例性实施例示出的一种虚拟地址分配装置的结构图,如图4所示,包括:
分配模块401,用于基于目标对应关系进行虚拟地址的节点分配;其中,所述目标对应关系为虚拟地址与节点的对应关系;
故障模块402,用于当检测到目标节点故障时,将所述目标节点挂载的虚拟地址分配至正常节点;
确定模块403,用于当所述目标节点恢复时,根据所述目标对应关系确定所述目标节点对应的虚拟地址;
迁移模块404,用于将所述虚拟地址迁移至所述目标节点。
本申请实施例提供的虚拟地址分配装置,预先设定虚拟地址与节点的目标对应关系,基于目标对应关系进行虚拟地址的分配,正常节点所分配到的虚拟地址是固定的,故障节点对应的虚拟地址可以平均地分配到其他正常节点上,实现了均衡,避免了某个节点持有虚拟地址过多导致节点提供业务出现负载不均衡的问题。当故障节点恢复后同样依据目标对应关系进行虚拟地址的迁移,可以保证节点故障前后持有的虚拟地址是相同的,实现固定分配。
在上述实施例的基础上,作为一种优选实施方式,所述分配模块401包括:
确定单元,用于确定所述目标对应关系;
判断单元,用于基于所述目标对应关系判断目标虚拟地址对应的节点是否为正常节点;若是,则启动第一分配单元的工作流程;若否,则启动第二分配单元的工作流程;
所述第一分配单元,用于根据所述目标对应关系进行所述目标虚拟地址的分配;
所述第二分配单元,用于从正常节点中选取候选节点,并将所述目标虚拟地址分配至所述候选节点。
在上述实施例的基础上,作为一种优选实施方式,所述确定单元包括:
排序子单元,用于按预设规则对所有所述虚拟地址进行排序,并基于排序结果确定每个所述虚拟地址的标识;
确定子单元,用于确定节点总数,并将每个所述虚拟地址的标识与所述节点总数的取余结果作为每个所述虚拟地址对应的节点的节点标识。
在上述实施例的基础上,作为一种优选实施方式,若所述虚拟地址包括IPV4地址和IPV6地址,则所述排序子单元具体为将每个所述虚拟地址扩充为长度为四的整型数组,调用qsort函数对所有所述整型数组进行由小至大的排序,并基于排序结果确定每个所述虚拟地址的标识的子单元;其中,所述整型数组中的每个元素对应32位数据,所述IPV4地址对应的整型数组的前三个元素为0。
在上述实施例的基础上,作为一种优选实施方式,所述第二分配单元包括:
第一选取子单元,用于从正常节点中随机选取所述候选节点;
分配子单元,用于将所述目标虚拟地址分配至所述候选节点。
在上述实施例的基础上,作为一种优选实施方式,所述第二分配单元包括:
确定基础节点标识子单元,用于将最后一个被分配到虚拟地址的节点确定为基础节点,并将所述基础节点的节点标识作为基础节点标识;
确定候选节点标识子单元,用于将所述基础节点标识加一作为候选节点标识;
第一判断子单元,用于判断所述候选节点标识是否小于节点总数;若是,则启动第二判断子单元的工作流程;若否,则启动取余子单元的工作流程;
取余子单元,用于将所述候选节点标识与所述节点总数的取余结果作为新的候选节点标识,并启动第二判断子单元的工作流程;
第二判断子单元,用于判断所述候选节点标识对应的节点是否为正常节点;若是,则启动确定候选节点子单元的工作流程;若否,则启动更新子单元的工作流程;
确定候选节点子单元,用于将所述候选节点标识对应的节点确定为所述候选节点;
更新子单元,用于将所述候选节点标识作为新的基础节点标识,并重新启动确定候选节点标识子单元的工作流程;
分配子单元,用于将所述目标虚拟地址分配至所述候选节点。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
本申请还提供了一种CTDB集群,参见图5,本申请实施例提供的一种CTDB集群500的结构图,如图5所示,可以包括处理器11和存储器12。该CTDB集群500还可以包括多媒体组件13,输入/输出(I/O)接口14,以及通信组件15中的一者或多者。
其中,处理器11用于控制该CTDB集群500的整体操作,以完成上述的虚拟地址分配方法中的全部或部分步骤。存储器12用于存储各种类型的数据以支持在该CTDB集群500的操作,这些数据例如可以包括用于在该CTDB集群500上操作的任何应用程序或方法的指令,以及应用程序相关的数据,例如联系人数据、收发的消息、图片、音频、视频等等。该存储器12可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(Static Random Access Memory,简称SRAM),电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,简称EEPROM),可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,简称EPROM),可编程只读存储器(Programmable Read-Only Memory,简称PROM),只读存储器(Read-Only Memory,简称ROM),磁存储器,快闪存储器,磁盘或光盘。多媒体组件13可以包括屏幕和音频组件。其中屏幕例如可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克风,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器12或通过通信组件15发送。音频组件还包括至少一个扬声器,用于输出音频信号。I/O接口14为处理器11和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。通信组件15用于该CTDB集群500与其他设备之间进行有线或无线通信。无线通信,例如Wi-Fi,蓝牙,近场通信(Near FieldCommunication,简称NFC),2G、3G或4G,或它们中的一种或几种的组合,因此相应的该通信组件15可以包括:Wi-Fi模块,蓝牙模块,NFC模块。
在一示例性实施例中,CTDB集群500可以被一个或多个应用专用集成电路(Application Specific Integrated Circuit,简称ASIC)、数字信号处理器(DigitalSignal Processor,简称DSP)、数字信号处理设备(Digital Signal Processing Device,简称DSPD)、可编程逻辑器件(Programmable Logic Device,简称PLD)、现场可编程门阵列(Field Programmable Gate Array,简称FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述的虚拟地址分配方法。
在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述虚拟地址分配方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的存储器12,上述程序指令可由CTDB集群500的处理器11执行以完成上述的虚拟地址分配方法。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

Claims (7)

1.一种虚拟地址分配方法,其特征在于,包括:
基于目标对应关系进行虚拟地址的节点分配,形成建立的目标对应关系;其中,所述目标对应关系为虚拟地址与节点的对应关系;
当检测到目标节点故障时,将所述目标节点挂载的虚拟地址分配至正常节点;
当所述目标节点恢复时,根据所述建立的目标对应关系确定所述目标节点对应的虚拟地址;
将所述虚拟地址迁移至所述目标节点;
其中,所述基于目标对应关系进行虚拟地址的节点分配,包括:
确定所述目标对应关系;
基于所述目标对应关系判断目标虚拟地址对应的节点是否为正常节点;
若是,则根据所述目标对应关系进行所述目标虚拟地址的分配;
若否,则从正常节点中选取候选节点,并将所述目标虚拟地址分配至所述候选节点;
其中,所述从正常节点中选取候选节点,包括:
S1:将最后一个被分配到虚拟地址的节点确定为基础节点,并将所述基础节点的节点标识作为基础节点标识;
S2:将所述基础节点标识加一作为候选节点标识;
S3:判断所述候选节点标识是否小于节点总数;若是,则进入S5;若否,则进入S4;
S4:将所述候选节点标识与所述节点总数的取余结果作为新的候选节点标识,并进入S5;
S5:判断所述候选节点标识对应的节点是否为正常节点;若是,则进入S6;若否,则进入S7;
S6:将所述候选节点标识对应的节点确定为所述候选节点;
S7:将所述候选节点标识作为新的基础节点标识,并重新进入S2。
2.根据权利要求1所述虚拟地址分配方法,其特征在于,所述确定所述目标对应关系,包括:
按预设规则对所有所述虚拟地址进行排序,并基于排序结果确定每个所述虚拟地址的标识;
确定节点总数,并将每个所述虚拟地址的标识与所述节点总数的取余结果作为每个所述虚拟地址对应的节点的节点标识。
3.根据权利要求2所述虚拟地址分配方法,其特征在于,若所述虚拟地址包括IPV4地址和IPV6地址,则所述按预设规则对所有所述虚拟地址进行排序,包括:
将每个所述虚拟地址扩充为长度为四的整型数组;其中,所述整型数组中的每个元素对应32位数据,所述IPV4地址对应的整型数组的前三个元素为0;
调用qsort函数对所有所述整型数组进行由小至大的排序。
4.根据权利要求1所述虚拟地址分配方法,其特征在于,所述从正常节点中选取候选节点,包括:
从正常节点中随机选取所述候选节点。
5.一种虚拟地址分配装置,其特征在于,包括:
分配模块,用于基于目标对应关系进行虚拟地址的节点分配,形成建立的目标对应关系;其中,所述目标对应关系为虚拟地址与节点的对应关系;
故障模块,用于当检测到目标节点故障时,将所述目标节点挂载的虚拟地址分配至正常节点;
确定模块,用于当所述目标节点恢复时,根据所述建立的目标对应关系确定所述目标节点对应的虚拟地址;
迁移模块,用于将所述虚拟地址迁移至所述目标节点;
其中,所述分配模块包括:
确定单元,用于确定所述目标对应关系;
判断单元,用于基于所述目标对应关系判断目标虚拟地址对应的节点是否为正常节点;若是,则启动第一分配单元的工作流程;若否,则启动第二分配单元的工作流程;
所述第一分配单元,用于根据所述目标对应关系进行所述目标虚拟地址的分配;
所述第二分配单元,用于从正常节点中选取候选节点,并将所述目标虚拟地址分配至所述候选节点;
其中,所述第二分配单元包括:
确定基础节点标识子单元,用于将最后一个被分配到虚拟地址的节点确定为基础节点,并将所述基础节点的节点标识作为基础节点标识;
确定候选节点标识子单元,用于将所述基础节点标识加一作为候选节点标识;
第一判断子单元,用于判断所述候选节点标识是否小于节点总数;若是,则启动第二判断子单元的工作流程;若否,则启动取余子单元的工作流程;
取余子单元,用于将所述候选节点标识与所述节点总数的取余结果作为新的候选节点标识,并启动第二判断子单元的工作流程;
第二判断子单元,用于判断所述候选节点标识对应的节点是否为正常节点;若是,则启动确定候选节点子单元的工作流程;若否,则启动更新子单元的工作流程;
确定候选节点子单元,用于将所述候选节点标识对应的节点确定为所述候选节点;
更新子单元,用于将所述候选节点标识作为新的基础节点标识,并重新启动确定候选节点标识子单元的工作流程;
分配子单元,用于将所述目标虚拟地址分配至所述候选节点。
6.一种CTDB集群,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至4任一项所述虚拟地址分配方法的步骤。
7.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至4任一项所述虚拟地址分配方法的步骤。
CN201910760117.2A 2019-08-16 2019-08-16 一种虚拟地址分配方法、装置及ctdb集群和存储介质 Active CN110519406B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910760117.2A CN110519406B (zh) 2019-08-16 2019-08-16 一种虚拟地址分配方法、装置及ctdb集群和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910760117.2A CN110519406B (zh) 2019-08-16 2019-08-16 一种虚拟地址分配方法、装置及ctdb集群和存储介质

Publications (2)

Publication Number Publication Date
CN110519406A CN110519406A (zh) 2019-11-29
CN110519406B true CN110519406B (zh) 2022-05-17

Family

ID=68625573

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910760117.2A Active CN110519406B (zh) 2019-08-16 2019-08-16 一种虚拟地址分配方法、装置及ctdb集群和存储介质

Country Status (1)

Country Link
CN (1) CN110519406B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111416884B (zh) * 2020-03-12 2021-08-31 苏州浪潮智能科技有限公司 Ctdb虚拟ip的分配方法、装置及分布式存储设备
CN112087336B (zh) * 2020-09-11 2022-09-02 杭州海康威视系统技术有限公司 一种虚拟ip服务系统的部署、管理方法、装置及电子设备
CN116346581A (zh) * 2021-12-24 2023-06-27 华为技术有限公司 通信方法及装置、通信系统
CN115002070B (zh) * 2022-06-10 2023-04-28 北京东土科技股份有限公司 芯片集群、地址分配方法、电子设备和存储介质
CN117609194A (zh) * 2024-01-19 2024-02-27 中科泓泰电子有限公司 云数据库的处理方法、装置、电子设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108810143A (zh) * 2018-06-13 2018-11-13 郑州云海信息技术有限公司 一种客户端负载均衡挂载虚拟ip的方法、系统及装置
CN108881512A (zh) * 2018-06-15 2018-11-23 郑州云海信息技术有限公司 Ctdb的虚拟ip均衡分配方法、装置、设备及介质

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102983989B (zh) * 2012-11-07 2015-07-08 华为技术有限公司 一种服务器虚拟地址的迁移方法、装置和设备
US9712438B2 (en) * 2014-01-08 2017-07-18 Microsoft Technology Licensing, Llc Routing messages between virtual networks
CN108268300B (zh) * 2016-12-30 2022-01-25 中移(苏州)软件技术有限公司 一种虚拟机的迁移方法及装置
CN107465562B (zh) * 2017-09-25 2020-03-06 郑州云海信息技术有限公司 一种ctdb自定义分配虚拟ip的方法、装置、设备
CN108847980A (zh) * 2018-06-21 2018-11-20 郑州云海信息技术有限公司 一种ctdb节点故障虚拟ip迁移的方法及装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108810143A (zh) * 2018-06-13 2018-11-13 郑州云海信息技术有限公司 一种客户端负载均衡挂载虚拟ip的方法、系统及装置
CN108881512A (zh) * 2018-06-15 2018-11-23 郑州云海信息技术有限公司 Ctdb的虚拟ip均衡分配方法、装置、设备及介质

Also Published As

Publication number Publication date
CN110519406A (zh) 2019-11-29

Similar Documents

Publication Publication Date Title
CN110519406B (zh) 一种虚拟地址分配方法、装置及ctdb集群和存储介质
CN106294421B (zh) 一种数据写入、读取方法及装置
CN109347675B (zh) 服务器配置方法、装置以及电子设备
KR102376713B1 (ko) 복합 파티션 함수 제공 기법
CN111124604A (zh) 分配容器组pod IP地址的方法、装置、设备及存储介质
CN107894919A (zh) 定时任务触发方法、装置、设备及可读存储介质
CN108804188A (zh) 界面换肤方法及装置
EP3442201B1 (en) Cloud platform construction method and cloud platform
CN108776587B (zh) 数据获取方法、装置、计算机设备以及存储介质
US10761869B2 (en) Cloud platform construction method and cloud platform storing image files in storage backend cluster according to image file type
CN111290699B (zh) 数据迁移方法、装置及系统
CN113810230A (zh) 对容器集群中的容器进行网络配置的方法、装置及系统
CN112003754A (zh) 一种OpenStack集群的可视化节点注册方法
CN107104844B (zh) 一种ctdb迁移公共ip地址的方法及装置
CN115729673A (zh) 集群管理方法、管理模块、电子设备及介质
CN111866169A (zh) 一种服务更新方法及装置、系统
CN113986539A (zh) 实现pod固定IP的方法、装置、电子设备和可读存储介质
US10491674B2 (en) Network topology templates for internal states of management and control planes
CN114362929A (zh) 基于量子密钥分发网络的保护方法、装置和电子设备
CN106527979B (zh) 数据迁移方法及装置
WO2020252921A1 (zh) 多活负载均衡应用的扩容方法、装置、设备及存储介质
CN112422704B (zh) 用于多设备的地址分配方法、装置及存储介质
CN110609707A (zh) 在线数据处理系统生成方法、装置及设备
CN110737533B (zh) 一种任务调度方法、装置及电子设备和存储介质
CN110569231B (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