CN101291243A - 高可用集群系统的裂脑预防方法 - Google Patents

高可用集群系统的裂脑预防方法 Download PDF

Info

Publication number
CN101291243A
CN101291243A CNA200710027556XA CN200710027556A CN101291243A CN 101291243 A CN101291243 A CN 101291243A CN A200710027556X A CNA200710027556X A CN A200710027556XA CN 200710027556 A CN200710027556 A CN 200710027556A CN 101291243 A CN101291243 A CN 101291243A
Authority
CN
China
Prior art keywords
heartbeat
node
service
cluster system
highly available
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
Application number
CNA200710027556XA
Other languages
English (en)
Other versions
CN101291243B (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.)
GUANGDONG ZHONGXING NEWSTART TECHNOLOGY CO., LTD.
Original Assignee
GUANGDONG LINUX TECHNICAL SERVICE 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 GUANGDONG LINUX TECHNICAL SERVICE CO Ltd filed Critical GUANGDONG LINUX TECHNICAL SERVICE CO Ltd
Priority to CN200710027556A priority Critical patent/CN101291243B/zh
Publication of CN101291243A publication Critical patent/CN101291243A/zh
Application granted granted Critical
Publication of CN101291243B publication Critical patent/CN101291243B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Computer And Data Communications (AREA)
  • Hardware Redundancy (AREA)

Abstract

本发明提供两种集群系统的预防裂脑方法。第一种方法是通过检测最后2根心跳线是否同时断来判断是否发生裂脑,第二种方法是通过ping浮动IP方法判断服务是否已经在对方节点启动从而预防裂脑。这两种方法都能有效预防双机高可用集群系统的裂脑问题,保障数据不被破坏,且都具有不需任何额外硬件支持的优点。

Description

高可用集群系统的裂脑预防方法
技术领域
本发明属于计算机集群技术领域,具体涉及两种预防集群系统裂脑问题的方法,保证系统的高可靠性。
背景技术
随着通信网络技术的飞速发展,电信、金融、电子政务等关键领域对服务器可用性的要求越来越高,由于服务器故障导致的停止提供服务将造成巨大的损失,采用高可用集群系统可以大幅提高系统的可用性,把因软件、硬件、人为造成的故障对业务的影响降低到最小程度。
双机高可用集群系统由两个被称为节点的服务器通过网络(或串口等其他连接方式)连接组成。在这两台服务器A、B中,A为工作机,B为备份机,它们之间通过心跳线来连接。一般在服务器上都配有两块网卡,其中一块专门用于两台服务器(节点)间的通讯。主服务器和备份服务器上都运行着heartbeat程序,通过传送诸如″我活着″这样的信息来监测对方的运行状况。当备份机不能在一定的时间内收到这样的信息时,它就激活fake程序,让备份服务器接管主服务器器继续提供服务;当备份服务器器又从主服务器器收到″我活着″这样的信息时,它就使fake程序无效,从而释放IP地址,这样主服务器器就开始重新接管服务提供的工作了。这样可以在最大限度上保证服务器不间断的正常提供服务。
虽然集群系统可以大幅提高服务器的可用性,但也会出现裂脑情况,相应带来数据可靠性的问题。
集群的两个节点通常都连接着一个共享的存储设备,当主节点发生故障时,会停止对共享存储设备的使用,这时备用节点接管故障节点的任务开始读写存储设备。但是当两个节点间的连接出现故障时,会出现主节点运行正常而被备用节点误认为运行故障,这样将导致两个节点同时对存储设备进行读写,数据会被破坏,这种情况称为裂脑。在电信、金融、电子政务等关键领域中数据被破坏可能会造成不可弥补的重大损失。
发明内容
本发明的目的是克服上述裂脑问题,提供两种有效预防裂脑的方法,此两种方法不需任何额外硬件支持。
第一种方法是通过检测最后2根心跳线是否同时断来判断是否发生裂脑。如果心跳断裂间隔超过一个常量,就宣布裂脑。具体步骤如下:
1)一般主节点和备用节点之间会有两条或两条以上的心跳链路,heartbeat程序一直在监视心跳的状态。
2)设T1为上一次心跳断时间,初始化为0,T2为当前时间。
3)节点的集群软件(比如heartbeat程序)监视到收到心跳Ink状态改变事件,若为ONLINE,执行步骤3,若为DEAD,执行步骤4。
4)心跳Ink状态改变为ONLINE,说明心跳恢复,则将T1重新设为0。
5)心跳Ink状态改变为DEAD,说明另一节点故障或两节点间心跳链路故障,检查几条心跳链路的状态是否已经全都为DEAD即心跳全部断,如果是就在这时获取T1、T2的值,若T1不等于0且(T2-T1)大于预先设定的常量值,则可判断是心跳链路发生故障,不在备用节点启动服务。若T1等于0或(T2-T1)小于预先设定的常量值,则是节点故障,在备用节点启动服务。
第二种方法是通过ping浮动IP方法判断服务是否已经在对方节点启动从而预防裂脑,具体步骤如下:
1)收到心跳Ink状态改变事件,节点启动服务前,ping对方节点浮动IP判断服务是否已经在对方节点启动,通过MAC校验或其他校验方法来判断是否对方节点。
2)如果服务在对方节点启动,本节点服务不进行启动。如果本地工作链路不通,本地不会启动服务,如果对方节点工作链路不通,对方节点不会启动服务,从而避免了2个节点同时启动同一服务的问题。
附图说明
图1为双机高可用集群系统拓扑图
具体实施方式
本发明主要针对双机高可用集群系统,可以很容易的实现在各种平台上,经过发明人多次的实现和测试,本发明可以有效的预防裂脑发生。
图1示出了有代表性的双机高可用集群系统拓扑图,系统有两台节点,服务器节点A和B。每台服务器有四张网卡eth0-eth3。eth0和eth1设置bonding,采用热备模式,其中eth0作为Active,连接到交换机A,eth1作为Backup,连接到交换机B。通过设置对外服务管理,产生公共网卡IP(public IP)地址,作为工作链路。eth2和eth3和另一节点对应的网卡通过交叉网线相连,并且两个节点通过串口线将各自的第一个串口相连,这些连接将作为心跳链路,负责传输心跳信号。此外,两台机器通过SCSI线缆与共享的磁盘阵列相连,运行在两台服务器中的集群软件包含本发明的实现程序。
本发明的第一种方法首先判断两条交叉网线和一条串口线上心跳链路的心跳状态是否都为断裂,如果是就用当前时间减去上一次心跳断裂的时间,差值大于预先设定的常量就可判断是心跳链路故障,差值小于预先设定的常量就可判断是对方节点故障。
本发明的第二种方法在收到心跳Ink状态改变事件后,节点启动服务前,ping对方节点浮动IP172.16.100.10和172.16.100.12判断服务是否已经在对方节点启动,通过MAC校验来判断是否对方节点。如果服务在对方节点启动,本节点服务不进行启动。如果本地工作链路不通,本地不会启动服务,如果对方节点工作链路不通,对方节点不会启动服务,从而避免了2个节点同时启动同一服务的问题。
下面是本发明两种裂脑预防方法伪代码的实现:
第一种方法,即通过检测最后2根心跳线是否同时断来判断是否发生裂脑的方法。
T1为上一次心跳断时间,初始化为0
T2=当前时间
    if(Ink状态变为DEAD){
         if(T1!=0&&(T2-T1)>C(zte)){
            if(active_Ink_cnt==0){
                if(ping通对方网口IP){
                   判断为裂脑发生
                }
            }
    }else{/*只有一根心跳,或者心跳断间隔<C(zte)*/
        忽略,当做节点死处理
    }
    T1=T2;
}else{/*Ink状态变为ONLINE*/
    if(active_Ink_cnt>=2){
        T1=0;/*心跳恢复,T1清零*/
    }
}
第二种方法,即通过ping浮动IP方法判断服务是否已经在对方节点启动的方法。
if(工作链路连通){
     /*启动服务前先进行ping浮动IP裂脑判断。*/
     if(浮动IP存在){
          从/proc/arp取得该浮动IP的对应MAC地址,和对方节点MAC比较
          if(并且MAC属于对方节点网络接口){
     /*服务已经在对方节点运行*/
           启动失败,返回
       }
     }else{
         正常启动
     }
  }else(工作链路不通){/*集群实时检测工作链路状态*/
      在本节点自动关闭所有和该工作链路相关服务
}

Claims (7)

1.一种高可用集群系统的裂脑预防方法,包括以下步骤:
1)一般主节点和备用节点之间会有两条或两条以上的心跳链路,heartbeat程序一直在监视心跳的状态。
2)设T1为上一次心跳断时间,初始化为0,T2为当前时间。
3)节点的heartbeat程序监视到收到心跳Ink状态改变事件,若为ONLINE,执行步骤3,若为DEAD,执行步骤4。
4)心跳Ink状态改变为ONLINE,说明心跳恢复,则将T1重新设为0。
5)心跳Ink状态改变为DEAD,说明另一节点故障或两节点间心跳链路故障,检查几条心跳链路的状态是否已经全都为DEAD即心跳全部断,如果是就在这时获取T1、T2的值,若T1不等于0且(T2-T1)大于预先设定的常量值,则可判断是心跳链路发生故障,不在备用节点启动服务。若T1等于0或(T2-T1)小于预先设定的常量值,则是节点故障,在备用节点启动服务。
2.如权力要求1所述的一种高可用集群系统的裂脑预防方法,其特征在于:步骤1中的心跳链路可以是交叉网线或串口线。
3.如权力要求1所述的一种高可用集群系统的裂脑预防方法,其特征在于:步骤3中的heartbeat程序可以是其他任何能监视心跳状态的集群软件。
4.如权力要求1所述的一种高可用集群系统的裂脑预防方法,其特征在于:步骤4中的心跳状态ONLINE可以是其他任何表示心跳恢复的符号。
5.如权力要求1所述的一种高可用集群系统的裂脑预防方法,其特征在于:步骤5中的心跳状态DEAD可以是其他任何表示心跳断裂的符号。
6.一种高可用集群系统的裂脑预防方法,包括以下步骤:
1)收到心跳Ink状态改变事件,节点启动服务前,ping对方节点浮动IP判断服务是否已经在对方节点启动,通过MAC校验来判断是否对方节点。
2)如果服务在对方节点启动,本节点服务不进行启动。如果本地工作链路不通,本地不会启动服务,如果对方节点工作链路不通,对方节点不会启动服务,从而避免了2个节点同时启动同一服务的问题。
7.如权力要求6所述的一种高可用集群系统的裂脑预防方法,其特征在于:步骤1中可以通过MAC校验外的其他校验方法来判断是否对方节点。
CN200710027556A 2007-04-16 2007-04-16 高可用集群系统的裂脑预防方法 Active CN101291243B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN200710027556A CN101291243B (zh) 2007-04-16 2007-04-16 高可用集群系统的裂脑预防方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN200710027556A CN101291243B (zh) 2007-04-16 2007-04-16 高可用集群系统的裂脑预防方法

Publications (2)

Publication Number Publication Date
CN101291243A true CN101291243A (zh) 2008-10-22
CN101291243B CN101291243B (zh) 2012-10-10

Family

ID=40035338

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200710027556A Active CN101291243B (zh) 2007-04-16 2007-04-16 高可用集群系统的裂脑预防方法

Country Status (1)

Country Link
CN (1) CN101291243B (zh)

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102394914A (zh) * 2011-09-22 2012-03-28 浪潮(北京)电子信息产业有限公司 集群脑裂处理方法和装置
CN102457400A (zh) * 2011-06-09 2012-05-16 中标软件有限公司 一种防止磁盘镜像资源发生脑裂的方法
CN102510343A (zh) * 2011-11-16 2012-06-20 广东新支点技术服务有限公司 基于远程检测和电源管理的高可用集群系统假死解决方法
CN102546233A (zh) * 2011-11-28 2012-07-04 中标软件有限公司 一种高可用集群中串口心跳的实现方法
CN102708023A (zh) * 2011-02-10 2012-10-03 日本电气株式会社 备用系统计算器、集群系统、提供服务的方法和记录介质
CN102742214A (zh) * 2011-07-13 2012-10-17 青岛海信传媒网络技术有限公司 改善高可用性系统可靠性的方法和装置
CN103051470A (zh) * 2012-11-29 2013-04-17 中标软件有限公司 一种集群及其磁盘心跳的控制方法
CN103067242A (zh) * 2012-12-04 2013-04-24 中国电信股份有限公司云计算分公司 一种用于提供网络服务的虚拟机系统
CN103209095A (zh) * 2013-03-13 2013-07-17 广东新支点技术服务有限公司 一种基于磁盘服务锁的裂脑预防的方法和装置
CN103684941A (zh) * 2013-11-23 2014-03-26 广东新支点技术服务有限公司 基于仲裁服务器的集群裂脑预防方法和装置
CN104158707A (zh) * 2014-08-29 2014-11-19 杭州华三通信技术有限公司 一种检测并处理集群脑裂的方法和装置
CN104660441A (zh) * 2013-11-25 2015-05-27 北京信威通信技术股份有限公司 实现服务器高可靠性的方法、装置和系统
CN105450717A (zh) * 2014-09-29 2016-03-30 中兴通讯股份有限公司 集群脑裂处理方法和装置
CN105515838A (zh) * 2015-11-26 2016-04-20 青岛海信传媒网络技术有限公司 一种服务配置方法及ha集群系统
CN105849702A (zh) * 2013-12-25 2016-08-10 日本电气方案创新株式会社 集群系统,服务器设备,集群系统管理方法和计算机可读记录介质
CN103873429B (zh) * 2012-12-10 2017-03-15 华为技术有限公司 确定节点状态的方法和节点
CN111651291A (zh) * 2020-04-23 2020-09-11 国网河南省电力公司电力科学研究院 一种共享存储集群防脑裂的方法、系统、计算机存储介质
CN111897626A (zh) * 2020-07-07 2020-11-06 烽火通信科技股份有限公司 一种面向云计算场景的虚拟机高可靠系统和实现方法
CN113377702A (zh) * 2021-07-06 2021-09-10 安超云软件有限公司 两节点集群启动的方法及装置、电子设备和存储介质

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6409812B2 (ja) * 2016-04-01 2018-10-24 横河電機株式会社 冗長化装置、冗長化システム、及び冗長化方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1109416C (zh) * 2000-04-25 2003-05-21 华为技术有限公司 交换机的主备倒换方法及其实现装置

Cited By (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102708023A (zh) * 2011-02-10 2012-10-03 日本电气株式会社 备用系统计算器、集群系统、提供服务的方法和记录介质
CN102708023B (zh) * 2011-02-10 2016-01-20 日本电气株式会社 备用系统计算器、集群系统、提供服务的方法和记录介质
CN102457400B (zh) * 2011-06-09 2014-11-05 中标软件有限公司 一种防止磁盘镜像资源发生脑裂的方法
CN102457400A (zh) * 2011-06-09 2012-05-16 中标软件有限公司 一种防止磁盘镜像资源发生脑裂的方法
CN102742214A (zh) * 2011-07-13 2012-10-17 青岛海信传媒网络技术有限公司 改善高可用性系统可靠性的方法和装置
WO2013007023A1 (zh) * 2011-07-13 2013-01-17 青岛海信传媒网络技术有限公司 改善高可用性系统可靠性的方法和装置
CN102394914A (zh) * 2011-09-22 2012-03-28 浪潮(北京)电子信息产业有限公司 集群脑裂处理方法和装置
CN102510343A (zh) * 2011-11-16 2012-06-20 广东新支点技术服务有限公司 基于远程检测和电源管理的高可用集群系统假死解决方法
CN102546233A (zh) * 2011-11-28 2012-07-04 中标软件有限公司 一种高可用集群中串口心跳的实现方法
CN103051470B (zh) * 2012-11-29 2015-10-07 中标软件有限公司 一种集群及其磁盘心跳的控制方法
CN103051470A (zh) * 2012-11-29 2013-04-17 中标软件有限公司 一种集群及其磁盘心跳的控制方法
CN103067242A (zh) * 2012-12-04 2013-04-24 中国电信股份有限公司云计算分公司 一种用于提供网络服务的虚拟机系统
CN103873429B (zh) * 2012-12-10 2017-03-15 华为技术有限公司 确定节点状态的方法和节点
CN103209095A (zh) * 2013-03-13 2013-07-17 广东新支点技术服务有限公司 一种基于磁盘服务锁的裂脑预防的方法和装置
CN103209095B (zh) * 2013-03-13 2017-05-17 广东中兴新支点技术有限公司 一种基于磁盘服务锁的裂脑预防的方法和装置
CN103684941B (zh) * 2013-11-23 2018-01-16 广东中兴新支点技术有限公司 基于仲裁服务器的集群裂脑预防方法和装置
CN103684941A (zh) * 2013-11-23 2014-03-26 广东新支点技术服务有限公司 基于仲裁服务器的集群裂脑预防方法和装置
CN104660441A (zh) * 2013-11-25 2015-05-27 北京信威通信技术股份有限公司 实现服务器高可靠性的方法、装置和系统
CN105849702A (zh) * 2013-12-25 2016-08-10 日本电气方案创新株式会社 集群系统,服务器设备,集群系统管理方法和计算机可读记录介质
US10102088B2 (en) 2013-12-25 2018-10-16 Nec Solution Innovators, Ltd. Cluster system, server device, cluster system management method, and computer-readable recording medium
CN104158707A (zh) * 2014-08-29 2014-11-19 杭州华三通信技术有限公司 一种检测并处理集群脑裂的方法和装置
CN104158707B (zh) * 2014-08-29 2017-10-17 新华三技术有限公司 一种检测并处理集群脑裂的方法和装置
CN105450717A (zh) * 2014-09-29 2016-03-30 中兴通讯股份有限公司 集群脑裂处理方法和装置
CN105515838A (zh) * 2015-11-26 2016-04-20 青岛海信传媒网络技术有限公司 一种服务配置方法及ha集群系统
CN111651291A (zh) * 2020-04-23 2020-09-11 国网河南省电力公司电力科学研究院 一种共享存储集群防脑裂的方法、系统、计算机存储介质
CN111651291B (zh) * 2020-04-23 2023-02-03 国网河南省电力公司电力科学研究院 一种共享存储集群防脑裂的方法、系统、计算机存储介质
CN111897626A (zh) * 2020-07-07 2020-11-06 烽火通信科技股份有限公司 一种面向云计算场景的虚拟机高可靠系统和实现方法
CN113377702A (zh) * 2021-07-06 2021-09-10 安超云软件有限公司 两节点集群启动的方法及装置、电子设备和存储介质
CN113377702B (zh) * 2021-07-06 2024-03-22 安超云软件有限公司 两节点集群启动的方法及装置、电子设备和存储介质

Also Published As

Publication number Publication date
CN101291243B (zh) 2012-10-10

Similar Documents

Publication Publication Date Title
CN101291243B (zh) 高可用集群系统的裂脑预防方法
US5875290A (en) Method and program product for synchronizing operator initiated commands with a failover process in a distributed processing system
US6012150A (en) Apparatus for synchronizing operator initiated commands with a failover process in a distributed processing system
CN101431428B (zh) 安全监控服务恢复方法及系统
CN107729190B (zh) 一种io路径故障转移处理方法和系统
CN103973424B (zh) 缓存系统中的故障解决方法和设备
CN106850255A (zh) 一种多机备份的实现方法
CN101277214A (zh) 一种管理刀片式服务器的方法及系统
CN105554074A (zh) 一种基于rpc通信的nas资源监控系统及监控方法
CN105790825A (zh) 一种分布式保护中控制器热备份的方法和装置
CN102026042A (zh) 一种高级电信计算架构控制面的保活、自愈方法和装置
CN102187627B (zh) 负载分担的方法及装置、宽带接入服务器系统
CN108737188A (zh) 一种网卡故障切换系统
US9774675B2 (en) Automatic redundant logical connections
US20080075082A1 (en) Fault-tolerant medium access control (mac) address assignment in network elements
CN107294759A (zh) 服务器系统及数据存取方法
CN106027313B (zh) 网络链路容灾系统及方法
CN101686119A (zh) 单板间通信的方法、装置、以及系统
CN110413322A (zh) 一种服务器网口管理方法、系统以及基板管理控制器
CN107423167A (zh) 一种基于双控存储的ISCSI target冗余控制方法和系统
CN105426118B (zh) 一种双控系统中利用串口备份心跳通道的方法
JP5176914B2 (ja) 伝送装置及び冗長構成部の系切替え方法
CN113742142B (zh) 存储系统管理sata硬盘的方法及存储系统
CN102742214A (zh) 改善高可用性系统可靠性的方法和装置
CN102684914B (zh) 网桥接口联动的实现方法及系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C57 Notification of unclear or unknown address
DD01 Delivery of document by public notice

Addressee: Zou Cheng

Document name: Notification of Publication of the Application for Invention

DD01 Delivery of document by public notice

Addressee: Zou Cheng

Document name: Notification of before Expiration of Request of Examination as to Substance

DD01 Delivery of document by public notice

Addressee: Guangdong Linux Technical Service Co., Ltd.

Document name: Notification that Application Deemed to be Withdrawn

Addressee: Guangdong Linux Technical Service Co., Ltd.

Document name: Notification to Go Through Formalities Rectification of Restoration of Right

C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C56 Change in the name or address of the patentee

Owner name: GUANGDONG ZHONGXING NEWSTART TECHNOLOGY CO., LTD.

Free format text: FORMER NAME: GUANGDONG LINUX TECHNOLOGY SERVICE CO., LTD.

CP01 Change in the name or title of a patent holder

Address after: 510663 Guangdong city of Guangzhou province Tianhe District Gaotang Software Park base high Pu Lu E building 601 room No. 1021

Patentee after: GUANGDONG ZHONGXING NEWSTART TECHNOLOGY CO., LTD.

Address before: 510663 Guangdong city of Guangzhou province Tianhe District Gaotang Software Park base high Pu Lu E building 601 room No. 1021

Patentee before: Guangdong NewStart Technology Service Ltd.