一种双机备份的实现方法

文档序号:6650281阅读:184来源:国知局
专利名称:一种双机备份的实现方法
技术领域
本发明涉及双机备份技术,特别是指一种能保证双机实时同步运行并可提供统一软件接口的双机备份的实现方法。
目前各种网络飞速发展,而且网络的规模也日益庞大,位于网管中心控制存储所有数据的中心服务器或其它功能服务器的地位及其安全可靠性也就越来越重要,因此,对于重要的数据服务器必须采用主备机双机备份的方式,以保证整个网络的安全运行。所谓双机备份就是指在系统运行过程中,有两台机器装载完全相同的系统和数据,并通过通信电缆保持同步,当前工作的为主用机,另一台为备用机,备机不断检测主机状态,当备机检测到主机出现物理异常或接收到主动切换的命令时,则进行主备机切换。对于双机备份技术而言,保证运行实时同步和数据的一致性是极为重要的。在Windows NT环境下,支持双机的软件统称为群集(CLUSTER)软件,现有的CLUSTER软件虽然可以提供磁盘镜像功能,用来同步两台机器上的一些重要文件,但其均不支持注册表的实时镜像,对于一些配置信息保存在注册表中的应用程序,切换后就无法正常准确地运行。
另外,现有的CLUSTER软件虽然大都可以提供浮动IP、共享机器名以及共享磁盘阵列,并支持数据库的热备份,但这些CLUSTER软件由于供应商的不同而具有多种不同的接口,每种CLUSTER软件都有自己特定的接口方式。而且,系统在实际运行过程中会因为不同的系统规模和不同的用户要求导致系统配置差异较大,进而造成接口差异,在双机软件和应用程序之间没有一个中间隔离层,可以用来屏蔽系统层的差异而满足不同的组网和配置需求,于是,接口差异也无法消除。
现在比较常用的双机CLUSTER软件是微软公司的NT CLUSTER和NCR公司的NCR CLUSTER,它们都存在不同程度的问题。NT CLUSTER不支持非共享磁盘阵列的配置,如果是单独两台服务器就无法实现双机备份。NCR CLUSTER软件虽然不存在上述问题,但它无法正确检测网络故障,如果网卡出现故障则系统有可能出现双ACTIVE状态,即双主机状态,致使恢复网络系统时会因IP地址冲突而导致系统资源异常。
为了解决以上问题,本发明的主要目的在于提供一种双机备份的实现方法,使得双机在任何双机软件环境下均能保证系统实时同步运行,同时可提高双机备份的可靠性和安全性。
为达到上述目的,本发明的技术方案是这样实现的一种双机备份的实现方法,是通过双机系统间应用层的通信和系统层的支持实现主备机之间的同步运行,重要的是在双机系统的应用层和系统层之间,抽象出一个管理层,用以实现双机系统间的业务管理;该业务管理至少包括控制浮动IP的切换、进行文件和注册表的镜像以及双机间的应用管理。
所述的控制浮动IP切换至少包括以下的步骤检查网络状态是否正常,如果出现异常,则通过附加判断决定是否进行IP切换?如果附加判断成立,则切换IP。其中,附加判断为检测浮动IP是否存在以及检测网络通信是否正常。
所述的文件和注册表镜像至少包括以下的步骤a.首先判断系统是否要退出本线程?如果是,则跳出本线程,否则,判断本机是否处于备用状态?b.如果处于备用状态,则检测本地的备份数据,如果有新的备份数据则进行本地恢复,然后回到步骤a);c.如果为非备用状态,则检查本机是否存在有注册文件或注册表路径或内容的变化,如果有,则进行变化文件或注册表内容的镜像;否则,直接回到步骤a)。其中,本地恢复是指备机将主机拷贝来的由更新的注册表信息生成的数据文件在本机上恢复为注册表信息并更新备机注册表。步骤c中进一步包括以下步骤主机向备机进行文件或注册表镜像时,首先将变化过的文件拷贝到备机上;然后判断备机是否允许主机访问其注册表,如果允许则直接向备机备份更新注册表信息,否则,主机将变化的注册表信息备份为一数据文件,再将该数据文件拷贝到备机上。
所述的双机应用管理至少包括主应用模块、群组管理模块和应用管理模块,该模块之间通过消息的传递完成主备机间的切换及出错状态的处理。所述的消息为主用向备用切换消息,或备用向主用切换消息,或应用程序异常消息,或握手超时消息,或主用进入正常状态消息,或备用进入正常状态消息。
所述的双机应用管理还可以包括一提供数据通道的模块。该双机应用管理采用阻塞式操作。
由上述技术方案可以看出,本发明的方法采用了三层结构的思想,是在应用层和系统层之间抽象出一个管理层进行双机管理。对于系统层来说,本发明提供了虚拟动态IP技术,即当主备机切换时实现IP动态切换;且提供系统层的统一接口,以保证不会因系统配置差异而导致接口差异,其中,系统层包括NT CLUSTER、NCR CLUSTER软件或其他的CLUSTER软件。对于应用层而言,本发明为应用层提供了一个简单统一的通信接口,同时负责监控应用程序的运行,以及维护切换时应用层的先后逻辑性,实现两种控制逻辑--切换和重起,不仅从物理上保证了系统的不间断运行,并且从高层应用逻辑上保证了系统服务的不间断。
所述的浮动IP是指系统在需要使用一个IP地址时动态给机器指定这个IP地址,而不用在系统设置中设置,该IP地址在系统IP地址配置表中找不到,该IP地址是一个和客户端约定好的IP地址,动态绑定到主机上的。它是系统对外提供的一种服务资源,当系统发生切换时将IP地址也切换过去。
双机系统通过心跳线握手保持双机状态的一致性维护,在本发明中,心跳线是指心跳网络,即专门用一块网卡进行双机间的通信,一般采用直连网线。当心跳线握手出现异常时,通过附加判断来决定是否进行IP切换,附加判断包括检测浮动IP是否存在和检测网络是否通信正常,这样就可以确保系统不会出现两台机器同时拥有浮动IP的情况发生。
对于双机切换,高层应用程序所依赖的执行环境中包括配置文件或注册表信息,为了使切换成功,必须主备机保持这些配置文件或注册表的同步,本发明中的系统不断检测指定路径或指定注册表子项的变化,当主机需要镜像的文件或注册表发生变化时文件镜像软件会通过系统的通知消息得到文件或注册表具体变化情况并进行备机的同步修改,以保证高层应用的配置信息的同步。由于所有的变化通知是通过系统事件进行通知的,其变化通知时间为毫秒级的间隔,所以可以保证同步的实时性。
双机管理主要是监控需要进行备份的应用软件的状态,如果是关键应用采用内部协议进行握手通信并通告状态;如果是非关键应用或其他无代码的应用软件则监控其运行状态是否为活动,同时通过双机软件提供的开发接口获取系统的状态和切换动作对应用层软件进行相应的控制。
因此,本发明所提供的双机备份的实现方法具有以下的特点1、浮动IP功能彻底解决了主备机上同时拥有浮动IP的情况,使其不会出现双主用的状态,并可以完全实现网卡IP的动态切换,除了可以检测系统主机故障外,还可以检测网络故障。
2、文件及注册表镜像可以实现主备机注册表的实时同步,进而保证双机切换后能够正常运行。
3、双机管理为应用程序提供了更方便、灵活的接口,能够支持不同的CLUSTER环境,从而消除了不同双机软件间的接口差异。
有关本发明的详细说明及技术内容,配合


如下图1为本发明浮动IP实现的一实施例的流程图;图2为本发明的系统结构示意图3为本发明方法双机管理实现的对象图;图4为本发明方法双机管理中群组管理模块的状态图;图5为本发明方法双机管理中应用管理模块的状态图;图6为本发明方法文件注册表镜像实现的流程图。
WINDOWS NT所提供的应用程序接口(API)--浮动IP服务,其核心部分是网络状态的检测。本发明通过心跳线握手检测系统网络状态并保持主备机之间的通信,保证系统网络资源服务的不间断运行。双机系统中当主机出现故障(掉电、网络故障或机器硬件故障而导致停机)时,心跳线握手出现异常,则备机通过检测浮动IP是否存在以及网络运行是否正常来决定是否进行IP切换,如果浮动IP存在且网络正常,则备用系统可以接管主机所拥有的浮动IP并对外提供服务,其切换动作在客户端不会感觉到系统故障,只是会出现几秒钟的暂停。而且,由于先检测确认后才切换IP,因此也不会出现两台机器同时拥有浮动IP的情况。
当两台独立的服务器同时接入网络时,两台服务器此时均为备用状态,要竞争主用,由于现有软件没有控制双机切换的过程,很可能出现双主用的状况。本发明先检测再切换的方法即可解决此问题,其具体操作过程如图1所示双机同时检查网络状态,判断本机当前是否处于备用状态?如果不是,就回到检查网络状态;如果是,则判断对端是否为备用、且本机是否具有优先主用权以及本机网络是否正常?如果有一个条件不满足,就回到检查网络状态;如果条件都满足,则本机切换为主用,然后确认是否结束?如果不结束,则回到检查网络状态。
参见图2所示,本发明的系统采用三层结构,即应用层21,用于监控备份的应用程序;管理层22,用于双机管理;系统层23,包括NT CLUSTER双机系统层、NCR CLUSTER双机系统层或其它双机系统。对于应用层21的软件只需考虑与管理层22之间的接口,而不需要考虑系统层23是什么系统,如此,无论系统层23有多大的变化,只需要对管理层22相应的部分稍加改动,而不会影响到应用层21的应用。
如图3所示,双机管理的实现主要涉及到三个对象主应用模块、群组管理模块和应用管理模块,每个模块是一个类,它们之间通过消息的传递完成主备机间的切换以及出错状态的处理。其中,CClusterMng-App类31代表主应用模块,用于管理程序的初始化和结束处理。CGroup类32代表群组管理模块,主要用于管理群组应用程序的运行,监视应用程序的状态,重起或者切换应用程序组;实现与系统层的交互,主要是实现CLUSTER系统的通知事件和手工切换。CApplication类33代表应用管理模块,用来管理每个应用程序的运行和状态变化。当应用程序发生异常时,负责通知CGroup32。
另外,双机管理还可以涉及一个CLinkMng类34,该类可为CLUSTERMNG程序提供一个数据通道,通讯代码使用通讯的共享资源,但由于该类的意义不大,可选择使用。
图4为CGroup的状态图,由于采用阻塞式操作,所以在状态的切换中不会被打断,因此图中只有主用和备用两个状态,没有其他状态。图4中使用到的消息描述如下Msg1表示CClusterMng管理的某个应用程序产生异常消息。当CApplication检测到应用程序异常,发送一条消息到CClusterMng,按照配置CClusterMng应该切换且已经处理完。
Msg2为备用到主用切换消息(ONLINE),系统CLUSTER软件通知CClusterMng,且已经处理完。
Msg3为主用向备用切换消息(OFFLINE),系统CLUSTER通知CClusterMng,并已经处理完成。
图5为CApplication的状态图,由于采用阻塞式操作,所以在状态的切换中不会被打断,因此图中只有主用、备用和一个出错状态,没有其他状态。其中涉及到的消息有Msg1~Msg6,该组消息的具体描述如下
Msg1为备用向主用切换消息(ONLINE),CClusterMng发送切换消息,通知CApplication将管理的应用程序从备用切换到主用,并已处理完成。
Msg2为主用到备用的切换消息(OFFLINE),CClusterMng发送切换消息,通知CApplication将管理的应用程序从主用切换到备用,并已处理完成。
Msg3表示应用程序异常且重启动失败,进入出错状态。
Msg4为握手超时消息,备用状态或者主用状态检测到应用程序握手异常且重启动失败,则进入出错状态。
Msg5表示主用机进程进入正常状态。
Msg6表示备用机进程进入正常状态。
参见图6所示,文件和注册表镜像具体的处理过程是这样的1)首先判断系统是否要退出本线程?如果是,则跳出本线程,否则,判断本机是否处于备用状态?2)如果处于备用状态,则检测本地的备份数据,如果有新的备份数据则进行本地恢复,然后回到步骤1)。所谓本地恢复是针对注册表而言,如果主机的注册表信息有变化而备机又不允许其它机器访问本机的注册表时,主机就会将变化过的注册表备份为一个数据文件,然后将该数据文件拷贝到备机上,备机检测到该数据文件后,在本机上将该文件恢复为注册表信息,并更新本机的注册表,以保证与主机数据信息的一致性。
3)如果本机为非备用状态,则检查本机是否存在有注册文件或注册表路径或内容的变化,如果有,则进行变化文件或注册表内容的镜像,即向备机备份数据,更新备机的信息。具体来说,对于文件就直接拷贝到备机上;对于注册表,要先检查备机是否允许主机访问其注册表,如果允许则直接向备机备份更新注册表信息,否则,主机将变化的注册表信息备份为一数据文件,再将数据文件直接拷贝到备机上,然后回到步骤1)。否则,直接回到步骤1)。
该方法使得主备机之间不仅文件保持一致,注册表也保持一致,如此才不会在主备切换时由于注册表信息不同而使应用程序无法正常运行。
本发明的方法是将完成上述功能的应用程序同时放置在主备机上各一套,以保证双机同步正常运行。
权利要求
1.一种双机备份的实现方法,是通过双机系统间应用层的通信和系统层的支持实现主备机之间的同步运行,其特征在于在双机系统的应用层和系统层之间抽象出一个管理层,用以实现双机系统间的业务管理;该业务管理至少包括控制浮动IP的切换、进行文件和注册表的镜像以及双机间的应用管理。
2.根据权利要求1所述的方法,其特征在于所述的控制浮动IP切换至少包括以下的步骤检查网络状态是否正常,如果出现异常,则通过附加判断决定是否进行IP切换,如果附加判断成立,则切换IP。
3.根据权利要求2所述的方法,其特征在于所述的附加判断为检测浮动IP是否存在以及检测网络通信是否正常。
4.根据权利要求1所述的方法,其特征在于所述的文件和注册表镜像至少包括以下的步骤a.首先判断系统是否要退出本线程,如果是,则跳出本线程,否则,判断本机是否处于备用状态;b.如果处于备用状态,则检测本地的备份数据,如果有新的备份数据则进行本地恢复,然后回到步骤a);c.如果为非备用状态,则检查本机是否存在有注册文件或注册表路径或内容的变化,如果有,则进行变化文件或注册表内容的镜像;否则,直接回到步骤a)。
5.根据权利要求4所述的方法,其特征在于所述的本地恢复是指备机将主机拷贝来的由更新的注册表信息生成的数据文件在本机上恢复为注册表信息并更新备机注册表。
6.根据权利要求4所述的方法,其特征在于步骤c中进一步包括以下步骤主机向备机进行文件或注册表镜像时,首先将变化过的文件拷贝到备机上;然后判断备机是否允许主机访问其注册表,如果允许则直接向备机备份更新注册表信息,否则,主机将变化的注册表信息备份为一数据文件,再将该数据文件拷贝到备机上。
7.根据权利要求1所述的方法,其特征在于所述的双机应用管理至少包括主应用模块、群组管理模块和应用管理模块,该模块之间通过消息的传递完成主备机间的切换及出错状态的处理。
8.根据权利要求7所述的方法,其特征在于所述的消息为主用向备用切换消息,或备用向主用切换消息,或应用程序异常消息。
9.根据权利要求7所述的方法,其特征在于所述的消息为主用向备用切换消息,或备用向主用切换消息,或应用程序异常消息,或握手超时消息,或主用进入正常状态消息,或备用进入正常状态消息。
10.根据权利要求1所述的方法,其特征在于所述的双机应用管理还可以包括一提供数据通道的模块。
11.根据权利要求1或7所述的方法,其特征在于所述的双机应用管理采用阻塞式操作。
全文摘要
本发明公开了一种双机备份的实现方法,是通过双机系统间应用层的通信和系统层的支持实现主备机之间的同步运行,重要的是:在双机系统的应用层和系统层之间抽象出一个管理层,用以实现双机系统间的业务管理;该业务管理至少包括控制浮动IP的切换、进行文件和注册表的镜像以及双机间的应用管理。使用该方法可使双机在各种双机软件环境下均能保证实时同步运行,且在双机切换时可提供IP的动态切换,同时,也可消除不同双机软件间的接口差异。
文档编号G06F11/36GK1366242SQ0110084
公开日2002年8月28日 申请日期2001年1月19日 优先权日2001年1月19日
发明者郭强, 张刚, 吴俊 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1