CN110380934A - 一种分布式余度系统心跳检测方法 - Google Patents
一种分布式余度系统心跳检测方法 Download PDFInfo
- Publication number
- CN110380934A CN110380934A CN201910664763.9A CN201910664763A CN110380934A CN 110380934 A CN110380934 A CN 110380934A CN 201910664763 A CN201910664763 A CN 201910664763A CN 110380934 A CN110380934 A CN 110380934A
- Authority
- CN
- China
- Prior art keywords
- unit
- heartbeat
- units
- message
- failure
- 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.)
- Granted
Links
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
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 (6)
1.一种分布式余度系统心跳检测方法,所述分布式余度系统包括主控单元和从单元,所有单元通过总线通信;其特征在于,包括以下步骤:
(1)系统正常启动后,各单元通过总线进行时钟同步,然后进行心跳计数;
(2)主控单元以某一预定规律向各从单元发送包含自己心跳信息的查询帧,并进行计时等待;同时各从单元也按照这一预定规律在计时等待,直到接收到主控单元发送的查询帧;
(3)各从单元在接收到查询帧之后停止对主控单元的计时,若超时未收到主控单元发送的查询帧,则该从单元将主控单元标记为故障;
(4)各从单元开启计时,等待其他从单元发送的心跳信息帧,并向包括主控单元在内的其他单元发送自己的心跳信息帧;
(5)各单元在接收到其他单元的心跳信息帧后停止计时,该单元将未接收到心跳信息帧的单元标记为故障;
(6)各单元对自己接收到的所有其他单元的心跳信息进行检测,判断是否故障,并与步骤(3)和(5)标记的故障信息一同生成诊断信息,将生成的诊断信息发送给其他单元;
(7)各单元将其他单元发送的诊断信息与自己生成的诊断信息进行比较,确定最终的诊断结果。
2.根据权利要求1所述分布式余度系统心跳检测方法,其特征在于,在步骤(1)中,采用两个字节存储心跳计数,每满10000次心跳进行一次清零,并把最高位置1,在下一次心跳信息发送后再将最高位清零。
3.根据权利要求1所述分布式余度系统心跳检测方法,其特征在于,在步骤(2)中,主控单元以ΔT的时间间隔发送查询帧,ΔT1小于系统所有单元的最小的通信工作周期。
4.根据权利要求1所述分布式余度系统心跳检测方法,其特征在于,在步骤(4)中,各从单元先开启计时,后向其他单元发送自己的心跳信息帧,两者之间存在延迟。
5.根据权利要求1所述分布式余度系统心跳检测方法,其特征在于,在步骤(6)中,心跳信息的检测方法为,将本次收到的心跳计数与上一次收到的心跳计数作差,然后将差值除以检测时间间隔得到频率,通过检测该频率是否在预设的阈值内来判断是否故障。
6.根据权利要求1所述分布式余度系统心跳检测方法,其特征在于,在步骤(7)中,将步骤(3)和(5)检测到的故障定义为故障1,将步骤(6)检测到的故障定义为故障2;针对某一单元A,若所有单元均判断单元A存在故障1,则最终诊断单元A为死机;若仅部分单元判断单元A存在故障1,则最终诊断单元A与这部分单元之间的通道存在断点故障;若所有单元均判断单元A存在故障2,则最终诊断单元A的时钟电路存在故障;若仅部分单元判断单元A存在故障2,则最终诊断单元A存在拜占庭故障。
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 true CN110380934A (zh) | 2019-10-25 |
CN110380934B 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) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112241318A (zh) * | 2020-11-03 | 2021-01-19 | 中国航空工业集团公司西安航空计算技术研究所 | 一种消除表征盲点的处理器心跳计数方法 |
Citations (16)
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 |
US20060085669A1 (en) * | 2002-06-28 | 2006-04-20 | Rostron Andy E | System and method for supporting automatic protection switching between multiple node pairs using common agent architecture |
CN101247273A (zh) * | 2008-02-27 | 2008-08-20 | 北京航空航天大学 | 分布式环境下服务协同节点组织结构的维护方法 |
CN101753379A (zh) * | 2008-12-12 | 2010-06-23 | 米特尔网络公司 | 快速检测通信路径故障的系统和方法 |
CN103425553A (zh) * | 2013-09-06 | 2013-12-04 | 哈尔滨工业大学 | 一种双机热备份系统及该系统的故障检测方法 |
US20140310243A1 (en) * | 2010-08-16 | 2014-10-16 | Mr. Steven James McGee | Heart beacon cycle |
CN104486243A (zh) * | 2014-11-27 | 2015-04-01 | 网易(杭州)网络有限公司 | 数据传输方法、设备及系统 |
CN105717820A (zh) * | 2014-11-30 | 2016-06-29 | 中国科学院沈阳自动化研究所 | 一种auv的冗余备份检测方法 |
US20160314057A1 (en) * | 2013-12-13 | 2016-10-27 | Thales | Triple software redundancy fault tolerant framework architecture |
CN106301853A (zh) * | 2015-06-05 | 2017-01-04 | 华为技术有限公司 | 集群系统中节点的故障检测方法和装置 |
CN106789095A (zh) * | 2017-03-30 | 2017-05-31 | 腾讯科技(深圳)有限公司 | 分布式系统及消息处理方法 |
US20170328945A1 (en) * | 2016-05-16 | 2017-11-16 | Schweitzer Engineering Laboratories, Inc. | High-Impedance Fault Detection Using Coordinated Devices |
CN107566219A (zh) * | 2017-09-27 | 2018-01-09 | 华为技术有限公司 | 应用于集群系统的故障诊断方法、节点设备和计算机设备 |
US20180089683A1 (en) * | 2016-09-29 | 2018-03-29 | Microsoft Technology Licensing, Llc. | Heartbeats and consensus in verifiable outsourced ledgers |
CN108092731A (zh) * | 2017-12-28 | 2018-05-29 | 国网山东省电力公司聊城供电公司 | 一种精准校时时钟误差的方法 |
CN109428740A (zh) * | 2017-08-21 | 2019-03-05 | 华为技术有限公司 | 设备故障恢复的方法和装置 |
-
2019
- 2019-07-23 CN CN201910664763.9A patent/CN110380934B/zh active Active
Patent Citations (16)
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 |
US20060085669A1 (en) * | 2002-06-28 | 2006-04-20 | Rostron Andy E | System and method for supporting automatic protection switching between multiple node pairs using common agent architecture |
CN101247273A (zh) * | 2008-02-27 | 2008-08-20 | 北京航空航天大学 | 分布式环境下服务协同节点组织结构的维护方法 |
CN101753379A (zh) * | 2008-12-12 | 2010-06-23 | 米特尔网络公司 | 快速检测通信路径故障的系统和方法 |
US20140310243A1 (en) * | 2010-08-16 | 2014-10-16 | Mr. Steven James McGee | Heart beacon cycle |
CN103425553A (zh) * | 2013-09-06 | 2013-12-04 | 哈尔滨工业大学 | 一种双机热备份系统及该系统的故障检测方法 |
US20160314057A1 (en) * | 2013-12-13 | 2016-10-27 | Thales | Triple software redundancy fault tolerant framework architecture |
CN104486243A (zh) * | 2014-11-27 | 2015-04-01 | 网易(杭州)网络有限公司 | 数据传输方法、设备及系统 |
CN105717820A (zh) * | 2014-11-30 | 2016-06-29 | 中国科学院沈阳自动化研究所 | 一种auv的冗余备份检测方法 |
CN106301853A (zh) * | 2015-06-05 | 2017-01-04 | 华为技术有限公司 | 集群系统中节点的故障检测方法和装置 |
US20170328945A1 (en) * | 2016-05-16 | 2017-11-16 | Schweitzer Engineering Laboratories, Inc. | High-Impedance Fault Detection Using Coordinated Devices |
US20180089683A1 (en) * | 2016-09-29 | 2018-03-29 | Microsoft Technology Licensing, Llc. | Heartbeats and consensus in verifiable outsourced ledgers |
CN106789095A (zh) * | 2017-03-30 | 2017-05-31 | 腾讯科技(深圳)有限公司 | 分布式系统及消息处理方法 |
CN109428740A (zh) * | 2017-08-21 | 2019-03-05 | 华为技术有限公司 | 设备故障恢复的方法和装置 |
CN107566219A (zh) * | 2017-09-27 | 2018-01-09 | 华为技术有限公司 | 应用于集群系统的故障诊断方法、节点设备和计算机设备 |
CN108092731A (zh) * | 2017-12-28 | 2018-05-29 | 国网山东省电力公司聊城供电公司 | 一种精准校时时钟误差的方法 |
Non-Patent Citations (3)
Title |
---|
FABIOLA GREVE: "A Time-Free Byzantine Failure Detector for Dynamic Networks", 《2012 NINTH EUROPEAN DEPENDABLE COMPUTING CONFERENCE》 * |
李飞等: "采集终端时钟错乱问题分析及处理", 《河北电力技术》 * |
杜瑞全: "分布式系统中环形拓扑式通讯故障容灾方法研究", 《中国优秀博硕士学位论文全文数据库(硕士)信息科技辑》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112241318A (zh) * | 2020-11-03 | 2021-01-19 | 中国航空工业集团公司西安航空计算技术研究所 | 一种消除表征盲点的处理器心跳计数方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110380934B (zh) | 2021-11-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108847008A (zh) | 系统报警处理方法、装置、服务器及存储介质 | |
EP2161664B1 (en) | System and method for detecting temporal relationships uniquely associated with an underlying root cause | |
JP2001350651A (ja) | 故障状態を分離する方法 | |
CN109656239B (zh) | 一种轨道机车网络控制系统故障诊断方法及其诊断装置 | |
EP3101546B1 (en) | Providing failover control on a control system | |
US9310345B2 (en) | Sensor system, computer, and machine | |
CN102547812B (zh) | 一种无线传感网络故障检测方法及事件检测方法 | |
CN106936616A (zh) | 备份通信方法和装置 | |
CN106569473A (zh) | 一种车辆远程诊断的方法、装置及系统 | |
WO2022252860A1 (zh) | 一种事件处理方法、装置、计算机设备及存储介质 | |
CN104283718B (zh) | 网络设备及用于网络设备的硬件故障诊断方法 | |
CN110601945A (zh) | 一种双冗余can总线通信系统和通信方法 | |
CN105487945A (zh) | 一种非相似双余度四机自监控容错控制方法 | |
CN106330588A (zh) | 一种bfd检测方法与装置 | |
CN103246585A (zh) | 一种存储控制器故障检测方法 | |
CN110380934A (zh) | 一种分布式余度系统心跳检测方法 | |
CN104076808A (zh) | 工控设备的故障诊断系统和方法 | |
CN103870349B (zh) | 用于数据处理系统的配置管理装置及方法 | |
CN110427283A (zh) | 一种双余度的燃油管理计算机系统 | |
CN110502399A (zh) | 故障检测方法及装置 | |
CN106302066A (zh) | 无主从通信方法及装置 | |
CN109131937A (zh) | 一种分布式无人机自动检测系统及方法 | |
CN105956598A (zh) | 一种离散事件系统事件不完备模型的诊断方法 | |
Wang et al. | New results on decentralized diagnosis of discrete event systems | |
CN106093623B (zh) | 一种Arinc429通信系统自检系统和自检方法 |
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 |