CN103297396A - 群集系统中管理故障转移的装置和方法 - Google Patents

群集系统中管理故障转移的装置和方法 Download PDF

Info

Publication number
CN103297396A
CN103297396A CN2012100479996A CN201210047999A CN103297396A CN 103297396 A CN103297396 A CN 103297396A CN 2012100479996 A CN2012100479996 A CN 2012100479996A CN 201210047999 A CN201210047999 A CN 201210047999A CN 103297396 A CN103297396 A CN 103297396A
Authority
CN
China
Prior art keywords
node
cluster
link
group
lease
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
CN2012100479996A
Other languages
English (en)
Other versions
CN103297396B (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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Priority to CN201210047999.6A priority Critical patent/CN103297396B/zh
Priority to US13/780,031 priority patent/US9189316B2/en
Publication of CN103297396A publication Critical patent/CN103297396A/zh
Application granted granted Critical
Publication of CN103297396B publication Critical patent/CN103297396B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0772Means for error signaling, e.g. using interrupts, exception flags, dedicated error registers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0709Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a distributed system consisting of a plurality of standalone computer nodes, e.g. clusters, client-server systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/2025Failover techniques using centralised failover control functionality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/2028Failover techniques eliminating a faulty processor or activating a spare
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/0757Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1479Generic software techniques for error detection or fault masking
    • G06F11/1482Generic software techniques for error detection or fault masking by means of middleware or OS functionality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2035Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant without idle spare hardware

Abstract

本发明提供在集群系统中管理故障转移的装置和方法。集群系统包括通过第一组链路彼此连接的多个子集群,每个子集群包括通过第二组链路彼此连接的多个节点。所述装置包括:确定单元,配置为通过第二组链路确定同一子集群中的嫌疑节点已经关停;以及通知单元,配置为响应于所述确定,代表所述嫌疑节点发送租约放弃消息。所述方法与上述装置相对应。利用本发明的装置和方法,集群能够快速确认断连节点已关停,从而尽快恢复其服务。因此,缩短了故障转移的时间,提高了集群系统的可用性。

Description

群集系统中管理故障转移的装置和方法
技术领域
本发明涉及集群系统,更具体而言,涉及集群系统中管理故障转移的装置和方法。
背景技术
信息技术的发展为人们提供了越来越丰富和强大的应用和服务,同时也对处理设备的运算能力和存储能力提出了越来越高的要求。为此,提出了集群系统来存储和处理海量信息和数据,并以高度可用性为用户提供各种服务。
集群系统由一组计算设备构成,所述计算设备通过硬件和软件互相连接,共同操作,从而作为单系统映像来提供服务。这样的计算设备被称为集群中的节点。对于大多数集群系统,为了保持单系统映像,需要防止集群由于节点故障或节点间通信设施的故障而分裂成多个独立系统。也就是说,如果节点从主集群断开连接从而不能与单系统映像保持一致和更新,那么首先要确保该节点停止处理客户请求,然后才能允许主集群进行进一步的操作,将该断连节点执行的工作重新分配到集群中的存活节点。在允许主集群前进之前必须关停断连节点,这意味着,关停断连节点所花费的时间决定了主集群所提供的服务在从故障或断连节点恢复过来的过程中变得不可用的最小时间。因此,为了创建一个高可用的容错集群系统,非常关键的就是缩短关停断连节点所花费的时间,使得主集群能够在节点或节点间连接出现故障之后尽快恢复其可用性。
现有技术中已经提出了多种方案来关停故障节点,并确保集群以单系统映像继续其操作。一种方案是基于租约(lease)的机制。租约允许节点代表集群来提供服务。相应地,基于租约的机制在集群的节点之间传递消息来为节点授权租约,从而限定节点被允许以集群的名义进行操作的时间周期。在失去通信联系的情况下,从集群断连的节点就不再能够接收到租约更新消息,于是在其租约到期的时候会主动地停止集群服务。另一方面,主集群会等待不少于租约周期的时间(通常是租约周期加上一些额外的时间以考虑到时钟的偏移),然后才能够确认断连的节点已经关停,从而允许将故障节点的工作转移到集群中的存活节点。
如上所述,租约时间限定了出现故障之后服务不可用的最小时间段。因此,集群使用的租约时间越短,故障转移的时间越快。然而,同时,租约时间越短,集群中的节点就要越频繁地延长其租约,于是维持租约的成本和开销就越大。也就是说,基于租约的机制对于租约时间具有相互矛盾的要求,一方面有必要使得租约时间尽量短以允许集群的快速回复,另一方面,又希望租约时间足够长来减小租约更新的频率,防止集群节点过量负载时出现假性的租约到期。针对租约时间的矛盾要求意味着,利用基于租约的机制,很难实现集群服务的快速恢复。
为了促进集群服务的迅速恢复,还提出了改进的基于租约的机制。在这样的改进机制中,节点如果知道它即将出现故障或从集群断连,就会向集群中的其他节点发送一个租约放弃消息,以此来主动放弃租约的继续。该消息使得主集群能够知晓故障节点已经关停,而不必等待整个租约周期,因此主集群能够快速恢复可用性。这对于传统的基于租约的机制来说是一项很有用的改进,但是它仅仅在节点能够意识到它即将出现故障而同时又足够正常来发出放弃消息的情况下适用。在很多情况下,节点突然出现故障或失去连接,这时,主集群仍然需要至少等待一整个租约周期来确保租约已经到期。因此,上述改进的机制的应用非常有限。
另一种关停故障节点的方案称为STONITH机制。STONITH是击中另一节点的头部(shoot-the-other-node-in-the-head)的缩写,它描述了这样一种机制,其中存活的集群节点利用硬件机制直接迫使嫌疑节点关停。利用STONITH机制,可以很容易地使得关停断连节点的时间非常短,从而允许集群快速恢复。然而,STONITH机制要求在其操作的临界时期具有存活的通信路径,因此并不适用于涉及远程节点通信的集群系统。
因此,希望提出一种方案,能够有效地管理节点的连接和故障转移,从而提供高可用性的集群系统。
发明内容
鉴于以前提出的现有技术中存在的问题,提出本发明,以改进集群系统的可用性。
根据本发明一个实施例,提供一种在集群系统中管理故障转移的装置,所述集群系统包括通过第一组链路彼此连接的多个子集群,每个子集群包括通过第二组链路彼此连接的多个节点,所述装置包括:确定单元,配置为通过第二组链路中的至少一个确定同一子集群中的嫌疑节点已经关停;以及通知单元,配置为响应于所述确定,代表所述嫌疑节点发送租约放弃消息。
根据本发明另一实施例,提供一种集群系统中的节点,所述节点包括根据前一实施例所述的装置。
根据本发明又一实施例,提供一种集群系统,包括根据前一实施例所述的节点。
根据本发明另外的实施例,提供一种在集群系统中管理故障转移的方法,所述集群系统包括通过第一组链路彼此连接的多个子集群,每个子集群包括通过第二组链路彼此连接的多个节点,所述方法包括:通过第二组链路中的至少一个链路确定同一子集群中的嫌疑节点已经关停;以及响应于所述确定,代表所述嫌疑节点发送租约放弃消息。
利用本发明的实施例,集群能够快速确认断连节点已关停,从而尽快恢复其服务。因此,缩短了故障转移的时间,提高了集群系统的可用性。
附图说明
通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。
图1示出了适于用来实现本发明实施方式的示例性计算系统100的框图;
图2示出示例性的集群系统的结构;
图3是根据本发明一个实施例的用于故障转移管理的装置的框图;
图4示出根据本发明一个实施例的确定单元;
图5示出一个示例性的子集群;以及
图6是根据本发明一个实施例的方法的流程图。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1示出了适于用来实现本发明实施方式的示例性计算系统100的框图。如图1所示,计算机系统100可以包括:CPU(中央处理单元)101、RAM(随机存取存储器)102、ROM(只读存储器)103、系统总线104、硬盘控制器105、键盘控制器106、串行接口控制器107、并行接口控制器108、显示控制器109、硬盘110、键盘111、串行外部设备112、并行外部设备113和显示器114。在这些设备中,与系统总线104耦合的有CPU 101、RAM 102、ROM 103、硬盘控制器105、键盘控制器106、串行控制器107、并行控制器108和显示控制器109。硬盘110与硬盘控制器105耦合,键盘111与键盘控制器106耦合,串行外部设备112与串行接口控制器107耦合,并行外部设备113与并行接口控制器108耦合,以及显示器114与显示控制器109耦合。应当理解,图1所述的结构框图仅仅是为了示例的目的,而不是对本发明范围的限制。在某些情况下,可以根据具体情况增加或减少某些设备。
所属技术领域的技术人员知道,本发明可以实现为系统、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:可以是完全的硬件、也可以是完全的软件(包括固件、驻留软件、微代码等),还可以是硬件和软件结合的形式,本文一般称为“电路”、“模块”或“系统”。此外,在一些实施例中,本发明还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言-诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言-诸如”C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)-连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
下面将参照本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,这些计算机程序指令通过计算机或其它可编程数据处理装置执行,产生了实现流程图和/或框图中的方框中规定的功能/操作的装置。
也可以把这些计算机程序指令存储在能使得计算机或其它可编程数据处理装置以特定方式工作的计算机可读介质中,这样,存储在计算机可读介质中的指令就产生出一个包括实现流程图和/或框图中的方框中规定的功能/操作的指令装置(instruction means)的制造品(manufacture)。
也可以把计算机程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令能够提供实现流程图和/或框图中的方框中规定的功能/操作的过程。
现在参看图2,其描述了一个示例性的集群系统的结构。如图中所示,集群系统200包括多个子集群,在图2的例子中,这些子集群示出为子集群10-40。子集群10-40中的每个进一步包含互相连接的多个节点。例如,子集群10由节点11和节点12构成。集群系统中的节点可以是任何种类的计算或存储设备,例如单个计算机、控制器和存储器等。集群系统中的连接方式可以分为用于子集群之间的互连的第一组链路(以虚线示出),以及用于一个子集群之内的多个节点之间的互连的第二组链路(以实线示出)。第一组链路可以是适合于节点连接的任何链路。在一个实施例中,第一组链路是松耦合链路,通常适用于远程通信。例如,第一组链路可以包括光纤信道链路和开关,以用于连接集群中的远程节点。第二组链路可以是相比于第一组链路来说耦合更加紧密的任何种类的链路,通常可以包括节点之间的多个独立的硬件通信路径。在一个实施例中,第二组链路包括紧耦合链路。例如,第二组链路可包括适于近距离的两个节点之间的通信的PCI或PCIe总线。在一个实施例中,一个子集群中的节点可以被封在一个封装之内。在这种情况下,第二组链路是封装内部的紧耦合链路,通常不会由用户断连,而第一组链路是外部线缆,可能暴露于人为和外部干涉。在一个实施例中,第二组链路也可以附加地包括松耦合互连或共享使用第一组链路(或其一部分),以提高子集群内部通信的可靠性。可以理解,本领域技术人员能够根据实际需要,采用除以上例子之外的各种具体连接方式,而这样的改变和修改仍然应该包含在本发明的构思之内。
图3示出根据本发明一个实施例的用于故障转移管理的装置的框图。图3的装置30可以用于图2的集群系统中的任何节点或每个节点处,或集群的其他合适位置处。如图3所示,装置30包括确定单元32和通知单元34,其中确定单元32配置为,通过第二组链路中的至少一个链路,确定同一子集群中的嫌疑节点已经关停,通知单元34配置为,响应于上述确定,代表所述嫌疑节点发送租约放弃消息。
为了执行上述的确定功能,在一个实施例中,确定单元32可以包含进一步的子单元或模块,如图4所示。参照图4,确定单元32可包括监视模块322和关停模块324。监视模块322配置为监视同一子集群中的节点,从而检测出或找出嫌疑节点。关停模块324配置为,确保所检测的嫌疑节点已关停。
接下来,结合图5的例子来描述装置30中各个单元和模块的具体执行方式,其中在图5的例子中,子集群10(图1所示)中的两个节点11和12都引入了上述装置30。
具体地,在一个实施例中,监视模块322可以利用心跳消息来监视同一子集群中的节点的状态。在集群系统中已经广泛使用心跳消息作为常规通信。通常,每个节点都可以周期性地向其他节点“广播”其心跳消息来报告其健康状态。在图5的例子中,节点11和节点12可以向对方发送心跳消息来告诉对方它仍然存活。相应地,每个节点利用监视模块322来监视来自对方的心跳消息。在一个简单的执行方式中,如果在特定时间间隔内(例如心跳周期加上额外的延迟),未能从另一节点听到心跳消息,那么监视模块322就可以将该节点认定为应该被关停的嫌疑节点。在另一实施例中,监视模块322在确定嫌疑节点时要考虑更多的实际因素。例如,在软件升级期间,节点有时候需要重启,在这种情况下,它就不能在预先定义的最差情况延迟时间之内产生心跳消息。这时,监视模块322可以延长经历软件升级的超时设定,使得节点能有足够时间恢复并重新产生心跳。这样的考虑和对策在执行现有的STONITH机制时已经有所研究和了解。因此,监视模块322可以使用现有技术的STONITH工具的判定算法。在一个实施例中,监视模块322可以基于或者复用STONITH机制的监视模块。然而,可以理解,本领域技术人员也可以采用不同于STONITH机制的算法来检测出现故障或者从集群断连的嫌疑节点。
为了更清楚的描述,我们假定,在图5所示的例子中,节点11中的监视模块322声称节点12为嫌疑节点。响应于监视模块11的确定,对应的关停模块324,也就是节点11中的关停模块,确保嫌疑节点12的关停。
在一个实施例中,关停节点324通过使用节点11和节点12之间的第二组链路中的至少一个链路迫使节点12关停。如前所述,第二组链路可以包含多条紧耦合链路,因此具有多个独立的硬件通信路径。因此,即使节点12被认为失去连接,在节点之间仍然存在存活的通信路径,使得节点11中的关停模块324能够与节点12通信。在一个具体例子中,关停模块324可以通过连接节点11和节点12的电源的链路,使用软件编程,来直接关掉节点12的电源,由此可以确保嫌疑节点12被关停。这样的关停方式与STONITH机制相似。因此,在一个实施例中,关停模块324可以基于或复用现有STONITH工具的关停模块。然而,可以理解,本领域技术人员也可以采用不同于STONITH机制的方法来关停嫌疑节点,例如通过存活的通信路径向嫌疑节点发出关停指令迫使其关停,这样的修改也应包含在本发明的构思之内。
在另一实施例中,关停模块324并不对嫌疑节点执行实际的关停操作,而是通过第二组链路来检测子集群中嫌疑极点极有可能关停的时间。也就是说,在该实施例中,关停模块并不能完全确定地知道节点12已经关停,但是它可以检测并断定这样的情况,即,节点12已关停这一假设具有压倒性的可能性。例如,由于同一子集群中的节点11和节点12之间具有多个冗余的紧耦合链路,那么不可能断开所有这些连接,除非所有连接都同时出现故障或者节点12已经关停。多个独立的硬件连接同时出现故障的可能性小到可以忽略,因此,此时,具有压倒性可能性的就是嫌疑节点12已经关停。在这种情况下,关停模块324需要在构成所述冗余路径的所有逻辑通信链路上,对于心跳消息至少等待最差情况的延迟时间,然后才能声称节点12不再存活。尽管该实施例的方式不及前一实施例那样安全,但是该实施例中的关停模块324较为简单,在一些情况下更为适用。
通过以上的监视模块322和关停模块324,确定单元32可以确定同一子集群中的嫌疑节点已经关停。响应于这样的确定,通知单元34可以代表嫌疑节点发送一个主动的租约放弃消息,使得主集群全局可以得到嫌疑节点已经关停的保证。
具体地,如前所述,现有的集群系统使用租约来允许节点代表集群提供服务。相应地,每个节点包含一个租约管理单元来维持该租约。在图2所示的集群系统中,各个节点中的租约管理单元在整个集群范围内与对等的单元相协作,在集群的可用链路上传递租约,从而执行全局的基于租约的机制。不同于改进的基于租约的机制中由故障节点自己来发送租约放弃消息,在本发明的一个实施例中,由存活节点中的通知单元34代表故障节点来发送租约放弃消息。为了代表其他节点发送消息,在一个实施例中,通知单元34对租约放弃消息进行修改从而将嫌疑节点的身份信息包含在内。在一个例子中,嫌疑节点的身份信息是集群范围内唯一的标识符,例如,嫌疑节点的MAC地址。
为了使得主集群意识到嫌疑节点放弃了租约,包含有嫌疑节点的身份信息的租约放弃消息应该被发送到管理集群全局的租约的管理组件。该管理组件可以驻留在集群中的任何节点中。因此,通常来说,租约放弃消息会被发送到检测到问题的子集群之外。但是,当全局租约管理组件正好驻留在包含有嫌疑节点的子集群中时,租约放弃消息将在该子集群内部发送。在更加特殊的情况下,管理组件驻留在检测到嫌疑节点故障的的节点中,这时,放弃消息可以是在该节点上运行的软件组件之间的消息。实际中,在通信中通常利用抽象层来传递这类消息,抽象层只是将消息从发送方路由到接收方,而双方都无需确切知晓消息是如何路由的。因此,以上三种情况在发送方和接收方看来是相同的,而软件的消息路由层会决定应该将租约放弃消息发送到子集群之外,或者在子集群之内发送,或者作为本地节点的消息来递送,以及应该采用何种链路。总体来说,一旦全局租约管理组件接收到代表嫌疑节点发送的租约放弃消息,主集群就能够确认嫌疑节点已经关停,并利用这一事实和信息进行继续操作。
再次参照图5的例子,在节点11的确定单元32确定节点12已关停的情况下,节点11的通知单元34代表节点12向包含全局租约管理组件的节点发送租约放弃消息。该租约放弃消息可以通过第一组链路(以及可选地在子集群之内传递时的第二组链路)在集群中进一步传递,使得主集群全局可以获得嫌疑节点12已关停的保证。在获得这样的保证之后,主集群就可以执行进一步操作,对工作进行再分配,并继续向客户提供服务。
以上的实施例都是结合图2和图5的示例性集群描述的,其中每个子集群包含两个节点。然而,这并不是必须的,本发明并不限于这样的集群系统。可以理解,集群系统可以包含任意数目的子集群,每个子集群可以包含任意数目的节点。并且,不同的子集群可以包含不同数目的节点。相应地,上述故障转移管理装置30可以同等地适用于各种集群情况,如下所述。
在一个例子中,一个子集群包括三个节点A,B和C,三个节点中的每两个节点通过第二组链路中的一个或多个链路相连。如本领域技术人员所理解,更多的节点在其间具有更多的逻辑通信路径,也将会有更多的心跳消息在每个逻辑通信路径上运行。使用这样的心跳机制,监视模块322可以类似地检测到嫌疑节点。例如,如果未能从节点C接收到心跳消息,节点A和节点B中的监视模块都可以将节点C认定为嫌疑节点。于是,节点A和节点B中的任一个节点或全部两个节点可以利用其关停模块324基于与STONITH相似的机制直接关停节点C或宣称节点C极有可能已关停。
在一个实施例中,通知单元324配置为,一旦对应的确定单元32确定嫌疑节点的关停,就发送租约放弃消息。在这种情况下,节点A和节点B的每一个都会利用其通知单元34代表节点C发出租约放弃消息。在另一个实施例中,集群系统预先在每个子集群中设定一个主导节点,或者为子集群中的每个节点赋予权限等级。子集群中的每个节点都可以访问这样的与主导节点或权限等级有关的权限信息。相应地,装置30可以包括一判定单元(未示出),通过访问和查询权限信息来核查节点是否具有足够的权限来代表子集群做决定,特别是,代表关停节点发送放弃消息。同时,通知单元34可以配置为,响应于节点具有特定权限的判定来发送租约放弃消息。于是,只有主导节点或者具有特定权限的节点中的通知单元34会代表嫌疑节点C发出租约放弃消息。相应地,该子集群之外的主集群可以类似地确认嫌疑节点C已经关停。通过使用这样的权限管理机制,本领域技术人员可以容易地将三个节点的例子扩展到四个或更多个节点的情况。因此,装置30可以应用于任意子集群结构中的节点。
总体而言,针对具有混合的节点间连接的集群,也就是近来开发的集群系统的常见结构,以上所述的装置30可以进行有效的故障转移管理。通过对STONITH机制和基于租约的机制进行修改和改进,装置30可以将两种机制的优势集于一体,来促进系统的故障转移和恢复。首先,通过子集群内部的节点之间的紧耦合链路,装置30利用与STONITH机制相似的方法使得子集群快速关停嫌疑节点。在确定嫌疑节点已经关停之后,装置30使得子集群代表关停节点发送租约放弃消息,由此主集群全局可以获得嫌疑节点已关停的保证。因此,即使断连节点突然出现故障从而不能主动放弃租约,主集群也可以获得从子集群发出的代表故障节点的租约放弃消息,而不必等待整个租约周期。
基于同一发明构思,本发明还提供了在集群系统中管理故障转移的方法,其中所述集群系统包括通过第一组链路彼此连接的多个子集群,每个子集群包括通过第二组链路彼此连接的多个节点。图6示出根据本发明一个实施例的方法的流程图。如图6所示,该方法包括,步骤61,在其中通过第二组链路中的至少一个链路确定同一子集群中的嫌疑节点已经关停,以及步骤62,响应于上述确定,代表所述嫌疑节点发送租约放弃消息。
在一个实施例中,确定步骤61还包括如下子步骤:监视同一子集群中的节点,从而检测出嫌疑节点;以及确保所检测的嫌疑节点已关停。根据一个具体例子,节点状态的监视通过心跳信息来执行。在一个例子中,上述方法通过第二组链路中的至少一个链路直接迫使嫌疑节点关停。在另一个例子中,上述方法并不对嫌疑节点执行实际的关停操作,而是通过第二组链路检测嫌疑节点极有可能已经关停的时间,然后宣称嫌疑节点的关停。
在一个实施例中,在步骤61,修改租约放弃消息以将嫌疑节点的身份信息包含在内。然后,包含有嫌疑节点的身份信息的租约放弃消息可以被发送到管理集群的全局租约的任意节点,使得主集群能够确认嫌疑节点已经关停,并利用该信息进行进一步操作。
在一个实施例中,上述方法还包括判定步骤,在其中通过访问和查询权限信息来核查节点是否具有权限来代表子集群做决定。这一步骤可以确保租约放弃消息发送自主导节点,而不是同时来自所有的存活节点。
上述方法的原理和执行方式对应于结合图3和图4和具体例子所描述的装置,在此不再赘述。
使用如上所述的根据本发明实施例的装置和方法,子集群可以立即关停断连的节点,然后主集群可以快速地利用断连节点已经关停这一信息来恢复其服务,由此提高集群系统的可用性。
可以理解,附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

Claims (20)

1.一种在集群系统中管理故障转移的装置,所述集群系统包括通过第一组链路彼此连接的多个子集群,每个子集群包括通过第二组链路彼此连接的多个节点,所述装置包括:
确定单元,配置为通过第二组链路中的至少一个链路确定同一子集群中的嫌疑节点已经关停;以及
通知单元,配置为响应于所述确定,代表所述嫌疑节点发送租约放弃消息。
2.如权利要求1所述的装置,其中所述确定单元进一步包括:
监视模块,配置为监视同一子集群中的节点,以检测出嫌疑节点;以及
关停模块,配置为确保所检测的嫌疑节点已经关停。
3.如权利要求2所述的装置,其中所述监视模块配置为通过使用心跳消息来监视节点。
4.如权利要求2所述的装置,其中所述关停模块配置为通过所述第二组链路中的一个或多个链路迫使所述嫌疑节点关停。
5.如权利要求4所述的装置,其中所述第二组链路包括紧耦合链路,所述关停模块配置为,通过所述紧耦合链路直接关闭所述嫌疑节点的电源。
6.如权利要求2所述的装置,其中所述关停模块配置为,通过所述第二组链路检测所述嫌疑节点极有可能关停的时间。
7.如权利要求1所述的装置,其中所述通知单元配置为,将所述嫌疑节点的身份信息包含在所述租约放弃消息中。
8.如权利要求1所述的装置,其中所述通知单元配置为,将所述租约放弃消息发送到管理集群全局的租约的管理组件中。
9.如权利要求1所述的装置,其中所述装置还包括判定单元,配置为通过访问和查询权限信息,判定节点是否有权限代表子集群做出决定,所述通知单元配置为,响应于所述节点具有权限的判定而发送所述租约放弃消息。
10.一种集群系统中的节点,所述集群系统包括通过第一组链路彼此连接的多个子集群,每个子集群包括通过第二组链路彼此连接的多个节点,所述节点包括根据权利要求1-9中任一个所述的装置。
11.一种集群系统,包括通过第一组链路彼此连接的多个子集群,每个子集群包括通过第二组链路彼此连接的多个节点,所述节点中的至少一个包括根据权利要求1-9中任一个所述的装置。
12.一种在集群系统中管理故障转移的方法,所述集群系统包括通过第一组链路彼此连接的多个子集群,每个子集群包括通过第二组链路彼此连接的多个节点,所述方法包括:
通过第二组链路中的至少一个链路确定同一子集群中的嫌疑节点已经关停;以及
响应于所述确定,代表所述嫌疑节点发送租约放弃消息。
13.如权利要求12所述的方法,其中所述确定同一子集群中的嫌疑节点已经关停包括:
监视同一子集群中的节点,以检测出嫌疑节点;以及
确保所检测的嫌疑节点已经关停。
14.如权利要求13所述的方法,其中所述监视同一子集群中的节点包括,通过使用心跳消息来监视节点。
15.如权利要求13所述的方法,其中所述确保所检测的嫌疑节点已经关停包括,通过所述第二组链路中的一个或多个链路迫使所述嫌疑节点关停。
16.如权利要求15所述的方法,其中所述第二组链路包括紧耦合链路,所述迫使所述嫌疑节点关停包括,通过紧耦合链路直接关闭所述嫌疑节点的电源。
17.如权利要求13所述的方法,其中所述确保所检测的嫌疑节点已经关停包括,通过所述第二组链路检测所述嫌疑节点极有可能关停的时间。
18.如权利要求12所述的方法,其中所述租约放弃消息包括所述嫌疑节点的身份信息。
19.如权利要求12所述的方法,其中发送租约放弃消息包括,将所述租约放弃消息发送到管理集群全局的租约的管理组件中。
20.如权利要求12所述的方法,还包括,通过访问和查询权限信息,判定节点是否有权限代表子集群做出决定,并且其中所述向同一子集群之外发送租约放弃消息包括,响应于所述节点具有权限而发送所述租约放弃消息。
CN201210047999.6A 2012-02-28 2012-02-28 群集系统中管理故障转移的装置和方法 Expired - Fee Related CN103297396B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201210047999.6A CN103297396B (zh) 2012-02-28 2012-02-28 群集系统中管理故障转移的装置和方法
US13/780,031 US9189316B2 (en) 2012-02-28 2013-02-28 Managing failover in clustered systems, after determining that a node has authority to make a decision on behalf of a sub-cluster

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210047999.6A CN103297396B (zh) 2012-02-28 2012-02-28 群集系统中管理故障转移的装置和方法

Publications (2)

Publication Number Publication Date
CN103297396A true CN103297396A (zh) 2013-09-11
CN103297396B CN103297396B (zh) 2016-05-18

Family

ID=49097724

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210047999.6A Expired - Fee Related CN103297396B (zh) 2012-02-28 2012-02-28 群集系统中管理故障转移的装置和方法

Country Status (2)

Country Link
US (1) US9189316B2 (zh)
CN (1) CN103297396B (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104092572A (zh) * 2014-07-16 2014-10-08 贵州电网公司电网规划研究中心 一种基于链式变流器的可快速响应故障的链路通信方法
CN105897508A (zh) * 2016-04-01 2016-08-24 锐捷网络股份有限公司 一种分布式数据中心业务处理的方法和核心交换机
CN106301853A (zh) * 2015-06-05 2017-01-04 华为技术有限公司 集群系统中节点的故障检测方法和装置
CN107547257A (zh) * 2017-07-14 2018-01-05 新华三技术有限公司 一种服务器集群实现方法及装置
WO2018058941A1 (zh) * 2016-09-29 2018-04-05 华为技术有限公司 一种检测集群系统通信状态的方法及网关集群
CN109240840A (zh) * 2017-07-11 2019-01-18 阿里巴巴集团控股有限公司 集群系统的容灾方法、装置和机器可读介质
CN112965847A (zh) * 2021-03-03 2021-06-15 北京百度网讯科技有限公司 微服务架构的故障处理方法、装置、设备以及存储介质
CN112994974A (zh) * 2021-02-09 2021-06-18 北京金山云网络技术有限公司 集群节点探测方法、装置、集群、设备和介质
CN117033092A (zh) * 2023-10-10 2023-11-10 北京大道云行科技有限公司 单例服务故障转移方法及系统、电子设备、存储介质

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013024485A2 (en) * 2011-08-17 2013-02-21 Scaleio Inc. Methods and systems of managing a distributed replica based storage
US20140258771A1 (en) 2013-03-06 2014-09-11 Fortinet, Inc. High-availability cluster architecture and protocol
US9448966B2 (en) * 2013-04-26 2016-09-20 Futurewei Technologies, Inc. System and method for creating highly scalable high availability cluster in a massively parallel processing cluster of machines in a network
US20160085606A1 (en) * 2014-09-19 2016-03-24 Netapp Inc. Cluster-wide outage detection
JP6409812B2 (ja) * 2016-04-01 2018-10-24 横河電機株式会社 冗長化装置、冗長化システム、及び冗長化方法
CN109684128B (zh) * 2018-11-16 2020-12-08 深圳证券交易所 消息中间件的集群整体故障恢复方法、服务器及存储介质
US11785077B2 (en) 2021-04-29 2023-10-10 Zoom Video Communications, Inc. Active-active standby for real-time telephony traffic
US11575741B2 (en) 2021-04-29 2023-02-07 Zoom Video Communications, Inc. System and method for active-active standby in phone system management

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020095489A1 (en) * 2001-01-12 2002-07-18 Kenji Yamagami Failure notification method and system using remote mirroring for clustering systems
CN1508714A (zh) * 2002-12-18 2004-06-30 �Ҵ���˾ 确定高可用性集群之活跃度的方法和系统
US20050246568A1 (en) * 2003-04-23 2005-11-03 Dot Hill Systems Corporation Apparatus and method for deterministically killing one of redundant servers integrated within a network storage appliance chassis
CN1812341A (zh) * 2005-01-27 2006-08-02 国际商业机器公司 用在群集计算机装置的节点处的控制器及其操作方法
US20060294337A1 (en) * 2005-06-28 2006-12-28 Hartung Michael H Cluster code management
US20080250267A1 (en) * 2007-04-04 2008-10-09 Brown David E Method and system for coordinated multiple cluster failover
CN101458808A (zh) * 2008-12-31 2009-06-17 中国建设银行股份有限公司 银行管理系统、服务器集群和相关方法
CN101617295A (zh) * 2007-02-20 2009-12-30 国际商业机器公司 在故障切换之后对高速缓存数据的保存
CN102035862A (zh) * 2009-09-30 2011-04-27 国际商业机器公司 Svc集群中配置节点的故障移交方法和系统

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6442713B1 (en) * 1999-03-30 2002-08-27 International Business Machines Corporation Cluster node distress signal
US7228414B2 (en) * 2001-11-02 2007-06-05 General Instrument Corporation Method and apparatus for transferring a communication session
US7631066B1 (en) 2002-03-25 2009-12-08 Symantec Operating Corporation System and method for preventing data corruption in computer system clusters
DE60318468T2 (de) 2002-10-07 2008-05-21 Fujitsu Siemens Computers, Inc., Sunnyvale Verfahren zur lösung von entscheidungslosigkeiten in einem cluster-rechnersystem
US20040139196A1 (en) * 2003-01-09 2004-07-15 Dell Products L.P. System and method for releasing device reservations
US7739541B1 (en) 2003-07-25 2010-06-15 Symantec Operating Corporation System and method for resolving cluster partitions in out-of-band storage virtualization environments
US7698453B2 (en) 2003-07-29 2010-04-13 Oribital Data Corporation Early generation of acknowledgements for flow control
TWI235299B (en) 2004-04-22 2005-07-01 Univ Nat Cheng Kung Method for providing application cluster service with fault-detection and failure-recovery capabilities
US20050283641A1 (en) * 2004-05-21 2005-12-22 International Business Machines Corporation Apparatus, system, and method for verified fencing of a rogue node within a cluster
GB0502703D0 (en) * 2005-02-09 2005-03-16 Ibm Method and system for remote monitoring
US7676687B2 (en) 2006-09-28 2010-03-09 International Business Machines Corporation Method, computer program product, and system for limiting access by a failed node

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020095489A1 (en) * 2001-01-12 2002-07-18 Kenji Yamagami Failure notification method and system using remote mirroring for clustering systems
CN1508714A (zh) * 2002-12-18 2004-06-30 �Ҵ���˾ 确定高可用性集群之活跃度的方法和系统
US20050246568A1 (en) * 2003-04-23 2005-11-03 Dot Hill Systems Corporation Apparatus and method for deterministically killing one of redundant servers integrated within a network storage appliance chassis
CN1812341A (zh) * 2005-01-27 2006-08-02 国际商业机器公司 用在群集计算机装置的节点处的控制器及其操作方法
US20060294337A1 (en) * 2005-06-28 2006-12-28 Hartung Michael H Cluster code management
CN1892606A (zh) * 2005-06-28 2007-01-10 国际商业机器公司 集群代码管理的方法和系统
CN101617295A (zh) * 2007-02-20 2009-12-30 国际商业机器公司 在故障切换之后对高速缓存数据的保存
US20080250267A1 (en) * 2007-04-04 2008-10-09 Brown David E Method and system for coordinated multiple cluster failover
CN101458808A (zh) * 2008-12-31 2009-06-17 中国建设银行股份有限公司 银行管理系统、服务器集群和相关方法
CN102035862A (zh) * 2009-09-30 2011-04-27 国际商业机器公司 Svc集群中配置节点的故障移交方法和系统

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104092572A (zh) * 2014-07-16 2014-10-08 贵州电网公司电网规划研究中心 一种基于链式变流器的可快速响应故障的链路通信方法
CN104092572B (zh) * 2014-07-16 2017-06-23 贵州电网公司电网规划研究中心 一种基于链式变流器的可快速响应故障的链路通信方法
CN106301853A (zh) * 2015-06-05 2017-01-04 华为技术有限公司 集群系统中节点的故障检测方法和装置
CN106301853B (zh) * 2015-06-05 2019-06-18 华为技术有限公司 集群系统中节点的故障检测方法和装置
CN105897508A (zh) * 2016-04-01 2016-08-24 锐捷网络股份有限公司 一种分布式数据中心业务处理的方法和核心交换机
WO2018058941A1 (zh) * 2016-09-29 2018-04-05 华为技术有限公司 一种检测集群系统通信状态的方法及网关集群
CN109240840A (zh) * 2017-07-11 2019-01-18 阿里巴巴集团控股有限公司 集群系统的容灾方法、装置和机器可读介质
CN107547257A (zh) * 2017-07-14 2018-01-05 新华三技术有限公司 一种服务器集群实现方法及装置
CN112994974A (zh) * 2021-02-09 2021-06-18 北京金山云网络技术有限公司 集群节点探测方法、装置、集群、设备和介质
CN112965847A (zh) * 2021-03-03 2021-06-15 北京百度网讯科技有限公司 微服务架构的故障处理方法、装置、设备以及存储介质
CN117033092A (zh) * 2023-10-10 2023-11-10 北京大道云行科技有限公司 单例服务故障转移方法及系统、电子设备、存储介质

Also Published As

Publication number Publication date
CN103297396B (zh) 2016-05-18
US20130227359A1 (en) 2013-08-29
US9189316B2 (en) 2015-11-17

Similar Documents

Publication Publication Date Title
CN103297396A (zh) 群集系统中管理故障转移的装置和方法
EP3647955B1 (en) Consensus-forming method in network, and node for configuring network
US7016946B2 (en) Method and system for establishing a quorum for a geographically distributed cluster of computers
US9594818B2 (en) System and method for supporting dry-run mode in a network environment
CN107918570B (zh) 一种双活系统共享仲裁逻辑盘的方法
CN101635679B (zh) 路由表的动态更新
KR20010109080A (ko) 정상 상태에서 토폴로지 메시지 트래픽 없는 분산형컴퓨팅 환경에서의 토폴로지 전파
US20100138552A1 (en) Edge peer device, pan gateway device, super peer device, and p2p network-based interconnection method
JP2008172592A (ja) クラスタシステム、コンピュータおよびその異常検出方法
US9032118B2 (en) Administration device, information processing device, and data transfer method
KR20200113995A (ko) 엣지 인공지능 서비스에 대한 고가용성 보장을 위한 삼중화 이상 다중화 구조 및 방법
JP7328907B2 (ja) 制御システム、制御方法
JP5470884B2 (ja) マルチノードシステム、異常処理方法、スイッチ、ノード及びプログラム
KR102611301B1 (ko) 전화 교환 시스템의 메시지 전달 장치 및 방법
Vasconcelos et al. Dynamic and coordinated software reconfiguration in distributed data stream systems
KR20140122966A (ko) 자율 컴퓨팅 장치들간의 토픽을 공유하는 장치 및 그 방법
CN102301337A (zh) 在高度可用的环境中保存服务的方法
JP2021120827A5 (zh)
EP3534588A1 (en) Network policy exchanging method and system
KR20200101117A (ko) 노드장애를 감지할 수 있는 네트워크 시스템 및 노드장애 감지방법
JP2016151965A (ja) 冗長構成システム及び冗長構成制御方法
JP2007172172A (ja) ファイバーチャネルスイッチおよびそれを用いたコンピュータシステム
US10122588B2 (en) Ring network uplink designation
KR20170131001A (ko) 메시지분산 서비스 환경에서의 운영 서버 제어 시스템
Rabhi et al. An efficient failure-resilient mutual exclusion algorithm for distributed systems leveraging a novel zero-message overlay structure

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: 20160518

CF01 Termination of patent right due to non-payment of annual fee