CN110380934B - 一种分布式余度系统心跳检测方法 - Google Patents
一种分布式余度系统心跳检测方法 Download PDFInfo
- Publication number
- CN110380934B CN110380934B CN201910664763.9A CN201910664763A CN110380934B CN 110380934 B CN110380934 B CN 110380934B CN 201910664763 A CN201910664763 A CN 201910664763A CN 110380934 B CN110380934 B CN 110380934B
- Authority
- CN
- China
- Prior art keywords
- unit
- heartbeat
- fault
- units
- information
- 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
- 238000001514 detection method Methods 0.000 title claims abstract description 25
- 238000003745 diagnosis Methods 0.000 claims abstract description 11
- 238000000034 method Methods 0.000 claims description 9
- 238000004891 communication Methods 0.000 claims description 7
- 238000005516 engineering process Methods 0.000 description 4
- RZVHIXYEVGDQDX-UHFFFAOYSA-N 9,10-anthraquinone Chemical compound C1=CC=C2C(=O)C3=CC=CC=C3C(=O)C2=C1 RZVHIXYEVGDQDX-UHFFFAOYSA-N 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
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/0677—Localisation of faults
-
- 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/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0805—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
- H04L43/0817—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking functioning
-
- 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)
- Environmental & Geological Engineering (AREA)
- Hardware Redundancy (AREA)
Abstract
本发明公开了一种分布式余度系统心跳检测方法。系统启动后,各单元通过总线进行时钟同步,然后进行心跳计数;主控单元向各从单元发送包含自己心跳信息的查询帧;各从单元在接收到查询帧后停止对主控单元的计时,若超时未收到,将主控单元标记为故障;各从单元开启计时,等待其他从单元发送的心跳信息帧,并向其他单元发送自己的心跳信息帧;各单元在接收到其他单元的心跳信息帧后停止计时,将未接收到心跳信息帧的单元标记为故障;各单元对自己接收到的所有心跳信息进行检测,生成诊断信息并发送给其他单元;各单元将其他单元发送的诊断信息与自己生成的诊断信息比较,确定最终的诊断结果。本发明解决了传统心跳检测方法故障定位能力差的问题。
Description
技术领域
本发明属于分布式系统内部通信技术领域,特别涉及了一种心跳检测方法。
背景技术
随着余度技术的普及,分布式系统的规模不断扩大,系统中各部分组件相互之间的依赖关系不断复杂化,使得系统发生故障的概率也不断增加。同时,一旦发生故障,若不能限定故障范围,所造成的损失也越来越大。因此,容错处理成为分布式系统中不可缺少的关键技术之一,而故障检测作为分布式系统容错技术的基础支撑技术,也受到越来越多的重视。
心跳检测故障方法因其简单有效的工作机制,已经成为分布式系统中最常用的方法之一。但是传统的心跳检测方法的故障定位能力差,当主控单元得不到某从单元的心跳信息时,并不能确定就是该单元死机还是通信通道故障。不仅如此,诸如主控单元的故障检测和主控单元故障之后的切换等等方面,传统的心跳检测方法都存在明显的不足。
发明内容
为了解决上述背景技术提到的技术问题,本发明提出了一种分布式余度系统心跳检测方法。
为了实现上述技术目的,本发明的技术方案为:
一种分布式余度系统心跳检测方法,所述分布式余度系统包括主控单元和从单元,所有单元通过总线通信;包括以下步骤:
(1)系统正常启动后,各单元通过总线进行时钟同步,然后进行心跳计数;
(2)主控单元以某一预定规律向各从单元发送包含自己心跳信息的查询帧,并进行计时等待;同时各从单元也按照这一预定规律在计时等待,直到接收到主控单元发送的查询帧;
(3)各从单元在接收到查询帧之后停止对主控单元的计时,若超时未收到主控单元发送的查询帧,则该从单元将主控单元标记为故障;
(4)各从单元开启计时,等待其他从单元发送的心跳信息帧,并向包括主控单元在内的其他单元发送自己的心跳信息帧;
(5)各单元在接收到其他单元的心跳信息帧后停止计时,该单元将未接收到心跳信息帧的单元标记为故障;
(6)各单元对自己接收到的所有其他单元的心跳信息进行检测,判断是否故障,并与步骤(3)和(5)标记的故障信息一同生成诊断信息,将生成的诊断信息发送给其他单元;
(7)各单元将其他单元发送的诊断信息与自己生成的诊断信息进行比较,确定最终的诊断结果。
进一步地,在步骤(1)中,采用两个字节存储心跳计数,每满10000次心跳进行一次清零,并把最高位置1,在下一次心跳信息发送后再将最高位清零。
进一步地,在步骤(2)中,主控单元以ΔT的时间间隔发送查询帧,ΔT1小于系统所有单元的最小的通信工作周期。
进一步地,在步骤(4)中,各从单元先开启计时,后向其他单元发送自己的心跳信息帧,两者之间存在延迟。
进一步地,在步骤(6)中,心跳信息的检测方法为,将本次收到的心跳计数与上一次收到的心跳计数作差,然后将差值除以检测时间间隔得到频率,通过检测该频率是否在预设的阈值内来判断是否故障。
进一步地,在步骤(7)中,将步骤(3)和(5)检测到的故障定义为故障1,将步骤(6)检测到的故障定义为故障2;针对某一单元A,若所有单元均判断单元A存在故障1,则最终诊断单元A为死机;若仅部分单元判断单元A存在故障1,则最终诊断单元A与这部分单元之间的通道存在断点故障;若所有单元均判断单元A存在故障2,则最终诊断单元A的时钟电路存在故障;若仅部分单元判断单元A存在故障2,则最终诊断单元A存在拜占庭故障。
采用上述技术方案带来的有益效果:
本发明针对传统心跳检测方法故障定位能力差的问题,提出了一种可以将故障定位到单元节点发生故障还是单元节点之间的通信线路发生故障的心跳检测故障方法。若是发生线路故障,本发明能够定位到具体的故障线路,尤其还能检测出较难检测的拜占庭故障。
附图说明
图1是本发明的整体方法流程图;
图2是实施例的系统结构图;
图3是实施例的方法流程图。
具体实施方式
以下将结合附图,对本发明的技术方案进行详细说明。
本发明设计了一种分布式余度系统心跳检测方法,步骤如下:
步骤1:系统正常启动后,各单元通过总线进行时钟同步,然后进行心跳计数;
步骤2:主控单元以某一预定规律向各从单元发送包含自己心跳信息的查询帧,并进行计时等待;同时各从单元也按照这一预定规律在计时等待,直到接收到主控单元发送的查询帧;
步骤3:各从单元在接收到查询帧之后停止对主控单元的计时,若超时未收到主控单元发送的查询帧,则该从单元将主控单元标记为故障;
步骤4:各从单元开启计时,等待其他从单元发送的心跳信息帧,并向包括主控单元在内的其他单元发送自己的心跳信息帧;
步骤5:各单元在接收到其他单元的心跳信息帧后停止计时,该单元将未接收到心跳信息帧的单元标记为故障;
步骤6:各单元对自己接收到的所有其他单元的心跳信息进行检测,判断是否故障,并与步骤3和5标记的故障信息一同生成诊断信息,将生成的诊断信息发送给其他单元;
步骤7:各单元将其他单元发送的诊断信息与自己生成的诊断信息进行比较,确定最终的诊断结果。
上述过程如图1所示,特别说明的是,在本发明中,既可以如上述内容所述,先判断主控单元、从单元的超时故障,再判断主控单元、从单元的心跳信息故障,也可以如图1所示,先判断主控单元的超时故障和心跳信息故障,再判断从单元的超时故障和心跳信息故障。
在本实施例中,优选地,在步骤1中,采用两个字节存储心跳计数,每满10000次心跳进行一次清零,并把最高位置1,在下一次心跳信息发送后再将最高位清零。
在本实施例中,优选地,在步骤2中,主控单元以ΔT的时间间隔发送查询帧,ΔT1小于系统所有单元的最小的通信工作周期。
在本实施例中,优选地,在步骤4中,各从单元先开启计时,后向其他单元发送自己的心跳信息帧,两者之间存在延迟。
在本实施例中,优选地,在步骤6中,心跳信息的检测方法为,将本次收到的心跳计数与上一次收到的心跳计数作差,然后将差值除以检测时间间隔得到频率,通过检测该频率是否在预设的阈值内来判断是否故障。
在本实施例中,优选地,在步骤7中,将步骤3和5检测到的故障定义为故障1,将步骤6检测到的故障定义为故障2;针对某一单元A,若所有单元均判断单元A存在故障1,则最终诊断单元A为死机;若仅部分单元判断单元A存在故障1,则最终诊断单元A与这部分单元之间的通道存在断点故障;若所有单元均判断单元A存在故障2,则最终诊断单元A的时钟电路存在故障;若仅部分单元判断单元A存在故障2,则最终诊断单元A存在拜占庭故障(拜占庭故障是指同一单元将本应该同样的信息发给不同单元,而不同单元收到的结果却不一样的故障)。
在一个实施例中,该实施例的系统是一个分布式无人机飞控计算机,其结构示意图如图2。CPU-A是系统初始的主控单元,CPU-B和CPU-C都有作为主控单元的能力,是CPU-A的备份。三余度的CPU,双余度的SIO、AIO和DIO以及总线组成了该分布式余度飞控计算机系统。
由于CPU的飞控解算周期是20ms,其他单元的工作周期都大于这个值,所以CPU单元发送查询帧的间隔要小于20ms。
本实施例的心跳检测流程如图3所示。
S301:该步骤中的超时阈值设定为2ms,当2ms没收到CPU-A发送的查询帧时,该单元就会把CPU-A标记为故障。
S302:将本次收到的心跳计数和上一次的作差,得到的结果除以时间间隔得到频率,通过判断是否在阈值内判断是否有故障。例如,频率的上下阈值分别是1100和900;某次收到的心跳计数是343,前一次是330,因为时间间隔是10ms,得到频率是1300,所以被判断存在故障。S306与S302相同。
S303:超时故障被标记为故障1,心跳信息异常被标记为故障2;S307和S303一样处理。
S304:开启计时后,经过0.5ms再发送心跳信息帧。
S305:在该步骤中,主控单元和各从单元的超时阈值设置是不同的,主控单元的超时阈值在本实施例中是5ms;从单元的超时阈值是2ms。
S308:综合故障诊断的故障分析主要按照两种故障分开进行分析。
首先所有单元都被检测出超时故障,那么就判断整个通信总线都存在故障。
接着进行进一步的诊断。以对SIO-A的诊断为例,当所有单元的都收不到SIO-A的信息,即所有单元都判断SIO-A存在故障1,则判定SIO-A死机;
当部分单元判断SIO-A存在故障1,部分判定其不存在故障1时,判定其与发现其故障的单元之间的通道存在断点故障;
当所有单元都检测到SIO-A存在故障2时,判定其时钟电路存在故障;
当部分单元检测到SIO-A存在故障2,部分单位检测到其工作正常,SIO-A即存在拜占庭故障。
其他单元的检测方法同上面SIO-A一样。当CPU-A故障时,若是CPU-B正常,就切换至CPU-B;若是CPU-B也故障就切换至正常的CPU-C;若是没有可用的CPU单元,系统只能启动紧急避险措施。
实施例仅为说明本发明的技术思想,不能以此限定本发明的保护范围,凡是按照本发明提出的技术思想,在技术方案基础上所做的任何改动,均落入本发明保护范围之内。
Claims (4)
1.一种分布式余度系统心跳检测方法,所述分布式余度系统包括主控单元和从单元,所有单元通过总线通信;其特征在于,包括以下步骤:
(1)系统正常启动后,各单元通过总线进行时钟同步,然后进行心跳计数;
(2)主控单元以某一预定规律向各从单元发送包含自己心跳信息的查询帧,并进行计时等待;同时各从单元也按照这一预定规律在计时等待,直到接收到主控单元发送的查询帧;
(3)各从单元在接收到查询帧之后停止对主控单元的计时,若超时未收到主控单元发送的查询帧,则该从单元将主控单元标记为故障;
(4)各从单元开启计时,等待其他从单元发送的心跳信息帧,并向包括主控单元在内的其他单元发送自己的心跳信息帧;
(5)各单元在接收到其他单元的心跳信息帧后停止计时,该单元将未接收到心跳信息帧的单元标记为故障;
(6)各单元对自己接收到的所有其他单元的心跳信息进行检测,判断是否故障,并与步骤(3)和(5)标记的故障信息一同生成诊断信息,将生成的诊断信息发送给其他单元;心跳信息的检测方法为,将本次收到的心跳计数与上一次收到的心跳计数作差,然后将差值除以检测时间间隔得到频率,通过检测该频率是否在预设的阈值内来判断是否故障;
(7)各单元将其他单元发送的诊断信息与自己生成的诊断信息进行比较,确定最终的诊断结果;将步骤(3)和(5)检测到的故障定义为故障1,将步骤(6)检测到的故障定义为故障2;针对某一单元A,若所有单元均判断单元A存在故障1,则最终诊断单元A为死机;若仅部分单元判断单元A存在故障1,则最终诊断单元A与这部分单元之间的通道存在断点故障;若所有单元均判断单元A存在故障2,则最终诊断单元A的时钟电路存在故障;若仅部分单元判断单元A存在故障2,则最终诊断单元A存在拜占庭故障。
2.根据权利要求1所述分布式余度系统心跳检测方法,其特征在于,在步骤(1)中,采用两个字节存储心跳计数,每满10000次心跳进行一次清零,并把最高位置1,在下一次心跳信息发送后再将最高位清零。
3.根据权利要求1所述分布式余度系统心跳检测方法,其特征在于,在步骤(2)中,主控单元以ΔT的时间间隔发送查询帧,ΔT小于系统所有单元的最小的通信工作周期。
4.根据权利要求1所述分布式余度系统心跳检测方法,其特征在于,在步骤(4)中,各从单元先开启计时,后向其他单元发送自己的心跳信息帧,两者之间存在延迟。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910664763.9A CN110380934B (zh) | 2019-07-23 | 2019-07-23 | 一种分布式余度系统心跳检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910664763.9A CN110380934B (zh) | 2019-07-23 | 2019-07-23 | 一种分布式余度系统心跳检测方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110380934A CN110380934A (zh) | 2019-10-25 |
CN110380934B true CN110380934B (zh) | 2021-11-02 |
Family
ID=68254989
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910664763.9A Active CN110380934B (zh) | 2019-07-23 | 2019-07-23 | 一种分布式余度系统心跳检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110380934B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112241318B (zh) * | 2020-11-03 | 2024-05-24 | 中国航空工业集团公司西安航空计算技术研究所 | 一种消除表征盲点的处理器心跳计数方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6728781B1 (en) * | 1998-05-12 | 2004-04-27 | Cornell Research Foundation, Inc. | Heartbeat failure detector method and apparatus |
CN101753379A (zh) * | 2008-12-12 | 2010-06-23 | 米特尔网络公司 | 快速检测通信路径故障的系统和方法 |
CN103425553A (zh) * | 2013-09-06 | 2013-12-04 | 哈尔滨工业大学 | 一种双机热备份系统及该系统的故障检测方法 |
CN108092731A (zh) * | 2017-12-28 | 2018-05-29 | 国网山东省电力公司聊城供电公司 | 一种精准校时时钟误差的方法 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040001449A1 (en) * | 2002-06-28 | 2004-01-01 | Rostron Andy E. | System and method for supporting automatic protection switching between multiple node pairs using common agent architecture |
CN101247273B (zh) * | 2008-02-27 | 2011-02-02 | 北京航空航天大学 | 分布式环境下服务协同节点组织结构的维护方法 |
US20140310243A1 (en) * | 2010-08-16 | 2014-10-16 | Mr. Steven James McGee | Heart beacon cycle |
ES2696604T3 (es) * | 2013-12-13 | 2019-01-17 | Thales Sa | Arquitectura de marco tolerante a fallos con triple redundancia de software |
CN104486243B (zh) * | 2014-11-27 | 2017-11-03 | 网易(杭州)网络有限公司 | 数据传输方法、设备及系统 |
CN105717820B (zh) * | 2014-11-30 | 2018-08-24 | 中国科学院沈阳自动化研究所 | 一种auv的冗余备份检测方法 |
CN106301853B (zh) * | 2015-06-05 | 2019-06-18 | 华为技术有限公司 | 集群系统中节点的故障检测方法和装置 |
US10649020B2 (en) * | 2016-05-16 | 2020-05-12 | Schweitzer Engineering Laboratories, Inc. | High-impedance fault detection using coordinated devices |
US10733602B2 (en) * | 2016-09-29 | 2020-08-04 | Microsoft Technology Licensing, Llc. | Heartbeats and consensus in verifiable outsourced ledgers |
CN110445619B (zh) * | 2017-03-30 | 2020-10-16 | 腾讯科技(深圳)有限公司 | 区块链系统、消息处理方法及存储介质 |
CN109428740B (zh) * | 2017-08-21 | 2020-09-08 | 华为技术有限公司 | 设备故障恢复的方法和装置 |
CN107566219B (zh) * | 2017-09-27 | 2020-09-18 | 华为技术有限公司 | 应用于集群系统的故障诊断方法、节点设备和计算机设备 |
-
2019
- 2019-07-23 CN CN201910664763.9A patent/CN110380934B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6728781B1 (en) * | 1998-05-12 | 2004-04-27 | Cornell Research Foundation, Inc. | Heartbeat failure detector method and apparatus |
CN101753379A (zh) * | 2008-12-12 | 2010-06-23 | 米特尔网络公司 | 快速检测通信路径故障的系统和方法 |
CN103425553A (zh) * | 2013-09-06 | 2013-12-04 | 哈尔滨工业大学 | 一种双机热备份系统及该系统的故障检测方法 |
CN108092731A (zh) * | 2017-12-28 | 2018-05-29 | 国网山东省电力公司聊城供电公司 | 一种精准校时时钟误差的方法 |
Non-Patent Citations (3)
Title |
---|
A Time-Free Byzantine Failure Detector for Dynamic Networks;Fabiola Greve;《2012 Ninth European Dependable Computing Conference》;20120111;全文 * |
分布式系统中环形拓扑式通讯故障容灾方法研究;杜瑞全;《中国优秀博硕士学位论文全文数据库(硕士)信息科技辑》;20180315;全文 * |
采集终端时钟错乱问题分析及处理;李飞等;《河北电力技术》;20180711(第03期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN110380934A (zh) | 2019-10-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10491671B2 (en) | Method and apparatus for switching between servers in server cluster | |
CN108847982B (zh) | 一种分布式存储集群及其节点故障切换方法和装置 | |
CN106789306B (zh) | 通信设备软件故障检测收集恢复方法和系统 | |
CN100383747C (zh) | 通信系统中失效隔离的系统和方法 | |
CN107390511A (zh) | 用于运行冗余的自动化系统的方法 | |
JPS6121562A (ja) | 多重プロセツサ・システム用の故障許容同期装置 | |
CN110958073B (zh) | 一种基于三套1553b总线冗余的时间同步表决方法 | |
CN108847879B (zh) | 基于总线控制器的双机故障检测及恢复方法 | |
CN110380934B (zh) | 一种分布式余度系统心跳检测方法 | |
CN112346925A (zh) | 一种进程级双机热备冗余系统及方法 | |
CN105487945A (zh) | 一种非相似双余度四机自监控容错控制方法 | |
CN101359187B (zh) | 一种光刻机同步触发在线诊断方法及系统 | |
CN113791937B (zh) | 一种数据同步冗余系统及其控制方法 | |
CN111106990A (zh) | 一种水下多通道信号采集传输阵列系统环路的自诊断方法 | |
CN108983682B (zh) | 一种基于双总线的冗余表决控制方法 | |
CN112398672B (zh) | 一种报文检测方法及装置 | |
RU2279707C2 (ru) | Отказоустойчивое вычислительное устройство и способ функционирования подобного устройства | |
CN109302322B (zh) | 一种提高核安全级网络测试准确性的测试系统及方法 | |
CN110138446B (zh) | 一种双余度光纤通道网络余度降级故障的检测方法 | |
JPS63163541A (ja) | エラー許容計算システム及び該計算システム内のエラーユニットを認識し、その箇所を検知し、エラーを除去する方法 | |
WO2003025750A1 (en) | Method and system to detect software faults | |
US20050172167A1 (en) | Communication fault containment via indirect detection | |
CN115390097B (zh) | 双余度卫星导航接收机、故障检测及处理方法和装置 | |
JP2018101277A (ja) | 計算機システム、計算機制御装置、および計算機制御方法 | |
CN117851136A (zh) | 一种应用于天翼云备份服务的高可用方法 |
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 |