一种双机热备份方法和系统与流程

文档序号:14914399发布日期:2018-07-11 00:19阅读:180来源:国知局

本发明涉及高可用性计算机系统技术领域,具体地说,本发明涉及一种双机热备份方法和系统。



背景技术:

高可用性计算机系统指的是一个经过专门设计的计算机系统,能减少停工时间,并保持其服务的高度可用性。高可用性包括保护业务关键数据的完整性和维持应用程序的连续运行等方面。高可用性通常代表应用程序、服务和系统所能提供的服务等级,亦可用以描述各种企业目标和技术需求,包括从硬件到整体服务的关键性目标。其中,最少的宕机时间就是高可用性的关键性目标之一。

一般地讲,在技术人员在现场的情况下,恢复服务器正常可能需要10分钟、几小时甚至几天。从实际经验上看,除非是简单地重启服务器(可能隐患仍然存在),否则往往需要几个小时以上。而如果技术人员不在现场,则恢复服务的时间就更长了。而对于客户群体大、实时要求高的移动通信系统而言,一旦故障影响的范围和造成的后果就是不可想象的了。所以需要通过双机热备,来避免长时间的服务中断,保证系统的长期、可靠的服务。

双机热备是一种减少宕机时间的常用方案。通常来说,双机热备特指基于高可用系统中的两台服务器的热备(或称为高可用),因两机高可用在国内使用较多,故得名双机热备。双机热备按工作中的切换方式分为:主-备方式(Active-Standby方式)和双主机方式(Active-Active方式)。其中,主-备方式指的是一台服务器处于某种业务的激活状态(即Active状态),另一台服务器处于该业务的备用状态(即Standby状态)。而双主机方式指两种不同业务分别在两台服务器上互为主备状态(即Active-Standby状态和Standby-Active状态同时存在)。下面以主-备方式为例进行说明。

在主-备方式下,主备机之间设置多个状态监听端口,其中备机的监听端口监听来自主机的消息,从而发现主机的状态异常。当备机的监听端口监听到的消息表明主机异常时,备机迅速创建SCTP上下文并接管主机上层业务,完成备用状态到激活状态的转换,进而接替主机为通信对端继续提供服务。这种方案下,为了及时发现主机状态异常,往往要使用多个状态监听端口来监听主备机之间的消息,如果主备机之间监听端口出现异常,会造成备机无法正常监测主机状态,从而导致备机不能接管或不能及时接管主机业务。并且,由于备机创建SCTP上下文也是需要一定时间的,这个时间可能会导致宕机时间增加,甚至可能会出现短暂的业务中断。

而另一方面,SCTP(Stream Control Transmission Protocol,流控制传输协议)是IETF(Internet Engineering Task Force,因特网工程任务组)在2000年定义的一个传输层协议,它是一种基于不可靠传输业务的协议之上的可靠的数据报传输协议。SCTP的设计初期主要用于通过IP网传输SCN(Signaling Communication Network,信令通信网)窄带信令消息。而后期,SCTP协议被广泛用于EPC网络中的S6a/S1/Sgs/Sv等接口中。SCTP具有多宿的特点,即一个主机可拥有多个网络接口且每个网络接口具有不同的IP地址。基于SCTP协议的上述特点,可以在主机和通信对端部署一个含有多条链路的SCTP连接。例如,主机A(具有IP1:10.21.1.2,以及IP3:192.168.1.2)与对端B(具有IP2:10.21.1.3,以及IP4:192.168.1.3)之间建立SCTP关联时,SCTP连接中实际上会同时建立起两条SCTP链路(10.21.1.2<---->10.21.1.3,以及192.168.1.2<---->192.168.1.3),这样,当10.21.1.X网络出现问题时,可以利用192.168.1.X网络继续在主机A和对端B之间进行业务。这种基于SCTP协议的连接方案允许发送者将数据通过不同路径发送到接收端,从而提高了关联的可靠性。然而,它并不能解决主机A本身故障的问题,当主机A出现异常(例如服务器不可避免地会出现各种故障,其原因可能是设备故障、操作系统故障、软件系统故障等等)时,业务仍然会中断。

综上所述,当前迫切需要一种能够进一步减小宕机时间的双机热备份解决方案。



技术实现要素:

因此,本发明的任务是提供一种能够进一步减小宕机时间的双机热备份解决方案。

根据本发明的一个方面,提供了一种双机热备份方法,包括下列步骤:

1)主机向对端发起第一SCTP连接,在第一SCTP连接中设置主机IP至对端IP的主链路以及本地备用IP至对端IP的备用链路,其中将备机IP设置为主机端的本地备用IP;

2)主机实时地将第一SCTP连接的相关信息传送到备机;

3)备机根据第一SCTP连接的相关信息在本地创建第二SCTP连接,在第二SCTP连接中设置本地主IP至对端IP的主链路以及本地备用IP至对端IP的备用链路,其中将主机IP设置为备机端的本地主IP,将备机的实际IP设置为本地备用IP;并且,第二SCTP连接使用与第一SCTP连接相同的SCTP连接标识,备机通过SCTP HEARTBEAT消息对第二SCTP连接中的备用链路保活。

其中,所述双机热备份方法还包括步骤:

4)当对端检测到主机故障时,对端切换到备用链路传输数据,备机基于SCTP机制激活第二SCTP连接的备用链路并作为新的主机接管当前业务。

其中,所述双机热备份方法还包括步骤:

5)原主机故障恢复后,新主机实时地将第二SCTP连接的相关信息传送到原主机,原主机作为新的备机在本地创建第一SCTP连接,在第一SCTP连接中设置本地主IP至对端IP的主链路以及本地备用IP至对端IP的备用链路,其中将新主机的IP设置为新的备机端的本地主IP,将新的备机的实际IP设置为本地备用IP;并且,第一SCTP连接使用与第二SCTP连接相同的SCTP连接标识,原主机作为新的备机通过SCTP HEARTBEAT消息对第一SCTP连接中的备用链路保活。

其中,所述步骤2)还包括:主机与备机之间的链路建立心跳机制;所述步骤4)中,当备机无法接收到主机端的心跳消息时,判定主机故障。

其中,所述步骤4)还包括:当主机故障时,备机修改自身状态为active,同时接管当前业务;对端在检测到主机链路异常时,使用备用链路进行传输。

根据本发明的另一个方面,还提供了一种双机热备份系统,包括:主机、备机和对端;

所述主机用于向对端发起第一SCTP连接,在第一SCTP连接中设置主机IP至对端IP的主链路以及本地备用IP至对端IP的备用链路,其中将备机IP设置为主机端的本地备用IP;以及用于实时地将第一SCTP连接的相关信息传送到备机;

所述备机用于根据第一SCTP连接的相关信息向对端发起第二SCTP连接,在第二SCTP连接中设置本地主IP至对端IP的主链路以及本地备用IP至对端IP的备用链路,其中将主机IP设置为备机端的本地主IP,将备机的实际IP设置为本地备用IP;并且,第二SCTP连接使用与第一SCTP连接相同的SCTP连接标识;

所述对端用于接收主机和备机发起的SCTP连接请求并建立相应的连接。

其中,所述备机还用于在当主机故障时激活第二SCTP连接的备用链路并作为新的主机接管当前业务,对端切换到备用链路传输数据。

其中,所述备机还用于在自身称为新的主机后,在原主机故障恢复时实时地将第二SCTP连接的相关信息传送到原主机,

所述原主机用于作为新的备机向对端发起第一SCTP连接,在第一SCTP连接中设置本地主IP至对端IP的主链路以及本地备用IP至对端IP的备用链路,其中将新主机的IP设置为新的备机端的本地主IP,将新的备机的实际IP设置为本地备用IP;并且,第一SCTP连接使用与第二SCTP连接相同的SCTP连接标识。

其中,所述主机为主LTE Femto网关,所述备机为备LTE Femto网关,所述对端为移动管理实体或LTE Fmeto基站。

与现有技术相比,本发明具有下列技术效果:

1、保证物理主机切换后,SCTP链路不会断开或重启,不受限于该主机是客户端还是服务器端。

2、本发明适用于一切使用SCTP协议进行传输的系统,易于推广。

3、本发明可以保证用户业务不间断进行,提高用户体验。

4、本发明可以扩展到多台主备机,例如一台主机两台备机,从而进一步提高系统的高可用性。

附图说明

以下,结合附图来详细说明本发明的实施例,其中:

图1示出了本发明一个实施例中的主机、备机和对端的连接关系;

图2示出了本发明一个实施例的双机热备份系统的架构示意图;

图3示出了本发明一个实施例中,主、备LTE Femto网关的内部模块图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图和具体实施方式,对根据本发明一个实施例进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。

根据本发明一个实施例,提供一种基于SCTP协议双机热备份的方法,涉及主机、备机和对端,包括下列步骤:

步骤1:在SCTP关联建立阶段,建立主机与对端之间的第一SCTP连接。第一SCTP连接包含两个SCTP链路,主链路为主机IP至对端IP的链路,备用链路为备机IP至对端IP的链路。

本步骤中,需要进行数据流传输的上层应用进程通过主机(通过主机的SCTP模块)向对端发起建立SCTP关联的四次握手过程,从而建立主机与对端之间的第一SCTP连接,然后在第一SCTP连接中创建主机IP至对端IP的主链路,再在第一SCTP关联中增加备用链路,将备用链路中的本地第二地址设置为备机IP地址。本实施例中,主机端并不存在真实的第二地址,而是用备机IP地址代替。因此第一SCTP连接的备用链路实际上是一条虚拟链路。

在SCTP协议中,主链路用来传输SCTP数据包,备用链路由对端通过HEARTBEAT机制进行通路保活。

步骤2:在主机建立好SCTP连接之后,实时地将该SCTP连接的相关信息传送到备机上。相关信息包括:SCTP连接号,应用进程想要请求的SCTP输出流的数目,应用进程准备允许的SCTP输入流的最大数目,本端标签,对端标签,本地端口,初始化传输顺序号,对端初始化传输顺序号,对端地址,对端接收窗口,以及本端接收窗口。备机根据收到的关联信息在本地创建备机与对端之间的第二SCTP连接,并向对端发送HEARTBEAT消息进行链路检测。第二SCTP连接包含两个SCTP链路,主链路为主机IP至对端IP的链路,备用链路为备机IP至对端IP的链路。具体地,备机在本地创建备机与对端之间的第二SCTP连接,然后在第二SCTP连接中创建主链路,其中将主机IP作为本地的首选地址,从而使主链路的两端IP地址为主机IP和对端IP,再在第二SCTP关联中增加备用链路,将本机实际的IP地址(即备机IP地址)作为本地第二地址加入到备用链路中。备机基于SCTP HEARTBEAT机制(例如通过向对端发送HEARTBEAT消息)来维持第二SCTP连接的备用链路。

图1示出了本实施例中主机、备机和对端的连接关系,其中示出了主机与对端之间的第一SCTP连接和备机与对端之间的第二SCTP连接,图1中虚线表示的链路(即第一SCTP连接的备用链路和第二SCTP连接的主链路)实际上是虚拟链路。

在SCTP协议中,可以通过my_vtag与peer_vtag来识别同一SCTP关联。主机与对端之间的第一SCTP连接和备机与对端之间的第二SCTP连接均使用相同的tag(包括my_vtag和peer_vtag,本实施例中,指my_vtag和peer_vtag均相同),对端会将这两个SCTP连接识别成同一SCTP关联,在本文中,也将SCTP关联称为SCTP偶联。

步骤3:当主机故障(包含主链路故障的情况)时,主备机与对端之间的SCTP连接并不会断开,也不会重启。而是通过备用通路将对端的数据包发送到备机,并由备机对数据包进行处理。

本实施例中,主机与备机之间的链路,除了同步SCTP关联相关信息外,也有心跳机制进行主备机状态的判断。当主备机工作正常时,主机的状态为active,备机状态为standby。

当主机故障时,备机基于主机与备机之间的链路的心跳机制得到主机故障的通知。在得到通知后,备机修改自身状态为active,同时接管当前业务。对端则在检测到主机链路异常时,使用备用链路进行传输。这样,数据就会自然传送到备机的IP地址,由备机接收并接管当前业务。由于使用SCTP连接的心跳机制进行监听,对端检测到主机异常时,直接将业务切换到备机上,提高了检测的正确性,避免了现有技术中存在的主备机的单点瓶颈(现有技术中主备机之间互相监听各个常用端口来检测异常,检测异常之后再创建SCTP上下文,然后再进行业务接管)。

步骤4:当原主机恢复正常时,备机通过ASCONF消息将主机IP地址重新添加到SCTP关联中,并将传送SCTP关联相关上下文信息到主机上。

步骤5:原主机收到SCTP关联信息后,将建立相应的SCTP连接(与主机到对端的第一SCTP连接一致,区别仅在于主链路与备用链路互换),并通过与对端发送HEARTBEAT消息来维持链路。此时,原主机将作为新的备机,以保证系统后续的高可用性。

根据本发明的另一个实施例,提供一种基于SCTP协议的双机热备份系统,该系统可以用于基于LTE Femto的通信网络中。图2示出本实施例的双机热备份系统的架构示意图。其构架包括:主LTE Femto网关、备LTE Femto网关、移动管理实体(MME)和LTE Fmeto基站。其中,主LTE Femto网关IP地址记为IP1,备LTE Femto网关IP地址为IP2,MME的IP地址为IP3,LTE Fmeto基站的IP地址为IP4。主、备LTE Femto网关使用IP1/IP2两个地址分别与LTE Femto基站、MME建立SCTP偶联。当(IP1,IP3)之间链路或(IP1,IP4)之间链路故障时,便可通过(IP2,IP3)之间链路或(IP2,IP4)之间链路进行通信,从而保证LTE Femto基站/MME与主备LTE Femto网关之间链路的可靠性。

图3为主、备LTE Femto网关的内部模块图。主、备LTE Femto网关的内部模块一致。如图3所示,LTE Femto网关包括:监听模块、SCTP处理模块、备份模块以及Femto网关处理模块。

其中,监听模块用于处理主、备机之间的消息传输以及当前主备机工作状态。主、备机之间需要同步的相关上下文都通过该模块进行传输;同时备LTE Femto网关通过该模块监听主LTE Femto网关是否处于正常工作状态,如果状态异常的话,备LTE Femto网关将自己的角色提升为主机,并接管当前进行的所有业务。

SCTP处理模块用于处理SCTP关联相关信息,当主机与对端的SCTP连接建立起来时,SCTP处理模块会在主机和备机之间传输SCTP连接相关信息并存储,链路相关信息可以以结构体的形式进行传输和存储,例如:{assoc_id,my_vtag,peer_vtag,lport,initial_tsn,peer_initial_tsn,peer_addr,sinit_num_ostreams,sinit_max_instreams,peer_rwnd,local_rwnd},该结构体中的元素分别代表:SCTP连接号,应用进程想要请求的SCTP输出流的数目,应用进程准备允许的SCTP输入流的最大数目,本端标签,对端标签,本地端口,初始化传输顺序号,对端初始化传输顺序号,对端地址,对端接收窗口,以及本端接收窗口。而当备机获得相关SCTP连接信息时,SCTP处理模块将根据获得的信息来建立备机与对端之间的SCTP连接,并与对端通过HEARTBEAT消息进行保活。除此之外,当异常的LTE Femto网关工作恢复正常时,SCTP处理模块还将发送ASCONF消息给对端,将恢复正常的LTE Femto网关IP地址重新加入到现有的SCTP连接当中。本实施例中,对端既可以是LTE Femto基站,也可以是MME。

备份模块用于处理LTE Femto网关主备切换后,为了维持业务的正常进行对相关上下文所进行的备份。在本发明的一个实施例中,备份模块所处理的上下文包括:终端信息上下文、LTE Femto基站信息上下文、MME信息上下文等。

Femto网关处理模块用于处理LTE Femto网关正常工作所要处理的事物,即提供Femto网关服务。在本发明的一个实施例中,Femto网关处理模块主要完成LTE Femto基站的注册与管理、SCTP消息的终结与转发、MME的选择与维护。

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

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