一种双机热备的方法及装置制造方法

文档序号:7995932阅读:199来源:国知局
一种双机热备的方法及装置制造方法
【专利摘要】本发明公开了一种双机热备的方法及装置,应用在OpenFlow网络环境中,所述Openflow网络环境中包括有需要相互备份的应用服务器、Openflow交换机以及Openflow控制器。在本发明中,通过让与Openflow控制器保持连接状态的活动服务器接收OpenFlow控制器发送的心跳报文来确定自己的网络是否正常,而不是在活动服务器和备份服务器之间相互发送心跳报文确认对方是否活着或者网络异常,因而可以有效地避免误判。
【专利说明】一种双机热备的方法及装置
【技术领域】
[0001]本发明涉及数据通信领域,尤其涉及一种基于Open Flow网络环境下双机热备的方法及装置。
【背景技术】
[0002]随着互联网业务的不断发展,互联网业务对于在互联网上部署的时间要求越来越短。比如几年前一个业务部署往往需要几个月的时间,而且还要花费大量的人力,现在一个互联网业务可能会要求在投入少量人力的情况下,在几天内完成部署。如何快速部署一个互联网业务,这涉及到一些新的技术,比如SDN (Software Defined Network,软件定义网络),在SDN定义的模型下,可以通过软件的方式实现对业务的快速部署,从而减少人力投入,缩短工期。在众多SDN技术中,OpenFlow是其中最具代表性的一种技术。
[0003]如图1所示,为典型的OpenFlow组网示意图。在该组网环境下,OpenFlow交换机除了彼此之间存在数据转发链路(OpenFlow数据通道)外,还通过一条独立的通道(OpenFlow管理通道)和OpenFlow控制器建立连接。当OpenFlow交换机收到报文后,会将报文上报给OpenFlow控制器,OpenFlow控制器经过一定的计算,再告诉OpenFlow交换机如何处理报文,是丢弃、限流、还是从哪个端口发送出去。
[0004]当OpenFlow网络应用于数据中心时,OpenFlow交换机下面连接就是数据中心服务器。当用户的一个重要应用(比如:计费服务程序)运行在这些服务器上时,往往需要连续24小时运行。这带来一个问题,如果计费服务程序运行在某个服务器(例如:图1所示的Serverl)上,当该服务器岩机或者与OpenFlow交换机之间的链路中断时,将导致该计费服务程序不能正常运行。在这种情况下,要求有一台备份服务器能够继续运行计费服务程序,执行计费。
[0005]而传统的实现多台服务器之间的活动/备份服务器角色切换的双机热备方法,其通用做法如下:
[0006]步骤11、为需要相互备份的一组服务器建立一个集群;
[0007]步骤12、为集群选择一个虚IP,作为整个群集对外提供服务的IP地址;
[0008]步骤13、为群集选择一个仲裁,当服务器之间的通信异常时,通过仲裁决定是自身网络异常还是其它服务器网络异常;
[0009]步骤14、在群集内选举一台服务器作为活动服务器(活动服务器负责动态配置集群虚IP,并运行需要执行热备的应用),其它服务器为备份服务器;
[0010]步骤15、活动服务器和备份服务器之间相互发送心跳报文,以确认对方是否活着或者网络异常,如果备份服务器发现活动服务器网络异常,那么备份服务器会重新选举一台活动服务器,以执行需要热备的应用;如果活动服务器发现自身网络异常,则需要将自己变为备份服务器。
[0011]其中,传统双机热备过程中的最大问题是服务器如何判断自己的网络是否异常。假如图1所示的一个服务器集群中包含Serverl和Server2两台服务器,Serverl是活动服务器,Server2是备份服务器,如果某个时刻Serverl和Server2彼此不通,且Serverl和Server2都不能访问仲裁,在这种情况下Serverl会认为自己网络异常,于是将自己变为备份服务器角色;Server2也认为自身网络异常,于是自己仍然保持备份服务器角色。在这种情况下,Serverl和Serverf都没有运行应用,不能给外部提供服务,尽管两台服务器可能和外部都能正常通信。

【发明内容】

[0012]有鉴于此,本发明提供一种双机热备的方法和装置,以解决服务器不能正确判断自身网络是否有异常的问题,进而提供更加稳定的双机热备应用。
[0013]为实现本发明目的,本发明实现方案具体如下:
[0014]一种双机热备的方法,应用于Openflow网络环境中,所述Openf low网络包括有需要相互备份的一组应用服务器、Openflow交换机以及Openflow控制器,其中所述方法包括如下步骤:
[0015]步骤21、为需要相互备份的一组服务器建立一个集群,将所述群集信息保存到OpenFlow控制器上;
[0016]步骤22、为所述集群选择一个虚IP地址,作为整个群集对外提供服务的IP地址;
[0017]步骤23、OpenFlow控制器跟踪群集内的所有服务器的接入位置;
[0018]步骤24、OpenFlow控制器在群集内保留一台服务器处于网络连接状态,将其它服务器的网络切断;
[0019]步骤25、OpenFlow控制器周期性向活动服务器发送心跳报文,并判断活动服务器是否收到该心跳报文,如果是,继续保持活动服务器提供正常的应用服务,否则,则关闭该活动服务器的网络连接,并打开集群内其中一台备份服务器,使之成为活动服务器。
[0020]进一步地,所述步骤24中处于网络连接状态的服务器为活动服务器,处于网络切断状态的服务器为备份服务器。
[0021]进一步地,所述Openflow控制器是通过关闭备份服务器的接入端口来实现对集群内用作备份的服务器的网络切断。
[0022]进一步地,所述步骤25中,如果活动服务器不能收到OpenFlow控制器发送的心跳报文,则主动将自己变为备份服务器;同时,OpenFlow控制器将集群内其中一台备份服务器的接入端口打开,该备份服务器在接收到Openflow控制器发送的心跳报文后,将自己变成活动服务器。
[0023]进一步地,所述活动服务器由Openflow控制器根据一定的算法从集群内的应用服务器选择。
[0024]本发明同时提供一种双机热备的装置,所述装置应用于Openflow网络环境中,所述Openflow网络包括有需要相互备份的一组应用服务器、Openflow交换机以及Openflow控制器,其中所述装置具体为Openflow控制器,其中所述装置包括:
[0025]参数配置模块,用于为相互备份的一组服务器配置建立一个集群,并将所述群集信息保存到所述装置上;同时为所述集群配置一个虚IP地址,作为整个群集对外提供服务的IP地址;
[0026]位置跟踪模块,用于跟踪群集内的所有服务器的接入位置;[0027]网络连接控制模块,用于在群集内保留一台服务器处于网络连接状态,将其它服务器的网络切断;
[0028]收发判断模块,用于周期性向活动服务器发送心跳报文,并判断活动服务器是否收到该心跳报文,如果是,继续保持活动服务器提供正常的应用服务,否则,则打开集群内其中一台备份服务器,使之成为活动服务器。
[0029]进一步地,处于网络连接状态的服务器为活动服务器,处于网络切断状态的服务器为备份服务器。
[0030]进一步地,所述网络连接控制模块是通过关闭备份服务器的接入端口来实现对集群内其他用作备份的服务器的网络切断。
[0031]进一步地,如果活动服务器不能收到OpenFlow控制器发送的心跳报文,则主动将自己变为备份服务器;同时,所述装置将集群内其中一台备份服务器的接入端口打开,该备份服务器在接收到Openflow控制器发送的心跳报文后,将自己变成活动服务器。
[0032]进一步地,所述活动服务器由所述装置根据一定的算法从集群内的应用服务器选择。
[0033]与现有的技术相比,本发明中活动服务器通过接收OpenFlow控制器心跳报文的方式确定自己网络是否正常,而不是主动探测自己的网络是否正常,因而可以有效地避免误判。
【专利附图】

【附图说明】
[0034]图1为现有技术中典型的OpenFlow组网示意图。
[0035]图2为本发明双机热备的方法流程示意图。
[0036]图3为本发明双机热备的某一应用场景图。
[0037]图4为本发明双机热备的另一应用场景图。
[0038]图5为本发明双机热备的装置结构示意图。
【具体实施方式】
[0039]考虑到在OpenFlow网络环境中,应用服务器都是接入到OpenFlow交换机上的,而OpenFlow交换机的任何流量都会上报给OpenFlow控制器,因此,为实现本发明目的,本发明采用的核心思想为:通过让活动服务器接收OpenFlow控制器心跳报文的方式确定自己网络是否正常,而不是在活动服务器和备份服务器之间相互发送心跳报文,以确认对方是否活着或者网络异常,因而可以有效地避免误判。
[0040]为使本领域技术人员更加清楚和明白,以下结合附图及实施例详细说明本发明的具体实现方式。
[0041]请参考图2,为本发明提供的双机热备的方法流程示意图。所述方法应用于Openflow网络环境中,所述Openflow网络包括有需要相互备份的一组应用服务器、Openflow交流机以及Openflow控制器。所述方法包括如下步骤:
[0042]步骤21、为需要相互备份的一组服务器建立一个集群,将所述群集信息保存到OpenFlow控制器上;
[0043]步骤22、为所述集群选择一个虚IP地址,作为整个群集对外提供服务的IP地址;[0044]步骤23、OpenFlow控制器跟踪群集内的所有服务器的接入位置;
[0045]具体地,本步骤中,所述Openflow控制器可以通过向集群内的服务器发送广播Ping报文并接收来自集群内服务器的该ping响应报文来确定服务器是接入到哪台OpenFlow交换机上。
[0046]步骤24、OpenFlow控制器在群集内保留一台服务器处于网络连接状态,将其它服务器的网络切断;
[0047]具体地,本步骤中,OpenFlow控制器通过一定的算法从所述集群内选择一台服务器处于网络连接状态,集群内其他服务器则处于网络切断状态。其中,该处于网络连接状态的服务器为活动服务器,处于网络切断状态的服务器为备份服务器。进一步地,所述Openflow控制器是通过关闭备份服务器的接入端口来实现对集群内其他用作备份的服务器的网络切断。
[0048]步骤25、OpenFlow控制器周期性向活动服务器发送心跳报文,并判断活动服务器是否收到该心跳报文,如果是,继续保持活动服务器提供正常的应用服务,否则,则关闭该活动服务器的网络连接,并打开集群内其中一台备份服务器,使之成为活动服务器。
[0049]具体地,本步骤中,如果与Openflow控制器保持连接的活动服务器发现自己能够收到OpenFlow控制器发送的心跳报文,则说明自己当前所在的网络正常,则继续保持自身为活动服务器,并负责动态配置集群虚IP以及运行需要执行热备的应用,同时,给OpenFlow控制器发送心跳响应报文;
[0050]反之,如果服务器发现自己不能收到OpenFlow控制器发送的心跳报文,则说明自己当前的网络异常(包括Openf low管理通道中断或者活动服务器接入端口断开两种情形),此时主动将自己变为备份服务器;同时,OpenFlow控制器在没有收到活动服务器发送的心跳响应报文时,将该当前处于连接状态的活动服务器的网络切断,同时OpenFlow控制器根据一定的算法从集群内选择一台备份服务器并将其接入端口打开,接着,给这台备份服务器发送心跳报文,该备份服务器在接收到Openflow控制器发送的心跳报文时,说明自己网络正常,于是将自己变为活动服务器。
[0051]进一步地,如果后来OpenFlow控制器感知到原来的活动服务器所在的网络恢复正常后(OpenFlow控制器能够正常接收OpenFlow交换机的建立管理通道请求报文和OpenFlow心跳报文),为了防止原来的活动服务器上的某些进程没有及时杀掉,还在访问外部网络,在此需要继续关闭原来活动服务器的接入端口,然后恢复原来的活动服务器直连OpenFlow交换机的所有外部出口,使之成为集群内的备用服务器。
[0052]另外,需要说明的是,在本发明中,如果活动服务器的Openflow数据转发通道异常但Openflow管理通常连接正常时,虽然此时活动服务器能够正常接收到Openflow控制器的心跳报文,但由于Openf low控制器能够通过轮询或者接受接口 Down事件,感知当前活动服务器的数据通道异常,此时,如果活动服务器没有其他数据通道,则关闭当前活动服务器的接入接口,同时根据一定的算法从集群内选择一台备用服务器并打开其接入接口,该备用服务器接收到Openflow发送的心跳报文后,将自身变为活动服务器。由于此具体实现非为本发明实现的重点,在此不再详细说明。
[0053]下面以图1所示的Openflow网络环境为例简要地说明本发明的具体实现:假如在该Openflow网络环境中,Serverl和Server2建立为一个热备份群集,OpenFlow控制器通过一定的算法(例如:可以通过优先级选择,也可以比较IP地址大小等),选择保留Serverl(活动服务器)的网络连接,而将Serverf (备份服务器)的网络关闭,如图2所示;0penFlOW控制器周期给Serverl发送心跳报文,如果Serverl能够收到心跳报文,则自身一直为活动服务器,当Serverl岩机或者与Openflow交换机间的网络连接中断时,OpenFlow控制器将不能收到Serverl的心跳响应报文,此时,所述Openflow控制器将关闭Serverl的接入端口,打开Server2的网络连接,并给Server2发送心跳报文。由于Server2能够收到来自Openflow控制器的心跳报文,于是将自己变为活动服务器,具体如图3所示。
[0054]本发明同时提供一种双机热备的装置,所述装置应用于Openflow网络环境中,所述Openflow网络包括有需要相互备份的一组应用服务器、Openflow交换机以及Openflow控制器。其中所述装置具体为Openflow控制器,所述装置具体包括:
[0055]参数配置模块,用于为相互备份的一组服务器配置建立一个集群,并将所述群集信息保存到所述装置上;同时为所述集群配置一个虚IP地址,作为整个群集对外提供服务的IP地址;
[0056]位置跟踪模块,用于跟踪群集内的所有服务器的接入位置;
[0057]具体地,本步骤中,所述装置可以通过向集群内的服务器发送广播ping报文并接收来自集群内服务器的该ping响应报文来确定服务器是接入到哪台OpenFlow交换机上。
[0058]网络连接控制模块,用于在群集内保留一台服务器的网络连接,将其它服务器的网络切断;
[0059]具体地,本步骤中,网络连接控制模块通过一定的算法在集群内选择一台服务器处于网络连接状态,而将集群内的其他服务器的网络连接断开。其中,该处于网络连接的服务器为活动服务器,处于网络切断状态的服务器为备份服务器。进一步地,所述网络连接控制模块是通过关闭备份服务器的接入端口来实现对集群内其他用作备份的服务器的网络切断。
[0060]收发判断模块,用于周期性向活动服务器发送心跳报文,并判断活动服务器是否收到该心跳报文,如果是,继续保持活动服务器提供正常的应用服务,否则,则关闭该活动服务器的接入端口,并打开集群内其中一台备份服务器,使之成为活动服务器。
[0061]具体地,本步骤中,如果处于连接状态的活动服务器发现自己能够收到该装置发送的心跳报文,则说明自己当前所在的网络正常,则继续保持自身为活动服务器,并负责动态配置集群虚IP以及运行需要执行热备的应用,同时,给所述收发判断模块发送响应报文;
[0062]反之,如果活动服务器发现自己不能收到本发明装置发送的心跳报文,则说明自己当前的网络异常(包括Openf low管理通道中断或者活动服务器接入端口断开两种情形),此时主动将自己变为备份服务器;同时,当本发明装置没有收到活动服务器发送的心跳响应报文时,通过关闭该活动服务器的接入端口将当前活动服务器的网络切断,同时所述网络连接控制模块通过一定的算法从集群内选择一台备份服务器并将其接入端口打开,然后向这台备份服务器发送心跳报文,如果备份服务器能够收到本发明装置收发判断模块发送的心跳报文,说明自己网络正常,于是将自己变为活动服务器。
[0063]进一步地,如果所述装置后来感知到原来的活动服务器所在的网络恢复正常后(所述装置能够正常接收OpenFlow交换机的建立管理通道请求报文和OpenFlow心跳报文),为了防止原来的活动服务器上的某些进程没有及时杀掉,还在访问外部网络,在此需要继续关闭原来活动服务器的接入端口,然后恢复原来的活动服务器直连OpenFlow交换机的所有外部出口,使之成为集群内的备用服务器。
[0064]另外,需要说明的是,在本发明中,如果活动服务器的Openflow数据转发通道异常但Openflow管理通常连接正常时,虽然此时活动服务器能够正常接收到本发明装置发送的心跳报文,但由于Openflow控制器能够通过轮询或者接受接口 Down事件,感知当前活动服务器的数据通道异常,此时,如果活动服务器没有其他数据通道,则关闭当前活动服务器的接入接口,同时根据一定的算法从集群内选择一台备用服务器并打开其接入接口,该备用服务器接收到Openflow发送的心跳报文后,将自身变为活动服务器。由于此具体实现非为本发明实现的重点,在此不再详细说明。
[0065]以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
【权利要求】
1.一种双机热备的方法,应用于Openflow网络环境中,所述Openflow网络包括有需要相互备份的一组应用服务器、Openflow交换机以及Openflow控制器,其特征在于,所述方法包括如下步骤: 步骤21、为需要相互备份的一组服务器建立一个集群,将所述群集信息保存到OpenFlow控制器上; 步骤22、为所述集群选择一个虚IP地址,作为整个群集对外提供服务的IP地址; 步骤23、OpenFlow控制器跟踪群集内的所有服务器的接入位置; 步骤24、OpenFlow控制器在群集内保留一台服务器处于网络连接状态,将其它服务器的网络切断; 步骤25、OpenFlow控制器周期性向活动服务器发送心跳报文,并判断活动服务器是否收到该心跳报文,如果是,继续保持活动服务器提供正常的应用服务,否则,则关闭该活动服务器的网络连接,并打开集群内其中一台备份服务器,使之成为活动服务器。
2.如权利要求1所述的方法,其特征在于,所述步骤24中,处于网络连接状态的服务器为活动服务器,处于网络切断状态的服务器为备份服务器。
3.如权利要求2所述的方法,其特征在于,所述Openflow控制器是通过关闭备份服务器的接入端口来实现对集群内用作备份的服务器的网络切断。
4.如权利要求1所述的方法,其特征在于,所述步骤25中,如果活动服务器不能收到OpenFlow控制器发送的心跳报文,则主动将自己变为备份服务器;同时,OpenFlow控制器将集群内其中一台备份服务器的接入端口打开,该备份服务器在接收到Openflow控制器发送的心跳报文后,将自己变成活动服务器。
5.如权利要求2或4所述的方法,其特征在于,所述活动服务器由Openflow控制器根据一定的算法从集群内的应用服务器选择。
6.一种双机热备的装置,所述装置应用于Openflow网络环境中,所述Openf low网络包括有需要相互备份的一组应用服务器、Openflow交换机以及Openflow控制器,其中所述装置具体为Openflow控制器,其特征在于,所述装置包括: 参数配置模块,用于为相互备份的一组服务器配置建立一个集群,并将所述群集信息保存到所述装置上;同时为所述集群配置一个虚IP地址,作为整个群集对外提供服务的IP地址; 位置跟踪模块,用于跟踪群集内的所有服务器的接入位置; 网络连接控制模块,用于在群集内保留一台服务器处于网络连接状态,将其它服务器的网络切断; 收发判断模块,用于周期性向活动服务器发送心跳报文,并判断活动服务器是否收到该心跳报文,如果是,继续保持活动服务器提供正常的应用服务,否则,则打开集群内其中一台备份服务器,使之成为活动服务器。
7.如权利要求6所述的装置,其特征在于,处于网络连接状态的服务器为活动服务器,处于网络切断状态的服务器为备份服务器。
8.如权利要求7所述的装置,其特征在于,所述网络连接控制模块是通过关闭备份服务器的接入端口来实现对集群内其他用作备份的服务器的网络切断。
9.如权利要求6所述的装置,其特征在于,如果活动服务器不能收到OpenFlow控制器发送的心跳报文,则主动将自己变为备份服务器;同时,关闭该活动服务器的接入端口,所述装置将集群内其中一台备份服务器的接入端口打开,该备份服务器在接收到Openflow控制器发送的心跳报 文后,将自己变成活动服务器。
10.如权利要求7或9所述的装置,其特征在于,所述活动服务器由所述网络连接控制模块根据一定的算法从集群内的应用服务器选择。
【文档编号】H04L12/70GK103944746SQ201310028074
【公开日】2014年7月23日 申请日期:2013年1月23日 优先权日:2013年1月23日
【发明者】曾勇刚 申请人:杭州华三通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1