CN103532764B - 多机热备份方法及系统 - Google Patents
多机热备份方法及系统 Download PDFInfo
- Publication number
- CN103532764B CN103532764B CN201310507458.1A CN201310507458A CN103532764B CN 103532764 B CN103532764 B CN 103532764B CN 201310507458 A CN201310507458 A CN 201310507458A CN 103532764 B CN103532764 B CN 103532764B
- Authority
- CN
- China
- Prior art keywords
- main frame
- mobile forms
- hot spare
- message
- mobile
- 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
- 238000000034 method Methods 0.000 title claims abstract description 40
- 230000004913 activation Effects 0.000 claims abstract description 7
- 230000004044 response Effects 0.000 claims description 19
- 230000004083 survival effect Effects 0.000 claims description 15
- 238000001514 detection method Methods 0.000 claims description 11
- 230000005540 biological transmission Effects 0.000 claims description 6
- 238000012546 transfer Methods 0.000 claims description 6
- 238000012545 processing Methods 0.000 claims description 5
- 230000001737 promoting effect Effects 0.000 claims description 4
- 230000000694 effects Effects 0.000 claims description 3
- 238000005516 engineering process Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 238000007429 general method Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 210000003739 neck Anatomy 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- HOWHQWFXSLOJEF-MGZLOUMQSA-N systemin Chemical compound NCCCC[C@H](N)C(=O)N[C@@H](CCSC)C(=O)N[C@@H](CCC(N)=O)C(=O)N[C@@H]([C@@H](C)O)C(=O)N[C@@H](CC(O)=O)C(=O)OC(=O)[C@@H]1CCCN1C(=O)[C@H]1N(C(=O)[C@H](CC(O)=O)NC(=O)[C@H](CCCN=C(N)N)NC(=O)[C@H](CCCCN)NC(=O)[C@H](CO)NC(=O)[C@H]2N(CCC2)C(=O)[C@H]2N(CCC2)C(=O)[C@H](CCCCN)NC(=O)[C@H](CO)NC(=O)[C@H](CCC(N)=O)NC(=O)[C@@H](NC(=O)[C@H](C)N)C(C)C)CCC1 HOWHQWFXSLOJEF-MGZLOUMQSA-N 0.000 description 1
- 108010050014 systemin Proteins 0.000 description 1
- 230000005144 thermotropism Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Landscapes
- Mobile Radio Communication Systems (AREA)
Abstract
本发明涉及一种多机热备份方法及系统。多机热备份方法包括:将热备份主机划分为多个层级;在同级的每组热备份主机组中通过同级协商确定本组唯一的一个活动态主机,所述活动态指激活状态,活动态主机用于对本层级主机的下级热备份主机进行控制;上级热备份主机通过本层级的活动态主机对下级热备份主机进行控制,上级热备份主机与下级热备份主机处于相邻的层级且上级热备份主机所在的层级高于下级热备份主机的层级。本发明的多机热备份方法及系统可以正确进行活动态主机的协商,并能够保证同级同组内有且只有一台主机处于活动态。本发明能够确保在高层应用的开发中,可以充分利用下层的热备份状态,因此提高了整个热备份系统的可扩展性。
Description
技术领域
本发明涉及计算机领域,尤其涉及一种多机热备份方法及系统。
背景技术
多机热备份是计算机科学研究领域的一个经典问题。它指在一个网络系统中,发生单点失效时,系统能检测到故障点,并自动将业务切换到备份主机上,在短时间内完成无人工故障恢复的过程。热备份技术一直都是计算机科学的研究热点之一,它在大规模网络、高可用性网络、数据冗余等多个领域中有着广泛的应用。
多机热备份方法的分类有多种,按照其应用层次来分,可以分为以下两类:基于网络层的冗余热备份方法和基于应用层的热备份方法。其中,基于网络层的冗余热备份方法主要用于网关冗余热备份,是实际系统中应用最广泛的方法之一,其中的典型代表协议包括HSRP(HotStandbyRouterProtocol,热备份路由器协议)、VRRP(VirtualRouterRedundancyProtocol,虚拟路由器冗余协议)、GLBP(GatewayLoadBalancingProtocol,网关负载均衡协议)等。基于应用层的热备份方法主要用于集群和云计算,是一整套复杂的热备份切换系统。
在大多数情况下,基于网络层的冗余热备份方法性能稳定,对上层应用透明。但是,当热备份需求较为灵活的时候,此方法的“透明”特性也使上层难以充分利用热备份状态信息进行灵活的控制。这是由于现有的网络层没有向上层调用通知的方法,只是简单地将热备份切换的影响放到网络层上,造成切换过于简单的现象,影响了热备份体系的整体可扩展性和灵活性。
因此,合理的热备份结构对实际高层应用的灵活性起着关键的作用,需要进一步研究。
在普通的基于网络层的多机热备份环境下,如果在开发上层应用的时候,没有合理的热备主机状态检测方法,就会出现扩展性较差的情况,进而造成上层可开发功能受限,极大地影响了整个系统的可扩展性。现有的基于网络层的多级热备份切换机制在对上层提供服务的同时,没有专门的通知上层应用自身状态的方法,只是简单地将切换操作放在网络出口的开关上,在可扩展性的问题上十分突出。
发明内容
本发明所要解决的技术问题是提供一种多机热备份方法及系统,提高热备份系统的可扩展性。
为解决上述技术问题,本发明提出了一种多机热备份方法,包括:
步骤一,将热备份主机划分为多个层级;
步骤二,在同级的每组热备份主机组中通过同级协商确定本组唯一的一个活动态主机,所述活动态指激活状态,所述活动态主机用于对本层级主机的下级热备份主机进行控制;
步骤三,上级热备份主机通过本层级的活动态主机对下级热备份主机进行控制,所述上级热备份主机与下级热备份主机处于相邻的层级且所述上级热备份主机所在的层级高于所述下级热备份主机的层级。
进一步地,上述多机热备份方法还可具有以下特点,所述步骤二包括:
初始时,同级同组的所有热备份主机均处于待命态,所述待命态指未激活状态,本组的热备份主机A向本组的其他所有热备份主机广播申请消息,所述申请消息中包含热备份主机A的优先级和地址信息,其中,热备份主机A是本组的任意一台热备份主机;
热备份主机A判断是否收到了本组其他所有热备份主机针对所述申请消息返回的申请认可消息,以及判断在设定时间段内是否收到本组其他热备份主机针对所述申请消息返回的申请否决消息;
若热备份主机A收到了本组其他所有热备份主机针对其广播的申请消息返回的申请认可消息,或者在设定时间段内热备份主机A未收到本组其他热备份主机针对所述申请消息返回的申请否决消息,则热备份主机A晋升为活动态主机。
进一步地,上述多机热备份方法还可具有以下特点,所述步骤二还包括:
作为活动态主机的热备份主机A定期在本组内广播通知消息,告知本组的所有热备份主机自己的活动态主机身份;
本组的待命态热备份主机收到所述通知消息后,抑制自身晋升为活动态主机。
进一步地,上述多机热备份方法还可具有以下特点,所述步骤二还包括:
若本组内同时出现两台以上的活动态主机,则比较本组所有活动态主机的优先级,选择出优先级最高的活动态主机;
若优先级最高的活动态主机只有一个,则确定该优先级最高的活动态主机为本组唯一的活动态主机,若优先级最高的活动态主机有两个以上,则按照自高位向低位的顺序比较本组优先级最高的所有活动态主机的网络地址,确定网络地址最大的活动态主机为本组唯一的活动态主机;
将本组中除被确定为唯一活动态主机之外的其他活动态主机的状态转为待命态。
进一步地,上述多机热备份方法还可具有以下特点,所述步骤二还包括:
在抢占模式下,若本组内的待命态主机优先级高于本组的活动态主机,则优先级高于活动态主机的待命态主机向活动态主机发送挑战消息,抢占模式是指在已经选举出活动态主机的情况下,待命态主机向活动态主机发起挑战;
若发送挑战消息的待命态主机收到活动态主机针对挑战消息返回的挑战应答消息,则该待命态主机晋升为新的活动态主机,原活动态主机的状态转入待命态。
进一步地,上述多机热备份方法还可具有以下特点,所述步骤三包括:
上级活动态主机定期向下级活动态主机发送控制更新消息;
所述下级活动态主机接收所述控制更新消息,判断自身当前是否有有处于连接状态的上级活动态主机;
若该下级活动态主机自身当前没有处于连接状态的上级活动态主机则向所述上级活动态主机发送认可上级消息,并与所述上级活动态主机建立连接,若自身当前已有处于连接状态的上级活动态主机,则向所述上级活动态主机发送拒绝认可消息,不与所述上级活动态主机建立连接。
进一步地,上述多机热备份方法还可具有以下特点,所述步骤三还包括:
若上级活动态主机检测发现下级活动主机在设定时限内未回应其发送的控制更新消息,则向该下级活动主机所在组的全部热备份主机发送检测包,寻找一台存活主机,将该存活主机指定为组内的活动态主机,所述存活主机是指在发送检测包后上级活动态主机收到的来自下级的第一个回应包的主机。
为解决上述技术问题,本发明提出了一种多机热备份系统,包括:
划分模块,用于将热备份主机划分为多个层级;
协商模块,用于在同级的每组热备份主机组中通过同级协商确定本组唯一的一个活动态主机,所述活动态指激活状态,所述活动态主机用于对本层级主机的下级热备份主机进行控制;
控制模块,用于上级热备份主机通过本层级的活动态主机对下级热备份主机进行控制,所述上级热备份主机与下级热备份主机处于相邻的层级且所述上级热备份主机所在的层级高于所述下级热备份主机的层级。
进一步地,上述多机热备份系统还可具有以下特点,所述协商模块包括:
广播单元,初始时,同级同组的所有热备份主机均处于待命态,所述待命态指未激活状态,用于本组的热备份主机A向本组的其他所有热备份主机广播申请消息,所述申请消息中包含热备份主机A的优先级和地址信息,其中,热备份主机A是本组的任意一台热备份主机;
判断单元,用于热备份主机A判断是否收到了本组其他所有热备份主机针对所述申请消息返回的申请认可消息,以及判断在设定时间段内是否收到本组其他热备份主机针对所述申请消息返回的申请否决消息;
晋升单元,用于在热备份主机A收到了本组其他所有热备份主机针对其广播的申请消息返回的申请认可消息,或者在设定时间段内热备份主机A未收到本组其他热备份主机针对所述申请消息返回的申请否决消息时,使热备份主机A晋升为活动态主机。
进一步地,上述多机热备份系统还可具有以下特点,所述协商模块还包括:
告知单元,用于作为活动态主机的热备份主机A定期在本组内广播通知消息,告知本组的所有热备份主机自己的活动态主机身份;
抑制单元,用于本组的待命态热备份主机收到所述通知消息后,抑制自身晋升为活动态主机。
进一步地,上述多机热备份系统还可具有以下特点,所述协商模块还包括:
比较单元,用于在本组内同时出现两台以上的活动态主机时,比较本组所有活动态主机的优先级,选择出优先级最高的活动态主机;
确定单元,用于在优先级最高的活动态主机只有一个时,确定该优先级最高的活动态主机为本组唯一的活动态主机,以及在优先级最高的活动态主机有两个以上,比较本组优先级最高的所有活动态主机的网络地址,确定网络地址最大的活动态主机为本组唯一的活动态主机;
转换单元,用于将本组中除被确定为唯一活动态主机之外的其他活动态主机的状态转为待命态。
进一步地,上述多机热备份系统还可具有以下特点,所述协商模块还包括:
挑战单元,用于在抢占模式下,在本组内的待命态主机优先级高于本组的活动态主机,优先级高于活动态主机的待命态主机向活动态主机发送挑战消息,抢占模式是指在已经选举出活动态主机的情况下,待命态主机向活动态主机发起挑战;
挑战响应单元,用于在发送挑战消息的待命态主机收到活动态主机针对挑战消息返回的挑战应答消息,晋升该待命态主机为新的活动态主机,原活动态主机的状态转入待命态。
进一步地,上述多机热备份系统还可具有以下特点,所述控制模块包括:
控制更新单元,用于上级活动态主机定期向下级活动态主机发送控制更新消息;
接收及判断单元,用于所述下级活动态主机接收所述控制更新消息,判断自身当前是否有有处于连接状态的上级活动态主机;
处理单元,用于在该下级活动态主机自身当前没有处于连接状态的上级活动态主机时向所述上级活动态主机发送认可上级消息,并与所述上级活动态主机建立连接,以及在该下级活动态主机自身当前已有处于连接状态的上级活动态主机时,向所述上级活动态主机发送拒绝认可消息,不与所述上级活动态主机建立连接。
进一步地,上述多机热备份系统还可具有以下特点,所述控制模块还包括:
指定单元,用于在上级活动态主机检测发现下级活动主机在设定时限内未回应其发送的控制更新消息,向该下级活动主机所在组的全部热备份主机发送检测包,寻找一台存活主机,将该存活主机指定为组内的活动态主机,所述存活主机是指在发送检测包后上级活动态主机收到的来自下级的第一个回应包的主机。
本发明的多机热备份方法及系统可以正确进行活动态主机的协商,并能够保证同级同组内有且只有一台主机处于活动态。本发明能够确保在高层应用的开发中,可以充分利用下层的热备份状态,因此提高了整个热备份系统的可扩展性。
附图说明
图1为本发明实施例中多机热备份方法的流程图;
图2为本发明实施例中多机热备份系统的结构框图。
具体实施方式
以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
以下如无特别说明,主机均指热备份主机。
图1为本发明实施例中多机热备份方法的流程图。如图1所示,本实施例中,多机热备份方法可以包括如下步骤:
步骤S101,将热备份主机划分为多个层级;
通常,依据使用的规模和业务需求来划分层级,同级的主机运行的是相同或相似的业务。具体的层级划分可以由使用者来做。
本发明中将热备份主机的工作状态定义为活动态(Active)和待命态(Candidate)两种,将热备份主机的多级角色定义为上级、同级、下级三种。其中,活动态指激活状态,待命态指未激活状态。“上级”、“下级”和“同级”是相对的概念。除顶级和最下级外,其他层级均具有“上级”、“下级”和“同级”三种概念。
步骤S102,在同级的每组热备份主机组中通过同级协商确定本组唯一的一个活动态主机;
同级协商保证一组同功能的主机之中,有且只有一台工作,其他主机处于待命态。
步骤S103,上级热备份主机通过本层级的活动态主机对本层级的下级热备份主机进行控制;
其中,上级热备份主机与下级热备份主机处于相邻的层级且上级热备份主机所在的层级高于下级热备份主机的层级。
通过上下级协商可以由上级主机直接指定下级主机的工作状态(即活动态或待命态)。
本发明中,同级同组的热备份主机之间,只会有一台主机作为活动态。当主机为活动态时,会主动向下级各组热备份主机发起控制命令,通告自己成为上级活动态主机,下级各主机收到此消息后,会适当给予回应,但在一个下级主机组中,只会有一台主机被指定为活动态,以此类推。顶层的主机没有上级,所以会在同级主机之间进行协商,以保证只有一台主机处于活动态。底层主机没有下级,因此底层主机控制下级主机的功能将失效。
在本发明实施例中,步骤S102可以包括如下步骤:
(a2)初始时,同级同组的所有热备份主机均处于待命态,本组的热备份主机A向本组的其他所有热备份主机广播申请消息,该申请消息中包含热备份主机A的优先级和地址信息,其中,热备份主机A可以是本组的任意一台热备份主机;
申请消息表示热备份主机A向本组内的其他主机申请自己晋升为活动态主机。
本组的其他热备份主机(即除热备份主机A之外的主机)收到热备份主机A广播的申请消息后,如果热备份主机A的优先级高于自己的优先级,则向热备份主机A返回申请认可(CONFIRM)消息,申请认可消息表示该热备份主机承认热备份主机A的优先级高于自己的优先级,同意热备份主机A晋升为活动态主机;如果热备份主机A的优先级低于自己的优先级,则向热备份主机A返回申请否决消息,申请否决消息表示该热备份主机不同意热备份主机A晋升为活动态主机。
(b2)热备份主机A判断是否收到了本组其他所有热备份主机针对其广播的申请消息返回的申请认可消息,以及判断在设定时间段内是否收到本组其他热备份主机针对其广播的申请消息返回的申请否决消息;
(c2)若热备份主机A收到了本组其他所有热备份主机针对其广播的申请消息返回的申请认可消息,或者在设定时间段内热备份主机A未收到本组其他热备份主机针对申请消息返回的申请否决消息,则热备份主机A晋升为活动态主机。
在本发明实施例中,在步骤(a2)至(c2)的基础上,步骤S102还可以进一步包括如下步骤:
(d2)作为活动态主机的热备份主机A定期在本组内广播通知消息,告知本组的所有热备份主机自己的活动态主机身份;
(e2)本组的待命态热备份主机收到通知消息后,抑制自身晋升为活动态主机。具体地,待命态热备份主机可以通过增加广播申请消息的延迟来抑制自己,从而给其他主机更多的机会晋升为活动态主机。
在本发明实施例中,在步骤(a2)至(c2)的基础上,步骤S102还可以进一步包括如下步骤:
(f2)若本组内同时出现两台以上的活动态主机,则比较本组所有活动态主机的优先级,选择出优先级最高的活动态主机;
(g2)若优先级最高的活动态主机只有一个,则确定该优先级最高的活动态主机为本组唯一的活动态主机,若优先级最高的活动态主机有两个以上,则比较本组优先级最高的所有活动态主机的网络地址,确定网络地址最大的活动态主机为本组唯一的活动态主机;
例如,假设有优先级同为7的两台主机A、B,主机A的地址(IP地址:端口号)为192.168.1.1:1000,主机B的地址为192.168.1.2:999,以上两个地址均为主机字节序,翻译为十六进制分别为:0xC0A80101:0x3E8和0x0xC0A80102:0x3E7,显然,主机A的IP地址小于主机B,主机B的端口号小于主机A,在比较的时候,优先比较IP地址,所以主机A和主机B将选举主机B为活动主机。如果主机A、B的IP地址一样,比如同为0xC0A80101,即192.168.1.1,则以端口号的大小为比较依据,因为主机A的端口号大于主机B,所以此时应该选择A为活动主机。
(h2)将本组中除被确定为唯一活动态主机之外的其他活动态主机的状态转为待命态。
在本发明实施例中,在步骤(a2)至(c2)的基础上,步骤S102还可以进一步包括如下步骤:
(i2)若本组内的待命态主机优先级高于本组的活动态主机,则优先级高于活动态主机的待命态主机向活动态主机发送挑战消息(CHALLENG_SYN消息);
(j2)若发送挑战消息的待命态主机收到活动态主机针对挑战消息返回的挑战应答消息(CHALLENGE_ACK消息),则该待命态主机晋升为新的活动态主机,原活动态主机的状态转入待命态。
步骤(i2)和(j2)说明本发明中,允许高优先级的待命态主机通过“抢占”的方式抢夺活动态主机的工作权利。本文中将这种工作模式称为抢占模式。确切地说,抢占模式就是指在已经选举出活动态主机的情况下,待命态主机向活动态主机发起挑战。在抢占模式开启的情况下才会通过步骤(i2)和(j2)来允许高优先级的待命态主机通过“抢占”的方式抢夺活动态主机的工作权利,抢占模式关闭的情况下不会发生待命态主机挑战活动态主机的情况。
在本发明实施例中,步骤S103可以包括如下步骤:
(a3)上级活动态主机定期向下级主机发送控制更新消息(MASTER_NEW消息);
上级活动态主机通过控制更新消息保持与下级主机的连接,并向下级主机通告自己是上级。
如果下级主机中存在活动态主机,则上级活动态主机只向下级的活动态主机发送控制更新消息。如果下级主机中不存在活动态主机,则上级活动态主机向所有的下级主机广播控制更新消息,直到收到下级的某一台主机的回应,上级活动态主机将该回应的主机认定为下级的活动态主机,并停止向下级的其他主机发送控制更新消息。
(b3)下级活动态主机接收控制更新消息,判断自身当前是否有处于连接状态的上级活动态主机;
(c3)若该下级活动态主机自身当前没有处于连接状态的上级活动态主机则向所述上级活动态主机发送认可上级消息,并于所述上级活动态主机建立连接,若自身当前已有处于连接状态的上级活动态主机,则向所述上级活动态主机发送拒绝认可消息,不与所述上级活动态主机建立连接。
在本发明实施例中,步骤S103还可以进一步包括步骤(d3):若上级活动态主机检测发现下级活动主机在设定时限内未回应其发送的控制更新消息,则向该下级活动主机所在组的全部热备份主机发送检测包,寻找一台存活主机,将该存活主机指定为组内的活动态主机。存活主机是指在上级活动态主机发送检测包后,上级活动态主机收到的来自下级的第一个回应包的主机。上级活动态主机可以通过定时向下级的热备份主机发送心跳包的方式来检测,如果上级活动态主机超过一定时间未收到下级热备份主机的回应,则上级活动态主机判断该下级热备份主机死亡,同样,如果下级热备份主机超过一定时间未收到上级活动态主机的回应,则下级热备份主机判断该上级活动态主机死亡。另外,同级主机之间的探测也可以通过定期发送心跳包的方式来进行。
本发明的多机热备份方法可以基于UDP(UserDatagramProtocol,用户数据报协议)协议发送消息,消息结构包含消息类型、校验和、消息内容、时间戳四个部分。
本发明的多机热备份方法中,协商过程的各类消息可以有如下这些:
1、KEEP_ALIVE消息
这是一个Hello消息,每隔TIMER周期(默认为3秒)发送一次,超过TIMEOUT时间(默认为3倍的TIMER周期)未收到则认为连接断开,消息内容为随机数。
2、TIMER_GET消息
这是下级向上级请求Hello周期的消息,消息内容为随机数。
3、TIMER_SET消息
这是上级设置同级或下级TIMER周期的消息,以时间戳最新的为准,支持推送到目标机的下级,消息内容为TIMER周期,范围是0~65535,0表示不发送,即主动令连接断开,单位为秒。
4、TIMEOUT_GET消息
该消息表示下级向上级请求超时时间,消息内容为随机数。
5、TIMEOUT_SET消息
该消息表示上级设置同级或下级的超时时间,以最新的时间戳为准,支持推送到目标机的下级,消息内容为超时时间,范围0~65535,0表示永不超时,单位为秒。
6、NGO_ANN消息
该消息为同级主机协商Active主机(即活动态主机)的角色所发出的请求,仅在与Active主机连接失效的时候发送,每隔一段时间(如2秒)广播一次,消息内容为同级主机的配置优先级(包含优先级级别和机器标识ID)用来保证唯一性,总优先级={1.配置优先级,2.网络地址大小}。收到此消息的主机根据优先级回应NGO_CONFIRM消息或NGO_REJECT消息。
配置优先级为一个整数,网络地址包括IP地址和端口号,IP地址和端口号都是主机字节序,高位优先。配置优先级从配置文件中获得,由运维人员来指定,网络地址在协议启动的时候从系统中自动获得。选举同级活动态主机时优先比较配置优先级,如果配置优先级相同,则进一步比较网络地址。比较的顺序是,配置优先级﹥IP地址﹥端口号。
7、NGO_CONFIRM_SYN消息
该消息为同级主机给予的回应,表示同意该主机成为Active主机,消息内容是上一个ANN请求消息中的配置优先级,收到此消息的主机,更新组中相应的confirm标记,若此表中有连接的所有标记都满了,或标记超时(如150秒),则进入Active状态。
8、NGO_CONFIRM_ACK消息
该消息为同级主机收到NGO_CONFIRM_SYN消息后进行回应的消息。
9、NGO_REJECT_SYN消息
该消息表示同级拒绝其他主机的Active请求,条件是Active主机存在或自己的优先级更高,消息内容为本机配置优先级,收到此消息的主机,如果检查到对方优先级比自己高,则清空组列表中所有的confirm标记,并进行ACK回应。
10、NGO_REJECT_ACK消息
该消息为同级主机收到NGO_REJECT_SYN消息后进行回应的消息。
11、NGO_ACTIVE_ANN消息
该消息由Active主机发送,广播通告所有同级别主机“我是Active主机”,消息内容是Active主机自己的配置优先级。非Active主机收到这个消息会清空所有confirm标记。Active主机收到该消息,若对方优先级更高,则由A->C(其中,字母“A”表示“Active”,即活动态,字母“C”表示“Candidate”,即待命态,下同,“A->C”表示由活动态转为待命态),并回应NGO_ACTIVE_CONFIRM_SYN消息,否则就回复NGO_ACTIVE_REJECT_SYN消息。
12、NGO_ACTIVE_REJECT_SYN消息
该消息由Active主机发送。非Active主机忽视此消息。Active主机收到该消息后,若对方优先级比自己高,则A->C,并回复ACK同意消息;否则反向发送ACK拒绝的消息。
13、NGO_ACTIVE_REJECT_ACK消息
该消息由Active主机发送。非Active主机忽视此消息。Active主机收到该消息后,若得到的是ACK同意,则停止发送SYN(指NGO_ACTIVE_REJECT_SYN消息),否则A->C。SYN(synchronize)是一种发送消息的方式,具体为:定期向对方发送此消息直到收到ACK(acknowledgement)类的消息为止。
14、NGO_ACTIVE_CONFIRM_SYN消息
该消息由Active主机发送。非Active主机忽视此消息。Active主机在状态表中标记对方为confirm,并回复一条ACK同意消息。
15、NGO_ACTIVE_CONFIRM_ACK消息
该消息由Active主机发送。非Active主机忽视此消息。
16、NGO_ACTIVE_CHALLENGE_SYN消息
该消息由非Active主机发送给Active主机。当Active主机收到此消息,在抢占的情况下,若对方优先级高,则A->C,回复ACK同意消息,否则忽视此消息;非抢占情况下,回复ACK否决消息。
17、NGO_ACTIVE_CHALLENGE_ACK消息
非Active主机若收到ACK同意,则C->A,否则过一段时间(如30秒),再次发起主机挑战SYN。
18、MASTER_NEW消息
下级活动态主机失效后,上级活动态主机会广播MASTER_NEW消息,直到收到一台下级主机的确认,上级活动态主机会将该确认的下级主机认可为下级活动态主机,并停止向其他下级主机发送MASTER_NEW消息。之后上级活动态主机会定期向下级活动态主机发送MASTER_NEW消息,下级活动态主机回应给上级活动态主机MASTER_CONFIRM消息,上级活动态主机与下级活动态主机这两台主机通过这种方式来认可二者之间的连接是正常的,即上级活动态主机认可下级活动态主机是存活的。
MASTER_NEW消息的消息内容为随机数(unsignedshort)。下级主机收到上级活动态主机的消息,若检查到现有的连接已断开,则回复MASTER_CONFIRM消息,并准备连接,若现有的连接未断开,则回复MASTER_REJECT消息,拒绝连接。
19、MASTER_CONFIRM消息
上级活动态主机发送MASTER_NEW消息给下级主机后,若下级主机为Active状态,且没与其他上级主机建立连接,则回复此消息,上级活动态主机检查此消息是否为刚才自己所发送的(通过时间戳和随机数,一次连接只有一个随机数(表示sessionid),时间戳以第一次的为准,判断时间是否介于现在和第一次之间),若是,则开始连接,否则忽视此消息。
20、MASTER_REJECT消息
上级活动态主机发送MASTER_NEW消息给下级主机后,若下级主机并非Active主机或下级主机已经和某个Master(即上级活动态主机)建立连接,则发送此消息,上级活动态主机检查此消息是否为刚才自己所发送的(通过时间戳和随机数,一次连接只有一个随机数(表示sessionid),时间戳以第一次的为准,判断时间是否介于现在和第一次之间),若是,则延长一段时间(如3秒)再发送MASTER_NEW消息,否则忽视此消息。
本发明的多机热备份方法可以正确进行活动态主机的协商,并能够保证同级同组内有且只有一台主机处于活动态。本发明能够确保在高层应用的开发中,可以充分利用下层的热备份状态,因此提高了整个热备份系统的可扩展性。
本发明的多机热备份方法运行在传输层和应用层之间,通过UDP的心跳包来监测运行协议的主机的工作状态,采用对应用层透明的协商协议来确定各主机的工作角色。本发明的多机热备份方法提供应用层接口,会实时向上层应用提交热备份状态。
本发明还提出了一种多机热备份系统,用于执行上述的多机热备份方法。以上对多机热备份方法的原理说明均适用于下面的多机热备份系统。
图2为本发明实施例中多机热备份系统的结构框图。如图2所示,本实施例中,多机热备份系统可以包括划分模块210、协商模块220和控制模块230。其中,划分模块210用于将热备份主机划分为多个层级。协商模块220用于在同级的每组热备份主机组中通过同级协商确定本组唯一的一个活动态主机,其中,活动态指激活状态。控制模块230用于上级热备份主机通过本层级的活动态主机对本层级的下级热备份主机进行控制,这里,所述上级热备份主机与下级热备份主机处于相邻的层级且上级热备份主机所在的层级高于下级热备份主机的层级。
在本发明实施例中,协商模块220可以进一步包括广播单元、判断单元和晋升单元。其中,在初始时,同级同组的所有热备份主机均处于待命态,所述待命态指未激活状态,广播单元用于本组的热备份主机A向本组的其他所有热备份主机广播申请消息,所述申请消息中包含热备份主机A的优先级和地址信息,其中,热备份主机A是本组的任意一台热备份主机。判断单元用于热备份主机A判断是否收到了本组其他所有热备份主机针对所述申请消息返回的申请认可消息,以及判断在设定时间段内是否收到本组其他热备份主机针对所述申请消息返回的申请否决消息。晋升单元用于在热备份主机A收到了本组其他所有热备份主机针对其广播的申请消息返回的申请认可消息,或者在设定时间段内热备份主机A未收到本组其他热备份主机针对所述申请消息返回的申请否决消息时,使热备份主机A晋升为活动态主机。
在本发明实施例中,在协商模块220包括广播单元、判断单元和晋升单元的基础上,协商模块220还可以进一步包括告知单元和抑制单元。告知单元用于作为活动态主机的热备份主机A定期在本组内广播通知消息,告知本组的所有热备份主机自己的活动态主机身份。抑制单元用于本组的待命态热备份主机收到所述通知消息后,抑制自身晋升为活动态主机。
在本发明实施例中,在协商模块220包括广播单元、判断单元和晋升单元的基础上,协商模块220还可以进一步包括比较单元、确定单元和转换单元。比较单元用于在本组内同时出现两台以上的活动态主机时,比较本组所有活动态主机的优先级,选择出优先级最高的活动态主机。确定单元用于在优先级最高的活动态主机只有一个时,确定该优先级最高的活动态主机为本组唯一的活动态主机,以及在优先级最高的活动态主机有两个以上,比较本组优先级最高的所有活动态主机的网络地址,确定网络地址最大的活动态主机为本组唯一的活动态主机。转换单元用于将本组中除被确定为唯一活动态主机之外的其他活动态主机的状态转为待命态。
在本发明实施例中,在协商模块220包括广播单元、判断单元和晋升单元的基础上,协商模块220还可以进一步包括挑战单元和挑战响应单元。挑战单元用于在本组内的待命态主机优先级高于本组的活动态主机,优先级高于活动态主机的待命态主机向活动态主机发送挑战消息。挑战响应单元用于在发送挑战消息的待命态主机收到活动态主机针对挑战消息返回的挑战应答消息,晋升该待命态主机为新的活动态主机,原活动态主机的状态转入待命态。
在本发明实施例中,控制模块230可以进一步包括控制更新单元、接收及判断单元和处理单元。控制更新单元,于上级活动态主机定期向下级活动态主机发送控制更新消息。接收及判断单元用于所述下级活动态主机接收所述控制更新消息,判断自身当前是否有有处于连接状态的上级活动态主机。处理单元用于在该下级活动态主机自身当前没有处于连接状态的上级活动态主机时向所述上级活动态主机发送认可上级消息,并与所述上级活动态主机建立连接,以及在该下级活动态主机自身当前已有处于连接状态的上级活动态主机时,向所述上级活动态主机发送拒绝认可消息,不与所述上级活动态主机建立连接。
在本发明实施例中,在控制模块230包括控制更新单元、接收及判断单元和处理单元的基础上,控制模块230还可以进一步包括指定单元。指定单元用于在上级活动态主机检测发现下级活动主机在设定时限内未回应其发送的控制更新消息,向该下级活动主机所在组的全部热备份主机发送检测包,寻找一台存活主机,将该存活主机指定为组内的活动态主机,其中,存活主机是指在上级活动态主机发送检测包后,上级活动态主机收到的来自下级的第一个回应包的主机。。
本发明的多机热备份系统可以正确进行活动态主机的协商,并能够保证同级同组内有且只有一台主机处于活动态。本发明能够确保在高层应用的开发中,可以充分利用下层的热备份状态,因此提高了整个热备份系统的可扩展性。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (12)
1.一种多机热备份方法,其特征在于,包括:
步骤一,将热备份主机划分为多个层级;
步骤二,在同级的每组热备份主机组中通过同级协商确定本组唯一的一个活动态主机,所述活动态指激活状态,所述活动态主机用于对本层级主机的下级热备份主机进行控制;所述步骤二包括:
初始时,同级同组的所有热备份主机均处于待命态,所述待命态指未激活状态,本组的热备份主机A向本组的其他所有热备份主机广播申请消息,所述申请消息中包含热备份主机A的优先级和地址信息,其中,热备份主机A是本组的任意一台热备份主机;
热备份主机A判断是否收到了本组其他所有热备份主机针对所述申请消息返回的申请认可消息,以及判断在设定时间段内是否收到本组其他热备份主机针对所述申请消息返回的申请否决消息;
若热备份主机A收到了本组其他所有热备份主机针对其广播的申请消息返回的申请认可消息,或者在设定时间段内热备份主机A未收到本组其他热备份主机针对所述申请消息返回的申请否决消息,则热备份主机A晋升为活动态主机;
步骤三,上级热备份主机通过本层级的活动态主机对下级热备份主机进行控制,所述上级热备份主机与下级热备份主机处于相邻的层级且所述上级热备份主机所在的层级高于所述下级热备份主机的层级。
2.根据权利要求1所述的多机热备份方法,其特征在于,所述步骤二还包括:
作为活动态主机的热备份主机A定期在本组内广播通知消息,告知本组的所有热备份主机自己的活动态主机身份;
本组的待命态热备份主机收到所述通知消息后,抑制自身晋升为活动态主机。
3.根据权利要求1所述的多机热备份方法,其特征在于,所述步骤二还包括:
若本组内同时出现两台以上的活动态主机,则比较本组所有活动态主机的优先级,选择出优先级最高的活动态主机;
若优先级最高的活动态主机只有一个,则确定该优先级最高的活动态主机为本组唯一的活动态主机,若优先级最高的活动态主机有两个以上,则按照自高位向低位的顺序比较本组优先级最高的所有活动态主机的网络地址,确定网络地址最大的活动态主机为本组唯一的活动态主机;
将本组中除被确定为唯一活动态主机之外的其他活动态主机的状态转为待命态。
4.根据权利要求1所述的多机热备份方法,其特征在于,所述步骤二还包括:
在抢占模式下,若本组内的待命态主机优先级高于本组的活动态主机,则优先级高于活动态主机的待命态主机向活动态主机发送挑战消息,抢占模式是指在已经选举出活动态主机的情况下,待命态主机向活动态主机发起挑战;
若发送挑战消息的待命态主机收到活动态主机针对挑战消息返回的挑战应答消息,则该待命态主机晋升为新的活动态主机,原活动态主机的状态转入待命态。
5.根据权利要求1所述的多机热备份方法,其特征在于,所述步骤三包括:
上级活动态主机定期向下级活动态主机发送控制更新消息;
所述下级活动态主机接收所述控制更新消息,判断自身当前是否有有处于连接状态的上级活动态主机;
若该下级活动态主机自身当前没有处于连接状态的上级活动态主机则向所述上级活动态主机发送认可上级消息,并与所述上级活动态主机建立连接,若自身当前已有处于连接状态的上级活动态主机,则向所述上级活动态主机发送拒绝认可消息,不与所述上级活动态主机建立连接。
6.根据权利要求5所述的多机热备份方法,其特征在于,所述步骤三还包括:
若上级活动态主机检测发现下级活动主机在设定时限内未回应其发送的控制更新消息,则向该下级活动主机所在组的全部热备份主机发送检测包,寻找一台存活主机,将该存活主机指定为组内的活动态主机,所述存活主机是指在发送检测包后上级活动态主机收到的来自下级的第一个回应包的主机。
7.一种多机热备份系统,其特征在于,包括:
划分模块,用于将热备份主机划分为多个层级;
协商模块,用于在同级的每组热备份主机组中通过同级协商确定本组唯一的一个活动态主机,所述活动态指激活状态,所述活动态主机用于对本层级主机的下级热备份主机进行控制;所述协商模块包括:
广播单元,初始时,同级同组的所有热备份主机均处于待命态,所述待命态指未激活状态,用于本组的热备份主机A向本组的其他所有热备份主机广播申请消息,所述申请消息中包含热备份主机A的优先级和地址信息,其中,热备份主机A是本组的任意一台热备份主机;
判断单元,用于热备份主机A判断是否收到了本组其他所有热备份主机针对所述申请消息返回的申请认可消息,以及判断在设定时间段内是否收到本组其他热备份主机针对所述申请消息返回的申请否决消息;
晋升单元,用于在热备份主机A收到了本组其他所有热备份主机针对其广播的申请消息返回的申请认可消息,或者在设定时间段内热备份主机A未收到本组其他热备份主机针对所述申请消息返回的申请否决消息时,使热备份主机A晋升为活动态主机;
控制模块,用于上级热备份主机通过本层级的活动态主机对下级热备份主机进行控制,所述上级热备份主机与下级热备份主机处于相邻的层级且所述上级热备份主机所在的层级高于所述下级热备份主机的层级。
8.根据权利要求7所述的多机热备份系统,其特征在于,所述协商模块还包括:
告知单元,用于作为活动态主机的热备份主机A定期在本组内广播通知消息,告知本组的所有热备份主机自己的活动态主机身份;
抑制单元,用于本组的待命态热备份主机收到所述通知消息后,抑制自身晋升为活动态主机。
9.根据权利要求7所述的多机热备份系统,其特征在于,所述协商模块还包括:
比较单元,用于在本组内同时出现两台以上的活动态主机时,比较本组所有活动态主机的优先级,选择出优先级最高的活动态主机;
确定单元,用于在优先级最高的活动态主机只有一个时,确定该优先级最高的活动态主机为本组唯一的活动态主机,以及在优先级最高的活动态主机有两个以上,比较本组优先级最高的所有活动态主机的网络地址,确定网络地址最大的活动态主机为本组唯一的活动态主机;
转换单元,用于将本组中除被确定为唯一活动态主机之外的其他活动态主机的状态转为待命态。
10.根据权利要求7所述的多机热备份系统,其特征在于,所述协商模块还包括:
挑战单元,用于在抢占模式下,在本组内的待命态主机优先级高于本组的活动态主机,优先级高于活动态主机的待命态主机向活动态主机发送挑战消息,抢占模式是指在已经选举出活动态主机的情况下,待命态主机向活动态主机发起挑战;
挑战响应单元,用于在发送挑战消息的待命态主机收到活动态主机针对挑战消息返回的挑战应答消息,晋升该待命态主机为新的活动态主机,原活动态主机的状态转入待命态。
11.根据权利要求7所述的多机热备份系统,其特征在于,所述控制模块包括:
控制更新单元,用于上级活动态主机定期向下级活动态主机发送控制更新消息;
接收及判断单元,用于所述下级活动态主机接收所述控制更新消息,判断自身当前是否有有处于连接状态的上级活动态主机;
处理单元,用于在该下级活动态主机自身当前没有处于连接状态的上级活动态主机时向所述上级活动态主机发送认可上级消息,并与所述上级活动态主机建立连接,以及在该下级活动态主机自身当前已有处于连接状态的上级活动态主机时,向所述上级活动态主机发送拒绝认可消息,不与所述上级活动态主机建立连接。
12.根据权利要求11所述的多机热备份系统,其特征在于,所述控制模块还包括:
指定单元,用于在上级活动态主机检测发现下级活动主机在设定时限内未回应其发送的控制更新消息,向该下级活动主机所在组的全部热备份主机发送检测包,寻找一台存活主机,将该存活主机指定为组内的活动态主机,所述存活主机是指在发送检测包后上级活动态主机收到的来自下级的第一个回应包的主机。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310507458.1A CN103532764B (zh) | 2013-10-24 | 2013-10-24 | 多机热备份方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310507458.1A CN103532764B (zh) | 2013-10-24 | 2013-10-24 | 多机热备份方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103532764A CN103532764A (zh) | 2014-01-22 |
CN103532764B true CN103532764B (zh) | 2016-05-11 |
Family
ID=49934465
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310507458.1A Expired - Fee Related CN103532764B (zh) | 2013-10-24 | 2013-10-24 | 多机热备份方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103532764B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105577711B (zh) | 2014-10-08 | 2019-05-03 | 华为技术有限公司 | 消息处理方法、装置及消息处理系统 |
CN106850715A (zh) * | 2015-12-04 | 2017-06-13 | 大唐移动通信设备有限公司 | 一种基于主机状态和优先级的主用主机动态选择方法 |
CN106209437A (zh) * | 2016-07-01 | 2016-12-07 | 南京亚派软件技术有限公司 | 一种实现多机主备的方法 |
CN106130898B (zh) * | 2016-08-29 | 2019-11-19 | 北京神州绿盟信息安全科技股份有限公司 | 一种虚拟路由链路保障方法及装置 |
CN106953767B (zh) * | 2017-04-06 | 2021-03-02 | 腾讯科技(深圳)有限公司 | 一种设备间的组网方法、装置及系统 |
CN107528730B (zh) * | 2017-08-28 | 2021-08-27 | 北京格是菁华信息技术有限公司 | 多重冗余方法、多重冗余服务器以及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101321049A (zh) * | 2008-07-14 | 2008-12-10 | 广州华唐信息技术有限公司 | 实现桥接网络加速设备双机热备份的方法和系统 |
CN101321050A (zh) * | 2008-07-14 | 2008-12-10 | 广州华唐信息技术有限公司 | 实现桥接网络加速设备多机热备份的方法和系统 |
CN102571377A (zh) * | 2010-12-09 | 2012-07-11 | 上海杉达学院 | 路由器热备系统 |
CN102664750A (zh) * | 2012-04-09 | 2012-09-12 | 北京星网锐捷网络技术有限公司 | 多机热备份的方法、系统及设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102025476B (zh) * | 2009-09-23 | 2014-02-26 | 中兴通讯股份有限公司 | 在bras多机备份场景中实现用户端口定位的方法及网络系统 |
-
2013
- 2013-10-24 CN CN201310507458.1A patent/CN103532764B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101321049A (zh) * | 2008-07-14 | 2008-12-10 | 广州华唐信息技术有限公司 | 实现桥接网络加速设备双机热备份的方法和系统 |
CN101321050A (zh) * | 2008-07-14 | 2008-12-10 | 广州华唐信息技术有限公司 | 实现桥接网络加速设备多机热备份的方法和系统 |
CN102571377A (zh) * | 2010-12-09 | 2012-07-11 | 上海杉达学院 | 路由器热备系统 |
CN102664750A (zh) * | 2012-04-09 | 2012-09-12 | 北京星网锐捷网络技术有限公司 | 多机热备份的方法、系统及设备 |
Non-Patent Citations (1)
Title |
---|
【热备份】HSRP技术详解;红茶三杯;《新浪博客》;httpblog.sina.com.cnsblog_5ec353710101e0kf.html;20130619;正文第1页第4行至第4页最后1行 * |
Also Published As
Publication number | Publication date |
---|---|
CN103532764A (zh) | 2014-01-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103532764B (zh) | 多机热备份方法及系统 | |
US8135832B2 (en) | Method, system and apparatus for detecting multiple active devices in stack | |
CN105471995B (zh) | 基于SOA的大规模Web服务机群高可用实现方法 | |
CN102917384B (zh) | Zigbee网络中协调器的热备方法 | |
CN100373799C (zh) | 一种宽带接入服务器热备份的方法 | |
CN101557616A (zh) | 接入点切换备份接入控制器的方法及接入点和接入控制器 | |
WO2015000362A1 (zh) | 一种业务节点配置方法、业务节点池注册器及系统 | |
CN105453487A (zh) | 用于数据中心环境中的双归属部署的扩展虚拟站接口发现协议(vdp)和vdp类协议 | |
CN103744809A (zh) | 基于vrrp的车辆信息管理系统双机热备方法 | |
CN105515812A (zh) | 资源的故障处理方法及装置 | |
GB2485024A (en) | Providing failover for a Point to Point tunnel for Wireless Local Area Network (WLAN) split-plane environments | |
WO2012083669A1 (zh) | 基于接入网关的主备用设备切换方法和装置 | |
WO2018090386A1 (zh) | 一种nf组件异常的处理方法、设备及系统 | |
CN103491590B (zh) | 一种下一代无线传感器网络路由的实现方法 | |
CN103117876A (zh) | 用户状态信息的同步方法及装置 | |
EP3334095B1 (en) | Method for establishing data connection, server side, and mobile terminal | |
CN102710438B (zh) | 一种节点管理方法、装置及系统 | |
CN108989200A (zh) | 数据包转发方法、装置和系统 | |
CN110247980B (zh) | 一种局域网中的网关控制方法及网关 | |
CN108737274B (zh) | 一种报文转发方法及装置 | |
CN105592488B (zh) | 一种时钟网络的建立方法、装置及通信节点 | |
WO2023169133A1 (zh) | 业务容灾备份方法、业务容灾备份系统及tof节点 | |
CN102281195B (zh) | 交换机和交换机系统 | |
CN109889390A (zh) | 转控分离场景下实现ha热备功能的方法 | |
CN102255741A (zh) | 用户业务信息备份方法和装置 |
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: 20160511 |