一种双机热冗余备份方法和系统的制作方法

文档序号:7853053阅读:275来源:国知局
专利名称:一种双机热冗余备份方法和系统的制作方法
技术领域
本发明涉及通信技术领域,特别涉及ー种双机热冗余备份方法和系统。
背景技术
在现今大型项目,尤其是ー些高端用户,如电力、地铁、公安等行业,要求软硬件出现零故障,并且7X24小时运行。因此软硬件的可靠性一直是用户关注的重点。为了提高可靠性,软硬件冗余备份一直是大型项目保证可靠性的优选方案。该方案基于用户要求软硬件长时间运行,不能出现故障,即使有故障,要能够迅速在主从设备间实现快速切換,尽量减少故障时间。目前的双机热冗余备份方案,如图I所示,包括两个用于运行热冗余服务的服务器I和服务器2,服务器I和服务器2与客户端可通信连接。服务器I和服务器2之间存在两个心跳包通道(心跳包通道I和心跳包通道2)以及ー个数据通道,具体冗余备份的实现如下服务器I和服务器2通过抢占式方式来决定谁作为主设备,两台设备间都有端ロ(socket)侦听客户端的服务,两台设备之间有两个心跳包通道来探测并判断对端是否处于正常工作状态,两个服务器均主动连接对端并主动发送心跳包给对端,如果没有收到对端的回复,则确定对端故障并将自身切换为主设备。上述两个心跳包通道可在一块网卡上,也可分布在不同的网卡上。当其中ー个服务器现故障,例如主机设备故障。从设备通过心跳包通道发送心跳包给主设备会收不到住设备的回复,则确定主设备故障,从设备可以销毁心跳包通道socket,还可以销毁数据通道socket,然后重新创建socket侦听端来接收对端数据通道socket连接。采用如上方案,两个心跳包通道都在发送和接收数据,网络负载和程序负载较大。由于如上该方案中,客户端产生的数据都是保存在服务器中,然后从一台服务器取数据到另一服务器,然后再读入到客户端。由于该数据备份时间长,如果在备份过程中服务器故障,会导致数据准确性更无法保障。因此采用如上方案网络负载和程序负载较大,并且数据准确性较差。

发明内容
本发明实施例提供了ー种双机热冗余备份方法和系统,用于降低网络负载和程序负载,提升数据准确性。ー种双机热冗余备份方法,包括默认为从设备的第二服务器通过与默认为主设备的第一服务器之间的心跳包通道,监测双机热冗余备份的工作状态;若所述工作状态为故障,则所述第二服务器切换为主设备。
优选地,监测双机热冗余备份的工作状态包括监测是否能够从所述心跳包通道接收到心跳包,若不能接收到心跳包则确定工作状态为故障。优选地,所述心跳包通道由第二服务器建立;由第一服务器创建端ロ侦听服务端;第二服务器接收第一服务器主动发送的心跳包,在接收到心跳包之后发送与之对应的回复。优选地,在确定所述工作状态为故障之后还包括所述第二服务器建立故障查询连接端ロ,用于不间断地发起与第一服务器的连接,并据此确认第一服务器是否恢复正常;若第一服务器恢复正常,第二服务器切换为从设备。
优选地,所述第一服务器与其建立连接的客户端以及第ニ服务器与其建立连接的客户端,均采用数据链路层通信连接。ー种双机热冗余备份系统,包括默认为主设备的第一服务器以及默认为从设备的第二服务器;所述第二服务器,用于通过与第一服务器之间的心跳包通道,监测双机热冗余备份的工作状态;若所述工作状态为故障,则所述第二服务器切换为主设备。优选地,所述第二服务器,用于监测双机热冗余备份的工作状态包括用于监测是否能够从所述心跳包通道接收到心跳包,若不能接收到心跳包则确定工作状态为故障。优选地,所述心跳包通道由第二服务器建立;由第一服务器创建端ロ侦听服务端;所述第一服务器,用于通过所述心跳包通道主动向第二服务器发送心跳包;所述第二服务器,用于接收第一服务器主动发送的心跳包,在接收到心跳包之后发送与之对应的回复。优选地,所述第二服务器,还用于在确定所述工作状态为故障之后,建立故障查询连接端ロ,用于不间断地发起与第一服务器的连接,并据此确认第一服务器是否恢复正常;若第一服务器恢复正常,第二服务器切换为从设备。优选地,所述第一服务器与其建立连接的客户端以及第ニ服务器与其建立连接的客户端,均采用数据链路层通信连接。从以上技术方案可以看出,本发明实施例具有以下优点硬件配置简单,只需要一个心跳包通道,减少网络传输流量。本发明实施例方案默认一台设备为主设备,另一台设备为从设备,在主设备出现故障时,探測故障间隙时间更短,效率更高,相比于背景技术中方案中的10秒左右,本发明实施例方案只需3秒左右。


为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图I为现有技术双机热冗余备份方案系统结构示意图;图2为本发明实施例方法流程示意图3为本发明实施例系统结构示意图;图4为本发明实施例另一方法流畅示意图。
具体实施例方式为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部份实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

本发明实施例提供了ー种双机热冗余备份方法,如图2所示,包括201 :默认为从设备的第二服务器通过与默认为主设备的第一服务器之间的心跳包通道,监测双机热冗余备份的工作状态;优选地,上述监测双机热冗余备份的工作状态包括监测是否能够从上述心跳包通道接收到心跳包,若不能接收到心跳包则确定工作状态为故障。若采用上述心跳包监测的方案,那么优选地,上述心跳包通道由第二服务器建立;由第一服务器创建端ロ侦听服务端;第二服务器接收第一服务器主动发送的心跳包,在接收到心跳包之后发送与之对应的回复。202 :若上述工作状态为故障,则上述第二服务器切换为主设备。采用本发明实施例方案,硬件配置简单,只需要一个心跳包通道,减少网络传输流量。相比于背景技术中的方案,本发明实施例方案默认一台设备为主设备,另一台设备为从设备,在主设备出现故障时,探測故障间隙时间更短,效率更高,相比于背景技术中方案中的10秒左右,本发明实施例方案只需3秒左右。本领域技术人员可以理解的是,若上述工作状态为正常,那么说明当前工作状态下属于正常运行,并不需要进行主从切換。本发明实施例还提供了在主设备恢复正常以后第二设备重新切換回主设备的实现方案,具体地,上述方案在确定上述工作状态为故障之后还包括上述第二服务器建立故障查询连接端ロ,用于不间断地发起与第一服务器的连接,并据此确认第一服务器是否恢复正常;若第一服务器恢复正常,第二服务器切换为从设备。本发明实施例还提供了进ー步提升数据准确性的方案,如下上述第一服务器与其建立连接的客户端以及第ニ服务器与其建立连接的客户端,均采用数据链路层通信连接。具体的数据发送在后续实施例中将给出详细说明。采用数据链路层(Data Link Layer,dll)通信实时传递客户数据,不需要把数据生成硬盘文件然后传递硬盘上文件至另一台设备,因此数据正确性有保障。本发明实施例还提供了ー种双机热冗余备份系统,如图3所示,包括默认为主设备的第一服务器301以及默认为从设备的第二服务器302 ;上述第二服务器302,用于通过与第一服务器301之间的心跳包通道,监测双机热冗余备份的工作状态;若上述工作状态为故障,则上述第二服务器302切换为主设备。优选地,上述第二服务器302,用于监测双机热冗余备份的工作状态包括用于监测是否能够从上述心跳包通道接收到心跳包,若不能接收到心跳包则确定工作状态为故障。
优选地,上述心跳包通道由第二服务器302建立;由第一服务器301创建端ロ侦听服务端;上述第一服务器301,用于通过上述心跳包通道主动向第二服务器302发送心跳包;上述第二服务器302,用于接收第一服务器301主动发送的心跳包,在接收到心跳包之后发送与之对应的回复。进ー步地,上述第二服务器302,还用于在确定上述工作状态为故障之后,建立故障查询连接端ロ,用于不间断地发起与第一服务器301的连接,并据此确认第一服务器301是否恢复正常;若第一服务器301恢复正常,第二服务器302切换为从设备。优选地,上述第一服务器301与其建立连接的客户端以及第ニ服务器302与其建立连接的客户端,均采用数据链路层通信连接。本发明实施例的两台服务器均都安装热冗余服务程序,两台服务器均采用数据链·路层(Data Link Layer,DLL)通信连接客户端程序,默认由主设备工作,接收客户程序实时数据并传递到从设备上对应的客户程序,对用户来说,始終有一台服务器上客户程序在エ作,不影响用户的正常操作。本发明实施例方案默认一服务器台为主设备,另一台服务器为从设备,使用ー块网卡建立通信连接。由默认的主设备创建socket侦听服务端,由从设备连接主设备产生一个心跳包通道。主设备通过心跳包通道主动向从设备发送心跳包,并接收从设备对应的回复。当发生故障时,例如主设备故障或网络故障,会导致从设备在极短时间内接收不到心跳包,从设备则可以据此确定主设备故障。从设备在确定主设备故障后,可以产生ー个故障查询连接socket,来不断连接主设备,并将自身切换为主设备的角色。当主设备恢复正常后,从设备在极短的时间内就可以连接到主设备并可以据此确定主设备已经恢复正常;此时,从设备恢复为从设备的角色。本发明实施例仅需建立一个心跳包通道及一个数据通道,不需要创建socket侦听服务端,切換故障时间短,比较背景技术方案,时间从10秒左右减少3秒左右。本发明实施例中,客户端产生的数据可以均采用数据链路层(Data Link Layer,DLL)通信实时传递到对端设备上的客户端,并由对端客户端发送数据确认包。相比于背景技术中,客户数据先保存数据到本地硬盘上,再传递到对端,省却了保存到硬盘上的时间并且避免了硬盘出现故障的风险,因此在数据准确性方面有了保障。请參阅图4,并可一井參阅图3,是本发明实施例的工作流程示意图,其包括如下步骤401 :默认主设备端的热冗余服务启动后,设置为主设备,创建服务端,并设置虚拟互联网协议(Internet Protocol, IP)地址,主设备为工作状态。接收从设备热冗余服务的连接,并接收监控程序实时数据,进入403。402:默认从设备端热的冗余服务启动后,如果确认主设备处于工作状态,则连接服务端并创建心跳通道及数据通道,从设备默认为空闲状态。如果确认主设备没启动,则设置虚拟IP地址,从设备为工作状态,并产生查询通道来探測主设备热冗余服务是否启动,如果主设备启动,则该默认的从设备自动切换为从设备的状态,如果因为网络原因或一台设备当机、断电、操作系统重启和/或热冗余服务崩溃等问题,进入410。403:主设备端判断对端的热冗余服务及对应的监控程序是否启动,如果没启动则通知主设备端客户程序,进入404,如果启动,则进入405。404 :如果主设备端的客户程序确定对端客户程序不在线,不做任何操作。405:主设备接收客户数据后,通过数据传输通道将其传递到对端热冗余服务,并由对端热冗余服务采用DLL通信发送到对应的客户程序,进入406。406:对应的客户程序接收到客户数据后,回复确认包至对端热冗余服务,进入
407。407 :对端热冗余服务通过数据通道将上述客户数据传输到本端热冗余服务,进入
408。408 :主设备将接收到的客户数据转发到本端客户程序。409:若两台设备间因为网络原因或一台设备上的热冗余服务当机或系统关闭或设备断电不能连通,则两台设备都会将自己设置为主设备,并设置虚拟IP地址。其实际情况是必然有一台设备在提供正常的工作。410 :由于当前两台设备都处于工作状态,当主设备启动后,从设备重新创建心跳包通道和数据通道。这样可以避免因为主从切換所造成的故障间隔。双机热冗余备份应用广泛,例如在vwas6. O项目中,用来热冗余备份6. O项目中重要的三个服务vwas主服务、vwas资源服务及中控服务。另外在公司其他软件产品级别需要热冗余备份的情况下都可使用。双机热冗余备份的具体应用还有很多,本发明实施例对此无法穷举,以上举例不应理解为对本发明实施例应用范围的限定。采用本发明实施例方案,硬件配置简单,只需要一个心跳包通道,减少网络传输流量。采用DLL通信实时传递客户数据,不需要把数据生成硬盘文件然后传递硬盘上文件至另一台设备,因此数据正确性有保障。相比于背景技术中的方案,本发明实施例方案默认ー台设备为主设备,另一台设备为从设备,在主设备出现故障时,探測故障间隙时间更短,效率更高,相比于背景技术中方案中的10秒左右,本发明实施例方案只需3秒左右。本领域普通技术人员可以理解实现上述各方法实施例中的全部或部分步骤是可以通过程序来指令相关的硬件完成,相应的程序可以存储于ー种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。以上仅为本发明较佳的具体实施方式
,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明实施例揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
权利要求
1.一种双机热冗余备份方法,其特征在于,包括 默认为从设备的第二服务器通过与默认为主设备的第一服务器之间的心跳包通道,监测双机热冗余备份的工作状态; 若所述工作状态为故障,则所述第二服务器切换为主设备。
2.根据权利要求I所述方法,其特征在于,监测双机热冗余备份的工作状态包括 监测是否能够从所述心跳包通道接收到心跳包,若不能接收到心跳包则确定工作状态为故障。
3.根据权利要求2所述方法,其特征在于,所述心跳包通道由第二服务器建立;由第一服务器创建端口侦听服务端; 第二服务器接收第一服务器主动发送的心跳包,在接收到心跳包之后发送与之对应的回复。
4.根据权利要求I所述方法,其特征在于,在确定所述工作状态为故障之后还包括 所述第二服务器建立故障查询连接端口,用于不间断地发起与第一服务器的连接,并据此确认第一服务器是否恢复正常; 若第一服务器恢复正常,第二服务器切换为从设备。
5.根据权利要求I至4任意一项所述方法,其特征在于,所述第一服务器与其建立连接的客户端以及第二服务器与其建立连接的客户端,均采用数据链路层通信连接。
6.一种双机热冗余备份系统,其特征在于,包括 默认为主设备的第一服务器以及默认为从设备的第二服务器; 所述第二服务器,用于通过与第一服务器之间的心跳包通道,监测双机热冗余备份的工作状态;若所述工作状态为故障,则所述第二服务器切换为主设备。
7.根据权利要求6所述系统,其特征在于, 所述第二服务器,用于监测双机热冗余备份的工作状态包括用于监测是否能够从所述心跳包通道接收到心跳包,若不能接收到心跳包则确定工作状态为故障。
8.根据权利要求7所述系统,其特征在于,所述心跳包通道由第二服务器建立;由第一服务器创建端口侦听服务端; 所述第一服务器,用于通过所述心跳包通道主动向第二服务器发送心跳包; 所述第二服务器,用于接收第一服务器主动发送的心跳包,在接收到心跳包之后发送与之对应的回复。
9.根据权利要求7所述系统,其特征在于, 所述第二服务器,还用于在确定所述工作状态为故障之后,建立故障查询连接端口,用于不间断地发起与第一服务器的连接,并据此确认第一服务器是否恢复正常;若第一服务器恢复正常,第二服务器切换为从设备。
10.根据权利要求I至4任意一项所述系统,其特征在于,所述第一服务器与其建立连接的客户端以及第二服务器与其建立连接的客户端,均采用数据链路层通信连接。
全文摘要
本发明实施例公开了一种双机热冗余备份方法和系统,其中本发明实施例方法包括默认为从设备的第二服务器通过与默认为主设备的第一服务器之间的心跳包通道,监测双机热冗余备份的工作状态;若所述工作状态为故障,则所述第二服务器切换为主设备。硬件配置简单,只需要一个心跳包通道,减少网络传输流量。本发明实施例方案默认一台设备为主设备,另一台设备为从设备,在主设备出现故障时,探测故障间隙时间更短,效率更高,相比于背景技术中方案中的10秒左右,本发明实施例方案只需3秒左右。
文档编号H04L12/24GK102684929SQ20121018580
公开日2012年9月19日 申请日期2012年6月6日 优先权日2012年6月6日
发明者程百强 申请人:广东威创视讯科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1