CN108600040B - 一种基于高可用检测节点的分布式系统节点故障检测方法 - Google Patents

一种基于高可用检测节点的分布式系统节点故障检测方法 Download PDF

Info

Publication number
CN108600040B
CN108600040B CN201810219687.6A CN201810219687A CN108600040B CN 108600040 B CN108600040 B CN 108600040B CN 201810219687 A CN201810219687 A CN 201810219687A CN 108600040 B CN108600040 B CN 108600040B
Authority
CN
China
Prior art keywords
node
detection
nodes
main
fault
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
Application number
CN201810219687.6A
Other languages
English (en)
Other versions
CN108600040A (zh
Inventor
高原
张勇
顾文杰
宁剑
陈鹏
王毅
郭骏
张学勇
何源
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
State Grid Corp of China SGCC
NARI Group Corp
North China Grid Co Ltd
Nari Technology Co Ltd
NARI Nanjing Control System Co Ltd
Original Assignee
State Grid Corp of China SGCC
NARI Group Corp
North China Grid Co Ltd
Nari Technology Co Ltd
NARI Nanjing Control System Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by State Grid Corp of China SGCC, NARI Group Corp, North China Grid Co Ltd, Nari Technology Co Ltd, NARI Nanjing Control System Co Ltd filed Critical State Grid Corp of China SGCC
Priority to CN201810219687.6A priority Critical patent/CN108600040B/zh
Publication of CN108600040A publication Critical patent/CN108600040A/zh
Application granted granted Critical
Publication of CN108600040B publication Critical patent/CN108600040B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/10Active monitoring, e.g. heartbeat, ping or trace-route
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0654Management of faults, events, alarms or notifications using network fault recovery
    • H04L41/0668Management of faults, events, alarms or notifications using network fault recovery by dynamic selection of recovery network elements, e.g. replacement by the most appropriate element after failure
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0677Localisation of faults
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/12Discovery or management of network topologies

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Cardiology (AREA)
  • General Health & Medical Sciences (AREA)
  • Debugging And Monitoring (AREA)
  • Hardware Redundancy (AREA)

Abstract

本发明公开了一种基于高可用检测节点的分布式系统节点故障检测方法,包括1)在系统中设置两个以上检测节点,用于对其他所有节点的故障检测;多个检测节点之间使用心跳报文进行主检测节点选举和故障切换,同时心跳报文也会到达系统每个节点;2)客户端向主检测节点发出请求,由主检测检点对待检测的节点进行故障检测;3)主检测节点将不同客户端对同一个待检测的目标节点的检测请求进行合并;4)主检测节点接收到请求后开始周期性的对目标节点进行检测,检测结果缓存在主检测节点的内存中,能够合并检测相同的目标节点,本发明能够避免用户层程序卡顿对检测结果的误判,并且减少了报文数量,提高了检测效率。

Description

一种基于高可用检测节点的分布式系统节点故障检测方法
技术领域
本发明涉及一种基于高可用检测节点的分布式系统节点故障检测方法,属于网络通信技术领域。
背景技术
分布式系统是由多个节点构成,如果某些节点发生故障后不进行处理,如流量分摊、主备切换等处理动作,则会影响整个系统的功能。因此如何快速准确的判断节点故障是非常重要的。
心跳方案是目前较为流行的节点故障检测方法,但是它有一项重大缺陷,就是心跳发送和接收程序是运行在操作系统之上的用户层级中,一旦CPU等资源不足,心跳程序会发生卡顿,会造成误判。
另外操作系统的ping命令是一种常用的节点检测手段,但是如果简单的让每个节点ping其他所有节点获取状态,则系统形成一个网状的检测拓扑结构,报文数量与节点数量成指数级相关,大量的ping报文可能会造成网络瘫痪。
发明内容
针对现有技术存在的问题,本发明提供一种基于高可用检测节点的分布式系统节点故障检测方法,能够避免用户层程序卡顿对检测结果的误判,并且减少了报文数量,提高了检测效率。
本发明所要解决的技术问题是通过以下技术方案实现的:
本发明是一种基于高可用检测节点的分布式系统节点故障检测方法,方法采用具备多个冗余备份的检测节点对目标节点发送ICMP(Internet Control Message Protocol,控制报文协议)报文进行故障检测,能够将多个客户端对同一个节点的检测请求进行合并,能够利用检测节点本地缓存和全局共享内存对检测请求应答进行加速。
一种基于高可用检测节点的分布式系统节点故障检测方法,包括:
1)在系统中设置两个以上检测节点(检测节点可以由任意节点担任)其中一个为主检测节点,其余节点为备检测节点,用于对其他所有节点的故障检测;多个检测节点之间周期性的发出UDP广播作为心跳报文,报文中包括检测节点的节点名、IP地址、是否主节点等信息。每个检测节点在收到其他检测节点的心跳后,选举出IP地址数值最小的节点为主检测节点。非检测节点收到心跳后也会执行同样的逻辑确定主检测节点,并获知主检测节点的IP地址用于通信。当主检测节点故障后,其他检测节点通过心跳报文重新确定IP地址最小的为主检测节点,完成故障切换。同时主检测节点周期性的将检测结果通过组播发送到其他检测节点,使得故障切换后新的主检测节点能够获取上一时刻系统节点的状态,能够立刻响应客户端的查询请求,实现无缝切换。
2)客户端(即每个节点的客户端程序)调用接口,接口内通过TCP或UDP向主检测节点发送请求报文,报文中包括希望被检测的目标节点的IP和超时时间这两个参数。由主检测节点向目标节点直接发出ICMP报文,在超时时间内得到响应则回复客户端该目标节点在线,否则回复该目标节点故障,并且主检测检点对待检测的节点进行故障检测时,由被检测点的系统内核回复检测报文,这样避免了用户层程序卡顿对判断造成影响,并且检测网络的拓扑是以检测节点为中心的星型结构,代替了传统的每个节点对等的网状结构。
3)主检测节点将不同客户端对同一个待检测的目标节点的检测请求进行合并;检测节点为每个客户端单独保存了目标IP和超时时间参数,实现了对不同目标节点使用不同检测超时时间的功能。检测节点在超时时间内以均匀间隔连续发出3次ICMP报文进行检测,当收到第一次回复后判定节点状态为在线。当多个客户端对同一目标节点提出检测请求时,对请求参数进行合并处理,取最短的超时时间,并且只发出一份ICMP检测报文,减少了报文数量。最后将结果统一回复给所有客户端。
4)主检测节点接收到请求后开始周期性的对目标节点进行检测,检测结果缓存在主检测节点的内存中,当其他任意客户端需要对同一目标节点进行检测时,立刻从缓存直接返回目标节点的实时状态,具体为检测节点以一定的周期对目标节点发送ICMP报文进行故障检测,并将检测结果缓存在本地内存中。当再次收到对同一目标节点的检测请求时,直接将内存中缓存的检测结果立刻发送给请求节点。而不是每次请求单独发送ICMP报文,不需要请求节点等待。当超过一定时间间隔没有任何节点再请求检测这个目标节点,则停止周期性ICMP报文的发送,此间隔可配置。
主检测节点不仅仅将检测结果通过TCP或UDP返回给客户端。还可将所有被检测节点的健康状态以广播推送到全系统,在每个节点上设立检测代理,由代理接收广播后存入本地共享内存。当本地客户端发出一个请求时,首先查询本地共享内存是否已经存在结果,如果存在直接获取,不再与检测节点网络通信,大大提高了检测速度。如果共享内存中没有目标节点,说明此节点第一次被检测,则客户端与检测节点通信传递参数,开始检测过程。这个广播可以通过配置打开,如果不打开则每次客户端都与主检测节点通信,如果打开则以增加报文来提升响应速度。
本发明所达到的有益效果如下:
1.本发明在检测故障时,由操作系统内核回复检测报文,而不是用户层的心跳程序,避免用户层程序卡顿对判断造成的影响,使得检测结果更加准确;
2.本发明统一由检测节点对其他节点进行故障检测,而不是每个节点自身去检测其他节点,避免网状拓扑的大量报文的发送,在全系统层面减少了检测报文;
3.本发明的多个检测节点之间通过心跳报文和共享内存实现故障冗余和无缝切换,提高了系统检测功能的可靠性;
4. 本发明的中不同客户端对同一目标节点的检测请求可以进行合并,减少了报文的发送;
5.本发明利用缓存技术对同一节点的重复请求可以立刻给予回复,而不是请求一次检测一次,提升了单次检测请求的完成速度;
6.本发明可以把节点检测结果广播到全系统,让每个节点从本地共享内存直接查询,大大提升检测速度。
7.本发明不需要安装额外的第三方软件,只需安装检测服务端、客户端动态库,检测代理可选。且适用于各种Linux、UNIX和Windows平台。
综上所述,本发明是一种结果准确、可靠性高、速度快、报文少、安装简单、支持跨平台的分布式系统节点故障检测方法。
附图说明
图1是本发明主检测节点的故障切换流程图;
图2是本发明节点故障检测网络拓扑图;
图3是本发明全系统节点状态广播推送和客户端查询示意图。
具体实施方式
为了进一步描述本发明的技术特点和效果,以下结合附图和具体实施方式对本发明做进一步描述。为了具体说明故障检测过程,现以6个节点构成分布式系统,node1、node2、node3担当检测节点(它们也可以同时是被检测节点)的场景举例。
如图1-图3所示,图1是主检测节点的故障切换流程图。在系统初始状态因为node1的IP地址最小它被选举为主检测节点,然后它接收各个节点的检测请求后将检测结果存储在本地共享内存,同时使用组播将检测结果发送到每个检测节点。node1以一定的周期发出心跳广播,同时其他节点也发出心跳。每个检测节点都接收其他检测节点的心跳,假设某一时刻node1故障,则到达超时时间后,其他检测节点都选举IP第二小的node2为新的主检测节点,整个过程不需要第三方仲裁节点参与。
图2是节点故障检测网络拓扑图。图中描述了检测系统工作的原理,包括检测节点的高可用,上一段已经详细描述过,也包括客户端发起请求到获得结果的过程。客户端是运行在node1~node6其中一个节点上的进程,它通过检测节点的心跳报文获知主检测节点的IP。客户端1向主检测节点发送检测192.168.206.3的请求,超时时间timeout1;客户端2向主检测节点发送检测192.168.206.3的请求,超时时间timeout2;客户端3向主检测节点发送检测192.168.206.4的请求,超时时间timeout3。主检测节点将客户端1和客户端2的请求合并,采用更小的超时间隔timeout1,向192.168.206.3发出检测报文。采用超时间隔timeout3向192.168.206.4发出检测报文。并且主检测节点在后台周期性的持续检测,如果客户端多次请求,则主检测节点立刻用内存中的状态进行回复。
图3是全系统节点状态广播推送和客户端查询示意图。图中node1是主检测节点,它用广播将已检测过的节点的状态发送到每个节点,包含两条信息,分别是node2正常,node4故障,这些信息被检测代理收到后存放在每个节点的共享内存。步骤①node3上有一个客户端请求检测node2的状态;步骤②客户端直接从本地共享获得结果;步骤③客户端请求检测node6的状态,本地共享内存中不存在,则客户端与node1网络通信,传输目标ip等信息;步骤④node1发出检测node6的报文,步骤⑤node1把结果返回给客户端;步骤⑥node1把node6的检测结果加入本地共享内存,等待广播发出。
通过上述实施例可知,本发明统一由检测节点对其他节点进行故障检测,避免了网状拓扑的大量报文的发送;多个检测节点之间通过心跳报文和共享内存实现故障冗余和无缝切换,提高了系统检测功能的可用性;不同客户端对同一目标节点的检测请求可以进行合并,减少了报文的发送;利用缓存技术对同一节点的重复请求可以立刻给予回复,提升了请求应答的速度;可以把节点检测结果广播到全系统,让每个节点从本地共享内存直接查询,大大提升检测速度。
此外,本发明不需要安装额外的第三方软件,只需安装检测服务端、客户端动态库,检测代理可选。且适用于各种Linux、UNIX和Windows平台。
上述实施例不以任何形式限定本发明,凡采取等同替换或等效变换的形式所获得的技术方案,均落在本发明的保护范围之内。

Claims (8)

1.一种基于高可用检测节点的分布式系统节点故障检测方法,其特征在于,包括:
1)在系统中设置两个以上检测节点,其中一个为主检测节点,其余节点为备检测节点,用于对其他所有节点的故障检测;多个检测节点之间使用心跳报文进行主检测节点选举和故障切换,同时心跳报文也会到达系统每个节点,通知每个节点当前具体执行检测工作的主检测节点的IP地址,具体为:每个检测节点周期性的发出UDP广播作为心跳报文,报文中包括检测节点的节点名、IP地址、是否为主节点的信息;非检测节点收到心跳报文 后也会执行检测节 点同样的逻辑,即当主检测节点发生故障后,确定IP地址最小的检测节点为主检测节点,并获知主检测节点的IP地址;当主检测节点发生故障后,备检测节点通过心跳报文重新确定IP地址最小的为主检测节点,完成故障后的主检测点切换;
2)客户端向主检测节点发出请求,由主检测节点对待检测的目标节点进行故障检测;
3)主检测节点将不同客户端对同一个待检测的目标节点的检测请求进行合并;
4)主检测节点接收到请求后开始周期性的对待检测的目标节点进行检测,检测结果缓存在主检测节点的内存中,当其他任意客户端需要对同一目标节点进行检测时,立刻从缓存直接返回目标节点的实时状态。
2.根据权利要求1所述的一种基于高可用检测节点的分布式系统节点故障检测方法,其特征在于,所述主检测节点能够向所有节点广播被检测节点的健康状态。
3.根据权利要求1所述的一种基于高可用检测节点的分布式系统节点故障检测方法,其特征在于,所述步骤2)客户端向主检测节点发出请求,由主检测节点对待检测的目标节点进行故障检测具体为:由某个节点的客户端程序通过TCP或UDP向主检测节点发送请求报文,报文中包括希望被检测的目标节点的IP地址和超时时间这两个参数,由主检测节点向目标节点直接发出ICMP报文,在超时时间内得到响应则回复客户端该目标节点在线,否则回复该目标节点故障。
4.根据权利要求1所述的一种基于高可用检测节点的分布式系统节点故障检测方法,其特征在于,所述步骤3)主检测节点将不同客户端对同一个待检测的目标节点的检测请求进行合并具体为:
主检测节点为每个客户端单独保存了目标IP地址和超时时间参数,实现了对不同目标节点使用不同检测超时时间的功能,主检测节点在超时时间内以均匀间隔连续发出3次ICMP报文进行检测,当收到第一次回复后判定节点状态为在线,当多个客户端对同一目标节点提出检测请求时,对其IP地址和超时时间进 行合并处理,取最短的超时时间,并且只发出一份ICMP检测报文。
5.根据权利要求1所述的一种基于高可用检测节点的分布式系统节点故障检测方法,其特征在于,所述步骤4)主检测节点接收到请求后开始周期性的对目标节点进行检测具体为:当主检测节点第一次收到对某个目标节点的检测请求后就以一定的周期对目标节点发送ICMP报文进行故障检测,此周期可配置,当超过一定的时间间隔没有任何节点再请求检测这个目标节点,则停止周期性ICMP报文的发送,时间间隔可配置。
6.根据权利要求2所述的一种基于高可用检测节点的分布式系统节点故障检测方法,所述主检测节点能够向所有节点广播被检测节点的健康状态具体为:主检测节点不仅仅将检测结果返回给客户端,还能够根据需求将所有被检测节点的健康状态以广播发送到全系统的所有节点,在每个节点上设立检测代理,由代理接收广播后存入本地共享内存,当本地客户端发出请求时,首先查询本地共享内存是否已经存在结果,如果存在则直接获取。
7.根据权利要求1所述的一种基于高可用检测节点的分布式系统节点故障检测方法,主检测节点将已检测过的节点的状态信息存放在本机共享内存,在发送心跳报文的同时也将共享内存的信息通过组播发给其他检测节点。
8.根据权利要求1所述的一种基于高可用检测节点的分布式系统节点故障检测方法,主检测节点对待检测的目标节点进行故障检测时,由待检测的目标节点的系统内核回复检测报文。
CN201810219687.6A 2018-03-16 2018-03-16 一种基于高可用检测节点的分布式系统节点故障检测方法 Active CN108600040B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810219687.6A CN108600040B (zh) 2018-03-16 2018-03-16 一种基于高可用检测节点的分布式系统节点故障检测方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810219687.6A CN108600040B (zh) 2018-03-16 2018-03-16 一种基于高可用检测节点的分布式系统节点故障检测方法

Publications (2)

Publication Number Publication Date
CN108600040A CN108600040A (zh) 2018-09-28
CN108600040B true CN108600040B (zh) 2022-03-15

Family

ID=63626536

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810219687.6A Active CN108600040B (zh) 2018-03-16 2018-03-16 一种基于高可用检测节点的分布式系统节点故障检测方法

Country Status (1)

Country Link
CN (1) CN108600040B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109962828B (zh) * 2019-04-02 2023-02-10 辰芯科技有限公司 一种安全通信的装置和方法
CN110109776A (zh) * 2019-05-21 2019-08-09 无锡华云数据技术服务有限公司 一种节点处理方法、装置及电子设备
CN110474821B (zh) * 2019-07-26 2021-08-31 济南浪潮数据技术有限公司 节点故障检测方法及装置
CN110716827B (zh) * 2019-09-23 2023-04-28 天津津航计算技术研究所 适用于分布式系统的热备份方法及分布式系统
CN111464389B (zh) * 2020-03-31 2021-09-14 云知声智能科技股份有限公司 一种高可用节点故障检测方法及装置
CN112988463B (zh) * 2021-02-23 2022-08-30 新华三大数据技术有限公司 一种故障节点隔离方法及装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101483558A (zh) * 2008-01-10 2009-07-15 华为技术有限公司 网络设备接入分组交换网络的方法、系统及装置
CN102025616A (zh) * 2010-11-25 2011-04-20 中兴通讯股份有限公司 一种实现双向转发检测的方法、装置及交换机
CN103117876A (zh) * 2013-01-24 2013-05-22 中兴通讯股份有限公司 用户状态信息的同步方法及装置
CN104040499A (zh) * 2011-12-20 2014-09-10 国际商业机器公司 带有基于内部表决的内置自测(bist)的多核心处理器
CN104837168A (zh) * 2014-02-12 2015-08-12 华为技术有限公司 一种设备切换方法、设备及系统
CN107329859A (zh) * 2017-06-29 2017-11-07 杭州宏杉科技股份有限公司 一种数据保护方法及存储设备

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102474337B (zh) * 2009-08-17 2014-02-26 上海贝尔股份有限公司 在中继链路上处理数据的方法和相关设备
CN102726000B (zh) * 2011-07-22 2017-06-16 华为技术有限公司 故障通告方法、检测装置、转发装置及系统

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101483558A (zh) * 2008-01-10 2009-07-15 华为技术有限公司 网络设备接入分组交换网络的方法、系统及装置
CN102025616A (zh) * 2010-11-25 2011-04-20 中兴通讯股份有限公司 一种实现双向转发检测的方法、装置及交换机
CN104040499A (zh) * 2011-12-20 2014-09-10 国际商业机器公司 带有基于内部表决的内置自测(bist)的多核心处理器
CN103117876A (zh) * 2013-01-24 2013-05-22 中兴通讯股份有限公司 用户状态信息的同步方法及装置
CN104837168A (zh) * 2014-02-12 2015-08-12 华为技术有限公司 一种设备切换方法、设备及系统
CN107329859A (zh) * 2017-06-29 2017-11-07 杭州宏杉科技股份有限公司 一种数据保护方法及存储设备

Also Published As

Publication number Publication date
CN108600040A (zh) 2018-09-28

Similar Documents

Publication Publication Date Title
CN108600040B (zh) 一种基于高可用检测节点的分布式系统节点故障检测方法
US11343166B2 (en) Health status monitoring for services provided by computing devices
Castro et al. Performance and dependability of structured peer-to-peer overlays
US9391859B2 (en) Service coordination for a data center
US8086732B1 (en) Method and apparatus for rate limiting client requests
US7640339B1 (en) Method and apparatus for monitoring a node in a distributed system
US20150098333A1 (en) An Iterative Optimization Method for Site Selection in Global Load Balance
US20220131935A1 (en) Service Unit Switching Method, System, and Device
CN110971698A (zh) 一种数据转发系统、方法及装置
US20200014586A1 (en) Handling network failures in networks with redundant servers
CN107018159B (zh) 业务请求处理方法及装置、和业务请求方法及装置
JP5174613B2 (ja) ブロードキャストシステムおよびブロードキャスト方法
US9154367B1 (en) Load balancing and content preservation
US8565243B2 (en) Method and apparatus for using a gossip protocol to communicate across network partitions
CN111988439A (zh) 一种arp请求抑制系统、方法、设备及存储介质
US20090157797A1 (en) Data distribution system
CN111935763A (zh) 无线网格网络中提高数据传输可靠性的方法、网络系统
US11985027B2 (en) Systems and methods for seamless failover in branch deployments by superimposing clustering solution on VRRP
CN114090342A (zh) 存储容灾的链路管理方法及消息执行节点、存储控制集群
Hoefling et al. Enabling resilient smart grid communication over the information-centric C-DAX middleware
So et al. Latency and bandwidth-minimizing failure detectors
CN109039747B (zh) Dpdk服务的双机热备控制方法及装置
KR100363523B1 (ko) 클러스터링 서버에서의 분산 처리 제어 방법
Hayashibara Accrual failure detectors
CN116915584B (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