一种虚拟地址分配方法、装置及CTDB集群和存储介质制造方法及图纸

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

A virtual address allocation method, device, ctdb cluster and storage medium

The application discloses a virtual address allocation method and device and a ctdb cluster and computer readable storage medium, the method includes: node allocation of virtual address based on the target correspondence; wherein, the target correspondence is the correspondence between virtual address and node; when the target node fault is detected, the virtual address mounted by the target node is allocated to Normal node; when the target node recovers, the virtual address corresponding to the target node is determined according to the target correspondence; the virtual address is migrated to the target node. The virtual address allocation method provided in the application can ensure that the virtual address held by the node before and after the failure is the same and realize fixed allocation by migrating the virtual address according to the target correspondence after the failure node recovers.

【技术实现步骤摘要】
一种虚拟地址分配方法、装置及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.一种虚拟地址分配方法,其特征在于,包括:/n基于目标对应关系进行虚拟地址的节点分配;其中,所述目标对应关系为虚拟地址与节点的对应关系;/n当检测到目标节点故障时,将所述目标节点挂载的虚拟地址分配至正常节点;/n当所述目标节点恢复时,根据所述目标对应关系确定所述目标节点对应的虚拟地址;/n将所述虚拟地址迁移至所述目标节点。/n

【技术特征摘要】
1.一种虚拟地址分配方法,其特征在于,包括:
基于目标对应关系进行虚拟地址的节点分配;其中,所述目标对应关系为虚拟地址与节点的对应关系;
当检测到目标节点故障时,将所述目标节点挂载的虚拟地址分配至正常节点;
当所述目标节点恢复时,根据所述目标对应关系确定所述目标节点对应的虚拟地址;
将所述虚拟地址迁移至所述目标节点。


2.根据权利要求1所述虚拟地址分配方法,其特征在于,所述基于目标对应关系进行虚拟地址的节点分配,包括:
确定所述目标对应关系;
基于所述目标对应关系判断目标虚拟地址对应的节点是否为正常节点;
若是,则根据所述目标对应关系进行所述目标虚拟地址的分配;
若否,则从正常节点中选取候选节点,并将所述目标虚拟地址分配至所述候选节点。


3.根据权利要求2所述虚拟地址分配方法,其特征在于,所述确定所述目标对应关系,包括:
按预设规则对所有所述虚拟地址进行排序,并基于排序结果确定每个所述虚拟地址的标识;
确定节点总数,并将每个所述虚拟地址的标识与所述节点总数的取余结果作为每个所述虚拟地址对应的节点的节点标识。


4.根据权利要求3所述虚拟地址分配方法,其特征在于,若所述虚拟地址包括IPV4地址和IPV6地址,则所述按预设规则对所有所述虚拟地址进行排序,包括:
将每个所述虚拟地址扩充为长度为四的整型数组;其中,所述整型数组中的每个元素对应32位数据,所述IPV4地址对应的整型数组的前三个元素为0;
调用qsort函数对所有所述整型数组进行由小至大的排序。


5.根据权利要求2所述虚拟地址分配方法,其特征在于,所述从正常节点中选取候选节点,包括:
从正常节点中随机选取所述候选节点。


6.根据权利要求2所述虚拟地址分配方法,其特征在于,所述从正常节点中选取候选节点,包括:
S1:将最后一个被分配到虚拟地址的节点确定为基础节点,并将所述基础节点的节点...

【专利技术属性】
技术研发人员:翟云磊
申请(专利权)人:济南浪潮数据技术有限公司
类型:发明
国别省市:山东;37

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1