CN101582787B - 一种双机备份系统及备份方法 - Google Patents
一种双机备份系统及备份方法 Download PDFInfo
- Publication number
- CN101582787B CN101582787B CN2008100979045A CN200810097904A CN101582787B CN 101582787 B CN101582787 B CN 101582787B CN 2008100979045 A CN2008100979045 A CN 2008100979045A CN 200810097904 A CN200810097904 A CN 200810097904A CN 101582787 B CN101582787 B CN 101582787B
- Authority
- CN
- China
- Prior art keywords
- module
- server
- resource object
- resource
- system monitoring
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Abstract
本发明公开了一种双机备份系统及方法,所述系统包括工作服务器和备份服务器,系统监控模块用于通过内部心跳线与本地服务器的另外一个系统监控模块互相监控;系统监控模块同时还用于检测与其连接的资源对象模块发送的检测资源的状态信息,并给本地服务器的管理模块发送告警,并在确定为资源对象模块出现故障时,通过外部心跳线向对端服务器的系统监控模块发送标记为错误的心跳信息;资源对象模块用于检测资源对象模块中的各种资源对象;管理模块用于根据其接收告警的情况判定是否需要执行双机资源的切换操作;资源对象模块用于提供本地服务器的各种资源对象。本发明解决了目前由于双机备份自身故障而引发的双机资源误切换和脑裂故障。
Description
技术领域
本发明涉及通讯技术领域,尤其涉及一种双机备份系统及备份方法。
背景技术
双机备份一般指两台服务器,使用共享的存储设备(磁盘阵列柜、存储区域网SAN)或无共享存储设备。两台服务器可以采用互备、主从、并行等不同的方式。在工作过程中,两台服务器将以一个虚拟的IP地址对外提供服务,依工作方式的不同,将服务请求发送给其中一台服务器承担。
如图1所示,图1为现有双机备份系统的结构示意图,包括:Active服务器100和Backup服务器101,Active服务器100和Backup服务器101之间通过心跳网络102协调双机。Active服务器100内部包括系统监控模块1001、资源对象检测模块1002、资源对象模块1003以及管理模块1004四部分。类似的Backup服务器101内也包括这四个模块。
现有双机备份系统具有以下弊端:
(1)一些双机软件要求必须提供共享存储设备,不支持无共享存储设备的方式,在一些对于存储容量并不大的应用中,浪费用户的硬件投资;
(2)另外一些双机软件提供的软双机功能,只提供从Active主机到Backup机的异步镜像功能,无法提供实时同步的本地存储镜像功能,在出现故障执行双机切换操作时会丢失一部分用户应用数据,对用户应用造成损失;
(3)传统双机软件内部构架一般只有1个系统监控模块,负责接收来自资源对象检测程序的信息,并通过心跳网络与其它服务器的系统监控程序保持心跳通信,协调双机系统之间的关系。双机备份本身即是防范由于单个设备的故障导致服务中断,但双机备份软件自身由于只有1个系统监控模块恰恰又形成了一个新的单点,在双机备份软件自身就存在单点故障隐患,从而可能会引发以下2点故障:
(a)由于双机之间的心跳网络是通过双机备份软件内的系统监控模块进行通讯,所以,在目前的双机系统中,即使增加多条心跳线时,当系统监控模块出现故障后,还是会出现心跳网络全部瘫痪的故障现象,导致对端Backup服务器误认为Active服务器处于死机状态,可能出现“双Active服务器”的脑裂(Split-Brain)故障现象,进而导致两端服务器都在争夺共享资源,最严重的后果甚至会破坏用户共享存储设备的数据完整性。
(b)由于存在系统监控模块、资源对象检测模块的单点故障隐患,可能导致在双机备份软件控制的多种资源对象服务均正常运行时,由于双机备份软件自身的单点故障而引发双机资源不必要的系统误切换,降低了整体系统的运行效率、可靠性和可用性。
发明内容
鉴于上述的分析,本发明的目的在于提供一种双机备份系统及备份方法,用以解决现有技术中存在的由于单点故障引发的脑裂等问题。
本发明的目的是通过以下技术方案实现的:
本发明提供了一种双机备份系统,所述系统包括:包括通过外部心跳线连接的工作服务器和备份服务器,其特征在于,所述工作服务器和备份服务器分别包括:两个系统监控模块、两个资源对象检测模块、资源对象模块和管理模块,其中,
所述系统监控模块,用于通过内部心跳线与本地服务器的另外一个系统监控模块互相监控,当在预定时间内未检测到对方发来的心跳信息或检测到标记为错误的心跳信息时,给本地服务器的管理模块发送告警;所述系统监控模块同时还用于检测与其连接的资源对象检测模块发送的检测资源的状态信息,当在预定时间内未检测到所述状态信息或检测到标记为错误的状态信息时,给本地服务器的管理模块发送告警,并在确定为资源对象模块出现故障时,通过外部心跳线向对端服务器的系统监控模块发送标记为错误的心跳信息,触发对端服务器的管理模块的告警处理流程;
所述资源对象检测模块,作为本地服务器的另外一个资源对象检测模块的备份,用于检测资源对象模块中的各种资源对象,并定期将检测资源的状态信息发送给本地服务器的系统监控模块;
所述管理模块,用于根据其接收告警的情况判定是否需要执行双机资源的切换操作;
所述资源对象模块,用于提供本地服务器的各种资源对象。
进一步地,所述管理模块具体用于,根据收到的告警判断两个系统监控模块或者两个资源对象检测模块是否全部告警,如果两个系统监控模块或者两个资源对象检测模块全部出现告警,则执行双机资源的切换操作;如果其中一个系统监控模块或者其中一个资源对象检测模块出现告警,则执行备份操作;如果两个系统监控模块全部没有告警,则消除内部心跳误报故障信息;如果两个资源对象检测模块全部没有告警,则检测是否是资源对象模块出现故障,当确认是是资源对象模块出现故障时,执行双机资源的切换操作。
进一步地,两个所述系统监控模块还用于,分别通过外部心跳线定时向对端服务器对应的系统监控模块发送心跳信息,并检测对端服务器的系统监控模块发来的心跳信息,当在预定时间内未检测到对端服务器发来的心跳信息或检测到标记为错误的心跳信息时,则激发本地服务器的管理模块进行告警处理;
所述本地服务器的管理模块用于结合所述资源对象模块的运行状态和共享资源的锁定状态,判断是否需要执行双机资源的切换操作。
进一步地,所述管理模块具体用于,判断是单根外部心跳线还是多根外部心跳线发生故障:如果是多根外部心跳线发生故障,则锁定共享资源;如果是单根外部心跳线发生故障,所述管理模块通过给两个系统监控模块、两个资源对象检测模块、资源对象模块发送检测信息来进一步定位故障信息:如果是单点故障,则执行备份操作,否则执行双机资源的切换操作。
进一步地,所述本地服务器和对端服务器还分别包括数据同步模块,所述数据同步模块具体包括:数据一级同步模块、数据二级同步模块和数据三级同步模块,其中,
所述数据一级同步模块,用于比较所述工作服务器和所述备份服务器的本地存储数据的异同,删除所述工作服务器和所述备份服务器相同的数据;
所述数据二级同步模块,用于将所述工作服务器和所述备份服务器不同的数据分别拷贝到对端服务器;
所述数据三级同步模块,用于负责所述工作服务器和所述备份服务器的数据实时同步写入本地存储。
其中,所述资源对象模块提供的资源对象包括以下一种或多种:
本地服务器自身的硬件状态、网络资源、共享存储资源、数据库系统、重要的系统应用程序模块。
本发明还提供了一种双机备份方法,通过外部心跳线连接的工作服务器和备份服务器各预先设置有两个系统监控模块、两个资源对象检测模块、资源对象模块和管理模块,并且两个所述系统监控模块通过内部心跳线相连,则所述方法包括:
所述系统监控模块通过内部心跳线与本地服务器的另外一个系统监控模块交换内部心跳信息,当在预定时间内未检测到对方发来的内部心跳信息或检测到标记为错误的心跳信息时,给本地服务器的管理模块发送告警;
所述管理模块根据其从所述系统监控模块接收告警的情况判定是否需要执行双机资源的切换操作;
所述方法还包括:
所述资源对象检测模块定时检测资源对象模块中的各种资源对象,并定期将检测资源的状态信息发送给本地服务器的系统监控模块;
所述系统监控模块定时检测与其连接的资源对象检测模块发送来的检测资源的状态信息,当在预定时间内未检测到状态信息或检测到标记为错误的状态信息时,给本地服务器的管理模块发送告警,同时通过心跳线向对端服务器的系统监控模块发送标记为错误的心跳信息,触发对端服务器的管理模块的告警处理流程;
所述本地服务器的管理模块根据其从所述资源对象检测模块接收告警的情况判定是否需要执行双机资源的切换操作。
进一步地,所述管理模块根据其从所述系统监控模块接收告警的情况判定是否需要执行双机资源的切换操作的步骤具体包括:
所述管理模块根据其从所述系统监控模块接收告警的情况进行判断:
如果两个系统监控模块全部出现告警,则执行双机资源的切换操作;如果其中一个系统监控模块出现告警,则执行备份操作;如果两个系统监控模块全部没有告警,则消除内部心跳误报故障信息。
进一步地,所述管理模块根据其从所述资源对象检测模块接收告警的情况判定是否需要执行双机资源的切换操作的步骤具体包括:
所述管理模块根据其从所述资源对象检测模块接收告警的情况进行判断:
如果两个资源对象检测模块全部出现告警,则执行双机资源的切换操作;如果其中一个资源对象检测模块出现告警,则执行备份操作;如果两个资源对象检测模块全部没有告警,则检测是否是资源对象模块出现故障,当确认是是资源对象模块出现故障时,由本地服务器的系统监控模块通过心跳线向对端系统监控模块发送标记为错误的心跳信息,执行双机资源的切换操作。
进一步地,所述方法还包括:
本地服务器的系统监控模块通过外部心跳线定时向对端服务器对应的系统监控模块发送心跳信息,并检测对端服务器的系统监控模块发来的心跳信息,当在预定时间内未检测对端服务器发来的心跳信息或检测到标记为错误的心跳信息时,激发本地服务器的管理模块的告警处理流程;
本地服务器的管理模块判断是单根外部心跳线多根外部心跳线发生故障:
如果是多根外部心跳线发生故障,则锁定共享资源;
如果是单根外部心跳线发生故障,则通过给两个系统监控模块、两个资源对象检测模块、资源对象模块发送检测信息来进一步定位故障信息:如果是单点故障,则执行备份操作,否则执行双机资源的切换操作。
进一步地,当所述本地服务器和对端服务器还分别设置有数据同步模块时,所述方法还包括:
所述数据同步模块比较所述工作服务器和所述备份服务器的本地存储数据的异同,删除所述工作服务器和所述备份服务器相同的数据,然后将所述工作服务器和所述备份服务器不同的数据分别拷贝到对端服务器,最后将所述工作服务器和所述备份服务器的数据实时同步写入本地存储。
本发明有益效果如下:本发明解决了目前可能由于双机备份软件自身故障而引发的双机资源误切换;同时通过双系统监控模块引入的双心跳线设置,能够真正实现冗余心跳线功能,解决由于单点系统监控模块故障有可能引发的脑裂故障问题,能够有效提高整体系统的可靠性和可用性。
本发明的其他特征和优点将在随后的说明书中阐述,并且,部分的从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
图1为现有技术的双机备份系统的结构示意图;
图2为本发明实施所述双机备份系统的结构示意图;
图3为本发明实施例所述双机备份系统中,数据同步模块的结构示意图;
图4本发明实施例所述方法中,双机备份系统处理系统监控故障的流程示意图;
图5为本发明实施例所述方法中,双机备份系统处理资源对象检测故障的流程示意图。
具体实施方式
下面结合附图来具体描述本发明的优先实施例,其中,附图构成本申请一部分,并与本发明的实施例一起用于阐释本发明的原理。
首先结合附图2和附图3对本发明实施例所述系统进行详细说明。
如图2所示,图2为本发明实施例所述系统的结构示意图,包括:Active服务器200(工作服务器)和Backup服务器201(备份服务器),其中,Active服务器200作为本地服务器的同时还作为Backup服务器201的对端服务器,Backup服务器201作为本地服务器的同时还作为Active服务器200的对端服务器,Active服务器200和Backup服务器201之间通过心跳线202和心跳线203协调双机。
所述Active服务器200具体包括:系统第一监控模块2001、系统第二监控模块2005、资源对象第一检测模块2002、资源对象第二检测模块2006、资源对象模块2003、管理模块2004和数据同步模块2007。同样,Backup服务器201具体包括:系统第一监控模块2011、系统第二监控模块2015、资源对象第一检测模块2012、资源对象第二检测模块2016、资源对象模块2013、管理模块2014和数据同步模块2017。其中,系统第一监控模块2001和系统第一监控模块2011通过外部心跳线202交换外部心跳信息,系统第二监控模块2005和系统第二监控模块2015通过外部心跳线203交换外部心跳信息,如果其中一个系统监控模块异常中断,则另一个系统监控模块将会适时进行处理,从而有效预防双机备份软件自身的单点故障。
下面以Active服务器200为例,对各个模块的功能及实施过程进行详细介绍。
系统第一监控模块2001,负责和系统第二监控模块2005通过内部心跳线交换内部心跳信息,并定期检测系统第二监控模块2005发来的内部心跳信息,当在预定时间内未检测到系统第二监控模块2005发来的心跳信息或接收到标记为错误的心跳信息时,则给管理模块2004发送告警。同时,系统第一监控模块2001还用于检测与其连接的资源对象第一检测模块2002发送的检测资源的状态信息,当在预定时间内未检测到所述状态信息或接收到标记为错误的状态信息时,给管理模块2004发送告警,同时在确定为资源对象模块2003出现故障时,所述系统第一监控模块2001向对端服务器(这里为Backup服务器201)的系统第一监控模块2011通过心跳线发送标记为错误的心跳信息,触发Backup服务器201的管理模块2014的告警处理流程。同时,系统第一监控模块2001还负责定时通过外部心跳线202向Backup服务器201的系统第一监控模块2011发送心跳信息通讯,协调运行Active服务器200与Backup服务器201之间的关系,并定时检测Backup服务器201的系统监控模块发来的外部心跳信息,当在预定时间内未检测到Backup服务器201发来的外部心跳信息或接收到标记为错误的心跳信息时,说明Backup服务器201可能出现故障,从而激发Active服务器200的管理模块2004和Backup服务器201的管理模块2014进行相应处理。
系统第二监控模块2005,与系统第一监控模块2001的任务类似,负责和系统第一监控模块2001通过内部心跳线交换内部心跳信息,并定期检测系统第一监控模块2001发来的内部心跳信息,当在预定时间内未检测到系统第一监控模块2001发来的心跳信息或接收到标记为错误的心跳信息时,则给管理模块2004发送告警。同时,系统第二监控模块2005还用于检测与其连接的资源对象第二检测模块2006发送的检测资源的状态信息,当在预定时间内未检测到所述状态信息或接收到标记为错误的状态信息时,给管理模块2004发送告警,同时在确定为资源对象模块2003出现故障时,所述系统第二监控模块2005向Backup服务器201的系统第一监控模块2015通过心跳线发送标记为错误的心跳信息,触发Backup服务器201的管理模块2014的告警处理流程。同时,系统第二监控模块2005还负责定时通过心跳线203向对端服务器(这里为Active服务器200)的系统第一监控模块2011发送心跳信息通讯,协调运行Active服务器200与Backup服务器201之间的关系,并定时检测Active服务器200的系统监控模块发来的外部心跳信息,当在预定时间内未检测到Active服务器200发来的心跳信息时或接收到标记为错误的心跳信息,说明Active服务器200可能出现故障,从而激发Active服务器201的管理模块2004和Backup服务器201的管理模块2014进行相应处理。
资源对象第一检测模块2002,作为一个软件监视模块,主要任务是用来监测资源对象模块,例如一些重要的硬件和软件资源的可用性,包括数据库服务或其他应用服务进程等,并向系统第一监控模块2001发送检测资源的状态信息,报告服务的状态。如果系统第一监控模块2001在预定时间内接收到资源对象第一检测模块2002发来的信息,就认为此服务是正常的。如果信息消失或发出error信息,系统第一监控模块2001会根据接受到的检测信息来确定资源对象第一检测模块2002所检测的资源服务是否正常,进而执行相应的处理动作。同时资源对象第一检测模块2002作为资源对象第二检测模块2006的冗余备份,能够有效预防双机备份软件在资源对象检测模块方面的单点故障。
资源对象第二检测模块2006,也是作为一个软件监视模块,主要任务和资源对象第一检测模块2002的主要任务类似,主要任务是用来监测资源对象模块。如果系统第二监控模块2005在指定的时间内接收到资源对象第二检测模块2006发来的信息,就认为此服务是正常的。如果信息消失或发出error信息,系统第二监控模块2005会根据接受到的检测信息来确定资源对象第二检测模块2006所检测的资源服务是否正常,进而执行相应的处理动作。同时资源对象第二检测模块2006作为资源对象第一检测模块2002的冗余备份,能够有效预防双机备份软件在资源对象检测模块方面的单点故障。
资源对象模块,是资源对象第一检测模块2002和资源对象第二检测模块2006监测的硬件和软件资源,包括不限于如下内容:服务器自身硬件状态,包括硬盘、内存、网卡等状态;网络资源,例如浮动IP地址;共享存储资源,例如磁阵;数据库系统,例如Oracle、Sybase、SQL、Informix等;重要的系统应用程序模块,例如WWW服务、FTP服务等。
管理模块2004,负责接收系统第一监控模块2001和/或系统第二监控模块2005发送的告警,并根据接收到告警的情况判断两个系统监控模块或者两个资源对象检测模块是否全部告警,如果两个系统监控模块或者两个资源对象检测模块全部出现告警,则执行双机资源的切换操作;如果其中一个系统监控模块或者其中一个资源对象检测模块出现告警,则执行备份操作;如果两个系统监控模块全部没有告警,则消除内部心跳误报故障信息;如果两个资源对象检测模块全部没有告警,则检测是否是资源对象模块出现故障,当确认是是资源对象模块出现故障时,执行双机资源的切换操作。
同时,当Active服务器200接收不到Backup服务器发来的外部心跳信息或接收到标记为错误的心跳信息时,说明Backup服务器201可能发生故障,此时Backup服务器201的系统监控模块2011负责向管理模块2014发送告警信号,由Backup服务器201的管理模块2014判断是单根心跳线还是多根心跳线(本发明实施例中为两根)发生故障:如果两根外部心跳线202和203都发生故障,为了保证数据完整性,避免脑裂现象,则需要锁定共享资源,避免数据被Active服务器200和Back服务器201同时访问。如果单根外部心跳线发生故障,所述管理模块2004给两个系统监控模块、两个资源对象检测模块、资源对象模块分别发送检测信息来定位故障信息,收到检测信息的模块如果没有发生故障,则给管理模块2004回复响应信息,管理模块2004根据有无收到相应信息的情况来判断具体的故障源,如果是系统监控模块或资源对象检测模块的单点故障,由工作正常的系统监控模块接管出现故障的系统监控模块的任务;如果是两个资源对象检测模块或者两个系统监控模块或者资源对象模块发生故障,则管理模块触发本地系统监控模块通过心跳线向对端监控模块发送标记为错误的心跳信息,则将双机系统的资源从Active服务器切换到Back服务器。
同样,当Backup服务器201接收不到Active服务器200发来的外部心跳信息或接收到标记为错误的心跳信息时,说明Active服务器200可能发生故障,此时Active服务器200的系统监控模块2001负责向Active服务器200的管理模块2004发送告警信号,由Active服务器200的管理模块2004判断是单根心跳线还是多根心跳线(本发明实施例中为两根)发生故障,具体参照上面的描述。
本发明实施例所述系统中,所述数据同步模块2007和数据同步模块2017通过数据同步通道204传递数据,分别包括三级数据同步模块。
如图3所示,图3为本发明实施例所述双机备份系统内部数据同步模块的结构示意图,2007代表Active服务器的数据同步模块,具体包括的三级数据同步模块分别为:数据一级同步模块3001、数据二级同步模块3002和数据三级同步模块3003;2017代表Backup服务器的数据同步模块,具体包括的三级数据同步模块分别为:数据一级同步模块3011、数据二级同步模块3012和数据三级同步模块3013。其中,
数据一级同步模块3001和数据一级同步模块3011,负责比较即将写入两端主机的本地存储数据的异同,删除两端主机数据的相同之处;
数据二级同步模块3002和数据二级同步模块3012,负责异步拷贝两端主机数据的不同之处,确保两端主机存储数据的一致性;
数据三级同步模块3003和据三级同步模块301负责两端数据能够实时同步写入两端主机的本地存储。
下面结合附图4和附图5对利用本发明实施例所述系统进行双机备份的方法进行详细说明。
本发明实施例所述方法主要包括:系统监控模块通过内部心跳线与本地服务器的另外一个系统监控模块交换内部心跳信息,当在预定时间内未检测到对方发来的内部心跳信息时,给本地服务器的管理模块发送告警;管理模块根据其从所述系统监控模块接收告警的情况判定是否需要执行双机资源的切换操作。具体如图4所示,图4为双机备份系统处理系统监控故障的流程示意图,可以包括以下步骤:
401:Active服务器端正常运行;
402:系统第一监控模块2001和系统第二监控模块2005交换内部心跳信息;
403:系统监控模块判断对方的内部心跳信号是否正常;如果正常,则返回步骤401正常运行;如果不正常,则执行步骤404;
404:当其中一个系统监控模块检测不到对方内部心跳信息时,则向管理模块2004发送内部告警信息,同时执行步骤405和步骤407;
405:管理模块2004判断系统第一监控模块2001是否正常,如果正常,则执行步骤409,否则执行步骤406;
406:管理模块2004确认系统第一监控模块2001出现故障,执行步骤409;
407:管理模块2004判断系统第二监控模块2005是否正常,如果正常,则执行步骤409,否则执行步骤408;
408:管理模块2004确认系统第二监控模块2005出现故障;
409:管理模块判断Active的两个系统监控模块是否全部告警?如果两个系统监控模块全部出现告警,则执行步骤410;如果只有1个系统监控模块出现告警,则执行步骤412;如果两个系统监控模块都没有出现告警,则执行步骤419;
410:当两个系统监控模块全部告警时,管理程序向Backup服务器的管理模块2014发出请求切换请求,并执行步骤411;
411:双机备份系统将其控制的资源从Active服务器切换到Backup服务器,本流程结束;
412:由于还保持1个系统监控模块正常工作,所以双机备份系统仍然能够保持正常运行;
413:正常工作的系统监控模块接管出现告警的系统监控模块的任务,和Back服务器的系统监控模块保持心跳信号;
414:正常工作的系统监控模块尝试重新启动出现故障的系统监控模块和对应的资源对象检测模块;
415:正常工作的系统监控模块判断重启故障系统监控程序是否成功?如果重启系统监控程序成功,则执行步骤416;如果重启系统监控程序失败,则执行步骤417;
416:恢复正常后的系统监控模块,重新接管和Backup服务器相应的系统监控模块心跳的发送任务,并执行步骤420;
417:双机系统仍保持正常工作,但管理模块提示用户处理故障;
418:用户手工恢复出现故障的系统监控程序,执行步骤420;
419:当两个系统检测模块全部没有告警时,双机备份系统恢复正常工作,管理模块消除内部心跳误报故障信息,并执行步骤420;
420:Active服务器端恢复正常,本流程结束。
本发明实施例所述方法还包括:资源对象检测模块定时检测资源对象模块中的各种资源对象,并定期将检测资源的状态信息发送给本地服务器的系统监控模块;系统监控模块定时检测与其连接的资源对象模块发送来的检测资源的状态信息,当在预定时间内未检测到状态信息,或者在预定时间内检测到状态信息,并确定所述状态信息错误时,给本地服务器的管理模块发送告警,同时向对端系统监控模块通过心跳线发送标记为错误的心跳信息,触发对端管理模块的告警处理流程;管理模块根据其从所述资源对象检测模块接收告警的情况判定是否需要执行双机资源的切换操作。具体如图5所示,图5双机备份系统处理资源对象检测故障的流程示意图,包括以下步骤:
501:Active服务器端正常运行;
502:资源对象检测模块定时向与其相连的系统监控模块发送检测资源的状态信息;
503:系统监控程序能否接收到资源对象检测模块发来的状态信息?如果能够接收到,则执行步骤504,否则执行步骤505;
504:系统监控程序接收到的状态信息是否正确?如果正确,则执行步骤501,否则执行步骤506;
505:系统监控模块接收不到资源对象检测模块发出的状态信息,向管理模块2004发送内部告警信息,同时执行步骤507和步骤509;
506:系统监控程序确认资源对象检测模块出现故障时,系统监控模块向管理模块2004发送内部告警信息,执行步骤511;
507:管理模块2004判断资源对象第一检测模块2002是否正常?如果检测结果显示正常,则执行步骤511,否则执行步骤508;
508:管理模块确认资源对象第一检测模块2002出现故障,并执行步骤511;
509:管理模块判断资源对象第二检测模块是否正常?如果检测结果显示正常,则执行步骤511,否则执行步骤510;
510:管理模块确认资源对象第二检测模块出现故障,并执行步骤511;
511:管理模块判断Active的两个资源对象检测模块是否全部告警?如果全部出现告警,则执行步骤512;如果只有1个资源对象检测程序出现告警,则执行步骤514;如果两都没有出现告警,则执行步骤519;
512:两个资源对象检测模块均出现故障,管理模块2004向Backup服务器的管理模块2014发出请求切换请求;
513:双机备份系统控制的资源从Active服务器切换到Backup服务器,本流程结束;
514:由于还保持1个资源对象检测软件正常工作,所以双机备份系统仍然能够保持正常运行;
515:正常工作的资源对象检测模块接管出现故障的资源对象检测模块的任务;
516:正常工作的资源对象检测模块尝试重新启动出现故障的资源对象检测模块;
517:重启资源对象检测模块是否成功?如果成功,则执行步骤518,否则执行步骤522;
518:资源对象检测模块重新接管原先的任务,并执行步骤526;
519:当两个资源对象检测模块全部没有告警时,管理模块检测Active服务器的资源对象模块2003是否正常?如果正常,则执行步骤524,否则执行步骤520;
520:确认是Active服务器资源对象模块出现故障,管理模块通过本地服务器的系统监控模块和Backup服务器的系统监控模块向Backup服务器的管理模块发出请求切换请求;
521:双机备份系统控制的资源从Active服务器切换到Backup服务器,本流程结束;
522:双机系统仍保持正常工作,但管理模块提示用户处理故障;
523:用户手工恢复出现故障的资源对象检测模块,执行步骤526;
524:确认是系统监控程序误报故障;
525:管理模块消除内部告警信息,并执行步骤526;
526:Active服务器恢复正常,本流程结束。
本发明实施例所述方法还包括:Active服务器200的系统第一监控模块2001通过外部心跳线202定时向对端服务器对应的系统监控模块发送心跳信息,并检测对端服务器的系统监控模块发来的心跳信息,当在预定时间内未检测对端服务器发来的心跳信息或接收到标记为错误的心跳信息时,给Active服务器200的管理模块发送外部告警;同样,Active服务器200的系统第一监控模块2005通过外部心跳线203定时向对端服务器对应的系统监控模块发送心跳信息,并检测对端服务器的系统监控模块发来的心跳信息,当在预定时间内未检测对端服务器发来的心跳信息或接收到标记为错误的心跳信息时,给Active服务器200的管理模块发送外部告警;
所述管理模块根据所述系统第一监控模块2001和/或系统第二监控模块2005发来的外部告警进行判断:如果是两条外部心跳线都发生故障,则锁定共享资源;如果是单条外部心跳线发生故障,则所述管理模块给Active服务器200的系统第一监控模块2001、系统第二监控模块2005、第一资源对象检测模块2002、第二资源对象检测模块2006及资源对象模块2003发送检测信息来定位故障信息,如果是两个系统监控模块之一或两个资源对象检测模块之一的单点故障,则执行备份操作;如果是两个系统监控模块或者两个资源对象检测模块或者资源对象模块发生故障,则执行双机资源的切换操作,将双机系统的资源从Active服务器200切换到Back服务器201。
以上仅以Active200服务器为例,对利用双机备份系统进行双机备份的方法进行了说明,实际上,本领域普通技术人员应该知道,在整个双机备份系统中,Backup201服务器与Active200服务器是同时进行类同的操作的,这样可以保证当系统发生故障时自动切换到对端服务器。对于Backup服务器201的具体过程,请参照Active服务器200的处理描述,此处不再赘述。
当Active服务器200和Backup服务器201中分别设置有数据同步模块时,所述方法还包括:数据同步模块比较Active服务器200和Backup服务器201的本地存储数据的异同,删除Active服务器200和Backup服务器201相同的数据,然后将Active服务器200和Backup服务器201不同的数据分别拷贝到对端服务器,最后将Active服务器200和Backup服务器201的数据实时同步写入本地存储。例如,Active服务器200中存储的数据为a、b、c,Backup服务器201中存储的数据为b、c、d,此时Active服务器200的数据同步模块比较Active服务器200和Backup服务器201的本地存储数据的异同,将数据b和c删除,并将数据a拷贝到Backup服务器201的内存中;同理,Backup服务器201的数据同步模块比较Active服务器200和Backup服务器201的本地存储数据的异同,将将数据b和c删除,并将数据d拷贝到Active服务器200的内存中,最后,Active服务器200将Backup服务器201拷过来的数据d和删除的数据b和c写入保存,同时,Backup服务器201将Active服务器200拷贝过来的数据a和删除的数据b和c写入保存,这样,Active服务器200和Backup服务器201的本地存储数据就都为相同的了。
综上所述,本发明实施例提供了一种双机备份系统及方法,能够支持软双机工作模式,支持两端数据的实时同步,并且能够有效避免系统监控模块和资源对象检测模块的单点故障隐患,解决目前可能由于双机备份软件自身故障而引发的双机资源误切换;同时通过双系统监控模块引入的双心跳线设置,能够真正实现冗余心跳线功能,解决由于单点系统监控模块故障有可能引发的脑裂故障问题,能够有效提高整体系统的可靠性和可用性。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求书的保护范围为准。
Claims (11)
1.一种双机备份系统,包括通过外部心跳线连接的工作服务器和备份服务器,其特征在于,所述工作服务器和备份服务器分别包括:两个系统监控模块、两个资源对象检测模块、资源对象模块和管理模块,其中,
所述系统监控模块,用于通过内部心跳线与本地服务器的另外一个系统监控模块互相监控,当在预定时间内未检测到对方发来的心跳信息或检测到标记为错误的心跳信息时,给本地服务器的管理模块发送告警;所述系统监控模块同时还用于检测与其连接的资源对象检测模块发送的检测资源的状态信息,当在预定时间内未检测到所述状态信息或检测到标记为错误的状态信息时,给本地服务器的管理模块发送告警,并在确定为资源对象模块出现故障时,通过外部心跳线向对端服务器的系统监控模块发送标记为错误的心跳信息,触发对端服务器的管理模块的告警处理流程;
所述资源对象检测模块,作为本地服务器的另外一个资源对象检测模块的备份,用于检测资源对象模块中的各种资源对象,并定期将检测资源的状态信息发送给本地服务器的系统监控模块;
所述管理模块,用于根据其接收告警的情况判定是否需要执行双机资源的切换操作;
所述资源对象模块,用于提供本地服务器的各种资源对象。
2.根据权利要求1所述的系统,其特征在于,所述管理模块具体用于,根据收到的告警判断两个系统监控模块或者两个资源对象检测模块是否全部告警,如果两个系统监控模块或者两个资源对象检测模块全部出现告警,则执行双机资源的切换操作;如果其中一个系统监控模块或者其中一个资源对象检测模块出现告警,则执行备份操作;如果两个系统监控模块全部没有告警,则消除内部心跳误报故障信息;如果两个资源对象检测模块全部没有告警,则检测是否是资源对象模块出现故障,当确认是是资源对象模块出现故障时,执行双机资源的切换操作。
3.根据权利要求1或2所述的系统,其特征在于,两个所述系统监控模块还用于,分别通过外部心跳线定时向对端服务器对应的系统监控模块发送心跳信息,并检测对端服务器的系统监控模块发来的心跳信息,当在预定时间内未检测到对端服务器发来的心跳信息或检测到标记为错误的心跳信息时,则激发本地服务器的管理模块进行告警处理;
所述本地服务器的管理模块用于结合所述资源对象模块的运行状态和共享资源的锁定状态,判断是否需要执行双机资源的切换操作。
4.根据权利要求3所述的系统,其特征在于,所述管理模块具体用于,判断是单根外部心跳线还是多根外部心跳线发生故障:如果是多根外部心跳线发生故障,则锁定共享资源;如果是单根外部心跳线发生故障,所述管理模块通过给两个系统监控模块、两个资源对象检测模块、资源对象模块发送检测信息来进一步定位故障信息:如果是单点故障,则执行备份操作,否则执行双机资源的切换操作。
5.根据权利要求1或2所述的系统,其特征在于,所述本地服务器和对端服务器还分别包括数据同步模块,所述数据同步模块具体包括:数据一级同步模块、数据二级同步模块和数据三级同步模块,其中,
所述数据一级同步模块,用于比较所述工作服务器和所述备份服务器的本地存储数据的异同,删除所述工作服务器和所述备份服务器相同的数据;
所述数据二级同步模块,用于将所述工作服务器和所述备份服务器不同的数据分别拷贝到对端服务器;
所述数据三级同步模块,用于负责所述工作服务器和所述备份服务器的数据实时同步写入本地存储。
6.根据权利要求1或2所述的系统,其特征在于,所述资源对象模块提供的资源对象包括以下一种或多种:
本地服务器自身的硬件状态、网络资源、共享存储资源、数据库系统、重要的系统应用程序模块。
7.一种进行双机备份的方法,其特征在于,通过外部心跳线连接的工作服务器和备份服务器各预先设置有两个系统监控模块、两个资源对象检测模块、资源对象模块和管理模块,并且两个所述系统监控模块通过内部心跳线相连,则所述方法包括:
所述系统监控模块通过内部心跳线与本地服务器的另外一个系统监控模块交换内部心跳信息,当在预定时间内未检测到对方发来的内部心跳信息或检测到标记为错误的心跳信息时,给本地服务器的管理模块发送告警;
所述管理模块根据其从所述系统监控模块接收告警的情况判定是否需要执行双机资源的切换操作;
所述方法还包括:
所述资源对象检测模块定时检测资源对象模块中的各种资源对象,并定期将检测资源的状态信息发送给本地服务器的系统监控模块;
所述系统监控模块定时检测与其连接的资源对象检测模块发送来的检测资源的状态信息,当在预定时间内未检测到状态信息或检测到标记为错误的状态信息时,给本地服务器的管理模块发送告警,同时通过心跳线向对端服务器的系统监控模块发送标记为错误的心跳信息,触发对端服务器的管理模块的告警处理流程;
所述本地服务器的管理模块根据其从所述资源对象检测模块接收告警的情况判定是否需要执行双机资源的切换操作。
8.根据权利要求7所述的方法,其特征在于,所述管理模块根据其从所述系统监控模块接收告警的情况判定是否需要执行双机资源的切换操作的步骤具体包括:
所述管理模块根据其从所述系统监控模块接收告警的情况进行判断:
如果两个系统监控模块全部出现告警,则执行双机资源的切换操作;如果其中一个系统监控模块出现告警,则执行备份操作;如果两个系统监控模块全部没有告警,则消除内部心跳误报故障信息。
9.根据权利要求7所述的方法,其特征在于,所述管理模块根据其从所述资源对象检测模块接收告警的情况判定是否需要执行双机资源的切换操作的步骤具体包括:
所述管理模块根据其从所述资源对象检测模块接收告警的情况进行判断:
如果两个资源对象检测模块全部出现告警,则执行双机资源的切换操作;如果其中一个资源对象检测模块出现告警,则执行备份操作;如果两个资源对象检测模块全部没有告警,则检测是否是资源对象模块出现故障,当确认是是资源对象模块出现故障时,由本地服务器的系统监控模块通过心跳线向对端系统监控模块发送标记为错误的心跳信息,执行双机资源的切换操作。
10.根据权利要求7到9中任意一项所述的方法,其特征在于,所述方法还包括:
本地服务器的系统监控模块通过外部心跳线定时向对端服务器对应的系统监控模块发送心跳信息,并检测对端服务器的系统监控模块发来的心跳信息,当在预定时间内未检测对端服务器发来的心跳信息或检测到标记为错误的心跳信息时,激发本地服务器的管理模块的告警处理流程;
本地服务器的管理模块判断是单根外部心跳线多根外部心跳线发生故障:
如果是多根外部心跳线发生故障,则锁定共享资源;
如果是单根外部心跳线发生故障,则通过给两个系统监控模块、两个资源对象检测模块、资源对象模块发送检测信息来进一步定位故障信息:如果是单点故障,则执行备份操作,否则执行双机资源的切换操作。
11.根据权利要求7到9中任意一项所述的方法,其特征在于,当所述本地服务器和对端服务器还分别设置有数据同步模块时,所述方法还包括:
所述数据同步模块比较所述工作服务器和所述备份服务器的本地存储数据的异同,删除所述工作服务器和所述备份服务器相同的数据,然后将所述工作服务器和所述备份服务器不同的数据分别拷贝到对端服务器,最后将所述工作服务器和所述备份服务器的数据实时同步写入本地存储。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008100979045A CN101582787B (zh) | 2008-05-16 | 2008-05-16 | 一种双机备份系统及备份方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008100979045A CN101582787B (zh) | 2008-05-16 | 2008-05-16 | 一种双机备份系统及备份方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101582787A CN101582787A (zh) | 2009-11-18 |
CN101582787B true CN101582787B (zh) | 2011-12-07 |
Family
ID=41364762
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008100979045A Expired - Fee Related CN101582787B (zh) | 2008-05-16 | 2008-05-16 | 一种双机备份系统及备份方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101582787B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104360918A (zh) * | 2014-10-15 | 2015-02-18 | 许继电气股份有限公司 | 一种智能变电站系统自诊断与自恢复方法 |
Families Citing this family (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102456049A (zh) * | 2010-10-28 | 2012-05-16 | 无锡江南计算技术研究所 | 数据迁移方法、装置及面向对象的分布式文件系统 |
CN102142981B (zh) * | 2010-11-01 | 2014-01-01 | 华为技术有限公司 | 终端掉线的处理方法和系统以及宽带远程接入服务器 |
CN102013997B (zh) * | 2010-11-22 | 2014-06-11 | 中兴通讯股份有限公司 | 电信网管系统中的双机数据备份方法和系统 |
CN102014029A (zh) * | 2010-12-25 | 2011-04-13 | 中国人民解放军国防科学技术大学 | 一种双机互备中检测对外服务网络异常的方法 |
CN102932196B (zh) * | 2011-08-11 | 2015-10-07 | 中国移动通信集团浙江有限公司 | 一种主机系统状态的检测方法和装置 |
CN102394791A (zh) * | 2011-10-26 | 2012-03-28 | 浪潮(北京)电子信息产业有限公司 | 宕机恢复方法和系统 |
CN102360324B (zh) * | 2011-10-28 | 2014-04-16 | 华为技术有限公司 | 故障恢复方法和用于故障恢复的设备 |
CN103490914A (zh) * | 2012-06-08 | 2014-01-01 | 华耀(中国)科技有限公司 | 一种网络应用设备多机热备的切换系统及方法 |
EP2837161B1 (en) * | 2012-08-13 | 2018-05-30 | Unify GmbH & Co. KG | Method and apparatus for indirectly assessing a status of an active entity |
CN103812675A (zh) * | 2012-11-08 | 2014-05-21 | 中兴通讯股份有限公司 | 一种实现业务交付平台异地容灾切换的方法和系统 |
CN103309774A (zh) * | 2013-06-24 | 2013-09-18 | 浪潮电子信息产业股份有限公司 | 一种虚拟化集群双层冗余架构搭建方法 |
CN103532753B (zh) * | 2013-10-11 | 2016-08-17 | 中国电子科技集团公司第二十八研究所 | 一种基于内存换页同步的双机热备方法 |
CN103546914B (zh) * | 2013-10-21 | 2017-07-21 | 大唐移动通信设备有限公司 | 一种hss主备管理的方法及装置 |
JP6183931B2 (ja) * | 2013-12-25 | 2017-08-23 | Necソリューションイノベータ株式会社 | クラスタシステム、サーバ装置、クラスタシステムの管理方法、及びプログラム。 |
CN103905247B (zh) * | 2014-03-10 | 2017-02-01 | 北京交通大学 | 一种基于多客户裁决的双机备份方法及系统 |
CN105740106A (zh) * | 2016-03-30 | 2016-07-06 | 苏州美天网络科技有限公司 | 具有服务器快速切换功能的服务器系统 |
CN105897508A (zh) * | 2016-04-01 | 2016-08-24 | 锐捷网络股份有限公司 | 一种分布式数据中心业务处理的方法和核心交换机 |
TWI607372B (zh) * | 2016-11-25 | 2017-12-01 | 捷鼎國際股份有限公司 | 資料儲存系統及其資料儲存方法 |
CN106714209B (zh) * | 2016-12-15 | 2020-02-14 | 上海埃威航空电子有限公司 | Ais基站虚拟航标播发监测系统及方法 |
CN106789246A (zh) * | 2016-12-22 | 2017-05-31 | 广西防城港核电有限公司 | 一种主备服务器的切换方法及装置 |
CN107071351B (zh) * | 2017-03-30 | 2019-11-05 | 杭州瑞网广通信息技术有限公司 | 一种车站多级容灾架构及方法 |
TW201929551A (zh) * | 2017-12-26 | 2019-07-16 | 圓剛科技股份有限公司 | 具有備援機制的串流系統及其備援方法 |
CN108418860A (zh) * | 2018-01-26 | 2018-08-17 | 郑州云海信息技术有限公司 | 一种基于ceph集群的osd心跳通讯方法 |
CN110545197B (zh) * | 2018-05-29 | 2022-09-09 | 杭州海康威视系统技术有限公司 | 节点状态监控方法及装置 |
CN109286529B (zh) * | 2018-10-31 | 2021-08-10 | 武汉烽火信息集成技术有限公司 | 一种恢复RabbitMQ网络分区的方法及系统 |
CN109495312B (zh) * | 2018-12-05 | 2020-01-17 | 广州鼎甲计算机科技有限公司 | 基于仲裁盘和双链路的高可用集群的实现方法和系统 |
CN109507866A (zh) * | 2018-12-07 | 2019-03-22 | 天津津航计算技术研究所 | 一种基于网络地址漂移技术的双机冗余系统及方法 |
CN109617721A (zh) * | 2018-12-11 | 2019-04-12 | 中国航空工业集团公司西安航空计算技术研究所 | 一种机载网络管理端双机容错备份方法、装置及存储介质 |
CN110399254A (zh) * | 2019-06-29 | 2019-11-01 | 苏州浪潮智能科技有限公司 | 一种服务器cmc双机热活方法、系统、终端及存储介质 |
CN110336701B (zh) * | 2019-07-11 | 2022-03-01 | 超越科技股份有限公司 | 一种高密度双路服务器管理方法及系统 |
CN111416749B (zh) * | 2020-04-08 | 2023-04-28 | 上海晨驭信息科技有限公司 | 一种用于服务器主备自动切换的系统 |
CN111464362B (zh) * | 2020-04-08 | 2023-04-07 | 上海晨驭信息科技有限公司 | 一种用于服务器一主多备自动切换的系统 |
CN111651291B (zh) * | 2020-04-23 | 2023-02-03 | 国网河南省电力公司电力科学研究院 | 一种共享存储集群防脑裂的方法、系统、计算机存储介质 |
CN112346925A (zh) * | 2020-09-25 | 2021-02-09 | 南京恩瑞特实业有限公司 | 一种进程级双机热备冗余系统及方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1642030A (zh) * | 2004-01-05 | 2005-07-20 | 华为技术有限公司 | 一种网管双机容灾备份的实现方法 |
CN101178673A (zh) * | 2007-12-14 | 2008-05-14 | 中国人民解放军国防科学技术大学 | 一种并行计算机系统管理控制器的容错备份方法及系统 |
-
2008
- 2008-05-16 CN CN2008100979045A patent/CN101582787B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1642030A (zh) * | 2004-01-05 | 2005-07-20 | 华为技术有限公司 | 一种网管双机容灾备份的实现方法 |
CN101178673A (zh) * | 2007-12-14 | 2008-05-14 | 中国人民解放军国防科学技术大学 | 一种并行计算机系统管理控制器的容错备份方法及系统 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104360918A (zh) * | 2014-10-15 | 2015-02-18 | 许继电气股份有限公司 | 一种智能变电站系统自诊断与自恢复方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101582787A (zh) | 2009-11-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101582787B (zh) | 一种双机备份系统及备份方法 | |
US6754792B2 (en) | Method and apparatus for resynchronizing paired volumes via communication line | |
CN101291243B (zh) | 高可用集群系统的裂脑预防方法 | |
JP5352115B2 (ja) | ストレージシステム及びその監視条件変更方法 | |
CN101179432A (zh) | 一种多机环境中实现系统高可用的方法 | |
US20050005001A1 (en) | Cluster computing system and its failover method | |
CN104794028A (zh) | 一种容灾处理方法、装置、主用数据中心和备用数据中心 | |
EP2187309A1 (en) | Remote copying management system, method and apparatus | |
CN109471759B (zh) | 一种基于sas双控设备的数据库故障切换方法及设备 | |
JPH08227344A (ja) | 二重磁気ディスク制御装置間の通信制御装置 | |
CN103795553A (zh) | 基于监控的主、备服务器切换 | |
CN101237315A (zh) | 一种用于双控高可用系统的同步检测和故障隔离方法 | |
CN101873223A (zh) | 基于ip切换的n+m服务备份机制 | |
JPH03164837A (ja) | 通信制御処理装置の切替方法 | |
WO2022088861A1 (zh) | 数据库故障处理方法和装置 | |
CN103186348B (zh) | 存储系统及其数据读写方法 | |
CN105302768A (zh) | 一种从cpu异常处理方法及装置 | |
CN102457400B (zh) | 一种防止磁盘镜像资源发生脑裂的方法 | |
US20050055602A1 (en) | Autonomic recovery of PPRC errors detected by PPRC peer | |
WO2010100757A1 (ja) | 演算処理システム、再同期方法、およびファームプログラム | |
CN109117317A (zh) | 一种集群故障恢复方法和相关装置 | |
CN112948484A (zh) | 分布式数据库系统和数据灾备演练方法 | |
KR20030048503A (ko) | 이중화 서버 구조의 데이터 동기화를 위한 통신 시스템 및방법 | |
CN102833096A (zh) | 一种低成本的高可用系统实现方法及装置 | |
KR20140140719A (ko) | 가상 머신 동기화 장치 및 시스템과 이를 이용한 장애 처리 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20111207 Termination date: 20170516 |
|
CF01 | Termination of patent right due to non-payment of annual fee |