本申请涉及网络通信技术领域,尤其涉及一种主备切换方法及装置。
背景技术:
为提高网络可靠性,静默双机热备技术已经成为组网技术中常用的技术手段之一。在如图1所示的组网环境中,负载均衡设备即采用了静默双机热备技术。具体的,该组网环境涉及一双机热备系统,该系统包括在主备切换前为备设备、在主备切换后为主设备的第一负载均衡设备,以及在主备切换前为主设备、在主备切换后为备设备的第二负载均衡设备。其中,主备切换前,第二负载均衡设备处于正常工作状态,第一负载均衡设备处于静默状态,静默状态下,该设备虽已上电,但其业务接口关闭,不处理任何业务流量;当第二负载均衡设备故障时,第一负载均衡设备主动切换为主设备,打开其业务接口,并启动主动检测机制,以依据该主动检测到的各服务器状态,对接收到的业务流量进行分配。但是由于设备启动该主动检测机制、并通过该机制对各服务器状态进行检测均需要耗费一定的时间,故第一负载均衡设备无法根据该主动检测到的各服务器状态对接收到的业务流量进行及时分配,即在主备切换情况下会出现短暂的业务中断现象。其中,主动检测机制具体是指,负载均衡设备周期性地向各服务器发送健康检测报文,并以各服务器是否在限定时间内返回健康检测响应报文为依据,确定各服务器状态。
针对这一问题,现有技术通过缩短第一负载均衡设备发送健康检测报文周期的方式来加快确认各服务器状态,但此方案只能有限地缩短业务中断时间,并不能完全消除主备切换情况下可能出现的业务中断现象。
技术实现要素:
有鉴于此,本申请提供一种主备切换方法及装置,以消除主备切换情况下,可能会出现的业务中断现象。
根据本申请实施例的第一方面,提供一种主备切换的方法,所述方法应用于双机热备系统,所述双机热备系统包括:在主备切换前为备设备、在主备切换后为主设备的第一负载均衡设备,以及在主备切换前为主设备、在主备切换后为备设备的第二负载均衡设备,所述方法包括:
第一负载均衡设备在主备切换前,通过主动检测机制对各服务器状态进行持续性地主动检测,并且接收所述第二负载均衡设备发送至本地的各服务器状态;
在确定第二负载均衡设备故障时,进行主备切换;
在主备切换后,开启本地业务接口,根据所述第二负载均衡设备在故障前最近一次发送至本地的各服务器状态,对从所述业务接口接收到的业务流量进行分配;并且继续通过所述主动检测机制对各服务器状态进行持续性地主动检测;
当通过该主备切换后主动检测得到服务器状态后,根据该得到的服务器状态,对接收到的业务流量进行分配。
根据本申请实施例的第二方面,提供一种主备切换装置,所述装置应用于双机热备系统中的第一负载均衡设备,所述双机热备系统包括:在主备切换前为备设备、在主备切换后为主设备的第一负载均衡设备,以及在主备切换前为主设备、在主备切换后为备设备的第二负载均衡设备,所述装置包括:
服务器状态主动检测单元,用于通过主动检测机制对各服务器状态进行持续性的主动检测;
服务器状态接收单元,用于接收所述第二负载均衡设备发送至本地的各服务器状态;
主备切换单元,用于在确定第二负载均衡设备故障时进行主备切换;
业务接口开启单元,用于在主备切换后开启本地业务接口;
业务流量分配单元,用于在主备切换后、且通过主动检测机制检测得到服务器状态前,根据所述第二负载均衡设备在故障前最近一次发送至本地的各服务器状态,对接收到的业务流量进行分配;以及用于在主备切换后、且通过主动检测机制检测得到服务器状态之后,根据主动检测机制检测得到的各服务器状态,对接收到的业务流量进行分配。
本申请中,第一负载均衡设备在进行主备切换后,会首先根据第二负载均衡设备发送至本地的各服务器状态,对接收到的业务流量进行分配;当本地通过主动检测机制获得了服务器状态后,再根据主动检测出的服务器状态对接收到的业务流量进行分配,从而消除主备切换情况下可能会出现的业务中断现象。
附图说明
图1是本申请一种主备切换方法的一个示例性的场景示意;
图2是本申请一种主备切换方法的流程图;
图3是本申请一种主备切换方法的一个实施例流程图;
图4是本申请一种主备切换装置的一种结构示意图;
图5是本申请一种主备切换装置的另一种结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
参见图1,图1是本申请一种主备切换方法的一个示例性的场景示意图。该示意图涉及客户端设备、服务器集群以及一双机热备系统。其中,双机热备系统包括:在主备切换前为备设备、在主备切换后为主设备的第一负载均衡设备,以及在主备切换前为主设备、在主备切换后为备设备的第二负载均衡设备。具体的,第一负载均衡设备会实时接收第二负载均衡设备周期性发送的心跳报文,以在第二负载均衡设备停止发送心跳报文时,判断该第二负载均衡设备故障,并进行主备切换,成为主设备。本领域技术人员可以理解的是,在主备切换前,第二负载均衡设备处于正常工作状态,第一负载均衡设备处于静默状态,静默状态下,该设备虽已上电,但其业务接口关闭,不处理任何业务流量,且对客户端设备以及服务器集群均为不可见设备;当第二负载均衡设备故障时,第一负载均衡设备会主动切换为主设备,打开其业务接口,并启动主动检测机制,以依据该主动检测到的各服务器状态,对接收到的业务流量进行分配。其中,不可见设备可以理解为:该设备的MAC(Media Access Control,媒体访问控制)地址等信息并不为其他设备所公知,所以并不参与业务通信的过程。然而,因为第一负载均衡设备从启动主动检测机制、并通过该机制对各服务器状态进行检测,到依据该主动检测到的各服务器状态对业务流量进行分配,均需要耗费一定的时间,即第一负载均衡设备无法在主备切换后,便及时对接收到的业务流量进行分配,所以在主备切换情况下,会出现短暂的业务中断现象。其中,主动检测机制具体是指,负载均衡设备周期性地向各服务器发送健康检测报文,并以各服务器是否在限定时间内返回健康检测响应报文为依据,确定各服务器状态。
针对这一问题,现有技术通过缩短第一负载均衡设备发送健康检测报文周期的方式来加快确认各服务器状态,但此方案只能有限地缩短业务中断时间,并不能完全消除主备切换情况下可能出现的业务中断现象。
鉴于此,本申请提供了一种主备切换方法,本方法中,第一负载均衡设备在进行主备切换后,会首先根据第二负载均衡设备发送至本地的各服务器状态,对接收到的业务流量进行分配;当本地通过主动检测机制获得了服务器状态后,再根据主动检测出的服务器状态对接收到的业务流量进行分配,从而消除主备切换情况下可能会出现的业务中断现象。
为了使本技术领域的人员更好地理解本申请实施例中的技术方案,并使本申请实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对本申请实施例中技术方案作进一步详细的说明。
参见图2,图2是本申请一种主备切换方法的流程图,该流程图可以包括以下步骤:
步骤201:第一负载均衡设备在主备切换前,通过主动检测机制对各服务器状态进行持续性地主动检测,并且接收第二负载均衡设备发送至本地的各服务器状态。
本实施例中,第一负载均衡设备通过主动检测机制对各服务器状态进行持续性地主动检测,可以通过以下方式实现:第一负载均衡设备向每一服务器持续性地发送健康检测报文,并判断每一服务器是否在设定时长内返回健康检测响应报文,如果是,则确定该服务器处于健康状态,否则,处于故障状态。由于启动主动检测机制也会耗费一定的时间,故本实施例中,第一负载均衡设备会在处于备设备状态时,便通过该主动检测机制对以上各服务器状态进行检测,以节省在主备切换后开启主动检测机制的时间。
步骤202:在确定第二负载均衡设备故障时,第一负载均衡设备进行主备切换,成为主设备。
本实施例中,第一负载均衡设备会在主备切换前,持续性地监听第二负载均衡设备周期性地发送至本地的心跳报文,并在监听到该心跳报文停止时,确定该第二负载均衡设备故障,进行主备切换。
步骤203:第一负载均衡设备在主备切换后,开启本地业务接口,根据第二负载均衡设备在故障前最近一次发送至本地的各服务器状态,对从该业务接口接收到的业务流量进行分配;并且继续通过该主动检测机制对各服务器状态进行持续性地主动检测。
本实施例中,第二负载均衡设备在处于正常工作状态时,会通过本地主动检测机制对各服务器状态进行检测,并在检测到各服务器状态发生变化时,通过本地一备份接口,将变化后的各服务器状态发送至第一负载均衡设备,以使第一负载均衡设备可以在成为主设备之后,根据该服务器状态对接收到的业务流量进行临时分配。其中,第一负载均衡设备与第二负载均衡设备可分别通过本地一备份接口与对端的备份接口相连,以通过连通该两端设备备份接口的备份链路,进行数据共享。
步骤204:第一负载均衡设备当通过该主备切换后主动检测得到服务器状态后,根据该得到的服务器状态,对接收到的业务流量进行分配。
本实施例中,由于第一负载均衡设备通过主动检测机制,获得各服务器状态的时间可能并不相同,所以第一负载均衡设备并不会等到获得服务器集群中所有服务器状态后,才根据该主动检测到的服务器状态对接收到的业务流量进行分配,而是实时根据可以获得到的最新检测结果,对流量进行分配,以保证流量分配的可靠性。
通过以上方法可以看出,第一负载均衡设备在进行主备切换后,会首先根据第二负载均衡设备发送至本地的各服务器状态,对接收到的业务流量进行分配;当本地通过主动检测机制获得了服务器状态后,再根据主动检测出的服务器状态对接收到的业务流量进行分配,从而消除主备切换情况下可能会出现的业务中断现象。
参见图3,图3是本申请一种主备切换方法的一个实施例流程图,该流程图可以包括以下步骤:
步骤301:第一负载均衡设备在主备切换前,通过主动检测机制对各服务器状态进行持续性地主动检测,并为主动检测到的各服务器状态设置无效标记;接收上述第二负载均衡设备发送至本地的各服务器状态;持续性地监听上述第二负载均衡设备发送至本地的心跳报文。
本实施例中,在主备切换前,第一负载均衡设备处于静默状态,故其对于服务器集群来说为不可见设备,所以,即便该设备为节省主备切换后启动主动检测机制的时间,而在作为备设备时,便可以通过主动检测机制向服务器发送健康检测报文,但由于各服务器并不知道该设备的存在,故不会向该设备返回健康检测响应报文,以至于该设备检测到的各服务器状态并不是各服务器的真实状态。鉴于此,本实施例为第一负载均衡设备在作为备设备时检测到的各服务器状态设置了无效标记,以标记该检测到的各服务器状态为无效,使得第一负载均衡设备成为主设备后,可以依据该无效标记,忽略该不真实的检测结果,而暂时使用第二负载均衡设备在正常工作时发送至本地的各服务器状态,对接收到的业务流量进行分配,从而避免业务的中断现象。
步骤302:当所监听的心跳报文停止时,第一负载均衡设备确定第二负载均衡设备故障,并进行主备切换。
关于第一负载均衡设备可以根据接收到的心跳报文确定第二负载均衡设备的故障与否,已经在步骤202中进行了详细说明,故此不再赘述。
步骤303:第一负载均衡设备在主备切换后,开启本地业务接口,并判断第一负载均衡设备为主动检测到的服务器状态所设置的标记是无效标记还是有效标记,如果是无效标记,则根据上述第二负载均衡设备在故障前最近一次发送至本地的各服务器状态,对从上述业务接口接收到的业务流量进行分配;继续通过上述主动检测机制对各服务器状态进行持续性地主动检测,并为主动检测到的各服务器状态设置有效标记。
本实施例中,如果第一负载均衡设备判断出已为检测到的服务器状态设置的标记为有效标记时,则根据该检测到的各服务器状态,对接收到的业务流量进行分配。此时,第一负载均衡设备已经完成了一次主备切换后对各服务器状态的主动检测,且该检测结果真实有效。具体的,第一负载均衡设备可以在主备切换后,通过向外发布免费ARP(Address Resolution Protocol,地址解析协议)报文的方式,向外界通告本地的MAC地址等信息,以将各服务器返回的流量牵引至本地进行处理。比如,当负载均衡设备与服务器集群之间部署有一台交换机时,第一负载均衡设备便可以向该交换机发送携带本地MAC地址的免费ARP报文,以更新该交换机上存储的ARP表项。需要指出的是,当负载均衡设备与服务器集群之间没有部署交换机时,第一负载均衡设备也可以通过免费ARP报文,直接向服务器集群中的各服务器发布自己的MAC地址等信息。即本申请中的“发布”一词,并不限定所发布消息的接收者具体是某个设备或者是任意多个设备,而只是将该消息向外界加以通告。本实施例中,在双机热备系统中,两台负载均衡设备可以共用一个IP(Internet Protocol,网络之间互联的协议)地址,而使用不同的MAC地址。由于该系统中总有一台设备处于静默状态,故该两台设备的IP地址并不会产生冲突。当交换机中的ARP表项建立了该IP地址与第一负载均衡设备MAC地址的对应关系后,便会将接收到的流量转发至第一负载均衡设备,从而保证了该系统对业务的正常处理。
步骤304:在通过该主备切换后主动检测得到服务器状态,并判断出该主动检测到的服务器状态设置有有效标记时,第一负载均衡设备根据该得到的服务器状态,对接收到的业务流量进行分配。
本实施例中,当判断出服务器状态设置有有效标记时,第一负载均衡设备根据该得到的服务器状态,对接收到的业务流量进行分配。如果第一负载均衡设备判断出该主动检测到的服务器状态仍标记有无效标记时,便继续根据第二负载均衡设备在故障前最近一次发送至本地的各服务器状态,对从上述业务接口接收到的业务流量进行分配。
通过以上实施例可以看出,第一负载均衡设备在进行主备切换后,会首先根据第二负载均衡设备发送至本地的各服务器状态,对接收到的业务流量进行分配;当本地通过主动检测机制获得了服务器状态后,再根据主动检测出的服务器状态对接收到的业务流量进行分配,从而消除主备切换情况下可能会出现的业务中断现象。
与前述一种控制服务器关机的方法的实施例相对应,本申请还提供了一种控制服务器关机的装置的实施例。
本申请一种控制服务器关机的装置的实施例可以应用在负载均衡设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在负载均衡设备上的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。
参见图4,图4是本申请一种主备切换装置的一种结构示意图,该装置应用于双机热备系统中的第一负载均衡设备,该双机热备系统包括:在主备切换前为备设备、在主备切换后为主设备的第一负载均衡设备,以及在主备切换前为主设备、在主备切换后为备设备的第二负载均衡设备,该装置可以包括:服务器状态主动检测单元410、服务器状态接收单元420、主备切换单元440、业务接口开启单元450、业务流量分配单元460。
其中,服务器状态主动检测单元410,用于通过主动检测机制对各服务器状态进行持续性的主动检测;
服务器状态接收单元420,用于接收第二负载均衡设备发送至本地的各服务器状态;
主备切换单元440,用于在确定第二负载均衡设备故障时进行主备切换;
业务接口开启单元450,用于在主备切换后开启本地业务接口;
业务流量分配单元460,用于在主备切换后、且通过主动检测机制检测得到服务器状态前,根据第二负载均衡设备在故障前最近一次发送至本地的各服务器状态,对接收到的业务流量进行分配;以及用于在主备切换后、且通过主动检测机制检测得到服务器状态之后,根据主动检测机制检测得到的各服务器状态,对接收到的业务流量进行分配。
在本申请的一种具体实施方式中,服务器状态主动检测单元410,具体用于向每一服务器持续性地发送健康检测报文,并判断每一服务器是否在设定时长内返回健康检测响应报文,如果是,则确定该服务器处于健康状态,否则,确定该服务器处于故障状态;
业务流量分配单元460,具体用于将接收到的业务流量分配至处于健康状态的服务器。
在本申请的一种具体实施方式中,服务器状态主动检测单元410还用于为主动检测到的各服务器状态设置无效标记或者有效标记;
业务流量分配单元460,具体用于当标记设置单元为主动检测到的服务器状态所设置的标记是无效标记时,根据第二负载均衡设备在故障前最近一次发送至本地的各服务器状态,对从业务接口接收到的业务流量进行分配;以及当标记设置单元为主动检测到的服务器状态所设置的标记是有效标记时,根据该主动检测得到服务器状态,对从业务接口接收到的业务流量进行分配。
在本申请的一种具体实施方式中,上述装置还可以包括:心跳报文监听单元430,具体可参见图5。
心跳报文监听单元430,用于第一负载均衡设备在主备切换前,持续性地监听第二负载均衡设备发送至本地的心跳报文;
则主备切换单元440,具体可用于当心跳报文监听单元430所监听的心跳报文停止时,确定第二负载均衡设备故障。
在本申请的一种具体实施方式中,上述装置还可以包括:免费ARP报文发布单元460,具体可参见图5。
免费ARP报文发布单元470,用于在主备切换后,发布免费地址解析协议ARP报文,以通告本地媒体访问控制MAC地址。
本申请中,第一负载均衡设备在进行主备切换后,会首先根据第二负载均衡设备发送至本地的各服务器状态,对接收到的业务流量进行分配;当本地通过主动检测机制获得了服务器状态后,再根据主动检测出的服务器状态对接收到的业务流量进行分配,从而消除主备切换情况下可能会出现的业务中断现象。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。