一种HA实现方法及装置与流程

文档序号:12789313阅读:336来源:国知局
一种HA实现方法及装置与流程

本申请涉及数据处理技术领域,尤其涉及一种HA实现方法及装置。



背景技术:

UIS(Unified Infrastructure System,统一基础架构系统)是面向云计算IaaS(Infrastructure as a Service,基础设施即服务)的融合基础架构产品,传统云计算平台中,计算、存储、网络、虚拟化分别使用不同的管理平台。UISM(UIS Manager,统一管理矩阵)将所有资源整合并统一管理,提供GUI(Graphical User Interface,图形用户接口)和简化的操作方式,使网络的连接和管理更加直观和清晰。

UISM的运行环境有两种:一种是运行在指定型号的交换机产品上,用户可通过交换机IP(Internet Protocol,互联网协议)地址登录UISM对当前环境中的资源进行管理;另一种是运行在X86环境中,用户可通过X86环境IP地址登录UISM对当前环境中的资源进行管理。第二种运行方式除提供第一种方式所有功能外,还提供对管理资源的监控功能。



技术实现要素:

本申请提供一种HA实现方法及装置,以提高HA实现的灵活性。

根据本申请实施例的第一方面,提供一种HA实现方法,应用于HA系统中的目标节点,该方法包括:

当所述目标节点初始化运行时,广播主节点探测报文;

当所述目标节点在第一预设时间内未接收到主节点发送的节点角色通知报文时,初始化所述目标节点为主节点;

当所述目标节点在所述第一预设时间内接收到主节点发送的节点角色通知报文时,根据该节点角色通知报文确定所述目标节点是否为备节点。

根据本申请实施例的第二方面,提供一种HA实现装置,应用于HA系统中的目标节点,该装置包括:

发送单元,用于当所述目标节点初始化运行时,广播主节点探测报文;

接收单元,用于接收主节点广播的节点角色通知报文以及其它节点发送的主节点探测报文;

角色管理单元,用于当所述接收单元在所述发送单元广播主节点探测报文之后的第一预设时间内未接收到主节点发送的节点角色通知报文时,初始化所述目标节点为主节点;当所述接收单元在所述发送单元广播主节点探测报文之后的第一预设时间内接收到主节点发送的节点角色通知报文时,根据该节点角色通知报文确定所述目标节点是否为备节点。

应用本申请实施例,当目标节点初始化运行时,广播主节点探测报文;当目标节点在第一预设时间内未接收到主节点发送的节点角色通知报文时,初始化目标节点为主节点;当目标节点在第一预设时间内接收到主节点发送的节点角色通知报文时,根据该节点角色通知报文确定自身是否为备节点,提高了节点角色确定的灵活性,进而提高了HA实现的灵活性。

附图说明

图1是本申请实施例提供的一种HA实现方法的流程示意图;

图2A是本申请实施例提供的一种角色初始化的示意图;

图2B是本申请实施例提供的一种自动角色切换的示意图;

图2C是本申请实施例提供的一种手动角色切换的示意图;

图2D是本申请实施例提供的一种主节点冲突处理的示意图;

图3是本申请实施例提供的一种HA实现装置的结构示意图;

图4是本申请实施例提供的另一种HA实现装置的结构示意图;

图5是本申请实施例提供的另一种HA实现装置的结构示意图;

图6是本申请实施例提供的另一种HA实现装置的结构示意图;

图7是本申请实施例提供的另一种HA实现装置的结构示意图;

图8是本申请实施例提供的另一种HA实现装置的结构示意图。

具体实施方式

在软件的可靠性和可用性方面,当UISM运行在交换机产品上时,可根据交换机的HA(High Available,高可用性集群)功能实现UISM的HA功能,进而提高UISM的可靠性和可用性。

UISM在交换机运行环境HA实现机制:在交换机运行环境中,运行UISM的交换机称为管理交换机。UISM的HA实现依赖管理交换机的HA功能(即管理交换机是否处于IRF(Intelligent Resilient Framework,智能弹性架构)环境),UISM在运行后须添加管理交换机作为管理节点,并读取管理交换机信息判断管理交换机是否处于IRF环境。当管理交换机为独立设备时,UISM不存在HA功能;当管理交换机处于IRF环境时,主备交换机上独立运行的UISM便构成HA环境,并跟随主备交换机角色自动切换UISM角色、备份相关信息等。

然而实践发现,上述HA实现方案中,UISM主备角色依赖管理交换机主备角色,无法独立确定,即管理交换机为IRF环境中的主设备时,该管理交换机运行UISM时自动成为UISM主设备;当管理交换机为IRF环境中的备设备时,该管理交换机运行UISM时自动成为UISM备设备。

为了使本技术领域的人员更好地理解本申请实施例中的技术方案,并使本申请实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对本申请实施例中技术方案作进一步详细的说明。

请参见图1,为本申请实施例提供的一种HA实现方法,其中,该HA实现方法可以应用于HA系统中的目标节点,如图1所示,该HA实现方法可以包括以下步骤:

步骤101、当目标节点初始化运行时,广播主节点探测报文,并当第一预设时间内未接收到主节点发送的节点角色通知报文,且未接收到其它节点发送的主节点探测报文时,初始化该目标节点为主节点。

本申请实施例中,目标节点并不特指某一固定的节点,而是可以指代HA系统中的任一节点,本申请实施例后续不再复述。

本申请实施例中,HA系统中的设备可以包括三种节点角色:主节点、备节点以及待选节点;

其中,主节点:活动节点,用户可登录进行相关操作;

备节点:备份节点,用于备份主节点中需要备份的数据,用户登录该节点时,会自动跳转到主节点;每个HA系统中,备节点数量可以为一个或多个;

待选节点:HA系统中除主节点和备节点之外的节点,用户登录该节点时,会自动跳转到主节点。

其中,HA系统中节点初始化运行时,均默认自身当前节点角色为待选节点。

相应地,在本申请实施例中,当目标节点初始化运行时,目标节点可以默认自身节点角色为待选节点,并主动广播主节点探测报文,以探测HA系统中是否存在主节点;其中,主节点接收到其它节点发送的主节点探测报文时,可以广播节点角色通知报文,以通知HA系统中存在主节点,其中,该节点角色通知报文中携带有主节点以及备节点的标识信息。

本申请实施例中,当目标节点在发送主节点探测报文之后的预设时间(本文中称为第一预设时间,可以根据实际应用场景设定)内接收到主节点发送的节点角色通知报文时,目标节点可以初始化自身为主节点。

值得说明的是,在本申请实施例中,当目标节点在发送主节点探测报文之后的第一预设时间内未接收到主节点响应报文,但接收到其它节点发送的主节点探测报文时,主节点可以直接初始化自身为主节点,或者可以与该其它节点选举产生主节点,例如,可以将MAC(Media Access Control,媒体访问控制)地址最小(或最大)的节点选举为主节点、或将加入HA系统最早(或最晚的节点)选举为主节点等。

步骤102、当目标节点在第一预设时间内接收到主节点发送的节点角色通知报文时,根据该节点角色通知报文确定目标节点是否为备节点。

本申请实施例中,当目标节点在第一预设时间内接收到主节点发送的节点角色通知报文时,目标节点可以根据节点角色通知报文确定自身是否为备节点;

若是,则初始化该目标节点为备节点;

否则,保持该目标节点为待选节点。

例如,主节点可以在广播的节点角色通知报文中携带HA系统中的备节点的标识信息,当目标节点接收到节点角色通知报文时,可以查询该节点角色通知报文中是否携带有目标节点的标识信息,若有,则目标节点可以确定自身为备节点;否则,确定自身不是备节点。

具体地,HA系统中的主节点可以配置HA系统中的备节点的标识信息(如MAC地址、设备名称等),当主节点接收到其它节点发送的主节点探测报文时,主节点可以广播节点角色通知报文,该节点角色通知报文中携带备节点的标识信息,以使接收到节点角色报文的节点根据备节点的标识信息确定自身是否为备节点。

相应地,当目标节点在广播主节点探测报文之后的第一预设时间内接收到节点角色通知报文时,目标节点可以获取该节点角色通知报文中携带的备节点的标识信息,并根据该备节点的标识信息判断目标节点自身是否为备节点;

当该备节点的标识信息中包括目标节点的标识信息时,目标节点确定自身为备节点,并初始化为备节点;

当该备节点的标识信息中未包括目标节点的标识信息时,目标节点确定自身不是备节点,并保持为待选节点。

同理,在本申请实施例中,当目标节点为主节点,并接收到其它节点发送的主节点探测报文时,广播节点角色通知报文,其中,该节点角色通知报文中携带有HA系统中的备节点的标识信息。

进一步地,在本申请实施例中,上述节点角色通知报文中还可以携带主节点的标识信息,以便HA系统中其它节点接收到主节点广播的节点角色通知报文时,可以记录该节点角色通知报文中携带的主节点的标识信息。

可见,在图1所示的方法流程中,各节点的角色并不是固定的,而是可以根据实际场景动态确定,提高了节点角色确定的灵活性,进而提高了HA实现的灵活性。

进一步地,在本申请实施例中,主节点除了可以在接收到主节点探测报文时广播节点角色通知报文之外,还可以定时广播节点角色通知报文,以使系统中的其它节点能够获知主节点的可用状态。

例如,主节点可以根据用户设置的心跳周期,周期性地广播节点角色通知信息。

HA系统中的其它节点接收到主节点广播的节点角色通知报文时,可以记录该节点角色通知报文中携带的主节点以及备节点的标识信息,并当根据备节点的标识信息确定自身为备节点时,向主节点回应确认在线报文。

相应地,在本申请其中一个实施例中,当目标节点为备节点,且在第二预设时间内未接收到主节点发送的节点角色通知报文时,根据自身记录的节点角色信息从备节点中选举出新的主节点;或,

当目标节点为待选节点,且在第二预设时间内未接收到主节点发送的节点角色通知报文时,根据自身记录的节点角色信息确定是否存在备节点;若存在,则向备节点发送升级主节点通知报文,以使备节点重新选举产生新的主节点;若不存在,则获取HA系统中的待选节点信息,并从待选节点中选举出新的主节点。

具体地,在该实施方式中,当目标节点在预设时间内(本文中称为第二预设时间,可以根据实际场景设定,如连续若干个心跳周期)未接收到主节点广播的节点角色通知报文时,目标节点可以认为主节点不可用,此时,需要选举出新的主节点。

当目标节点为备节点时,目标节点需要根据自身记录的备节点的标识信息从备节点中选举出新的主节点。

举例来说,假设主节点广播的节点角色通知报文中携带的主节点以及备节点的标识信息为主节点以及备节点的MAC地址,则当目标节点为备节点,且在第二预设时间内未接收到主节点发送的节点角色通知报文时,备节点可以根据自身记录的备节点的MAC地址,选择MAC地址最小的备节点作为新的主节点。

其中,当目标节点为MAC地址最小的备节点时,目标节点直接升级为主节点,并定时广播节点角色通知报文;当目标节点不是MAC地址最小的备节点时,目标节点可以向MAC地址最小的备节点发送通知报文,以使该备节点升级为主节点,并定时广播节点角色通知报文。

当目标节点为待选节点时,目标节点可以根据自身记录的节点角色信息确定是否存在备节点。

若存在备节点,则目标节点可以向备节点发送升级主节点通知报文,以使备节点重新选举产生新的主节点。

其中,备节点接收到升级主节点通知报文时,可以选举MAC地址最小的备节点作为新的主节点。

若不存在备节点,则目标节点可以广播待选节点探测报文,并根据接收到的待选节点响应报文确定HA系统中的待选节点信息,并从待选节点中选举出新的主节点,如选举MAC地址最小的待选节点为新的主节点。

其中,待选节点接收到待选节点探测报文时,需要返回待选节点响应报文,该待选节点响应报文中可以携带发送该报文的待选节点的标识信息,如MAC地址。

当目标节点为MAC地址最小的待选节点时,目标节点直接升级为新的主节点,并广播节点角色通知报文;否则,目标节点可以向MAC地址最小的待选节点发送通知报文,以通知该MAC地址最小的待选节点升级为主节点,并定时广播节点角色通知报文。

值得说明的是,在本申请实施例中,虽然上述方法实施例中以节点之间根据MAC地址或加入HA系统的时间为依据进行主节点的选举中,但是上述主节点选举方式仅仅是本申请实施例中选举主节点的具体示例,而并不是对本申请保护范围的限定,在本申请实施例中,节点之间也可以以其它方式选举主节点,例如,可以预先设置各节点的优先级,各节点之间根据预设优先级选举主节点,其中,各节点的优先级可以由用户(如管理员)随机设置,或根据各节点的性能设置,或根据各节点所对应的平台设置等,其具体实现在此不做赘述。

进一步地,在本申请实施例中,HA系统中各节点除了可以按照上述方法流程中所描述的自动进行角色切换(如备节点升级为主节点、待选节点升级为主节点等)之外,还可以由用户(如管理员)手动进行角色切换(如主备倒换、待选节点切换为备节点、备节点切换为待选节点等)。

相应地,在本申请其中一个实施例中,当目标节点为主节点,并检测到节点角色切换指令时,广播节点角色更新报文,以使其它节点在接收到该节点角色更新报文时,更新自身角色。

在该实施例中,用户可以通过在主节点的指定功能界面输入特定节点角色切换指令,手动切换HA系统中各节点的角色。

当主节点检测到节点角色切换指令时,可以广播节点角色更新报文。

当其它节点接收到主节点广播的节点角色更新报文时,可以根据该节点角色更新报文更新自身的节点角色。

例如,主节点可以在节点角色更新报文中携带角色切换后的主节点以及备节点的标识信息;其它节点接收到节点角色更新报文时,记录该节点角色更新报文中携带的角色切换后的主节点以及备节点的标识信息,并根据该角色切换后的主节点以及备节点的标识信息确定自身是否发生角色变化。

进一步地,在该实施例中,当目标节点为非主节点,并接收到节点角色更新报文时,记录该节点角色更新报文中携带的主节点以及备节点的标识信息,并根据该主节点以及备节点的标识信息确定自身角色是否发生改变;

若目标节点由备节点更新为主节点,则将自身角色切换为主节点,并向原主节点发送重启通知报文,以使原主节点进行重启;

若目标节点由备节点更新为待选节点,则将自身角色切换为待选节点;

若目标节点由待选节点更新为备节点,则将自身角色切换为备节点。

在该实施例中,若备节点角色切换为主节点,则备节点直接升级为主节点,并通知原主节点进行重启;其中,原主节点重启后,重新按照上述步骤101中描述的进行初始化处理。

若备节点切换为待选节点,则备节点需要删除自身备份的相关数据,并将节点角色切换为待选节点。

若待选节点切换为备节点,则待选节点将节点角色切换为备节点,并与主节点进行数据备份。

举例来说,假设HA系统中原主节点为节点1(假设MAC地址为MAC1),备节点为节点2(假设MAC地址为MAC2),待选节点为节点3(假设MAC地址为MAC3)。

假设某一时刻,用户在节点1上将主节点修改为节点2,备节点修改为主节点1,则节点1会广播节点角色更新报文,该节点角色更新报文中携带的主节点的标识信息为MAC2,备节点的标识信息为MAC1;当节点2接收到该节点角色更新报文时,记录该节点角色更新报文中携带的主节点以及备节点的标识信息,发现自身变为主节点,此时,节点2可以将自身的节点角色切换为主节点,并向原主节点(即节点1)发送重启通知报文;节点1接收到重启通知报文时,可以进行重启,并当重启完成后,广播主节点探测报文;节点2接收到节点1发送的主节点探测报文时,可以广播节点角色通知报文,其中,携带的主节点的标识信息为MAC2,备节点的标识信息为MAC1,节点1接收到该节点角色通知报文之后,发现自身为备节点,从而,节点1将自身节点角色切换为备节点,并与节点2进行数据备份。

值得说明的是,在本申请实施例中,当主节点检测到节点角色切换指令,且确定自身的节点角色由主节点切换为备节点时,主节点也可以直接进行角色切换,将自身的节点角色由主节点切换为备节点,而不需要等待新的主节点发送的重启通知报文时,再重启并进行角色切换,即在该情况下,主节点检测到节点角色切换指令,且确定自身的节点角色由主节点切换为备节点时,主节点可以一方面广播节点角色更新报文,一方面,将自身的节点角色由主节点切换为备节点。

此外,主节点将自身节点角色由主节点切换为备节点时,可以先进行重启,以将自身作为主节点运行时的相关程序关闭,然后再进行节点角色切换;或者,主节点也可以不进行重启,而直接进行节点角色切换。

再者,在本申请实施例中,由于节点角色自动切换和手动切换时的切换范围不一样,例如,在节点角色自动切换时,不会出现待选节点切换为备节点的情况,而节点角色手动切换时,不会出现待选节点切换为主节点的情况,因此,当HA系统中的节点接收到节点角色通知报文(对于节点角色自动切换)或节点角色更新报文(对应节点角色手动切换),并根据报文中携带的主节点以及备节点的标识信息发现节点角色发生变化,但节点角色切换情况与报文类型存在冲突,如接收到的报文为节点角色通知报文,但节点由待选节点切换为备节点;或,接收到的报文为节点角色更新报文,但节点由待选节点切换为主节点,则节点可以产生告警信息,并拒绝进行角色切换。

进一步地,在本申请实施例中,考虑到在实际应用中,由于网络环境的复杂性及网络管理员误操作等原因,可能会导致HA系统中存在两个主节点。当HA系统中出现该情况时,可以通过冲突处理机制竞选出新的主节点。

相应地,在本申请其中一个实施例中,当目标节点为主节点,且接收到其它主节点发送的节点角色通知报文时,与该其它主节点重新选举出新的主节点;若目标节点为新的主节点,则向该其它主节点发送重启通知报文,以使该其它主节点进行重启;若该其它主节点为新的主节点,则目标节点进行重启。

在该实施例中,当目标节点作为主节点,并接收到其它主节点发送的节点角色通知报文时,目标节点可以确定HA系统中存在两个主节点(即目标节点以及该其它主节点),此时,目标节点可以与该其它主节点进行新的主节点选举,例如,选举MAC地址较小的作为新的主节点。

当目标节点为新的主节点时,目标节点可以向该其它主节点发送重启通知报文;该其它主节点接收到重启通知报文时,可以进行重启,并在重启完成后,广播主节点探测报文,并根据接收到的节点角色通知报文确定自身角色。

当该其它主节点为新的主节点时,目标节点可以直接重启,并在重启完成后,广播主节点探测报文,并根据接收到的节点角色通知报文确定自身角色。

进一步地,在该实施例中,考虑到当HA环境中存在多个主节点时,可能会出现备节点或待选节点接收到的节点角色通知报文中携带的主节点以及备节点的标识信息与备节点或待选节点自身记录的主节点以及备节点的标识信息不一致的情况,此时,也需要采取相应措施以避免冲突。

相应地,当目标节点为备节点,并接收到节点角色通知报文,且该节点角色通知报文中携带的主节点的标识信息与目标节点自身记录的主节点的标识信息不一致时,则进行重启;或,

当目标节点为待选节点,并接收到节点角色通知报文,且该节点角色通知报文中携带的主节点的标识信息与目标节点自身记录的主节点的标识信息不一致时,根据该节点角色通知报文中携带的备节点的标识信息确定自身是否为备节点,若是,则进行重启;否则,保持为待选节点。

本申请实施例中,当HA系统中某节点根据接收到的节点角色通知报文或节点角色更新报文确定自身为备节点时,该备节点还需要与主节点进行数据备份。

在本申请其中一个实施例中,备节点与主节点进行数据备份,可以包括:

当目标节点为主节点,并接收到备节点发送的批量备份请求报文时,生成临时配置文件,并将临时配置文件发送给该备节点;其中,该临时配置文件为主节点当前所有备份数据的拷贝;或,

当目标节点为主节点,并检测到备份数据发生修改时,向备节点发送第一类型实时备份报文,该第一类型实时备份报文中携带有备份数据关键字、备份数据大小以及备份数据内容,以使备节点根据该备份数据大小获取该第一类型实时备份报文中的备份数据内容,并替换本地保存的备份数据中与该备份数据关键字对应的数据;或,

当目标节点为主节点,并检测到备份数据删除时,向备节点发送第二类型实时备份报文,该第二类型实时备份报文中携带有备份数据关键字,以使备节点删除本地保存的备份数据中与该备份关键字对应的数据;或,

当目标节点为主节点,并检测到新增备份数据时,向备节点发送第三类型实时备份报文,该第三类型实时备份报文中携带有新增备份数据关键字、新增备份数据大小及新增备份数据内容,以使备节点根据该新增备份数据大小获取该第三类型实时备份报文中的新增备份数据内容,并将该新增备份数据内容保存在本地。

在该实施例中,主节点与备节点之间的数据备份可以包括批量备份以及实时备份。

具体地,备节点可以主动向主节点发起批量备份请求,例如,备节点可以在初始化为备节点或者节点角色切换为备节点时,向主节点发送批量备份请求报文,以请求批量备份主节点中的备份数据。

主节点接收到备节点发送的批量备份请求报文时,可以对当前所有的备份数据进行拷贝,生成临时配置文件,并将该临时配置文件发送给该备节点。

例如,主节点生成临时配置文件之后,可以向该备节点发送通知消息,以通知该备节点临时配置文件已生成,此时,该备节点可以从主节点中下载该临时配置文件。

需要说明的是,在本申请实施例中,当主节点接收到批量备份请求报文,且主节点当前正在保存新的备份数据时,主节点可以在数据写入完成后,再生成临时配置文件;同理,当主节点正在生成临时配置文件,且检测到存在新的备份数据需要保存时,主节点可以在生成临时配置文件之后,再保存新的备份数据。

进一步地,在该实施例中,当主节点与备节点之间进行了批量备份之后,若主节点检测到备份数据发生变化如:修改或删除或新增备份数据时,主节点还可以主动向备节点进行针对发生变化的的备份数据的实时备份。

其中,当主节点检测到备份数据发生修改时,主节点可以向备节点发送实时备份报文(本文中称为第一类型实时备份报文),该第一类型实时备份报文中携带有备份数据关键字、备份数据大小以及备份数据内容;备节点接收到主节点发送的第一类型实时备份报文时,可以根据该第一类型实时备份报文中携带的备份数据大小获取该第一类型实时备份报文中携带的备份数据内容,并根据该备份数据关键字查询本地保存的备份数据,并查询到的备份数据的内容替换为第一类型实时备份报文中携带的备份数据内容。

当主节点检测到备份数据删除时,主节点可以向备节点发送实时备份报文(本文中称为第二类型实时备份报文),该第二类型实时备份报文中携带有备份数据关键字;备节点接收到第二类型实时备份报文时,可以根据该第二类型实时备份报文中携带的备份数据关键字查询本地保存的备份数据,并将匹配的备份数据删除。

当主节点检测到新增备份数据时,主节点可以向备节点发送实时备份报文(本文中称为第三类型实时备份报文),该第三类型实时备份报文中携带有新增备份数据关键字、新增备份数据大小及新增备份数据内;备节点接收到第三类型实时备份报文时,可以根据该新增备份数据大小获取该第三类型实时备份报文中的新增备份数据内容,并将该新增备份数据内容保存在本地。

进一步地,在本申请其中一个实施例中,为了细化HA系统的管理粒度,提高HA系统的控制精度,可以根据实际应用场景将HA系统中各节点划分到不同的工作组中(一个工作组可以称为一个HA域),各HA域之间以域名进行区分,拥有各自独立的主备节点,在指定范围内实现HA功能。

用户(如管理员)可根据需求将节点加入指定HA域中,每个节点只能加入一个HA域,每个HA域可以包括多个节点。节点加入HA域之后,需要记录当前所属HA域信息(如域名),涉及HA相关的操作全部在域内进行,跨域操作视为非法操作。

相应地,在该实施例中,HA系统内节点之间的交互的报文需要携带HA域信息,且各节点仅对携带的域信息与自身所属域一致的报文进行响应,对于携带的域信息与自身所属域不一致的报文,则不进行响应。

例如,当节点A接收到节点角色通知报文时,节点A需要先获取该节点角色通知报文中携带的域信息(以域名为例),并确定该域名与节点A所属域的域名是否相同;若相同,则节点A可以记录该节点角色通知报文中携带的主节点以及备节点标识信息,并根据该主节点以及备节点标识信息确定自身节点角色;若不同,或者,该节点角色通知报文中未携带域名,则认为该节点角色报文为非法报文,不对该节点角色通知报文进行响应。

值得说明的是,在该实施例中,在节点加入HA域之前,该节点的节点角色可以默认为主节点,形成一个只要一个节点的HA域,其默认域名可以为该节点的MAC地址;当该节点加入HA域时,该节点需要进行重启,并根据新的HA域进行节点角色初始化。

在该实施例中,通过HA域的划分可在一定程度上减小HA系统内出现冲突的概率(允许HA系统内存在多个主节点,但是一个HA域中仅允许存在一个主节点),当在HA域内出现冲突时,其处理方式与上述方法实施例中描述的冲突处理方式一致。

为了使本领域技术人员更好地理解本申请实施例提供的技术方案,下面结合具体实例对本申请实施例提供的技术方案进行说明。

1、角色初始化

在该实施例中,HA系统中各节点均运行UISM,各节点之间通过HUTP协议(一种基于链路层的管理协议)报文进行交互。

UISM在进程启动时,默认初始化当前节点角色为待选节点,并主动广播主节点探测报文。如果HA系统中已存在主节点,主节点在收到主节点探测报文时,可以广播节点角色通知报文,该节点角色通知报文中携带有主节点以及备节点的标识信息(该实施例中以MAC地址为例)。

当前节点在广播主节点探测报文后,如果在3秒内接收到节点角色通知报文,则记录该节点角色通知报文中携带的主节点以及备节点的MAC地址,并根据备节点的MAC地址确定自身是否为备节点;若是,则初始化为备节点;否则,保持为待选节点。

如果当前节点在发送主节点探测报文后,等待3秒仍未接收到节点角色通知报文,则认为当前系统中没有主节点,自动将当前节点初始化为主节点,其流程示意图可以如图2A所示。

2、自动切换节点角色

主节点会根据用户设置的心跳周期,定时广播节点角色通知报文,各节点收到后均会记录节点角色信息。如果备节点收到主节点广播报文,则向主节点回应确认在线报文。如果备节点或待选节点在一定时间内未收到节点角色通知报文,便会根据如下竞选规则重新竞选新的主节点。

a)节点连续三个心跳周期未收到节点角色通知报文,检查当前节点是否为备节点,如果是备节点,依据规则b竞选;否则依据规则c竞选;

b)检查当前节点在记录的备节点信息中MAC地址是否最小,如果最小则直接升级为主节点,并广播节点角色通知报文;否则选择MAC地址最小的备节点升级为新的主节点,并发送通知信息通知该节点,MAC最小的备节点收到通知信息后,继续执行规则b;

c)待选节点检查当前节点记录的节点角色信息中是否存在备节点。如果存在备节点,则分别向每一个备节点发送升级主节点通知报文,备节点收到后执行规则b,待选节点继续等待一个周期之后仍未收到节点角色通知报文,则依据规则d竞选。如果不存在备节点,则直接依据规则d竞选;

d)待选节点发送广播报文收集环境中所有待选节点信息,3秒之后从收集到的待选节点中选择MAC地址最小的节点作为新的主节点,如果当前节点即为新的主节点,则直接升级为主节点,否则发送升级主节点通知报文,MAC地址最小的待选节点收到报文后,直接升级为主节点,其示意图可以参见图2B。

3、手动切换节点角色

用户(如管理员)可以登录主节点的UISM页面手动切换节点角色,其中,UISM页面中可显示当前环境中所有运行的节点以及角色。其中,手动切换节点角色可以包括:主备倒换(主节点切换为备节点,备节点切换为主节点)、设置备节点(待选节点切换为备节点)以及取消备节点(备节点切换为待选节点)。

用户手动切换节点角色之后,原主节点(切换前的主节点)可以广播节点角色更新报文,该节点角色更新报文中携带有角色切换后的主节点(即新主节点)以及备节点的MAC地址。各节点接收到节点角色更新报文后,记录角色切换后的主节点以及备节点的MAC地址,并更新当前节点角色。

其中,若备节点角色切换为主节点,则通知原主节点重启UISM进程;原主节点重启UISM进程之后,重新进行角色初始化;

若备节点角色切换为待选节点,则删除自身保存的备份数据,并切换为待选节点;

若待选节点角色切换为备节点,则与新的主节点进行数据备份,其示意图可以参见图2C。

4、冲突处理

在实际使用中,由于网络环境的复杂性及网络管理员误操作等原因,可能会导致环境中出现两个主节点。当环境中出现此情况时,可通过冲突处理机制竞选出新的主节点。竞选规则如下:

a)比较主节点加入系统的时间,加入系统时间早的优先选举为新的主节点;如果加入系统的时间一致,则根据规则b进行竞选;

b)比较主节点MAC地址大小,MAC地址小的优先选举为新的主节点。

新主节点确定之后,如果新主节点为当前节点,则需通知对端节点重启UISM进程;如果新主节点为对端节点,则当前节点重启UISM进程。

举例来说,参见图2D,假设当前环境中出现两个主节点1和2,假设根据上述竞选规则选出的新主节点为2,那么如果节点2首先收到节点1广播的角色信息报文(情况1),竞选完成后会单播通知节点1重启UISM进程;如果节点1首先收到节点2广播的角色信息报文(情况2),竞选完成后节点1直接重启。

当一个环境中出现主节点冲突时,往往会带来备节点和待选节点的冲突。为解决这种冲突,备节点和待选节点在接收到主节点广播的节点角色通知报文后,首先会根据自身节点记录的主节点以及备节点的MAC地址以及节点角色通知报文中携带的主节点以及备节点的MAC地址检查主节点或/和备节点是否发生改变。如果备节点发现发生改变,则节点会自动重启UISM进程。如果待选节点发现发生改变,则需进一步检查当前节点角色是否发生改变,若角色改变,也会自动重启UISM进程。进程重启后的节点将重新进行角色初始化。

5、数据备份

数据备份包括实时备份和批量备份,实时备份是指将主节点UISM发生改变的配置信息(UISM需要备份的数据为UISM配置信息)实时同步至备节点;批量备份是在节点自动或手动切换为备节点时,批量备份主节点的UISM配置信息。

其中,当节点自动或手动切换为备节点时,可以向主节点发送批量备份请求报文;主节点接收到批量备份请求报文时,可以通过拷贝当前的UISM配置信息,生成临时配置文件;备节点通过下载临时配置文件完成批量备份。

主节点与备节点之间完成批量备份之后,当主节点检测到UISM配置信息发生数据发生修改时,向备节点发送第一类型实时备份报文,该第一类型实时备份报文携带有备份数据关键字、备份数据大小以及备份数据内容,以使备节点更新对应的备份数据;当主节点检测到UISM配置信息发生数据删除时,向备节点发送第二类型实时备份报文,该第二类型实时备份报文携带有备份数据关键字,以使备节点删除本地保存的与该备份数据关键字对应的备份数据;当主节点检测到新增备份数据时,向备节点发送第三类型实时备份报文,该第三类型实时备份报文中携带有新增备份数据关键字、新增备份数据大小及新增备份数据内容,以使备节点根据该新增备份数据大小获取该第三类型实时备份报文中的新增备份数据内容,并将该新增备份数据内容保存在本地。

通过以上描述可以看出,在本申请实施例提供的技术方案中,当目标节点初始化运行时,广播主节点探测报文;当目标节点在第一预设时间内未接收到主节点发送的节点角色通知报文时,初始化目标节点为主节点;当目标节点在第一预设时间内接收到主节点发送的节点角色通知报文时,根据该节点角色通知报文确定自身是否为备节点,提高了节点角色确定的灵活性,进而提高了HA实现的灵活性。

请参见图3,为本申请实施例提供的一种HA实现装置的结构示意图,其中,该HA实现装置可以应用于上述方法实施例中的目标节点,如图3所示,该HA实现装置可以包括:

发送单元310,用于当所述目标节点初始化运行时,广播主节点探测报文;

接收单元320,用于接收主节点广播的节点角色通知报文以及其它节点发送的主节点探测报文;

角色管理单元330,用于当所述接收单元320在所述发送单元310广播主节点探测报文之后的第一预设时间内未接收到主节点发送的节点角色通知报文时,初始化所述目标节点为主节点;当所述接收单元320在所述发送单元310广播主节点探测报文之后的第一预设时间内接收到主节点发送的节点角色通知报文时,根据该节点角色通知报文中携带的主节点以及备节点的标识信息确定所述目标节点是否为备节点。

请一并参见图4,为本申请实施例提供的另一种HA实现装置的结构示意图,如图4所示,在图3所示的HA实现装置的基础上,图4所示的HA实现装置还包括:

第一选举单元340,用于当所述目标节点为备节点,且所述接收单元320在第二预设时间内未接收到主节点发送的节点角色通知报文时,根据自身记录的节点角色信息从备节点中选举出新的主节点;或,当所述目标节点为待选节点,且所述接收单元在第二预设时间内未接收到主节点发送的节点角色通知报文时,根据自身记录的节点角色信息确定是否存在备节点;若存在,则向备节点发送升级主节点通知报文,以使备节点重新选举产生新的主节点;若不存在,则获取所述HA系统中的待选节点信息,并从待选节点中选举出新的主节点。

请一并参见图5,为本申请实施例提供的另一种HA实现装置的结构示意图,如图5所示,在图3所示的HA实现装置的基础上,图5所示的HA实现装置还包括:

检测单元350,用于检测节点角色切换指令;

所述发送单元310,还用于当所述目标节点为主节点,且所述检测单元360检测到节点角色切换指令时,广播节点角色更新报文,以使其它节点在接收到该节点角色更新报文时,更新自身角色。

请一并参见图6,为本申请实施例提供的另一种HA实现装置的结构示意图,如图6所示,在图5所示的HA实现装置的基础上,图6所示的HA实现装置还包括:

记录单元360,用于当所述目标节点为非主节点,且所述接收单元接收到节点角色更新报文时,记录该节点角色更新报文中携带的主节点以及备节点的标识信息;

确定单元370,用于根据该主节点以及备节点的标识信息确定自身角色是否发生改变;

所述发送单元310,还用于若所述目标节点由备节点更新为主节点,则向原主节点发送重启通知报文,以使原主节点进行重启;

所述角色管理单元330,还用于若所述目标节点由备节点更新为主节点,则将所述目标节点的角色切换为主节点;若所述目标节点由备节点更新为待选节点,则将所述目标节点的角色切换为待选节点;若所述目标节点由待选节点更新为备节点,则将所述目标节点的角色切换为备节点。

请一并参见图7,为本申请实施例提供的另一种HA实现装置的结构示意图,如图7所示,在图3所示的HA实现装置的基础上,图7所示的HA实现装置还包括:

第二选举单元380,用于当所述目标节点为主节点,且所述接收单元接收到其它主节点发送的节点角色通知报文时,与该其它主节点重新选举出新的主节点;

所述发送单元310,还用于若所述目标节点为新的主节点,则向该其它主节点发送重启通知报文,以使该其它主节点进行重启;

重启单元390,用于若该其它主节点为新的主节点,则进行重启。

在可选实施例中,所述重启单元390,还用于当所述目标节点为备节点,并所述接收单元接收到节点角色通知报文,且该节点角色通知报文中携带的主节点的标识信息与目标节点自身记录的主节点的标识信息不一致时,则进行重启;或,当所述目标节点为待选节点,并所述接收单元接收到节点角色通知报文,且该节点角色通知报文中携带的主节点的标识信息与目标节点自身记录的主节点的标识信息不一致时,根据该节点角色通知报文中携带的备节点的标识信息确定自身是否为备节点,若是,则进行重启。

请一并参见图8,为本申请实施例提供的另一种HA实现装置的结构示意图,如图8所示,在图3所示的HA实现装置的基础上,图8所示的HA实现装置还包括:

数据备份单元400,用于当所述目标节点为主节点,并接收到备节点发送的批量备份请求报文时,生成临时配置文件,并将该临时配置文件发送给该备节点;其中,该临时配置文件为主节点当前所有备份数据的拷贝;或,当所述目标节点为主节点,并检测到备份数据变化时,向备节点发送第一类型实时备份报文,该第一类型实时备份报文中携带有备份数据关键字、备份数据大小以及备份数据内容,以使备节点根据该备份数据大小获取该第一类型实时备份报文中的备份数据内容,并替换本地保存的备份数据中与该备份数据关键字对应的数据;或,当所述目标节点为主节点,并检测到备份数据删除时,向备节点发送第二类型实时备份报文,该第二类型实时备份报文中携带有备份数据关键字,以使备节点删除本地保存的备份数据中与该备份关键字对应的数据;或,当所述目标节点为主节点,并检测到新增备份数据时,向备节点发送第三类型实时备份报文,该第三类型实时备份报文中携带有新增备份数据关键字、新增备份数据大小及新增备份数据内容,以使备节点根据该新增备份数据大小获取该第三类型实时备份报文中的新增备份数据内容,并将该新增备份数据内容保存在本地。

在可选实施例中,所述HA系统中各节点被划分至一个或多个HA域,各节点之间交互的报文携带有HA域信息,各节点仅对携带的HA域信息与节点自身所属HA域的信息一致的报文进行响应。

上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。

对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

由上述实施例可见,当目标节点初始化运行时,广播主节点探测报文;当目标节点在第一预设时间内未接收到主节点发送的节点角色通知报文时,初始化目标节点为主节点;当目标节点在第一预设时间内接收到主节点发送的节点角色通知报文时,根据该节点角色通知报文确定自身是否为备节点,提高了节点角色确定的灵活性,进而提高了HA实现的灵活性。

本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。

应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1