一种避免集群中IP地址冲突的方法及装置与流程

文档序号:12730172阅读:350来源:国知局
一种避免集群中IP地址冲突的方法及装置与流程

本发明涉及通信技术领域,具体涉及一种避免集群中IP地址冲突的方法及装置。



背景技术:

集群包括一个主节点和多个备节点。集群正常建立好之后,主节点在本地网卡上被配置为集群IP地址。当主节点异常断电时,通过心跳检测机制,备节点感知到主节点故障,于是其中一个备节点被选举为新的主节点,为了接替主节点的工作,新的主节点的本地网卡上也被配置为集群IP地址。

然而如果出现异常的情况不是主节点硬件故障,而是主节点内的应用服务出现了异常但该主节点的网卡依然是连接的,这种情况下,在新的主节点网卡配置了同样的集群IP地址后,集群内会有两个节点的网卡使用相同的集群IP地址,这样在响应指向集群IP地址的ARP(Address Resolution Protocol,地址解析协议)请求的时候,会有两个节点做出ARP应答,造成IP地址冲突,这样就会出现客户端依然访问故障节点的情况,导致集群服务失效。



技术实现要素:

本发明提供的一种避免集群中IP地址冲突的方法及装置,以解决上述的在主节点应用服务异常但网卡依然是连接的情况下,选取出新的主节点后,存在集群中IP地址冲突使得集群服务失效的问题。

依据本发明的一个方面,提供了一种避免集群中IP地址冲突的方法,所述方法应用于集群中的节点,所述节点配置有所述集群的集群IP地址,所述方法包括:

在所述节点作为主节点时,生成重定向规则,所述重定向规则用于指示在接收到目的IP地址为所述集群IP地址的报文时,由所述节点处理所述报文;

开启所述集群的ARP功能,所述集群的ARP功能为:向客户端发送所述集群的ARP信息,所述集群的ARP信息包括:所述集群IP地址和所述节点的MAC地址;

监测所述节点向所述客户端提供的应用服务的状态;

在监测到所述应用服务出现异常时,关闭所述集群的ARP功能,并强制终止所述应用服务以触发所述集群的主备节点切换。

依据本发明的另一方面,提供了一种避免集群中IP地址冲突的装置,所述装置应用于集群中的节点,所述节点配置有所述集群的集群IP地址,所述装置包括:

重定向规则生成单元,用于在所述节点作为主节点时,生成重定向规则,所述重定向规则用于指示在接收到目的IP地址为所述集群IP地址的报文时,由所述节点处理所述报文;

ARP功能开启单元,用于开启所述集群的ARP功能,所述集群的ARP功能为:向客户端发送所述集群的ARP信息,所述集群的ARP信息包括:所述集群IP地址和所述节点的MAC地址;

服务状态监测单元,用于监测所述节点向所述客户端提供的应用服务的状态;

ARP功能关闭单元,用于在监测到所述应用服务出现异常时,关闭所述集群的ARP功能,并强制终止所述应用服务以触发所述集群的主备节点切换。

依据本发明的再一个方面,提供了一种集群节点,所述集群节点包括如前所述的避免集群中IP地址冲突的装置。

本发明的有益效果是:

集群中的节点配置有集群的集群IP地址,当某一节点作为主节点时,生成重定向规则,使得在接收到目的IP地址为集群IP地址的报文时,由该节点处理报文;并开启集群的ARP功能,向客户端发送所述集群的ARP信息,因为已经生成重定向规则,这里的集群的ARP信息是由该节点发送;一旦该节点向客户端提供的应用服务出现异常,就关闭集群的ARP功能,并强制终止该应用服务以触发集群的主备节点切换,此时即使该节点还处于硬件连接的状态,也无法再向客户端发送集群的ARP信息。当新的主节点选出后,对新的主节点进行同样的配置,并由新的主节点进行报文处理,就不会存在集群中两个节点同时发送集群的ARP信息的情况。可见,本方案是通过生成重定向规则,并开启集群的ARP功能,在应用服务出现异常时,关闭集群的ARP功能,并强制关闭应用服务以触发集群的主备节点切换,有效地避免了集群中IP地址冲突的问题。

上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:

图1为本发明一个实施例提供的一种避免集群中IP地址冲突的方法的流程示意图;

图2为本发明一个实施例提供的一种避免集群中IP地址冲突的装置的结构示意图;

图3为本发明一个实施例的提供的一种集群节点的结构示意图。

具体实施方式

本发明的设计构思是:集群中的节点配置有集群的集群IP地址,当某一节点作为主节点后,生成重定向规则,由该节点处理目的IP地址为集群IP地址的报文;并开启集群的ARP功能,使该节点对携带集群IP地址的ARP请求报文做应答。一旦该节点提供的应用服务出现异常时,关闭集群的ARP功能,并强制终止应用服务以触发集群的主备节点切换。本发明的方案,可避免集群中的IP地址冲突,同时也可以保证客户端学习到集群的ARP信息。

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。

参见图1,为本发明一个实施例提供的一种避免集群中IP地址冲突的方法的流程示意图。如图1所示,方法应用于集群中的节点,该节点配置有集群的集群IP地址,该方法包括:

步骤S110,在节点作为主节点时,生成重定向规则,重定向规则用于指示在接收到目的IP地址为集群IP地址的报文时,由节点处理该报文。

在集群中的节点作为主节点时,可以是集群进行初始配置时,也可以主备切换触发后,主节点重新确定时。

本实施例中采用的重定向规则,是用于指示在接收到目的IP地址为集群IP地址的报文时,由该节点处理报文,即将目的IP地址为集群IP地址的报文,将该报文的目的地址修改为该节点本身的IP地址。

在本发明的一个实施例中,重定向规则具体为NAT(Network Address Translation,网络地址转换)表项,NAT表项中包括:集群IP地址与节点的IP地址的对应关系。

本实施例中的NAT表项,具体是用于在接收到目的地址为集群IP地址的报文后,根据NAT表项将接收到的报文的目的IP地址替换为节点的IP地址,以使节点处理接收到的报文。

需要说明的是,在本实施例中集群中的每个节点均配置有集群IP地址,但该集群IP地址并不是配置于网卡的,可以认为该集群IP地址在没有生成该重定向规则的节点上未生效,不能使用。因此需要通过生成该重定向规则,以使该集群IP地址生效。

步骤S120,开启集群的ARP功能,集群的ARP功能为:向客户端发送集群的ARP信息,集群的ARP信息包括:集群IP地址和节点的MAC地址。

这里开启集群的ARP功能,可以包括:节点广播ARP报文。该ARP报文为免费ARP报文,该免费ARP报文中携带该集群的ARP信息,即集群IP地址和该节点的MAC地址。通过广播该ARP报文,可以主动通知客户端对自身维护的ARP表进行更新。

另外,若新上线一客户端,该客户端未接收过该节点发送的免费ARP报文,通常情况下,客户端为获得集群IP地址对应的MAC地址,会广播携带集群IP地址的ARP请求报文,以获得集群的ARP信息。

基于此,该集群的ARP功能,还可以包括节点接收到客户端发送的携带集群IP地址的ARP请求报文时,向客户端发送ARP应答报文,该ARP应答报文携带集群的ARP信息,即集群IP地址和该节点的MAC地址。这样该新上线的客户端可以获得集群的ARP信息,以保证该客户端与集群正常通信。

步骤S130,监测节点向客户端提供的应用服务的状态。

因为节点提供的应用服务可以包括单线程和多线程两种情况,在本发明的另一个实施例中,监测节点向客户端提供的应用服务的状态包括:当监测到应用服务的任一线程发生异常时,确定应用服务出现异常。

具体地,在节点提供单线程的应用服务时,若线程异常,则无法提供正常的应用服务,可以确定应用服务出现异常。在节点提供多线程的应用服务时,当预设时间段内多线程中的任意一个或者多个线程异常,便确定应用服务出现异常。

步骤S140,在监测到应用服务出现异常时,关闭集群的ARP功能,并强制终止应用服务以触发集群的主备节点切换。

一旦应用服务出现异常,关闭集群的ARP功能,并强制终止应用服务以触发集群的主备节点切换。由于集群的ARP功能关闭,即使该节点还处于硬件连接的状态,在接收到客户端发送的携带集群IP地址的ARP请求报文时,该节点也无法向客户端发送ARP应答报文,即无法再向客户端发送集群的ARP信息。当主备节点切换触发,新的主节点选出后,新的主节点进行同样的配置后,并由新的主节点进行报文处理,就不会出现集群中两个节点同时向客户端发送集群的ARP信息的情况发生。

需要说明的是,本实施例中集群的ARP功能是通过软件实现的,从而实现控制集群的ARP功能的开启和关闭。

为保持运行环境的清洁,在本发明的一个实施例中,在步骤S140中的关闭集群的ARP功能之后,图1所示的方法还包括:清除重定向规则。

参见图2,本发明一个实施例提供的一种避免集群中IP地址冲突的装置的结构示意图。如图2所示,避免集群中IP地址冲突的装置200包括:

重定向规则生成单元210,用于在节点作为主节点时,生成重定向规则,重定向规则用于指示在接收到目的IP地址为集群IP地址的报文时,由节点处理报文。

ARP功能开启单元220,用于开启集群的ARP功能,集群的ARP功能为:向客户端发送集群的ARP信息,集群的ARP信息包括:集群IP地址和节点的MAC地址。

服务状态监测单元230,用于监测节点向客户端提供的应用服务的状态。

ARP功能关闭单元240,用于在监测到应用服务出现异常时,关闭集群的ARP功能,并强制终止应用服务以触发集群的主备节点切换。

为保持运行环境的清洁,在本发明的一个实施例中,本发明的避免集群中IP地址冲突的装置还包括:重定向规则清除单元,用于在关闭集群的ARP功能之后,清除重定向规则。

在本发明的一个实施例中,服务状态监测单元330,具体用于当监测到应用服务的任一线程发生异常时,确定应用服务出现异常。

其中,重定向规则具体为NAT表项,该NAT表项中包括:集群IP地址与该节点的IP地址的对应关系。

集群的ARP功能具体为:广播ARP报文,该ARP报文携带集群的ARP信息;或,在接收到客户端发送的携带集群IP地址的ARP请求报文时,向客户端发送ARP应答报文,该ARP应答报文携带集群的ARP信息。

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

参见图3,为本发明一个实施例提供的一种集群节点的结构示意图。如图3所示,该集群节点包括:上述的避免集群中IP地址冲突的装置200。

本发明提供的避免集群中IP地址冲突的装置200可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,可通过处理器10将非易失性存储器50中与避免集群中IP地址冲突的装置200对应的机器可执行指令读取到内存40中运行。从硬件层面而言,除了图3所示的处理器10、内部总线20、网络接口30、内存40、以及非易失性存储器50之外,根据该集群节点的实际功能,还可以包括其他硬件,对此不再赘述。

在不同的实施例中,非易失性存储器50可以是:存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、DVD等),或者类似的存储介质,或者它们的组合。内存40可以是:RAM(Radom Access Memory,随机存取存储器)、易失存储器、非易失性存储器、闪存。

进一步,非易失性存储器50和内存40作为机器可读存储介质,其上可存储由处理器10执行的避免集群中IP地址冲突的装置200对应的机器可执行指令。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。

综上所述,本发明的技术方案,集群IP的节点配置有集群的集群IP地址,当某一节点作为主节点时,该节点生成重定向规则,使得在接收到目的IP地址为集群IP地址的报文时,由该节点处理报文;并开启集群的ARP功能,向客户端发送所述集群的ARP信息,因为已经生成重定向规则,这里的集群的ARP信息是由该节点发送;一旦该节点向客户端提供的应用服务出现异常,就关闭集群的ARP功能,并强制终止应用服务以触发集群的主备节点切换。此时即使该节点还处于硬件连接的状态,也无法再向客户端发送集群的ARP信息。当新的主节点选出后,对新的主节点进行同样的配置,并由新的主节点进行报文处理,就不会存在集群中两个节点同时发送集群的ARP信息的情况。可见,本方案是通过生成重定向规则,并开启集群的ARP功能,在应用服务出现异常时,关闭集群的ARP功能,并强制关闭应用服务以触发集群的主备节点切换,有效地避免了集群中IP地址冲突的问题。

以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

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