集群中备机的链路检测方法及终端与流程

文档序号:12865852阅读:212来源:国知局
集群中备机的链路检测方法及终端与流程

本发明涉及集群技术领域,尤其涉及一种集群中备机的链路检测方法及终端。



背景技术:

高可用集群以减少服务中断时间为目的的服务器集群技术,它通过保护用户的业务程序对外不间断提供的服务,把因软件、硬件、人为因素造成的服务器故障对业务的影响降低到最小程度。对于网络设备而言,通信是依靠ip(internetprotocol,网络协议)地址完成的,假设某一时刻集群中主机异常断电,备用设备则使用主机之前的ip代替主机提供服务。集群中主机与备用设备需要共享同一个ip地址,这个ip地址在集群中称之为“浮动ip”,但这个ip地址在某一时刻只能在某一台设备上有效,否则会造成ip冲突。

高可用集群对外提供服务,需要实时探测链路的健康状态,来决定浮动ip在哪台设备上生效,从而最大限度保证用户网络不中断。

目前链路健康状态检查使用的手段之一就是:集群主机、备用设备分别向另外一台外部设备发送请求包,通过能否正常收到对方的应答来判断链路的健康状态。由于主机,备用设备是集群关系,假设这时刻浮动ip在其中的主机上生效,那么也就只有主机才能够收到应答数据包(网络设备依靠ip通信,没有ip地址是无法正常通信的),备用设备不能正常完成链路健康状态检查。



技术实现要素:

本发明提供一种集群中备机的链路检测方法及终端,其主要目的在于解决集群中的备机不能正常完成链路健康状态检查的技术问题。

为实现上述目的,本发明提供一种集群中备机的链路检测方法,该集群中备机的链路检测方法包括:

终端为集群的主机时,接收集群的备机发送的链路探测信息,其中,所 述备机向外部设备发送包含有所述集群的浮动ip的探测数据包,并向所述主机发送所述链路探测信息;

所述终端在接收到所述链路探测信息后,若接收到所述外部设备发送的应答数据包,且所述应答数据包与存储的特征值匹配,则判定所述备机的链路为可用链路,或者,所述终端在接收到所述链路探测信息后,若接收到所述外部设备发送的应答数据包,且所述应答数据包与存储的特征值匹配,则将所述应答数据包发送至所述备机,以供所述备机根据所述应答数据包判定所述备机的链路为可用链路。

可选地,所述集群中备机的链路检测方法还包括步骤:

所述终端为集群的主机时,所述终端广播包含有所述网关设备ip地址的arp请求,以供所述网关设备在接收到所述arp请求时,将所述网关设备的mac地址发送至所述主机;

所述终端在接收到所述mac地址时,将所述mac地址与所述网关设备的ip地址关联,并将关联的所述网关的mac地址与ip地址发送至所述备机,以供所述备机将所述探测数据包经过所述mac地址对应的网关设备发送至所述外部设备。

可选地,所述终端为集群的主机时,接收集群的备机发送的链路探测信息的步骤之后,所述集群中备机的链路检测方法还包括步骤:

若所述终端在接收到所述链路探测信息后,接收到所述外部设备发送的应答数据包,但所述应答数据包与存储的所述特征值不匹配,则判定所述备机的链路发生故障,并将备机链路故障的信息上报至集群的控制器。

可选地,所述终端为集群的主机时,接收集群的备机发送的链路探测信息的步骤之后,所述集群中备机的链路检测方法还包括步骤:

若所述终端在接收到所述链路探测信息后,未接收到所述外部设备发送的应答数据包,则检测所述终端的链路是否为可用链路;

若所述终端的链路为可用链路,则判定所述备机的链路发生故障,并将备机链路故障的信息上报至集群的控制器。

此外,为实现上述目的,本发明还提供一种集群中备机的链路检测方法,该集群中备机的链路检测方法包括:

终端为集群的备机时,向外部设备发送包含有所述集群的浮动ip的探测数据包,并向所述进群的主机发送链路探测信息,其中,所述主机在接收到所述链路探测信息后,若接收到所述外部设备发送的应答数据包,且所述应答数据包与存储的特征值匹配时,判定所述备机的链路为可用链路或者将所述应答数据包发送至所述备机;

当所述终端接收到所述主机发送的应答数据包时,判定所述备机的链路为可用链路。

此外,为实现上述目的,本发明还提供一种集群中备机的链路检测终端,该集群中备机的链路检测终端包括:

接收模块,用于当所述接收模块所在的终端作为集群的主机时,接收集群的备机发送的链路探测信息,其中,所述备机向外部设备发送包含有所述集群的浮动ip的探测数据包,并向所述主机发送所述链路探测信息;

判断模块,用于当所述判断模块所在的终端作为集群的主机时,在接收到所述链路探测信息后,若接收到所述外部设备发送的应答数据包,且所述应答数据包与存储的特征值匹配,则判定所述备机的链路为可用链路,或者,所述终端在接收到所述链路探测信息后,若接收到所述外部设备发送的应答数据包,且所述应答数据包与存储的特征值匹配,则将所述应答数据包发送至所述备机,以供所述备机根据所述应答数据包判定所述备机的链路为可用链路。

可选地,所述集群中备机的链路检测终端还包括:

广播模块,用于当所述广播模块所在的终端作为集群的主机时,广播包含有所述网关设备ip地址的arp请求,以供所述网关设备在接收到所述arp请求时,将所述网关设备的mac地址发送至所述主机;

发送模块,用于当所述发送模块所在的终端作为备机时,在接收到所述mac地址时,将所述mac地址与所述网关设备的ip地址关联,并将关联的所述网关的mac地址与ip地址发送至所述备机,以供所述备机将所述探测数据包经过所述mac地址对应的网关设备发送至所述外部设备。

可选地,所述判断模块,还用于当所述发送模块所在的终端作为主机时,若在接收到所述链路探测信息后,接收到所述外部设备发送的应答数据包, 但所述应答数据包与存储的所述特征值不匹配,则判定所述备机的链路发生故障;

所述发送模块,还用于当所述发送模块所在的终端作为主机时,在判定所述备机的链路发生故障后,将备机链路故障的信息上报至集群的控制器。

可选地,所述发送模块,还用于当所述发送模块所在的终端作为主机时,若在接收到所述链路探测信息后,未接收到所述外部设备发送的应答数据包,则检测所述终端的链路是否为可用链路;

所述判断模块,还用于当所述判断模块所在的终端作为主机时,若所述终端的链路为可用链路,则判定所述备机的链路发生故障;

所述发送模块,还用于当所述发送模块所在的终端作为主机时,在判定所述备机的链路发生故障后,将备机链路故障的信息上报至集群的控制器。

此外,为实现上述目的,本发明还提供一种集群中备机的链路检测终端,该集群中备机的链路检测终端包括:

传输模块,用于当所述传输模块所在的终端作为集群的备机时,向外部设备发送包含有所述集群的浮动ip的探测数据包,并向所述进群的主机发送链路探测信息,其中,所述主机在接收到所述链路探测信息后,若接收到所述外部设备发送的应答数据包,且所述应答数据包与存储的特征值匹配时,判定所述备机的链路为可用链路或者将所述应答数据包发送至所述备机;

执行模块,用于当所述传输模块所在的终端作为集群的备机时,在接收到所述主机发送的应答数据包时,判定所述备机的链路为可用链路。

本发明提出的集群中备机的链路检测方法及终端,在集群中,备机将带有集群的浮动ip的探测数据包发送至外部设备,以检测备机与外部设备之间的链路是否为可用链路,并且向主机发送链路探测信息以告知主机所述备机当前在进行链路检测,如果主机接收到所述外部设备发送的应答数据包,且所述应答数据包与存储的特征值匹配,则说明备机的探测数据包已经成功发送至外部设备,判定备机的链路为可用链路,本发明在备机不具有ip地址,不能够接收应答数据包时,使用具有ip地址的主机帮助备机完成链路的检测,解决了现有技术中集群中的备机不能正常完成链路健康状态检查的技术问 题。

附图说明

图1为本发明集群中备机的链路检测方法第一实施例的流程图;

图2为本发明集群中备机的链路检测方法第一实施例中集群和外部设备的网络架构示意图;

图3为本发明集群中备机的链路检测方法第二实施例的流程图;

图4为本发明集群中备机的链路检测终端第一实施例的功能模块示意图;

图5为本发明集群中备机的链路检测终端第二实施例的功能模块示意图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

本发明提供一种集群中备机的链路检测方法。参照图1所示,为本发明集群中备机的链路检测方法第一实施例的流程图。

在本实施例中,该集群中备机的链路检测方法包括:

步骤s10,终端为集群的主机时,接收集群的备机发送的链路探测信息,其中,所述备机向外部设备发送包含有所述集群的浮动ip的探测数据包,并向所述主机发送所述链路探测信息。

高可用集群是一种将多台终端组合起来为用户提供服务的集群,用于防止单点故障,集群拥有一个浮动ip地址,集群中真正为外部设备提供服务的终端作为主机,拥有该浮动的ip地址,集群中还有一台终端作为备机,用于备份主机的配置和业务,在主机发生故障的情况下,作为备机的终端接替故障的主机对外提供服务,成为主机。

而且,高可用集群对外提供服务,需要实时探测主机以及备机的链路是否处于健康状态,若主机的链路发生故障而不可用,集群的控制器就会将浮动ip分配给作为备机的终端,此时该终端成为主机对外提供服务;若当前作 为备机的终端的链路发生故障,就要从集群中的其他终端中选择一个终端作为备机。

因此,以下内容中所述主机为集群中拥有浮动ip的终端,也可以作为备机,所述备机为备份了主机的配置和业务的终端,不具有浮动ip。

集群中的备机在检测备机与外部设备之间的链路是否为可用链路时,备机向外部设备发送包含有浮动ip的探测数据包,数据包从备机对应的网口发送至外部设备,并且向主机发送链路探测信息,在一实施例中,该链路探测信息可以是该数据包的应答包的特征值,备机每发一次探测数据包,就向主机发送一次特征值,其中,针对不同的网络传输协议类型具有不同的特征值,例如对于tcp(transmissioncontrolprotocol,传输控制协议)协议来说,依靠五元组即可表示一个连接,五元组为tcp协议号、源ip、目的ip、源端口、目的端口,其中,源ip为备机的ip,由于备机并未被分配ip地址,因此将浮动ip作为源ip,目的ip为外部设备的ip地址,源端口为备机的端口,目的端口为外部设备的端口,将上述特征值发送至主机,主机在接收到特征值时,存储所述特征值,其中,由于备机上的浮动ip没有下发到网口上,可以通过在备机内核特定的点挂钩子函数,来实现探测数据包的发送。在其他实施例中,若集群使用的是其他的网络传输协议,则上述特征值按照该协议对应设置,在此不再一一列举。

在其他的实施例中,上述链路探测信息也可以只是一个表示备机发送了的探测数据包的提示信息,以提示主机备机当前在进行链路的检测,在该实时方式中,主机需要存储有该备机的端口,以及进行链路检测的外部设备的ip地址以及端口,备机可以在检测之前将这些数据发送给主机,主机在接收到之后,进行存储,那么备机则无需在每次检测时都发送特征值,或者,当备机在发送探测数据包进行检测时,上述特征值相对于上次检测发生了变化,则将变化后的特征值发送给主机,以供主机进行存储。

关于主机与备机之间的数据传输方式,可以通过集群专用通信网络实现。

参照图2所示,为本实施例中集群和外部设备的网络架构示意图,集群中的备机在向外部设备发送数据包,其数据包要经过网关才能发送出去,因此,备机在发送数据包之前需要获取到网关设备的mac(media/mediumaccesscontrol,媒体访问控制)地址,关于mac地址的获取方式可以有多 种,例如集群内其他存储有网关设备的mac地址的设备,可以将其mac地址发送给备机,或者,由主机获取到网关设备的mac地址后,将其发送给备机,备机在获取到网关设备的mac地址后,以集群的浮动ip作为源ip,将探测数据包发送至网关设备,由于探测数据包中包含有目的ip以及目的端口,网关设备将探测数据包发送至目的ip对应的设备,其中探测数据包以所述外部设备的ip地址作为目的ip。

步骤s20,所述终端在接收到所述链路探测信息后,若接收到所述外部设备发送的应答数据包,且所述应答数据包与存储的特征值匹配,则判定所述备机的链路为可用链路,或者,所述终端在接收到所述链路探测信息后,若接收到所述外部设备发送的应答数据包,且所述应答数据包与存储的特征值匹配,则将所述应答数据包发送至所述备机,以供所述备机根据所述应答数据包判定所述备机的链路为可用链路。

如果备机的链路正常,为可用链路,则外部设备会正常接收到所述探测数据包,并向备机发送一个应答数据包,该应答数据包中同样包含有目的ip,此时备机发送的探测数据包中的源ip就会成为应答数据包中的目的ip,即所述浮动ip会成为应答数据包的目的ip,由于备机并不具有ip地址,浮动ip被分配给了主机,因此,集群的网关设备在接收到应答数据包之后,会将应答数据包发送至浮动ip对应的终端,即主机。

因此,如果主机在接收到所述链路探测信息后,能够接收到外部设备发送的应答数据包,且该应答数据包与存储的特征值匹配,即该应答数据包中的目的ip为浮动ip,目的端口为备机的端口,则证明外部设备接收到备机发送的探测数据包,说明备机的链路为可用链路。

进一步地,主机在判定备机的链路为可用链路之后,可以直接将判断的结果发送至集群的控制器,控制器进一步将其发送至备机。

或者,主机将接收到的应答数据包直接发送至备机,备机在接收到所述应答数据包时,判定备机的链路为可用链路。

本实施例提出的集群中备机的链路检测方法,在集群中,备机将带有集群的浮动ip的探测数据包发送至外部设备,以检测备机与外部设备之间的链路是否为可用链路,并且向主机发送链路探测信息以告知主机所述备机当前在进行链路检测,如果主机接收到所述外部设备发送的应答数据包,且所述 应答数据包与存储的特征值匹配,则说明备机的探测数据包已经成功发送至外部设备,判定备机的链路为可用链路,本发明在备机不具有ip地址,不能够接收应答数据包时,使用具有ip地址的主机帮助备机完成链路的检测,解决了现有技术中集群中的备机不能正常完成链路健康状态检查的技术问题。

基于第一实施例提出本发明集群中备机的链路检测方法的第二实施例。参照图3所示,在本实施例中,该集群中备机的链路检测方法还包括步骤:

步骤s30,所述终端为集群的主机时,所述终端广播包含有所述网关设备ip地址的arp请求,以供所述网关设备在接收到所述arp请求时,将所述网关设备的mac地址发送至所述主机;

步骤s40,所述终端在接收到所述mac地址时,将所述mac地址与所述网关设备的ip地址关联,并将关联的所述网关的mac地址与ip地址发送至所述备机,以供所述备机将所述探测数据包经过所述mac地址对应的网关设备发送至所述外部设备。

对于主机来说,主机在向外部设备发送数据包的时候同样需要获取网关的mac地址,若主机本身存储有网关的mac地址时,可以直接使用,而在没有查询到网关设备的mac地址时,对外广播arp(addressresolutionprotocol,地址解析协议)请求,该arp请求中包含有主机自身的mac地址和ip地址,以及网关的ip地址,网关设备在接收到该arp请求时,检测到该请求中有自身的ip地址,会向主机发送应答信息,该应答信息中包含有网关本身的mac地址和ip地址,以及主机的ip地址,主机在接收到应答信息时,将应答中包括网关设备的mac地址和网关的ip地址保存到自己arp高速缓存中,将存储的arp高速缓存或者网关设备的mac地址发送给备机,从而使备机获取到网关设备的mac地址。

进一步地,对于备机来说,可以禁用浮动ip的arp应答和请求,即在接收到arp请求的广播时,不向外部发送arp应答,同时也不向外广播arp请求。

基于第一实施例提出本发明集群中备机的链路检测方法的第三实施例。在本实施例中,步骤s10之后,该方法还包括以下步骤:

所述终端为集群的主机时,若所述终端在接收到所述链路探测信息后,接收到所述外部设备发送的应答数据包,但所述应答数据包与存储的所述特征值不匹配,则判定所述备机的链路发生故障,并将备机链路故障的信息上报至集群的控制器。

如果主机接收到了外部设备发送的应答数据包,但是该应答数据包与存储的特征值不匹配,则说明接收到的应答数据包并不是对备机所发送的探测数据包的应答,可能是主机与外部设备之间的通信产生的数据包,因此,说明此时主机的链路为可用链路,而备机的链路故障,则可以将备机链路故障的信息上报至集群的控制器,以供服务器获取备机的链路健康状态,以便于选择新的备机。

进一步地,在其他实施例中,步骤s10之后,该方法还包括以下步骤:

所述终端为集群的主机时,若所述终端在接收到所述链路探测信息后,未接收到所述外部设备发送的应答数据包,则检测所述终端的链路是否为可用链路;

若所述终端的链路为可用链路,则判定所述备机的链路发生故障,并将备机链路故障的信息上报至集群的控制器。

如果主机没有接收到外部设备发送的应答数据包,在一些情况下,也可能是主机链路故障,因此,为了更加准确地检测备机链路的健康状态,如果在自接受到备机发送的特征值后的一定时长内没有接收到外部设备发送的应答数据包,则先检测主机此时的链路是否可用,可以通过向外部设备发送探测数据包的方式实现,如果,主机链路正常,则认为是备机的链路为故障链路,则将备机链路故障的信息上报至集群的控制器,以供服务器获取备机的链路健康状态,以便于选择新的备机。

以下为本发明集群中备机的链路检测方法的第四实施例,该实施例中,集群中备机的链路检测方法包括:

终端为集群的备机时,向外部设备发送包含有所述集群的浮动ip的探测数据包,并向所述进群的主机发送链路探测信息,其中,所述主机在接收到所述链路探测信息后,若接收到所述外部设备发送的应答数据包,且所述应答数据包与存储的特征值匹配时,判定所述备机的链路为可用链路或者将所 述应答数据包发送至所述备机;

当所述终端接收到所述主机发送的应答数据包时,判定所述备机的链路为可用链路。

本实施例的终端为作为备机的终端。当集群中的主机的链路发生故障而不可用,集群的控制器就会将浮动ip分配给作为备机的终端,此时该终端成为主机对外提供服务;若当前作为备机的终端的链路发生故障,就要从集群中的其他终端中选择一个终端作为备机。因此,对一个终端来说,在集群中既可以作为主机,也可以作为备机。但是在一次完整的备机链路检测中,一个终端只能为作为主机或者备机,该终端作为主机时,由其他终端作为备机,该终端作为备机时,由其他终端作为主机。

关于链路检测过程在此不再赘述,请参照上述实施例。

关于终端向外部设备发送包含有集群的浮动ip的探测数据包的步骤可以包括以下细化步骤:在所述终端为集群的备机时,获取存储的集群的网关设备的mac地址;终端将以集群的浮动ip作为源ip的探测数据包发送至mac地址对应的网关设备,以供网关设备将探测数据包发送至外部设备,其中,探测数据包中包含有外部设备的ip地址。

本发明还提出一种集群中备机的链路检测终端。

参照图4所示,为本发明集群中备机的链路检测终端第一实施例的功能模块示意图。

在该实施例中,该集群中备机的链路检测终端包括:

接收模块10,用于当所述接收模块所在的终端作为集群的主机时,接收集群的备机发送的链路探测信息,其中,所述备机向外部设备发送包含有所述集群的浮动ip的探测数据包,并向所述主机发送所述链路探测信息。

高可用集群是一种将多台终端组合起来为用户提供服务的集群,用于防止单点故障,集群拥有一个浮动ip地址,集群中真正为外部设备提供服务的终端作为主机,拥有该浮动的ip地址,集群中还有一台终端作为备机,用于备份主机的配置和业务,在主机发生故障的情况下,作为备机的终端接替故障的主机对外提供服务,成为主机。

而且,高可用集群对外提供服务,需要实时探测主机以及备机的链路是 否处于健康状态,若主机的链路发生故障而不可用,集群的控制器就会将浮动ip分配给作为备机的终端,此时该终端成为主机对外提供服务;若当前作为备机的终端的链路发生故障,就要从集群中的其他终端中选择一个终端作为备机。

因此,以下内容中所述的主机为集群中拥有浮动ip的终端,也可以作为备机,所述备机为备份了主机的配置和业务的终端,不具有浮动ip。

集群中的备机在检测备机与外部设备之间的链路是否为可用链路时,备机向外部设备发送包含有浮动ip的探测数据包,数据包从备机对应的网口发送至外部设备,并且向主机发送链路探测信息,在一实施例中,该链路探测信息可以是该数据包的应答包的特征值,备机每发一次探测数据包,就向主机发送一次特征值,其中,针对不同的网络传输协议类型具有不同的特征值,例如对于tcp(transmissioncontrolprotocol,传输控制协议)协议来说,依靠五元组即可表示一个连接,五元组为tcp协议号、源ip、目的ip、源端口、目的端口,其中,源ip为备机的ip,由于备机并未被分配ip地址,因此将浮动ip作为源ip,目的ip为外部设备的ip地址,源端口为备机的端口,目的端口为外部设备的端口,将上述特征值发送至主机,主机的接收模块10在接收到特征值时,存储所述特征值,其中,由于备机上的浮动ip没有下发到网口上,可以通过在备机内核特定的点挂钩子函数,来实现探测数据包的发送。在其他实施例中,若集群使用的是其他的网络传输协议,则上述特征值按照该协议对应设置,在此不再一一列举。

在其他的实施例中,上述链路探测信息也可以只是一个表示备机发送了的探测数据包的提示信息,以提示主机备机当前在进行链路的检测,在该实时方式中,主机需要存储有该备机的端口,以及进行链路检测的外部设备的ip地址以及端口,备机可以在检测之前将这些数据发送给主机,主机在接收到之后,进行存储,那么备机则无需在每次检测时都发送特征值,或者,当备机在发送探测数据包进行检测时,上述特征值相对于上次检测发生了变化,则将变化后的特征值发送给主机,以供主机进行存储。

关于主机与备机之间的数据传输方式,可以通过集群专用通信网络实现。

参照图2所示,为本实施例中集群和外部设备的网络架构示意图,集群中的备机在向外部设备发送数据包,其数据包要经过网关才能发送出去,因 此,备机在发送数据包之前需要获取到网关设备的mac(media/mediumaccesscontrol,媒体访问控制)地址,关于mac地址的获取方式可以有多种,例如集群内其他存储有网关设备的mac地址的设备,可以将其mac地址发送给备机,或者,由主机获取到网关设备的mac地址后,将其发送给备机,备机在获取到网关设备的mac地址后进行存储。

进一步地,该终端还包括获取模块,用于当所述获取模块所在的终端作为备机时,获取存储的所述集群网关设备的mac地址;

发送模块,用于当所述发送模块所在的终端作为备机时,将以所述集群的浮动ip作为源ip的探测数据包发送至所述mac地址对应的网关设备,以供所述网关设备将所述探测数据包发送至所述外部设备,其中,所述探测数据包中包含有所述外部设备的ip地址。

探测数据包以集群的浮动ip作为源ip,将探测数据包发送至网关设备,由于探测数据包中包含有目的ip以及目的端口,网关设备将探测数据包发送至目的ip对应的设备,其中探测数据包以所述外部设备的ip地址作为目的ip。

判断模块20,用于当所述判断模块所在的终端作为集群中的主机时,在接收到所述链路探测信息后,若接收到所述外部设备发送的应答数据包,且所述应答数据包与存储的特征值匹配,则判定所述备机的链路为可用链路,或者,所述终端在接收到所述链路探测信息后,若接收到所述外部设备发送的应答数据包,且所述应答数据包与存储的特征值匹配,则将所述应答数据包发送至所述备机,以供所述备机根据所述应答数据包判定所述备机的链路为可用链路。

如果备机的链路正常,为可用链路,则外部设备会正常接收到所述探测数据包,并向备机发送一个应答数据包,该应答数据包中同样包含有目的ip,此时备机发送的探测数据包中的源ip就会成为应答数据包中的目的ip,即所述浮动ip会成为应答数据包的目的ip,由于备机并不具有ip地址,浮动ip被分配给了主机,因此,集群的网关设备在接收到应答数据包之后,会将应答数据包发送至浮动ip对应的终端,即主机。

因此,如果主机在接收到所述链路探测信息后,能够接收到外部设备发送的应答数据包,且该应答数据包与存储的特征值匹配,即该应答数据包中的目的ip为浮动ip,目的端口为备机的端口,则证明外部设备接收到备机发 送的探测数据包,说明备机的链路为可用链路。

进一步地,主机的判断模块20在判定备机的链路为可用链路之后,主机可以直接将判断的结果发送至集群的控制器,控制器进一步将其发送至备机。

或者,主机将接收到的应答数据包直接发送至备机,备机在接收到所述应答数据包时,判定备机的链路为可用链路。

本实施例提出的集群中备机的链路检测终端,在集群中,备机将带有集群的浮动ip的探测数据包发送至外部设备,以检测备机与外部设备之间的链路是否为可用链路,并且向主机发送链路探测信息以告知主机所述备机当前在进行链路检测,如果主机接收到所述外部设备发送的应答数据包,且所述应答数据包与存储的特征值匹配,则说明备机的探测数据包已经成功发送至外部设备,判定备机的链路为可用链路,本发明在备机不具有ip地址,不能够接收应答数据包时,使用具有ip地址的主机帮助备机完成链路的检测,解决了现有技术中集群中的备机不能正常完成链路健康状态检查的技术问题。

基于第一实施例提出本发明集群中备机的链路检测终端的第二实施例。参照图5所示,在本实施例中,该集群中备机的链路检测终端还包括:

广播模块30,用于当所述广播模块所在的终端作为集群中的主机时,广播包含有所述网关设备ip地址的arp请求,以供所述网关设备在接收到所述arp请求时,将所述网关设备的mac地址发送至所述主机;

发送模块,还用于当所述发送模块所在的终端作为集群中的主机时,在接收到所述mac地址时,将所述mac地址与所述网关设备的ip地址关联,并将关联的所述网关的mac地址与ip地址发送至所述备机,以供所述备机将所述探测数据包经过所述mac地址对应的网关设备发送至所述外部设备。

对于主机来说,主机在向外部设备发送数据包的时候同样需要获取网关的mac地址,若主机本身存储有网关的mac地址时,可以直接使用,而在没有查询到网关设备的mac地址时,广播模块30对外广播arp(addressresolutionprotocol,地址解析协议)请求,该arp请求中包含有主机自身的mac地址和ip地址,以及网关的ip地址,网关设备在接收到该arp请求时,检测到该请求中有自身的ip地址,会向主机发送应答信息,该应答信息中包含有网关本身的mac地址和ip地址,以及主机的ip地址,主机在接收到应 答信息时,将应答中包括网关设备的mac地址和网关的ip地址保存到自己arp高速缓存中,发送模块将存储的arp高速缓存或者网关设备的mac地址发送给备机,从而使备机获取到网关设备的mac地址。

进一步地,对于备机来说,可以禁用浮动ip的arp应答和请求,即在接收到arp请求的广播时,不向外部发送arp应答,同时也不向外广播arp请求。

基于第一实施例提出本发明集群中备机的链路检测终端的第三实施例。在本实施例中,判断模块20,还用于当所述发送模块所在的终端作为主机时,若在接收到所述链路探测信息后,接收到所述外部设备发送的应答数据包,但所述应答数据包与存储的所述特征值不匹配,则判定所述备机的链路发生故障;

发送模块,还用于当所述发送模块所在的终端作为主机时,在判定所述备机的链路发生故障后,将备机链路故障的信息上报至集群的控制器。

如果主机接收到了外部设备发送的应答数据包,但是该应答数据包与存储的特征值不匹配,则说明接收到的应答数据包并不是对备机所发送的探测数据包的应答,可能是主机与外部设备之间的通信产生的数据包,因此,说明此时主机的链路为可用链路,而备机的链路故障,则主机的发送模块可以将备机链路故障的信息上报至集群的控制器,以供服务器获取备机的链路健康状态,以便于选择新的备机。

进一步地,在其他实施例中,发送模块,还用于当所述发送模块所在的终端作为主机时,若在接收到所述链路探测信息后,未接收到所述外部设备发送的应答数据包,则检测所述终端的链路是否为可用链路;

判断模块20,还用于当所述判断模块所在的终端作为主机时,若所述终端的链路为可用链路,则判定所述备机的链路发生故障;

发送模块,还用于当所述发送模块所在的终端作为主机时,在判定所述备机的链路发生故障后,将备机链路故障的信息上报至集群的控制器。

如果主机没有接收到外部设备发送的应答数据包,在一些情况下,也可能是主机链路故障,因此,为了更加准确地检测备机链路的健康状态,如果在自接受到备机发送的特征值后的一定时长内没有接收到外部设备发送的应 答数据包,则先检测主机此时的链路是否可用,可以通过向外部设备发送探测数据包的方式实现,如果,主机链路正常,则认为是备机的链路为故障链路,则将备机链路故障的信息上报至集群的控制器,以供服务器获取备机的链路健康状态,以便于选择新的备机。

以下为本发明集群中备机的链路检测终端的第四实施例,参照图4所示,该实施例中,集群中备机的链路检测终端包括:

传输模块,用于当所述传输模块所在的终端作为集群的备机时,向外部设备发送包含有所述集群的浮动ip的探测数据包,并向所述进群的主机发送链路探测信息,其中,所述主机在接收到所述链路探测信息后,若接收到所述外部设备发送的应答数据包,且所述应答数据包与存储的特征值匹配时,判定所述备机的链路为可用链路或者将所述应答数据包发送至所述备机;

执行模块,用于当所述传输模块所在的终端作为集群的备机时,在接收到所述主机发送的应答数据包时,判定所述备机的链路为可用链路。

本实施例为终端作为集群备机时的备机链路检测方法。当集群中的主机的链路发生故障而不可用,集群的控制器就会将浮动ip分配给作为备机的终端,此时该终端成为主机对外提供服务;若当前作为备机的终端的链路发生故障,就要从集群中的其他终端中选择一个终端作为备机。因此,对一个终端来说,在集群中既可以作为主机,也可以作为备机。但是在一次完整的备机链路检测中,一个终端只能为作为主机或者备机,该终端作为主机时,由其他终端作为备机,该终端作为备机时,由其他终端作为主机。

关于链路检测过程在此不再赘述,请参照上述实施例。

所述终端为集群的备机时,获取存储的集群的网关设备的mac地址;终端将以集群的浮动ip作为源ip的探测数据包发送至mac地址对应的网关设备,以供网关设备将探测数据包发送至外部设备,其中,探测数据包中包含有外部设备的ip地址。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

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