一种分布式系统仲裁方法及装置与流程

文档序号:19127398发布日期:2019-11-13 02:15阅读:509来源:国知局
一种分布式系统仲裁方法及装置与流程

本申请涉及网络技术领域,具体而言,涉及一种分布式系统仲裁方法及装置。



背景技术:

在双机热备高可用(highavalilability,简称:ha)系统中,当联系两个节点的心跳线断开时,本来为一个整体且动作协调的ha系统就分裂为两个独立的处理节点。两个处理节点之间相互失去联系,认为对方故障,各自争抢共享资源,造成整体的处理速度降低,同时引起共享数据损坏,因此需要一个仲裁节点以合理分配节点以处理资源。

现有技术中,当需要使用交换机对两个或多个主机进行仲裁时,则需要设置一个第三主机或第三节点,增加生产成本和维护成本。



技术实现要素:

本申请的目的在于提供一种分布式系统仲裁方法及装置,在不增设新的设备的前提下,实现对分布式系统的仲裁,减少生产成本和维护成本。

为了实现上述目的,本申请实施例采用的技术方案如下:

第一方面,本申请实施例提供一种分布式系统仲裁方法,应用于包括多个主机的分布式系统,分布式系统包括第一主机和第二主机,其中,第一主机具有第一主机处理模块和第一嵌入系统处理模块。该分布式系统仲裁方法包括:当第一主机与第二主机之间的心跳线断开时,第一主机处理模块向第一嵌入系统处理模块发送第一仲裁测试报文;第一主机处理模块通过是否接收到第一嵌入系统处理模块发送的第一仲裁响应报文,确定第一主机的仲裁结果;第二主机向第一嵌入系统处理模块发送第二仲裁测试报文;第二主机通过是否接收到第一嵌入系统处理模块发送的第二仲裁响应报文,确定第二主机的仲裁结果。

可选地,第二主机具有第二主机处理模块和第二嵌入系统处理模块,该分布式系统仲裁方法还包括:当第一主机与第二主机之间的心跳线断开时,第一主机处理模块向第二嵌入系统处理模块发送第三仲裁测试报文;第一主机处理模块通过是否接收到第二嵌入系统处理模块发送的第三仲裁响应报文,确定第一主机的仲裁结果;第二主机通过第二主机处理模块向第二嵌入系统处理模块发送第四仲裁测试报文;第二主机处理模块通过是否接收到第二嵌入系统处理模块发送的第四仲裁响应报文,确定第二主机的仲裁结果。

可选地,上述第一主机处理模块通过是否接收到第一嵌入系统处理模块发送的第一仲裁响应报文,确定第一主机的仲裁结果,包括:第一嵌入系统处理模块在接收到第一仲裁测试报文时,向第一主机处理模块发送第一仲裁响应报文;当第一主机处理模块在第一预设时间内接收到第一仲裁响应报文,则确定第一主机正常;否则,确定第一主机异常。上述第二主机通过是否接收到第一嵌入系统处理模块发送的第二仲裁响应报文,确定第二主机的仲裁结果,包括:第一嵌入系统处理模块在接收到第二仲裁测试报文时,向第二主机发送第二仲裁响应报文;当第二主机在第二预设时间内接收到第二仲裁响应报文,则确定第二主机正常;否则,确定第二主机异常。

可选地,上述第一主机处理模块通过是否接收到第二嵌入系统处理模块发送的第三仲裁响应报文,确定第一主机的仲裁结果,包括:第二嵌入系统处理模块在接收到第三仲裁测试报文时,向第一主机处理模块发送第三仲裁响应报文;当第一主机处理模块在第三预设时间内接收到第三仲裁响应报文,则确定第一主机正常;否则,确定第一主机异常。上述第二主机处理模块通过是否接收到第二嵌入系统处理模块发送的第四仲裁响应报文,确定第二主机的仲裁结果,包括:第二嵌入系统处理模块接收到第四仲裁测试报文时,向第二主机处理模块发送第四仲裁响应报文;当第二主机处理模块在第四预设时间内接收到第四仲裁响应报文,则确定第二主机正常;否则,确定第二主机异常。

可选地,该分布式系统仲裁还包括:第一主机处理模块获取第一嵌入系统处理模块的处理能力信息;第一嵌入系统处理模块的处理能力信息表征第一嵌入系统处理模块的当前处理能力;当第一嵌入系统处理模块的当前处理能力满足执行仲裁功能和至少部分管理功能时,第一主机处理模块配置第一嵌入系统处理模块处于并行模式;并行模式指第一嵌入系统处理模块具有接收第一仲裁测试报文并进行响应的权限,以及执行至少部分管理功能的权限。

第二方面,为了实现上述的分布式系统仲裁方法,本申请实施例还提供一种分布式系统仲裁装置,包括第一主机和第二主机,其中,第一主机具有第一主机处理器和第一嵌入系统处理器;第一主机处理器分别与第二主机连接、第一嵌入系统处理器连接,第二主机与第一嵌入系统处理器连接。当第一主机与第二主机之间的心跳线断开时,第一主机处理器用于向第一嵌入系统处理器发送第一仲裁测试报文;第一主机处理器还用于通过是否接收到第一嵌入系统处理器发送的第一仲裁响应报文,确定第一主机的仲裁结果;第二主机用于向第一嵌入系统处理器发送第二仲裁测试报文;第二主机还用于通过是否接收到第一嵌入系统处理器发送的第二仲裁响应报文,确定第二主机的仲裁结果。

可选地,第二主机具有第二主机处理器和第二嵌入系统处理器;当第一主机与第二主机之间的心跳线断开时,第一主机处理器还用于向第二嵌入系统处理器发送第三仲裁测试报文;第一主机处理器还用于通过是否接收到第二嵌入系统处理器发送的第三仲裁响应报文,确定第一主机的仲裁结果;第二主机处理器用于向第二嵌入系统处理器发送第四仲裁测试报文;第二主机处理器还用于通过是否接收到第二嵌入系统处理器发送的第四仲裁响应报文,确定第二主机的仲裁结果。

可选地,第一嵌入系统处理器还用于在接收到第一仲裁测试报文时,向第一主机处理器发送第一仲裁响应报文;当第一主机处理器在第一预设时间内接收到第一仲裁响应报文,则确定第一主机正常;否则,确定第一主机异常。第一嵌入系统处理器还用于在接收到第二仲裁测试报文时,向第二主机发送第二仲裁响应报文;当第二主机在第二预设时间内接收到第二仲裁响应报文,则确定第二主机正常;否则,确定第二主机异常。

可选地,第二嵌入系统处理器还用于在接收到第三仲裁测试报文时,向第一主机处理器发送第三仲裁响应报文;当第一主机处理器在第三预设时间内接收到第三仲裁响应报文,则确定第一主机正常;否则,确定第一主机异常。第二嵌入系统处理器还用于接收到第四仲裁测试报文时,向第二主机处理器发送第四仲裁响应报文;当第二主机处理器在第四预设时间内接收到第四仲裁响应报文,则确定第二主机正常;否则,确定第二主机异常。

可选地,第一主机处理器还用于获取第一嵌入系统处理器的处理能力信息;第一嵌入系统处理器的处理能力信息表征第一嵌入系统处理器的当前处理能力。当第一嵌入系统处理器的当前处理能力满足执行仲裁功能和至少部分管理功能时,第一主机处理器还用于配置第一嵌入系统处理器处于并行模式;并行模式指第一嵌入系统处理器具有接收第一仲裁测试报文并进行响应的权限,以及执行至少部分管理功能的权限。

本申请提供一种分布式系统仲裁方法及装置,应用于包括多个主机的分布式系统,涉及网络技术领域。分布式系统包括第一主机和第二主机,其中,第一主机具有第一主机处理模块和第一嵌入系统处理模块,该方法包括:当第一主机与第二主机之间的心跳线断开时,第一主机处理模块向第一嵌入系统处理模块发送第一仲裁测试报文;第一主机处理模块通过是否接收到第一嵌入系统处理模块发送的第一仲裁响应报文,确定第一主机的仲裁结果;第二主机向第一嵌入系统处理模块发送第二仲裁测试报文;第二主机通过是否接收到第一嵌入系统处理模块发送的第二仲裁响应报文,确定第二主机的仲裁结果。在不增设新的设备的前提下,实现对分布式系统的仲裁。

为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

附图说明

为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它相关的附图。

图1为本申请实施例提供的一种仲裁节点放置在交换机的双机热备系统结构示意图;

图2为本申请实施例提供一种分布式系统的结构示意图;

图3为本申请实施例提供的一种分布式系统仲裁方法的流程示意图;

图4为本申请实施例提供另一种分布式系统仲裁方法的流程示意图;

图5为本申请实施例提供的另一种分布式系统仲裁方法的流程示意图;

图6为本申请实施例提供的另一种分布式系统仲裁方法的流程示意图;

图7为本申请实施例提供的一种分布式系统仲裁方法的通信交互示意图;

图8为本申请实施例提供的另一种分布式系统仲裁方法的通信交互示意图。

图中:11-第一节点,12-第二节点,13-第三节点,14-二层交换机,20-分布式系统,21-第一主机,211-第一主机处理模块,212-第一嵌入系统处理模块,22-第二主机,221-第二主机处理模块,222-第二嵌入系统处理模块,23-交换机。

具体实施方式

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。

因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。

在本申请的描述中,还需要说明的是,除非另有明确的规定和限定,术语“设置”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本申请中的具体含义。

下面结合附图,对本申请的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。

目前,为了在发生脑裂时进行仲裁,一种可能的实现方式是:两个主机通过连接的二层交换机进仲裁判断,具体的,如图1,图1为本申请实施例提供的一种仲裁节点放置在交换机的双机热备系统结构示意图。该双机热备系统包括第一节点11、第二节点12、第三节点和二层交换机14。

第一节点11与二层交换机14连接,第二节点12与二层交换机14连接,第一节点11与第二节点12通过二层交换机14实现数据的交互。当需要实现节点之间的仲裁时,则使用第三节点13,该第三节点13与二层交换机14连接,第一节点11和第二节点12在心跳线断开时,分别与第三节点13进行网络测试,会增加系统的生产成本和维护成本。

本发明的主要改进思路:利用主机中设置有嵌入系统,嵌入系统具有独立的处理器、存储器和网卡,为嵌入系统增设业务地址,该业务地址与嵌入系统原有的管理地址不同,实现两个处理节点之间的仲裁。从而避免上述不能灵活进行管理或仲裁,或是需要使用第三节点进行仲裁的问题。

需要说明的是,嵌入系统可以为远程管理系统(integratedligths-out,简称:ilo系统),也可以为设备管理系统(h3cdevicemanagement,简称:hdm系统),其名称不同,但是功能相似。相同的地方是,这些嵌入系统均只有实现管理功能需要管理地址,没有实现仲裁功能的业务地址。

具体的,为了解决上述问题,在不增加新的主机或第三节点的情况下,通过在嵌入系统上安装仲裁服务,灵活的实现管理和仲裁功能,本申请实施例提供一种可能的分布式系统,如图2,图2为本申请实施例提供一种分布式系统的结构示意图。该分布式系统20包括第一主机21和第二主机22,其中,第一主机21具有第一主机处理模块211和第一嵌入系统处理模块212。第一主机处理模块211与第一嵌入系统处理模块212连接,第二主机22与第一嵌入系统处理模块212连接。

为了实现仲裁功能,在图2的基础上,本申请实施例提供一种分布式系统仲裁方法,如图3,图3为本申请实施例提供的一种分布式系统仲裁方法的流程示意图。当第一主机与第二主机之间的心跳线断开时,该分布式系统仲裁方法包括:

步骤301、第一主机处理模块向第一嵌入系统处理模块发送第一仲裁测试报文。

当第一嵌入系统处理模块接收到第一仲裁测试报文时,则执行步骤302。

步骤302、第一嵌入系统处理模块向第一主机处理模块发送第一仲裁响应报文。

步骤303、第一主机处理模块通过是否接收到第一嵌入系统处理模块发送的第一仲裁响应报文,确定第一主机的仲裁结果。

对于上述的确定第一主机的仲裁结果,本申请实施例给出一种可能的实现方式,当第一主机处理模块接收到第一嵌入系统处理模块发送的第一仲裁响应报文时,则确定第一主机正常;当第一主机处理模块未接收到第一嵌入系统处理模块发送的第一仲裁响应报文时,则确定第一主机异常。对应的,上述确定第一主机异常时,一种可能为:第一嵌入系统处理模块未接收到第一仲裁测试报文,则不会执行上述的步骤302,故确定第一主机处于异常状态。

在执行步骤301、步骤303的同时,该分布式系统仲裁方法还包括:

步骤304、第二主机向第一嵌入系统处理模块发送第二仲裁测试报文。

当第一嵌入系统处理模块接收到第二仲裁测试报文时,则执行步骤305。

步骤305、第一嵌入系统处理模块向第二主机发送第二仲裁响应报文。

步骤306、第二主机通过是否接收到第一嵌入系统处理模块发送的第二仲裁响应报文,确定第二主机的仲裁结果。

对于上述的确定第二主机的仲裁结果,本申请实施例给出一种可能的实现方式,当第二主机接收到第一嵌入系统处理模块发送的第二仲裁响应报文时,则确定第二主机正常;当第二主机未接收到第一嵌入系统处理模块发送的第二仲裁响应报文时,则确定第二主机异常。对应的,上述定第二主机异常时,一种可能为:第一嵌入系统处理模块未接收到第二仲裁测试报文,则不会执行上述的步骤305,故确定第二主机处于异常状态。

本发明实施例提供的分布式系统仲裁方法,通过使用主机中的嵌入系统处理模块和主机处理模块,当第一主机与第二主机之间的心跳线断开时,第一主机处理模块向第一嵌入系统处理模块发送第一仲裁测试报文;第一主机处理模块通过是否接收到第一嵌入系统处理模块发送的第一仲裁响应报文,确定第一主机的仲裁结果;第二主机向第一嵌入系统处理模块发送第二仲裁测试报文;第二主机通过是否接收到第一嵌入系统处理模块发送的第二仲裁响应报文,确定第二主机的仲裁结果。在不新增设备的情况下,例如增设第三主机,实现分布式系统的仲裁,减少生产成本和维护成本。

为了实现分布式系统的仲裁,在一种可能的情况下,第二主机也可以实现仲裁的功能,在图3的基础上,本申请实施例提供另一种分布式系统仲裁方法,如图4,图4为本申请实施例提供另一种分布式系统仲裁方法的流程示意图。该第二主机22包括第二主机处理模块221和第二嵌入系统处理模块222,第二主机处理模块221与第二嵌入系统处理模块222连接,第一主机处理模块211与第二嵌入系统处理模块222连接。当第一主机与第二主机之间的心跳线断开时,上述分布式系统仲裁方法还包括:

步骤307、第一主机处理模块向第二嵌入系统处理模块发送第三仲裁测试报文。

当第二嵌入系统处理模块接收到第三仲裁测试报文时,则执行步骤308。

步骤308、第二嵌入系统处理模块向第一主机处理模块发送第三仲裁响应报文。

步骤309、第一主机处理模块通过是否接收到第二嵌入系统处理模块发送的第三仲裁响应报文,确定第一主机的仲裁结果。

对于上述的确定第一主机的仲裁结果,本申请实施例给出一种可能的实现方式,当第一主机处理模块接收到第二嵌入系统处理模块发送的第三仲裁响应报文时,则确定第一主机正常;当第一主机处理模块未接收到第二嵌入系统处理模块发送的第三仲裁响应报文时,则确定第一主机异常。对应的,上述确定第一主机异常时,一种可能为:第二嵌入系统处理模块未接收到第三仲裁测试报文,则就不会执行上述步骤308,故确定第一主机处于异常状态。

在执行步骤307、步骤309的同时,该分布式系统仲裁方法还包括:

步骤310、第二主机通过第二主机处理模块向第二嵌入系统处理模块发送第四仲裁测试报文。

当第二嵌入系统处理模块接收到第四仲裁测试报文时,则执行步骤311。

步骤311、第二嵌入系统处理模块向第二主机处理模块发送第四仲裁响应报文。

步骤312、第二主机处理模块通过是否接收到第二嵌入系统处理模块发送的第四仲裁响应报文,确定第二主机的仲裁结果。

对于上述的确定第二主机的仲裁结果,类似第一主机,当第二主机接收到第二嵌入系统处理模块发送的第四仲裁响应报文时,则确定第二主机正常;当第二主机未接收到第二嵌入系统处理模块发送的第四仲裁响应报文时,则确定第二主机异常。对应的,上述定第二主机异常时,一种可能为:第二嵌入系统处理模块未接收到第四仲裁测试报文,则不会执行上述步骤305,故确定第二主机处于异常状态。

同时在两个或多个主机上的嵌入系统处理模块上实现仲裁功能,为分布式系统的仲裁提供冗余,在不新增设备的情况下,提高分布式系统仲裁的稳定性和可靠性,减少生产成本。

为了实现分布式系统的仲裁,针对上述步骤301~303,给出一种可能的实现方式,如图5,图5为本申请实施例提供的另一种分布式系统仲裁方法的流程示意图。该分布式系统仲裁方法还包括:

步骤500、第一主机处理模块向第一嵌入系统处理模块发送第一仲裁测试报文。

步骤501、第一嵌入系统处理模块在接收到第一仲裁测试报文时,向第一主机处理模块发送第一仲裁响应报文。

步骤502、第一主机处理模块判断在第一条件下,是否接收到第一仲裁响应报文。

上述第一条件为第一主机处理模块向第一嵌入系统处理模块发送第一仲裁测试报文的时间与当前时间的差值小于或等于第一预设时间。该第一预设时间可以依据系统的精度要求进行设置,例如30秒、45秒等。

当第一主机处理模块判断在第一条件下,接收到第一仲裁响应报文时,则执行步骤503。

步骤503、确认第一主机正常。

当第一主机处理模块判断在第一条件下,未接收到第一仲裁响应报文时,则执行步骤504。

步骤504、确认第一主机异常。

在第一主机处理模块向第一嵌入系统处理模块发送第一仲裁测试报文之后,在第一预设时间内判断第一主机处理模块是否接收到对应的第一仲裁响应报文,当接收到时,则确定第一主机正常;否则,则确定第一主机异常。在分布式系统不新增设备的情况下,对于两个或多个主机,充分利用主机中已有的嵌入系统处理模块,实现了对分布式系统的仲裁。

可以详见,对于上述步骤304~306,其确定第二主机正常或异常与图5的流程类似,第二主机还用于判断在第二条件下,是否接收到第二仲裁响应报文,该第二条件为第二主机向第一嵌入系统处理模块发送第二仲裁测试报文的时间与当前时间的差值小于或等于第二预设时间;或者对于第二主机,当第二主机具有第二主机处理模块和第二嵌入系统处理模块时,针对上述步骤307~309,其确定第一主机正常或异常与图5的流程相似,第一主机还用于判断在第三条件下,是否接收到第三仲裁响应报文,该第三条件为第一主机处理模块向第二嵌入系统处理模块发送第三仲裁测试报文的时间与当前时间的差值小于或等于第三预设时间;当第二主机具有第二主机处理模块和第二嵌入系统处理模块时,针对上述步骤310~312,其确定第二主机正常或异常与图5的流程相似,第二主机处理模块还用于判断在第四条件下,是否接收到第四仲裁响应报文,该第四条件为第二主机处理模块向第二嵌入系统处理模块发送第四仲裁测试报文的时间与当前时间的差值小于或等于第四预设时间。对于不同的情况,各个预设时间可以基于具体的场景需求进行设定,此处不再赘述。

需要注意的是,在分布式系统中的两个主机均具有嵌入系统处理模块实现仲裁功能的情况下,当第一主机与第二主机之间的心跳线断开时,以第一主机为例,第一主机处理模块向第一嵌入系统处理模块和第二嵌入系统处理模块分别发送仲裁测试报文之后,只要接收到任意一个仲裁测试报文对应的仲裁响应报文,即可确认第一主机是正常状态。

例如,当第一主机与第二主机之间的心跳线断开时,第一主机处理模块向第一嵌入系统处理模块发送第一仲裁测试报文,第一主机处理模块还向第二嵌入系统处理模块发送第三仲裁测试报文;当第一主机处理模块在第一预设时间内接收到第一嵌入系统处理模块发送的第一仲裁响应报文,或第一主机处理模块在第三预设时间内接收到第二嵌入系统处理模块发送的第三仲裁响应报文时,则确认第一主机处于正常状态;当第一主机处理模块在第一预设时间内未接收到与第一仲裁测试报文对应的第一仲裁响应报文,且第一主机处理模块在第三预设时间内接收到与第三仲裁测试报文对应的第三仲裁响应报文时,则确认第一主机处于异常状态。上述的判断主机状态的方法同样适用于第二主机与第一嵌入系统处理模块、第二嵌入系统处理模块之间的交互。

为了使主机内的嵌入系统处理模块在进行仲裁时,依旧具有管理功能,以便嵌入系统处理模块在实现仲裁的同时,不影响嵌入系统处理模块实现对主机的上电、下电或重启等功能的实现,本申请实施例提供一种可能的实现方式,如图6,图6为本申请实施例提供的另一种分布式系统仲裁方法的流程示意图。该分布式系统仲裁方法还包括:

步骤313、第一主机处理模块通过管理口向第一嵌入系统处理模块发送自检命令。

步骤314、第一嵌入系统处理模块接收到自检命令后,向第一主机处理模块发送第一嵌入系统处理模块的处理能力信息。

上述第一嵌入系统处理模块的处理能力信息表征第一嵌入系统处理模块的当前处理能力,该处理能力信息可以包括但不限于:嵌入系统处理模块的cpu数量、内存大小、网络速率。当主机处理模块配置嵌入系统处理模块处于并行模式时,嵌入系统处理模块的管理功能可以根据管理需求实现嵌入系统的基本功能,例如,使用嵌入系统实现底层的bios设置、磁盘raid配置等;同时,嵌入系统处理模块的仲裁功能一直处于开启状态,等待接收主机处理模块发送的仲裁请求,以实现仲裁功能。嵌入系统处理模块可以同时实现仲裁功能和管理功能,并且主机处理模块可以配置嵌入系统处理模块的工作模式。

步骤315、第一主机处理模块判断第一嵌入系统的当前处理能力是否满足执行仲裁功能和至少部分管理功能。

当第一嵌入系统处理模块的当前处理能力满足执行仲裁功能和至少部分管理功能时,则执行步骤316。

步骤316、第一主机处理模块通过管理口向第一嵌入系统处理模块发送并行模式切换命令。

步骤317、第一嵌入系统处理模块置于并行模式。

上述并行模式指第一嵌入系统处理模块具有接收第一仲裁测试报文并进行响应的权限,以及执行至少部分管理功能的权限。

根据第一嵌入系统处理模块不同的当前处理能力,对于上述的并行模式,本申请实施例还给出一种可能的实现方式:当第一嵌入系统处理模块的当前处理能力能够完全满足全部的管理功能和仲裁功能时,第一主机处理模块通过管理口向第一嵌入系统处理模块发送第一并行模式切换指令,第一嵌入系统处理模块置于第一并行模式,第一并行模式用于指示第一嵌入系统处理模块具有执行全部的管理功能和仲裁功能的权限,即,当嵌入系统处理模块在第一并行模式下,可以在执行全部的管理功能的同时,实现仲裁功能。当第一嵌入系统处理模块的当前处理能力不能完全满足全部的管理功能和仲裁功能时,第一主机处理模块通过管理口向第一嵌入系统处理模块发送第二并行模式切换指令,第一嵌入系统处理模块置于第二并行模式,第二并行模式用于指示第一嵌入系统处理模块具有执行仲裁功能和部分管理功能的权限。为了使第一嵌入系统处理模块处于第二并行模式,需关闭部分的管理功能,例如性能监控、日志记录等,并且保留部分第一嵌入系统处理模块必须存在的管理功能,例如主机上电、下电、重启。需要注意的是,第一主机处理模块中还可以存储第一嵌入系统处理模块的当前工作模式。

在实际使用仲裁功能的过程中,由于每一次的当前需求不同,第一主机处理模块可以根据第一嵌入系统处理模块的信息处理能力对第一嵌入系统处理模块的工作模式进行动态配置,以便充分利用第一嵌入系统处理模块的硬件资源。例如,使用分布式集群仲裁节点需要16m内存和1m网络带宽,检测到第一嵌入系统处理模块的处理能力信息包括:64m内存和100m网络带宽,当其中第一嵌入系统处理模块实现全部管理功能需要32m内存和60m网络带宽时,则第一主机处理模块将第一嵌入系统处理模块配置为第一并行模式;当第一嵌入系统处理模块实现全部管理功能需要64m内存和100m网络带宽时,若其中可关闭的管理功能能够满足上述的分布式集群仲裁节点的服务需要16m内存和1m网络带宽的要求,则第一主机处理模块将第一嵌入系统处理模块配置为第二并行模式。当第一主机处理模块将第一嵌入系统处理模块配置为第二并行模式时,第一嵌入系统处理模块将禁用一部分的管理功能,以便满足实现仲裁功能的要求。本申请还提供一种示例:当需要使用集群服务管理平台的仲裁服务时,其需要512k的网络带宽,检测到嵌入系统处理模块的处理能力信息包括:64m内存和100m网络带宽,当其中嵌入系统处理模块实现全部管理功能需要32m内存和60m网络带宽时,则主机处理模块将嵌入系统处理模块配置为第一并行模式。在需要注意的是,当第二主机具有第二主机处理模块和第二嵌入系统处理模块时,第二主机处理模块也可以动态配置第二嵌入系统处理模块的工作模式,并记录第二嵌入系统处理模块的当前工作模式。

当嵌入系统处理模块处于并行模式时,嵌入系统处理模块既可以保持与主机处理模块的信令交互,还可以实现对分布式系统中各个主机的仲裁。

为了实现对嵌入系统处理模块工作模式的动态配置,本申请实施例给出一种可能的实现方式,当管理员需要使用嵌入系统的全部管理功能时,第一主机处理模块根据管理员的指令,获取第一嵌入系统处理模块的当前工作模式,若第一嵌入系统处理模块处于第一并行模式,则直接使用第一嵌入系统处理模块的管理口对应的管理地址访问第一嵌入系统处理模块;若第一嵌入系统处理模块处于第二并行模式,则参照图6,该分布式系统仲裁方法还包括:

步骤318、第一主机处理模块通过业务口向第一嵌入系统处理模块发送管理模式切换命令。

步骤319、第一嵌入系统处理模块置于管理模式。

上述管理模式用于指示第一嵌入系统处理模块仅具有执行全部管理功能的权限。需要注意的是,当管理员对第一嵌入系统处理模块的访问结束后,若是第一嵌入系统处理模块处于管理模式,则需要将第一嵌入系统处理模块恢复为第二并行模式,以便实现第一嵌入系统处理模块的仲裁功能。

为了更清晰的描述实现仲裁的方法,在图2的基础上,下面给出一种可能的实现方式,如图7,图7为本申请实施例提供的一种分布式系统仲裁方法的通信交互示意图。其中,该分布式系统包括第一主机21、第二主机22和交换机23,其中第一主机21具有第一主机处理模块211和第一嵌入系统处理模块212。第一主机处理模块211通过管理口和业务口与交换机23连接,第一嵌入系统处理模块212通过第一嵌入系统接口和交换机连接口与交换机23连接,第二主机22和交换机23连接。

上述交换机23可以为二层交换机,也可以为三层交换机,本申请不对其进行限定。

步骤900为第一主机处理模块211获取第一嵌入系统处理模块212的处理能力信息,一种可能的实现方式为:

步骤9001、第一主机处理模块211通过第二管理通道向交换机23发送自检命令。

上述的第二管理通道与第一主机处理模块211的管理口对应的管理地址对应。

步骤9002、第一嵌入系统处理模块212通过第一管理通道接收交换机23转发的自检命令。

上述第一管理通道与第一嵌入系统处理模块212的管理地址对应。

步骤9003、第一嵌入系统处理模块212通过第一管理通道向交换机23发送处理能力信息。

步骤9004、第一主机处理模块211通过第二管理通道接收交换机23转发的处理能力信息。

为了实现动态配置第一嵌入系统处理模块212的工作模式,步骤901给出一种配置第一并行模式可能的实现方式,包括:

步骤9011、第一主机处理模块211通过第一管理通道向交换机23发送第一并行模式切换指令。

步骤9012、第一嵌入系统处理模块212接收交换机23转发的第一并行模式切换指令。

第一嵌入系统处理模块212将全部管理功能和仲裁功能均开启,切换为第一并行模式;同时,第一主机处理模块211记录第一嵌入系统处理模块212的工作模式为第一并行模式。

为了实现动态配置第一嵌入系统处理模块212的工作模式,步骤902给出一种配置第二并行模式可能的实现方式,包括:

步骤9021、第一主机处理模块211通过第一管理通道向交换机23发送第二并行模式切换指令。

步骤9022、第一嵌入系统处理模块212接收交换机23转发的第二并行模式切换指令。

第一嵌入系统处理模块212将仲裁功能开启,并禁用部分管理功能,切换为第二并行模式;例如,禁用的管理功能可以为性能监控、日志记录等。同时,第一主机处理模块211记录第一嵌入系统处理模块212的工作模式为第二并行模式。

为了实现动态配置第一嵌入系统处理模块212的工作模式,当第一嵌入系统处理模块212处于第二并行模式时,步骤903给出一种配置管理模式可能的实现方式,包括:

步骤9031、第一主机处理模块211通过第一业务通道向交换机23发送管理模式切换指令。

上述第一业务通道与第一主机处理模块211的业务口对应的业务地址对应。

步骤9032、第一嵌入系统处理模块212通过第二业务通道接收交换机23转发的管理模式切换指令。

上述第二业务通道与第一嵌入系统处理模块212增设的业务地址对应。

第一嵌入系统处理模块212将全部管理功能开启,并禁用仲裁功能,切换为管理模式。同时,第一主机处理模块211记录第一嵌入系统处理模块212的工作模式为管理模式。

为了判断第一主机21与第二主机22之间的心跳线是否断开,本申请实施例还提供了一种可能的实现方式,请参见图7,该分布式系统仲裁方法还包括:

步骤9041、第一主机处理模块211通过第一业务通道向交换机23发送第一心跳测试报文。

步骤9042、第二主机22通过第三业务通道接收交换机23转发的第一心跳测试报文。

其中,上述的第三业务通道与第二主机22的业务地址对应。

步骤9043、第二主机22依据第一心跳测试报文,通过第三业务通道向交换机23发送第一心跳响应报文。

步骤9044、第一主机处理模块211通过第一业务通道接收交换机23转发的第一心跳响应报文。

需要注意的是,在步骤9041之后,第一主机处理模块211在一个预设时长内判断是否接收到与第一心跳测试报文对应的第一心跳响应报文,当第一主机处理模块211在预设时长内接收到第一心跳响应报文时,则确认第一主机21与第二主机22之间的心跳线正常;否则,则确定第一主机21与第二主机22之间的心跳线异常。其中,在确定第一主机21与第二主机22之间的心跳线异常时,包括一种可能出现的情况:执行步骤9041之后,第二主机22未接收交换机23转发的第一心跳测试报文,则不会执行步骤9043~9044,即,第一主机处理模块211在预设时长内不能接收到第一心跳响应报文,确定第一主机21与第二主机22之间的心跳线异常。

为了判断第一主机21与第二主机22之间的心跳线是否断开,本申请实施例还提供了另一种可能的实现方式,请参见图7,该分布式系统仲裁方法还包括:

步骤9045、第二主机22通过第三业务通道向交换机23发送第二心跳测试报文。

步骤9046、第一主机处理模块211通过第一业务通道接收交换机23转发的第二心跳测试报文。

步骤9047、第一主机处理模块211依据第二心跳测试报文,通过第一业务通道向交换机23发送第二心跳响应报文。

步骤9048、第二主机22通过第三业务通道接收交换机23转发的第二心跳响应报文。

需要注意的是,在步骤9045之后,第二主机22在一个预设时长内判断是否接收到与第二心跳测试报文对应的第二心跳响应报文,当第二主机22在预设时长内接收到第二心跳响应报文时,则确认第一主机21与第二主机22之间的心跳线正常;否则,则确定第一主机21与第二主机22之间的心跳线异常。其中,在确定第一主机21与第二主机22之间的心跳线异常时,包括一种可能出现的情况:执行步骤9045之后,第一主机处理模块211未接收交换机23转发的第二心跳测试报文,则不会执行步骤9047~9048,即,第二主机22在预设时长内不能接收到第二心跳响应报文,确定第一主机21与第二主机22之间的心跳线异常。对于步骤9041~9948实现心跳线检测的过程,只要任一主机在发送心跳测试报文后,在预设时长内未收到对应的心跳响应报文,即认为心跳线断开。心跳线检测的过程可以按照预设周期进行检测,预设周期可以根据系统精度需求进行设定,例如1小时、3小时等。

当第一嵌入系统处理模块212处于上述的第一并行模式或第二并行模式时,若第一主机21与第二主机22的心跳线断开,为了判断分布式系统中主机的状态,则通过判断是第一业务通道异常、还是第三业务通道异常进行确认:第一业务通道异常时,则第一主机21正常;第三业务通道异常时,则第二主机22异常。步骤905~908给出一种可能的实现方式,包括:

步骤9051、第一主机处理模块211通过第一业务通道向交换机23发送第一仲裁测试报文。

步骤9052、第一嵌入系统处理模块212通过第二业务通道接收交换机23转发的第一仲裁测试报文。

步骤9053、第一嵌入系统处理模块212依据第一仲裁测试报文通过第二业务通道向交换机23发送第一仲裁响应报文。

步骤9054、第一主机处理模块211通过第一业务通道接收交换机23转发的第一仲裁响应报文。

当第一主机处理模块211接收到第一仲裁响应报文时,则确认第一业务通道正常,即确认第一主机21正常。

步骤906、第一主机处理模块211通过第一业务通道向交换机23发送第一仲裁测试报文。

当第一主机处理模块211在第一预设时间内未接收到第一仲裁响应报文时,则确认第一业务通道异常,即确认第一主机21异常。

步骤9071、第二主机22通过第三业务通道向交换机23发送第二仲裁测试报文。

步骤9072、第一嵌入系统处理模块212通过第二业务通道接收交换机23转发的第二仲裁测试报文。

步骤9073、第一嵌入系统处理模块212依据第二仲裁测试报文,通过第二业务通道向交换机23发送第二仲裁响应报文。

步骤9074、第二主机22通过第三业务通道接收交换机23转发的第二仲裁响应报文。

当第二主机22接收到第二仲裁响应报文时,则确认第三业务通道正常,即确认第二主机22正常。

步骤908、第二主机22通过第三业务通道向交换机23发送第二仲裁测试报文。

当第二主机22在第二预设时间内未接收到第二仲裁响应报文时,则确认第三业务通道异常,即确认第二主机22异常。

在另一种情况下,以第二主机22具有第二主机处理模块221和第二嵌入系统处理模块222为例,在图7的基础上,给出一种使用两次仲裁的实现方式,如图8,图8为本申请实施例提供的另一种分布式系统仲裁方法的通信交互示意图。当第二嵌入系统处理模块222处于上述的第一并行模式或第二并行模式时,若第一主机21与第二主机22的心跳线断开,为了判断分布式系统中主机的状态,则通过判断是第一业务通道异常、还是第三业务通道异常进行确认:第一业务通道异常时,则第一主机21正常;第三业务通道异常时,则第二主机22异常。步骤909~912给出一种可能的实现方式,包括:

步骤9091、第一主机处理模块211通过第一业务通道向交换机23发送第三仲裁测试报文。

步骤9092、第二嵌入系统处理模块222通过第二业务通道接收交换机23转发的第三仲裁测试报文。

步骤9093、第二嵌入系统处理模块222依据第三仲裁测试报文通过第二业务通道向交换机23发送第三仲裁响应报文。

步骤9094、第一主机处理模块211通过第一业务通道接收交换机23转发的第三仲裁响应报文。

当第一主机处理模块211接收到第三仲裁响应报文时,则确认第一业务通道正常,即确认第一主机21正常。

步骤910、第一主机处理模块211通过第一业务通道向交换机23发送第三仲裁测试报文。

当第一主机处理模块211在第三预设时间内未接收到第三仲裁响应报文时,则确认第一业务通道异常,即确认第一主机21异常。

步骤9111、第二主机处理模块221通过第三业务通道向交换机23发送第四仲裁测试报文。

步骤9112、第二嵌入系统处理模块222通过第二业务通道接收交换机23转发的第四仲裁测试报文。

步骤9113、第二嵌入系统处理模块222依据第四仲裁测试报文,通过第二业务通道向交换机23发送第四仲裁响应报文。

步骤9114、第二主机处理模块221通过第三业务通道接收交换机23转发的第四仲裁响应报文。

当第二主机处理模块221接收到第四仲裁响应报文时,则确认第三业务通道正常,即确认第二主机22正常。

步骤912、第二主机处理模块221通过第三业务通道向交换机23发送第四仲裁测试报文。

当第二主机处理模块221在第四预设时间内未接收到第四仲裁响应报文时,则确认第三业务通道异常,即确认第二主机22异常。

需要说明的是,上述的第一预设时间、第二预设时间、第三预设时间、第四预设时间可以是相同的,也可以是不同的。

当使用设置在主机里的嵌入系统处理模块来对两个或多个主机进行仲裁时,主机处理模块可以根据当前资源需求动态配置嵌入系统处理模块的工作模式,同时实现主机处理模块和嵌入系统处理模块的管理功能的信令交互,在不用增加新的设备的情况下,实现仲裁,减少生产成本和维护成本,灵活的分配处理资源以实现管理功能和仲裁功能。

为了实现分布式系统的仲裁,本申请实施例还提供一种分布式系统仲裁装置,以实现上述的分布式系统仲裁方法,参见图2,为了实现分布式系统的仲裁,该分布式系统仲裁装置包括:第一主机和第二主机,其中,第一主机具有第一主机处理器和第一嵌入系统处理器;第一主机处理器分别与第二主机连接、第一嵌入系统处理器连接,第二主机与第一嵌入系统处理器连接。为了实现分布式系统的仲裁,上述第一主机处理模块211和第一嵌入系统处理模块212的功能可以通过第一主机处理器、第一嵌入系统处理器、电源、存储器、电路板等实现。

当第一主机与第二主机之间的心跳线断开时,第一主机处理器用于向第一嵌入系统处理器发送第一仲裁测试报文;第一主机处理器还用于通过是否接收到第一嵌入系统处理器发送的第一仲裁响应报文,确定第一主机的仲裁结果。

第二主机用于向第一嵌入系统处理器发送第二仲裁测试报文;第二主机还用于通过是否接收到第一嵌入系统处理器发送的第二仲裁响应报文,确定第二主机的仲裁结果。

使用主机中已有的嵌入系统处理模块进行仲裁,在不新增设备的情况下,例如增设第三主机,实现分布式系统的仲裁,减少生产成本。

可选地,为了实现分布式系统的仲裁,第一嵌入系统处理器还用于在接收到第一仲裁测试报文时,向第一主机处理器发送第一仲裁响应报文;当第一主机处理器在第一预设时间内接收到第一仲裁响应报文,则确定第一主机正常;否则,确定第一主机异常;

第一嵌入系统处理器还用于在接收到第二仲裁测试报文时,向第二主机发送第二仲裁响应报文;当第二主机在第二预设时间内接收到第二仲裁响应报文,则确定第二主机正常;否则,确定第二主机异常。

使用一个主机的嵌入系统处理器进行仲裁,在不新增设备的情况下,实现了分布式系统的仲裁,减少了生产成本。

在另一种情况下,以第二主机也可以实现仲裁为例,请参见图4,第二主机具有第二主机处理器和第二嵌入系统处理器,第一主机处理器通过业务口与第二嵌入系统处理器连接,第二嵌入系统处理器分别与第二主机处理器的管理口和业务口连接。为了实现分布式系统的仲裁,上述第二主机处理模块221和第二嵌入系统处理模块222的功能可以通过第二主机处理器、第二嵌入系统处理器、电源、存储器、电路板等实现。

当第一主机与第二主机之间的心跳线断开时,第一主机处理器还用于向第二嵌入系统处理器发送第三仲裁测试报文;第一主机处理器还用于通过是否接收到第二嵌入系统处理器发送的第三仲裁响应报文,确定第一主机的仲裁结果。

第二主机处理器用于向第二嵌入系统处理器发送第四仲裁测试报文;第二主机处理器还用于通过是否接收到第二嵌入系统处理器发送的第四仲裁响应报文,确定第二主机的仲裁结果。

在第二主机具有第二嵌入系统处理器和第二主机处理器时,为了实现分布式系统的仲裁,第二嵌入系统处理器还用于在接收到第三仲裁测试报文时,向第一主机处理器发送第三仲裁响应报文;当第一主机处理器在第三预设时间内接收到第三仲裁响应报文,则确定第一主机正常;否则,确定第一主机异常。

第二嵌入系统处理器还用于接收到第四仲裁测试报文时,向第二主机处理器发送第四仲裁响应报文;当第二主机处理器在第四预设时间内接收到第四仲裁响应报文,则确定第二主机正常;否则,确定第二主机异常。

使用分布式系统中多个主机的嵌入系统处理器进行仲裁,为分布式系统的仲裁提供了冗余,提高了仲裁可信度。

优选地,为了实现在同一主机中,主机处理器根据需求动态配置嵌入系统处理器的工作模式,第一主机处理器还用于获取第一嵌入系统处理器的处理能力信息;第一嵌入系统处理器的处理能力信息表征第一嵌入系统处理器的当前处理能力。

当第一嵌入系统处理器的当前处理能力满足执行仲裁功能和至少部分管理功能时,第一主机处理器还用于配置第一嵌入系统处理器处于并行模式;并行模式指第一嵌入系统处理器具有接收第一仲裁测试报文并进行响应的权限,以及执行至少部分管理功能的权限。

主机处理其根据嵌入系统处理器的当前处理能力,以及用户的需求,动态配置嵌入系统处理器的工作模式,充分利用嵌入系统处理器的硬件资源,减少使用成本。

综上所述,本申请提供一种分布式系统仲裁方法及装置,应用于包括多个主机的分布式系统,涉及网络技术领域。分布式系统包括第一主机和第二主机,其中,第一主机具有第一主机处理模块和第一嵌入系统处理模块,该方法包括:当第一主机与第二主机之间的心跳线断开时,第一主机处理模块向第一嵌入系统处理模块发送第一仲裁测试报文;第一主机处理模块通过是否接收到第一嵌入系统处理模块发送的第一仲裁响应报文,确定第一主机的仲裁结果;第二主机向第一嵌入系统处理模块发送第二仲裁测试报文;第二主机通过是否接收到第一嵌入系统处理模块发送的第二仲裁响应报文,确定第二主机的仲裁结果。在不增设新的设备的前提下,实现对分布式系统的仲裁。

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