CN108243031B - 一种双机热备的实现方法及装置 - Google Patents
一种双机热备的实现方法及装置 Download PDFInfo
- Publication number
- CN108243031B CN108243031B CN201611213529.7A CN201611213529A CN108243031B CN 108243031 B CN108243031 B CN 108243031B CN 201611213529 A CN201611213529 A CN 201611213529A CN 108243031 B CN108243031 B CN 108243031B
- Authority
- CN
- China
- Prior art keywords
- server
- main
- standby state
- standby
- heartbeat
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0654—Management of faults, events, alarms or notifications using network fault recovery
- H04L41/0663—Performing the actions predefined by failover planning, e.g. switching to standby network elements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/22—Arrangements for detecting or preventing errors in the information received using redundant apparatus to increase reliability
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/10—Active monitoring, e.g. heartbeat, ping or trace-route
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Cardiology (AREA)
- General Health & Medical Sciences (AREA)
- Hardware Redundancy (AREA)
Abstract
本发明实施例提供了一种双机热备的实现方法及装置,该方法包括:在心跳检测周期触发时刻,更新共享存储中记录的与第一服务器对应的第一心跳数值,并读取共享存储中记录的与第二服务器对应的第二心跳数值;依据第二心跳数值的变化情况,判断第二服务器是否运行正常;若是,则根据共享磁盘中记录的与第二服务器对应的第二主备状态以及与第一服务器对应的第一主备状态,判断双机热备份系统是否存在主备异常事件;若是,则按照预设仲裁规则为双机热备份系统选择主用服务器。从而避免了由于网络或链路原因,造成系统误判的问题,并且能够快速检测并解决系统中可能出现的主备异常事件,从而有效地提高了系统的可靠性,进而提升了客户体验。
Description
技术领域
本发明实施例涉及通信领域,尤其涉及一种双机热备的实现方法及装置。
背景技术
目前,双机热备模式的实现主要是通过在互为主备的两台服务器上分别部署HA(High Availability,高可用)监控系统,HA监控系统主要用于通过心跳机制探测对端机器的运行状态。心跳机制的实现原理为:两台服务器定时通过网络向对端发送心跳消息,以告知对方自身运行正常。当在预定时间内始终未收到对方的心跳消息后,则确认对端服务器发生故障,并且在对端服务器为主用服务器时,本端服务器从备用状态升为主用状态,并通知其他相关业务及服务。
然而,现有技术通过上述方法实现对双机热备的监控以及管理时,存在如下问题:
1)当心跳线或网络故障时,主备双方均无法收到对端的心跳消息,则认为对端发生故障,此时将出现双主用服务器的情况。
2)由于网络心跳机制中的高可用算法过于简单,因此,经常会出现双主用或双备用的现象,在该种场景下,则需要人工干预以解决问题。
发明内容
本发明实施例提供一种双机热备的实现方法及装置,以解决现有技术在对双机热备进行管理和监控时,存在的可靠性差、易出错,导致用户体验低的问题。
为了解决上述问题,本发明公开了一种双机热备的实现方法,应用于双机热备份系统中的第一服务器,所述方法包括:
在心跳检测周期触发时刻,更新共享存储中记录的与第一服务器对应的第一心跳数值,并读取共享存储中记录的与第二服务器对应的第二心跳数值;
依据第二心跳数值的变化情况,判断第二服务器是否运行正常;
若是,则根据共享磁盘中记录的与第二服务器对应的第二主备状态以及与第一服务器对应的第一主备状态,判断双机热备份系统是否存在主备异常事件;
若是,则按照预设仲裁规则为双机热备份系统选择主用服务器。
在本发明的一个优选的实施例中,在心跳检测周期触发时刻,更新共享存储中记录的与第一服务器对应的第一心跳数值的步骤之前,还包括:
将第一主备状态写入共享存储中;以及,
在共向存储中设置第一心跳数值的初始值。
在本发明的一个优选的实施例中,依据第二心跳数值的变化情况,判断第二服务器是否运行正常的步骤,具体包括:
若检测到第二心跳数值在预定时间内无变化,则确认第二服务器运行异常;以及,
在确认第二服务器运行异常的情况下,若检测到第一主备状态为非主用状态,则将第一主备状态更新为主用状态。
在本发明的一个优选的实施例中,根据共享磁盘中记录的与第二服务器对应的第二主备状态以及与第一服务器对应的第一主备状态,判断双机热备份系统是否存在主备异常事件的步骤,包括:
检测第一主备状态与第二主备状态是否一致;
若是,则确认双击热备份系统存在主备异常事件。
在本发明的一个优选的实施例中,按照预设仲裁规则为双机热备份系统选择主用服务器的步骤,具体包括:
若第一主备状态与第二主备状态均为主用状态,则按照预设仲裁规则选择主用服务器;
若第二服务器被选择为主用服务器,则将第一主备状态更新为备用状态。
在本发明的一个优选的实施例中,按照预设仲裁规则为双机热备份系统选择主用服务器的步骤,具体包括:
若第一主备状态与第二主备状态均为备用状态,则按照预设仲裁规则选择主用服务器;
若第一服务器被选择为主用服务器,则将第一主备状态更新为主用状态。
根据本发明的另一方面,提供了一种双机热备的实现装置,应用于双机热备份系统中的第一服务器,包括:
更新模块,用于在心跳检测周期触发时刻,更新共享存储中记录的与第一服务器对应的第一心跳数值;
读取模块,用于读取共享存储中记录的与第二服务器对应的第二心跳数值;
第一判断模块,用于依据第二心跳数值的变化情况,判断第二服务器是否运行正常;
第二判断模块,用于若是,则根据共享磁盘中记录的与第二服务器对应的第二主备状态以及与第一服务器对应的第一主备状态,判断双机热备份系统是否存在主备异常事件;
选择模块,用于若是,则按照预设仲裁规则为双机热备份系统选择主用服务器。
在本发明的一个优选的实施例中,装置还包括:
写入模块,用于将第一主备状态写入共享存储中;以及,
设置模块,用于在共向存储中设置第一心跳数值的初始值。
在本发明的一个优选的实施例中,第一判断模块进一步用于:
若检测到第二心跳数值在预定时间内无变化,则确认第二服务器运行异常;以及,
在确认第二服务器运行异常的情况下,若检测到第一主备状态为非主用状态,则将第一主备状态更新为主用状态。
在本发明的一个优选的实施例中,第二判断模块进一步用于:
检测第一主备状态与第二主备状态是否一致;
若是,则确认双击热备份系统存在主备异常事件。
在本发明的一个优选的实施例中,选择模块进一步用于:
若第一主备状态与第二主备状态均为主用状态,则按照预设仲裁规则选择主用服务器;
若第二服务器被选择为主用服务器,则将第一主备状态更新为备用状态。
在本发明的一个优选的实施例中,选择模块进一步用于:
若第一主备状态与第二主备状态均为备用状态,则按照预设仲裁规则选择主用服务器;
若第一服务器被选择为主用服务器,则将第一主备状态更新为主用状态。
与现有技术相比,本发明通过在心跳检测周期触发时刻,更新共享存储中记录的与第一服务器对应的第一心跳数值,并读取共享存储中记录的与第二服务器对应的第二心跳数值;依据第二心跳数值的变化情况,判断第二服务器是否运行正常;若是,则根据共享磁盘中记录的与第二服务器对应的第二主备状态以及与第一服务器对应的第一主备状态,判断双机热备份系统是否存在主备异常事件;若是,则按照预设仲裁规则为双机热备份系统选择主用服务器。从而避免了由于网络或链路原因,造成系统误判的问题,并且能够快速检测并解决系统中可能出现的主备异常事件,从而有效地提高了系统的可靠性,进而提升了客户体验。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例的一种双机热备的实现方法的流程图;
图2是本发明实施例的双机热备份系统的结构示意图;
图3是本发明实施例的初始阶段的流程图;
图4是本发明实施例的正常检测阶段的流程图;
图5是本发明实施例的一种双机热备的实现装置的结构框图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
参照图1,示出了本发明实施例的一种双机热备的实现方法的流程图,该方法应用于双机热备份系统中的第一服务器,具体可以包括以下步骤:
步骤101,在心跳检测周期触发时刻,更新共享存储中记录的与第一服务器对应的第一心跳数值,并读取共享存储中记录的与第二服务器对应的第二心跳数值。
具体的,在本发明的实施例中的双机热备份系统如图2所示,在图2中:第一服务器与第二服务器分别通过冗余光纤链路与共享存储连接,从而有效地提高了系统的可靠性。在本发明的一个实施例中,共享存储可以为磁盘阵列。在其他实施例中,共享存储还可以为网络存储或其他任意存储介质,本发明对此不做限定。
在本发明的实施例中,在共享存储中存在分别与第一服务器和第二服务器分区:第一分区和第二分区。第一服务器和第二服务器可将自身的主备状态以及心跳信息写入对应的分区中。其中,第一分区对第一服务器的权限设置为:可读、可写,第一分区对第二服务器的权限设置为:可读、不可写。第二分区对第一服务器的权限设置为:可读、不可写。第二分区对第二服务器的权限设置为:可读、可写。从而使服务器只能读取对端对应的分区中记录的相关信息,而不可修改。
系统启动后,第一服务器将当前的主备状态写入第一分区中,并将第一分区中的心跳数值(本实施例中的第一心跳数值)设置为初始值,在本发明的实施例中,初始值可以为1。
随后,在心跳周期触发时刻,第一服务器更新第一分区中的心跳数值。举例说明:若心跳周期为1s,则每隔1s,第一服务器更新心跳数值,使心跳数值加1。
同时,第一服务器还读取第二分区中的心跳数值,即与第二服务器对应的第二心跳数值。
第二服务器与第一服务器的实施步骤相同,此处不赘述。
步骤102,依据第二心跳数值的变化情况,判断第二服务器是否运行正常。
第一服务器根据读取到的第二心跳数值的变化情况,判断第二服务器是否运行正常。
在本发明的实施例中,可以设置有超时时长,即本发明实施例中的预定时间。根据第二心跳数值在预定时间内的变化情况,判断第二服务器是否运行正常,从而避免丢包或网络堵塞等造成的误判。
步骤103,若是,则根据共享磁盘中记录的与第二服务器对应的第二主备状态以及与第一服务器对应的第一主备状态,判断双机热备份系统是否存在主备异常事件。
在判定第二服务器运行正常的情况下,第一服务器进一步判断当前系统是否存在主备异常事件。具体的,在本发明的实施例中,第一服务器读取第二分区中与第二服务器对应的第二主备状态,根据第二主备状态以及自身的第一主备状态,判断是否存在主备异常事件。
步骤104,若是,则按照预设仲裁规则为双机热备份系统选择主用服务器。
具体的,在本发明的实施例中,若系统存在主备异常事件,则第一服务器按照预设仲裁规则为系统选择主用服务器。在本发明的一个实施例中,预设仲裁规则可以为指定ID对应的服务器为主用服务器。举例说明:若预设规则中,设定为ID号为1的服务器为主用服务器,则在发生主备异常事件的场景下,第一服务器根据自身的ID号,以及第二服务器的ID号选择主用服务器。如果第一服务器的ID号为1,则第一服务器为主用服务器。在其他实施例中,预设仲裁规则也可以是根据负载状态等进行设置,本发明对此不作限定。
综上,本发明实施例中的技术方案,通过在心跳检测周期触发时刻,更新共享存储中记录的与第一服务器对应的第一心跳数值,并读取共享存储中记录的与第二服务器对应的第二心跳数值;依据第二心跳数值的变化情况,判断第二服务器是否运行正常;若是,则根据共享磁盘中记录的与第二服务器对应的第二主备状态以及与第一服务器对应的第一主备状态,判断双机热备份系统是否存在主备异常事件;若是,则按照预设仲裁规则为双机热备份系统选择主用服务器。从而避免了由于网络或链路原因,造成系统误判的问题,并且能够快速检测并解决系统中可能出现的主备异常事件,从而有效地提高了系统的可靠性,进而提升了客户体验。
此外,在本发明的一个优选的实施例中,在心跳检测周期触发时刻,更新共享存储中记录的与第一服务器对应的第一心跳数值的步骤之前,还包括:
将第一主备状态写入共享存储中;以及,
在共向存储中设置第一心跳数值的初始值。
在本发明的一个优选的实施例中,依据第二心跳数值的变化情况,判断第二服务器是否运行正常的步骤,具体包括:
若检测到第二心跳数值在预定时间内无变化,则确认第二服务器运行异常;以及,
在确认第二服务器运行异常的情况下,若检测到第一主备状态为非主用状态,则将第一主备状态更新为主用状态。
在本发明的一个优选的实施例中,根据共享磁盘中记录的与第二服务器对应的第二主备状态以及与第一服务器对应的第一主备状态,判断双机热备份系统是否存在主备异常事件的步骤,包括:
检测第一主备状态与第二主备状态是否一致;
若是,则确认双击热备份系统存在主备异常事件。
在本发明的一个优选的实施例中,按照预设仲裁规则为双机热备份系统选择主用服务器的步骤,具体包括:
若第一主备状态与第二主备状态均为主用状态,则按照预设仲裁规则选择主用服务器;
若第二服务器被选择为主用服务器,则将第一主备状态更新为备用状态。
在本发明的一个优选的实施例中,按照预设仲裁规则为双机热备份系统选择主用服务器的步骤,具体包括:
若第一主备状态与第二主备状态均为备用状态,则按照预设仲裁规则选择主用服务器;
若第一服务器被选择为主用服务器,则将第一主备状态更新为主用状态。
为了使本领域技术人员更好的理解本发明的双机热备的实现方法,下面以具体实施例进行详细阐述。
1)准备阶段。
仍参照图2中的双机热备份系统示意图。第一服务器与第二服务器分别通过冗余光纤链路与共享存储连接,从而有效地提高了系统的可靠性。在本实施例中,共享存储为磁盘阵列。
设置第一服务器与第二服务器的ID号。在本实施例中,第一服务器的ID号为1,第二服务器的ID号为2。
在共享存储中划分两个分区:第一分区和第二分区,并分别挂载于第一服务器和第二服务器上,第一分区即为与第一服务器对应的归属盘,第二分区即为与第二服务器对应的归属盘。其中,第一分区对第一服务器的权限设置为:可读、可写,第一分区对第二服务器的权限设置为:可读、不可写。第二分区对第一服务器的权限设置为:可读、不可写。第二分区对第二服务器的权限设置为:可读、可写。从而使服务器只能读取对端对应的分区中记录的相关信息,而不可修改。在本发明的实施例中,服务器将自身的主备状态以及心跳消息写入共享存储中,从而有效地提高了系统的可靠性。同时,共享存储还可以通过RAID技术进行备份或纠错,从而进一步提高心跳检测的准确性以及可靠性。
设置仲裁算法。在本发明实施例中,仲裁算法为:指定ID为1,即第一服务器优先为主用服务器。
设置心跳检测周期以及超时时长(本发明实施例中的预定时间)。在本实施例中,心跳检测周期为1s,超时时长为10s。
在本发明的实施例中,在每次心跳检测周期触发时刻,服务器立即将相关信息写入磁盘,而跳过缓存步骤,即,无需缓存而直接将信息写入磁盘,从而提高读取以及写入的速度,避免由于缓存造成写入延迟,导致系统误判的现象发生。
系统启动后,第一服务器将自身的主备状态以及心跳初始值写入第一分区中,在本实施例中,第一服务器在初始阶段写入的主备状态为未知状态,心跳初始值为1。在本发明的其他实施例中,主备状态也可以由技术人员指定,本发明不作限定。第二服务器与第一服务器作相同操作,此处不赘述。
2)初始阶段。
初始阶段的具体步骤如图3所示,在图3中:
在心跳计时器到达1s时,即心跳检测周期触发,第一服务器将第一分区中的第一心跳数值更新为2,并检测是否完成更新,若在超时时长内未更新,则本次处理结束,并向操作人员告警。
在第一心跳数值更新正常的情况下,第一服务器读取第二分区中的第二心跳数值,即,第二服务器对应的心跳数值是否发生变化。在初始阶段,第二服务器同样将心跳初始值设置为1,因此,在心跳检测周期出发时刻,第二心跳数值应更新为2。
若检测到第二心跳数值无变化,即仍为1,则第一服务器等待10s,即经过10次心跳检测周期后,若第二心跳数值仍无变化,则确定第二服务器运行异常,此时,第一服务器将自身设置为主用状态,并将第一分区中的主备状态更新为主用状态,并通知HA进程,初始流程完毕,同时向用户告警第二服务器故障。
若检测到第二心跳数值在预定时间内发生变化,则确定第二服务器运行正常。第一服务器进一步读取第二分区中与第二服务器对应的主备状态。
若第二服务器的主备状态为主用,则第一服务器将自身的主备状态设置为备用,并更新第一分区中的主备状态为备用,并通知HA进程,初始流程完毕。
若第二服务器的主备状态为备用,则第一服务器将自身的主备状态设置为主用,并更新第一分区中的主备状态为主用,并通知HA进程,初始流程完毕。
若第二服务器的主备状态同样为未知状态,则第一服务器根据仲裁规则选择主用服务器。由于仲裁规则为ID号为1的服务器优先为主用服务器,因此,第一服务器在检测到自身的ID号为1后,将自身的主备状态设置为主用,并更新第一分区中的主备状态为主用。此时,第二服务器检测到自身的ID号为2,则将自身的主备状态设置为备用,并更新第二分区中的主备状态为备用。通知HA进程,初始流程完毕。
3)正常检测阶段。
如图4所示,为双机热备份系统在初始化流程结束后的正常检测阶段的步骤流程图。在图4中:
每次心跳检测周期触发时刻,即每隔1s,第一服务器写入对应的心跳数值,并读取第二分区内的与第二服务器对应的第二心跳数值。
读取情况分以下两种:
a.第二心跳数值正常。
举例说明:在第4s时,第一服务器读取到的第二心跳数值为4,则第5s时,第二心跳数值预期为5。若在第5s时读取到第二心跳数值为5,则判断第二心跳数值正常,即第二服务器运行正常。若在第5s时读取到第二心跳数值仍为5,则继续等待10s,若在10s之内第二心跳数值变为5,则确定第二心跳数值正常。
在第二心跳数值正常的情况下,第一服务器进一步读取第二分区中记录的与第二服务器对应的主备状态。其中,若检测到自身的主备状态与第二服务器的主备状态一致,则确认存在主备异常事件。具体的:
在第一服务器为主用服务器的情况下:
I.若检测到第二服务器的主备状态(以下简称第二主备状态)为主用时,则确认出现双主事件,通过仲裁规则选择主用服务器。在本实施例中,第一服务器被选择为主用服务器,第一服务器不作处理。此时,第二服务器根据仲裁规则,确认自身为备用服务器,则第二服务器将第二分区中的第二主备状态更新为备用状态。
Ⅱ.若检测到第二主备状态为非主用状态,则不作任何处理。
在第一服务器为备用服务器的情况下:
I.若检测到第二主备状态为备用时,则确认出现双备事件,通过仲裁规则选择主用服务器。在本实施例中,第一服务器被选择为主用服务器,第一服务器确认自身为主用服务器,将第一分区中的主备状态更新为主用状态。此时,由于第二服务器确认自身为备用服务器,因此不作任何处理。
Ⅱ.若检测到第二主备状态为主用状态,则不作任何处理。
b.第二心跳数值异常。
若在预定时间内未检测到第二心跳数值发生任何变化,则确定第二心跳数值异常,即第二服务器运行异常。
在第二服务器运行异常的情况下,若第一服务器为主用状态,则不作任何处理,并继续等待下一个心跳检测周期。在本发明的一个实施例中,若下一个心跳检测周期以及预定时间内,第二心跳数值仍为异常,则向操作人员告警。
在第二服务器运行异常的情况下,若第一服务器为非主用状态,则第一服务器将自身设置为主用服务器,并将第一分区中记录的主备状态更新为主用状态。
3)流程结束。
第二服务器与第一服务器的实施步骤相同,此处不赘述。
综上所述,本发明实施例中的技术方案,通过将主备状态以及心跳消息写入共享存储中,从而有效地提升了心跳检测时的可靠性,此外,服务器通过读取共向存储中与对端服务器相关联的信息,从而能够迅速检测出对端服务器是否发生异常,以及系统中是否存在主备异常事件,进而即时解决问题,恢复系统正常运行。
参照图5,示出了本发明实施例的一种双机热备的实现装置的结构框图,该装置应用于双机热备份系统中的第一服务器,具体可以包括以下模块:
更新模块501,用于在心跳检测周期触发时刻,更新共享存储中记录的与第一服务器对应的第一心跳数值。
读取模块502,用于读取共享存储中记录的与第二服务器对应的第二心跳数值。
第一判断模块503,用于依据第二心跳数值的变化情况,判断第二服务器是否运行正常。
第二判断模块504,用于若是,则根据共享磁盘中记录的与第二服务器对应的第二主备状态以及与第一服务器对应的第一主备状态,判断双机热备份系统是否存在主备异常事件。
选择模块505,用于若是,则按照预设仲裁规则为双机热备份系统选择主用服务器。
在本发明的一个优选的实施例中,装置还可以包括:
写入模块(图中未示出),用于将第一主备状态写入共享存储中;以及,
设置模块(图中未示出),用于在共向存储中设置第一心跳数值的初始值。
在本发明的一个优选的实施例中,第一判断模块503可以进一步用于:
若检测到第二心跳数值在预定时间内无变化,则确认第二服务器运行异常;以及,
在确认第二服务器运行异常的情况下,若检测到第一主备状态为非主用状态,则将第一主备状态更新为主用状态。
在本发明的一个优选的实施例中,第二判断模块504可以进一步用于:
检测第一主备状态与第二主备状态是否一致;
若是,则确认双击热备份系统存在主备异常事件。
在本发明的一个优选的实施例中,选择模块进一步用于:
若第一主备状态与第二主备状态均为主用状态,则按照预设仲裁规则选择主用服务器;
若第二服务器被选择为主用服务器,则将第一主备状态更新为备用状态。
在本发明的一个优选的实施例中,选择模块505可以进一步用于:
若第一主备状态与第二主备状态均为备用状态,则按照预设仲裁规则选择主用服务器;
若第一服务器被选择为主用服务器,则将第一主备状态更新为主用状态。
综上所述,本发明实施例中的装置,通过在心跳检测周期触发时刻,更新共享存储中记录的与第一服务器对应的第一心跳数值,并读取共享存储中记录的与第二服务器对应的第二心跳数值;依据第二心跳数值的变化情况,判断第二服务器是否运行正常;若是,则根据共享磁盘中记录的与第二服务器对应的第二主备状态以及与第一服务器对应的第一主备状态,判断双机热备份系统是否存在主备异常事件;若是,则按照预设仲裁规则为双机热备份系统选择主用服务器。从而避免了由于网络或链路原因,造成系统误判的问题,并且能够快速检测并解决系统中可能出现的主备异常事件,从而有效地提高了系统的可靠性,进而提升了客户体验。
对于设备实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本发明实施例可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本发明,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上对本发明所提供的一种双机热备的实现方法及装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (12)
1.一种双机热备的实现方法,应用于双机热备份系统中的第一服务器,其特征在于,共享存储包括第一分区和第二分区,所述第一服务器将自身的主备状态以及心跳信息写入对应的第一分区,第二服务器将自身的主备状态以及心跳信息写入对应的第二分区;所述方法包括:
在心跳检测周期触发时刻,更新所述共享存储中的第一分区记录的与所述第一服务器对应的第一心跳数值,并读取所述共享存储中的第二分区记录的与第二服务器对应的第二心跳数值;
依据所述第二心跳数值的变化情况,判断所述第二服务器是否运行正常;
若是,则根据所述共享存储中记录的与所述第二服务器对应的第二主备状态以及与所述第一服务器对应的第一主备状态,判断所述双机热备份系统是否存在主备异常事件;
若是,则按照预设仲裁规则为所述双机热备份系统选择主用服务器。
2.根据权利要求1所述的方法,其特征在于,所述在心跳检测周期触发时刻,更新所述共享存储中记录的与所述第一服务器对应的第一心跳数值的步骤之前,还包括:
将所述第一主备状态写入所述共享存储中;以及,
在所述共享存储中设置所述第一心跳数值的初始值。
3.根据权利要求1所述的方法,其特征在于,所述依据所述第二心跳数值的变化情况,判断所述第二服务器是否运行正常的步骤,具体包括:
若检测到所述第二心跳数值在预定时间内无变化,则确认所述第二服务器运行异常;以及,
在确认所述第二服务器运行异常的情况下,若检测到所述第一主备状态为非主用状态,则将所述第一主备状态更新为主用状态。
4.根据权利要求1所述的方法,其特征在于,所述根据所述共享存储中记录的与所述第二服务器对应的第二主备状态以及与所述第一服务器对应的第一主备状态,判断所述双机热备份系统是否存在主备异常事件的步骤,包括:
检测所述第一主备状态与所述第二主备状态是否一致;
若是,则确认所述双机热备份系统存在所述主备异常事件。
5.根据权利要求1所述的方法,其特征在于,所述按照预设仲裁规则为所述双机热备份系统选择主用服务器的步骤,具体包括:
若所述第一主备状态与所述第二主备状态均为主用状态,则按照所述预设仲裁规则选择主用服务器;
若所述第二服务器被选择为主用服务器,则将所述第一主备状态更新为备用状态。
6.根据权利要求1所述的方法,其特征在于,所述按照预设仲裁规则为所述双机热备份系统选择主用服务器的步骤,具体包括:
若所述第一主备状态与所述第二主备状态均为备用状态,则按照所述预设仲裁规则选择主用服务器;
若所述第一服务器被选择为主用服务器,则将所述第一主备状态更新为主用状态。
7.一种双机热备的实现装置,应用于双机热备份系统中的第一服务器,其特征在于,共享存储包括第一分区和第二分区,所述第一服务器将自身的主备状态以及心跳信息写入对应的第一分区,第二服务器将自身的主备状态以及心跳信息写入对应的第二分区;所述装置包括:
更新模块,用于在心跳检测周期触发时刻,更新共享存储中的第一分区记录的与所述第一服务器对应的第一心跳数值;
读取模块,用于读取所述共享存储中的第二分区记录的与第二服务器对应的第二心跳数值;
第一判断模块,用于依据所述第二心跳数值的变化情况,判断所述第二服务器是否运行正常;
第二判断模块,用于若是,则根据所述共享存储中记录的与所述第二服务器对应的第二主备状态以及与所述第一服务器对应的第一主备状态,判断所述双机热备份系统是否存在主备异常事件;
选择模块,用于若是,则按照预设仲裁规则为所述双机热备份系统选择主用服务器。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括:
写入模块,用于将所述第一主备状态写入所述共享存储中;以及,
设置模块,用于在所述共享存储中设置所述第一心跳数值的初始值。
9.根据权利要求7所述的装置,其特征在于,所述第一判断模块进一步用于:
若检测到所述第二心跳数值在预定时间内无变化,则确认所述第二服务器运行异常;以及,
在确认所述第二服务器运行异常的情况下,若检测到所述第一主备状态为非主用状态,则将所述第一主备状态更新为主用状态。
10.根据权利要求7所述的装置,其特征在于,所述第二判断模块进一步用于:
检测所述第一主备状态与所述第二主备状态是否一致;
若是,则确认所述双机热备份系统存在所述主备异常事件。
11.根据权利要求7所述的装置,其特征在于,所述选择模块进一步用于:
若所述第一主备状态与所述第二主备状态均为主用状态,则按照所述预设仲裁规则选择主用服务器;
若所述第二服务器被选择为主用服务器,则将所述第一主备状态更新为备用状态。
12.根据权利要求7所述的装置,其特征在于,所述选择模块进一步用于:
若所述第一主备状态与所述第二主备状态均为备用状态,则按照所述预设仲裁规则选择主用服务器;
若所述第一服务器被选择为主用服务器,则将所述第一主备状态更新为主用状态。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611213529.7A CN108243031B (zh) | 2016-12-23 | 2016-12-23 | 一种双机热备的实现方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611213529.7A CN108243031B (zh) | 2016-12-23 | 2016-12-23 | 一种双机热备的实现方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108243031A CN108243031A (zh) | 2018-07-03 |
CN108243031B true CN108243031B (zh) | 2021-05-25 |
Family
ID=62703664
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611213529.7A Active CN108243031B (zh) | 2016-12-23 | 2016-12-23 | 一种双机热备的实现方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108243031B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110096473A (zh) * | 2019-04-16 | 2019-08-06 | 苏州浪潮智能科技有限公司 | 一种应用于无人驾驶系统的边缘计算服务器的架构 |
CN111065007A (zh) * | 2019-12-27 | 2020-04-24 | 电信科学技术第五研究所有限公司 | 一种光纤网络时频同步方法、装置、介质及设备 |
CN115499295A (zh) * | 2022-07-29 | 2022-12-20 | 浪潮通信技术有限公司 | 服务器故障上报方法、装置、电子设备及存储介质 |
CN116743550B (zh) * | 2023-08-11 | 2023-12-29 | 之江实验室 | 一种分布式存储集群的故障存储节点的处理方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102799394A (zh) * | 2012-06-29 | 2012-11-28 | 华为技术有限公司 | 一种实现高可用集群的心跳服务的方法及装置 |
CN103593266A (zh) * | 2013-11-12 | 2014-02-19 | 浪潮(北京)电子信息产业有限公司 | 一种基于仲裁盘机制的双机热备方法 |
CN103731294A (zh) * | 2013-03-28 | 2014-04-16 | 深圳市金溢科技有限公司 | 一种双机热备通信方法和设备及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101335690A (zh) * | 2007-06-29 | 2008-12-31 | 朗迅科技公司 | 用于ip通信网络中的无缝冗余系统 |
-
2016
- 2016-12-23 CN CN201611213529.7A patent/CN108243031B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102799394A (zh) * | 2012-06-29 | 2012-11-28 | 华为技术有限公司 | 一种实现高可用集群的心跳服务的方法及装置 |
CN103731294A (zh) * | 2013-03-28 | 2014-04-16 | 深圳市金溢科技有限公司 | 一种双机热备通信方法和设备及系统 |
CN103593266A (zh) * | 2013-11-12 | 2014-02-19 | 浪潮(北京)电子信息产业有限公司 | 一种基于仲裁盘机制的双机热备方法 |
Also Published As
Publication number | Publication date |
---|---|
CN108243031A (zh) | 2018-07-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10491671B2 (en) | Method and apparatus for switching between servers in server cluster | |
CN106856489B (zh) | 一种分布式存储系统的服务节点切换方法和装置 | |
CN108243031B (zh) | 一种双机热备的实现方法及装置 | |
CN106789306B (zh) | 通信设备软件故障检测收集恢复方法和系统 | |
CN102394914A (zh) | 集群脑裂处理方法和装置 | |
CN104036043A (zh) | 一种mysql高可用的方法及管理节点 | |
CN112631820A (zh) | 软件系统的故障恢复方法及装置 | |
CN114764380A (zh) | 一种基于etcd的分布式集群控制方法和装置 | |
CN112199240B (zh) | 一种节点故障时进行节点切换的方法及相关设备 | |
CN113672306B (zh) | 服务器组件自检异常恢复方法、装置、系统及介质 | |
US10860411B2 (en) | Automatically detecting time-of-fault bugs in cloud systems | |
JP6421516B2 (ja) | サーバ装置、冗長構成サーバシステム、情報引継プログラム及び情報引継方法 | |
CN113742165A (zh) | 双主控设备及主备控制方法 | |
US11930292B2 (en) | Device state monitoring method and apparatus | |
CN111338858A (zh) | 一种双机房的容灾方法及装置 | |
CN111078454A (zh) | 一种云平台配置恢复方法及装置 | |
CN111124785A (zh) | 一种硬盘故障检查的方法、装置、设备及存储介质 | |
JP2007028118A (ja) | ノード装置の故障判断方法 | |
CN113596195B (zh) | 公共ip地址管理方法、装置、主节点及存储介质 | |
CN114666201A (zh) | 一种高可用的分布式微服务架构 | |
CN115604088A (zh) | 组件集群系统的主备切换方法、装置、设备及存储介质 | |
CN116668269A (zh) | 一种用于双活数据中心的仲裁方法、装置及系统 | |
CN110321261B (zh) | 一种监控系统及监控方法 | |
CN112491633A (zh) | 一种多节点集群的故障恢复方法、系统及相关组件 | |
CN114978891B (zh) | 网络设备bios配置的处理方法、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |