CN102904946B - 集群内节点管理方法和装置 - Google Patents
集群内节点管理方法和装置 Download PDFInfo
- Publication number
- CN102904946B CN102904946B CN201210374869.3A CN201210374869A CN102904946B CN 102904946 B CN102904946 B CN 102904946B CN 201210374869 A CN201210374869 A CN 201210374869A CN 102904946 B CN102904946 B CN 102904946B
- Authority
- CN
- China
- Prior art keywords
- node
- cluster
- legitimate
- linking number
- minimum
- 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
- 238000000034 method Methods 0.000 title claims abstract description 12
- 238000007726 management method Methods 0.000 claims description 18
- 238000004891 communication Methods 0.000 claims description 13
- 238000004883 computer application Methods 0.000 abstract 1
- 238000004364 calculation method Methods 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 230000002265 prevention Effects 0.000 description 2
- 239000012141 concentrate Substances 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
Abstract
本发明提供了一种集群内节点管理方法和装置。涉及计算机应用领域;解决了在集群系统发生脑裂造成的数据不一致的问题。该方法包括:判断集群内各节点的合法性;对判定为非法节点的节点进行重启操作。本发明提供的技术方案适用于计算机集群管理,实现了集群脑裂数据的统一。
Description
技术领域
本发明涉及计算机存储领域,尤其涉及一种集群内节点管理方法和装置。背景技术
集群文件系统为集群系统提供共享资源,并提供数据视图的一致性,即集群文件系统中的每个文件对于集群系统中的每个节点来说都是相同的。集群系统在运行过程中,可能由于各种原因,如网络阻塞等,导致集群系统分裂为两个子集群。此时处于子集群中的节点可以相互通信,而与另一个子集群中的节点无法通信。当两个子集群中的节点都仍有权限访问共享资源时,如果不采用相应的防止措施则会导致集群发生脑裂,即分裂后的子集群各自都认为自己对特定的共享资源拥有访问权限,子集群可能先后对该共享资源进行相应的读写操作,从而造成数据的不一致。为了使得集群系统能正常运行,往往需要提供相应的仲裁机制来解决集群系统发生脑裂时所引发的这类问题。
发明内容
本发明提供了一种集群内节点管理方法和装置,解决了在集群系统发生脑裂造成的数据不一致的问题。
一种集群内节点管理方法,包括:
判断集群内各节点的合法性;
对判定为非法节点的节点进行重启操作。
优选的,在共享磁盘上,所述集群内所有节点的心跳数(Heartbeat)为奇数时,判断集群内各节点的合法性性包括:
按照以下表达式计算合法节点最少票数:
合法节点最少票数=(Heartbeat+1)/2;
计算所述集群内一节点在该集群内能够正常通信的节点数量作为连接数;
将节点的连接数与所述合法节点最少票数进行比较;
在所述节点的连接数小于所述合法节点最少票数时,判定所述节点为非法节点;
在所述节点的连接数大于或等于所述合法节点最少票数时,判定所述节点为合法节点。
优选的,在共享磁盘上,所述集群内所有节点的Heartbeat为偶数时,判断集群内各节点的合法性包括:
按照以下表达式计算合法节点最少票数:
合法节点最少票数=Heartbeat/2;
计算所述集群内一节点在该集群内能够正常通信的节点数量作为连接数;
将节点的连接数与所述合法节点最少票数进行比较;
在所述节点的连接数小于所述合法节点最少票数时,判定所述节点为非法节点;
在所述节点的连接数大于或等于所述合法节点最少票数时,判定所述节点为合法节点。
优选的,上述集群内节点管理方法还包括:
选择与所述共享磁盘连接正常且编号最小的节点为基准节点。
优选的,所述将节点的连接数与所述合法节点最少票数进行比较的步骤之后,还包括:
在所述节点的连接数等于所述合法节点最少票数时,检查所述节点与所述基准节点是否处于连接状态;
在处于连接状态时,判定所述节点为合法节点;
在处于非连接状态时,判定所述节点为非法节点。
本发明还提供了一种集群内节点管理装置,包括:
合法性判断模块,用于判断集群内各节点的合法性;
重启控制模块,用于对判定为非法节点的节点进行重启操作。
优选的,所述合法性判断模块包括:
第一最少票数计算单元,用于在共享磁盘上,所述集群内所有节点的Heartbeat为奇数时按照以下表达式计算合法节点最少票数:
合法节点最少票数=(Heartbeat+1)/2;
第一连接数计算单元,用于计算所述集群内一节点在该集群内能够正常通信的节点数量作为连接数;
第一比较单元,用于将节点的连接数与所述合法节点最少票数进行比较;
第一结果判定单元,用于在所述节点的连接数小于所述合法节点最少票数时,判定所述节点为非法节点,在所述节点的连接数大于或等于所述合法节点最少票数时,判定所述节点为合法节点;
优选的,所述合法性判断模块还包括:
第二合法节点最少票数计算单元,用于在共享磁盘上,所述集群内所有节点的Heartbeat为偶数时,按照以下表达式计算合法节点最少票数:
合法节点最少票数=Heartbeat/2;
第二连接数计算单元,用于计算所述集群内一节点在该集群内能够正常通信的节点数量作为连接数;
第二比较单元,用于将节点的连接数与所述合法节点最少票数进行比较;
第二结果判定单元,用于在所述节点的连接数小于所述合法节点最少票数时,判定所述节点为非法节点,在所述节点的连接数大于或等于所述合法节点最少票数时,判定所述节点为合法节点。
本发明提供了一种集群内节点管理方法和装置,当发生集群脑裂时,各子集群判断该子集群内节点的合法性,各子集群对该子集群内的非法节点进行重启操作,提供了在集群脑裂时对节点合法性的仲裁机制及处理办法,解决了在集群系统发生脑裂造成的数据不一致的问题。
附图说明
图1为本发明的实施例一提供的一种集群内节点管理方法的流程图;
图2为Heartbeat为奇时判定节点合法性的原理示意图;
图3为Heartbeat为偶时判定节点合法性的原理示意图;
图4为本发明的实施例二提供的一种集群内节点管理装置的结构示意图;
图5为图4中合法性判断模块401的结构示意图;
图6为图4中合法性判断模块401的又一结构示意图。
具体实施方式
集群文件系统为集群系统提供共享资源,并提供数据视图的一致性,即集群文件系统中的每个文件对于集群系统中的每个节点来说都是相同的。集群系统在运行过程中,可能由于各种原因,如网络阻塞等,导致集群系统分裂为两个子集群。此时处于子集群中的节点可以相互通信,而与另一个子集群中的节点无法通信。当两个子集群中的节点都仍有权限访问共享资源时,如果不采用相应的防止措施则会导致集群发生脑裂,即分裂后的子集群各自都认为自己对特定的共享资源拥有访问权限,子集群可能先后对该共享资源进行相应的读写操作,从而造成数据的不一致。为了使得集群系统能正常运行,往往需要提供相应的仲裁机制来解决集群系统发生脑裂时所引发的这类问题。
为了解决上述问题,本发明的实施例提供了一种集群内节点管理方法和装置。下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
首先结合附图,对本发明的实施例一进行说明。
本发明实施例一提供了一种集群内节点管理方法,使用该方法对发生脑裂的集群内节点进行仲裁及后续管理的流程如图1所示,包括:
步骤101、当发生集群脑裂时,判断集群内各节点的合法性;
所有节点在共享磁盘上的心跳数为Heartbeat,如果某节点与共享磁盘连接正常,则Heartbeat数加1。
本步骤具体包含Heartbeat数为奇及为偶两种情况,下面对这两种情况进行分别说明。
1、当Heartbeat为奇时,如图2所示:
a.按照以下表达式计算合法节点最少票数Quorum:
合法节点最少票数=(Heartbeat+1)/2,合法节点最少票数为令集群内节点仲裁为合法节点所需要的最少票数;
b.计算所述集群内一节点在该集群内能够正常通信的节点数量作为连接数Connected;
c.将节点的连接数与所述合法节点最少票数进行比较;
d.在所述节点的连接数小于所述合法节点最少票数时,判定所述节点为非法节点。
e.在所述节点的连接数大于或等于所述合法节点最少票数时,判定所述节点为合法节点。
2、当Heartbeat为偶时,如图3所示:
a.按照以下表达式计算合法节点最少票数Quorum:
合法节点最少票数=Heartbeat/2,合法节点最少票数为令集群内节点仲裁为合法节点所需要的最少票数;
b.计算所述集群内一节点在该集群内能够正常通信的节点数量作为连接数Connected;
c.将节点的连接数与所述合法节点最少票数进行比较;
d.在所述节点的连接数小于所述合法节点最少票数时,判定所述节点为非法节点。
e.在所述节点的连接数大于或等于所述合法节点最少票数时,判定所述节点为合法节点。
f.而对于节点的连接数等于合法节点最少票数时,则需要首先选出一基准节点Lowest。具体的,令与共享磁盘连接正常且编号最小的节点为Lowest,检查所述节点与所述基准节点的是否处于连接状态,在处于连接状态时判定所述节点为合法节点,在处于非连接状态时判定所述节点为非法节点。
步骤102、对判定为非法节点的节点进行重启操作;
本步骤中,当节点被仲裁为非法节点后,该节点将直接进行重启操作。
下面结合附图,对本发明的实施例二进行说明。(下面的内容需要根据上面的修改作相应调整!)
本发明实施例提供了一种集群内节点管理装置,其结构如图4所示,包括:
合法性判断模块401,用于判断集群内各节点的合法性;
重启控制模块402,用于对判定为非法节点的节点进行重启操作。
优选的,所述合法性判断模块401如图5所示,包括:
第一最少票数计算单元4011,用于在共享磁盘上,所述集群内所有节点的Heartbeat为奇数时按照以下表达式计算合法节点最少票数:
合法节点最少票数=(Heartbeat+1)/2;
第一连接数计算单4012,用于计算所述集群内一节点在该集群内能够正常通信的节点数量作为连接数;
第一比较单元4013,用于将节点的连接数与所述合法节点最少票数进行比较;
第一结果判定单元4014,用于在所述节点的连接数小于所述合法节点最少票数时,判定所述节点为非法节点,在所述节点的连接数大于或等于所述合法节点最少票数时,判定所述节点为合法节点。
优选的,所述合法性判断模块如图6所示,还包括:
第二合法节点最少票数计算单元4015,用于在共享磁盘上,所述集群内所有节点的Heartbeat为偶数时,按照以下表达式计算合法节点最少票数:
合法节点最少票数=Heartbeat/2;
第二连接数计算单元4016,用于计算所述集群内一节点在该集群内能够正常通信的节点数量作为连接数;
第二比较单元4017,用于将节点的连接数与所述合法节点最少票数进行比较;
第二结果判定单元4018,用于在所述节点的连接数小于所述合法节点最少票数时,判定所述节点为非法节点,在所述节点的连接数大于或等于所述合法节点最少票数时,判定所述节点为合法节点。
本发明的实施例提供了一种集群内节点管理方法和装置,当发生集群脑裂时,各子集群判断该子集群内节点的合法性,各子集群对该子集群内的非法节点进行重启操作,提供了在集群脑裂时对节点合法性的仲裁机制及处理办法,解决了在集群系统发生脑裂造成的数据不一致的问题。通过将每个集群节点与其他节点的通信状态和集群所有节点在共享磁盘上的心跳信息作为仲裁合法集群的考虑因素,有效确保了共享资源在集群系统中的一致性和可用性。
本领域普通技术人员可以理解上述实施例的全部或部分步骤可以使用计算机程序流程来实现,所述计算机程序可以存储于一计算机可读存储介质中,所述计算机程序在相应的硬件平台上(如系统、设备、装置、器件等)执行,在执行时,包括方法实施例的步骤之一或其组合。
可选地,上述实施例的全部或部分步骤也可以使用集成电路来实现,这些步骤可以被分别制作成一个个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
上述实施例中的各装置/功能模块/功能单元可以采用通用的计算装置来实现,它们可以集中在单个的计算装置上,也可以分布在多个计算装置所组成的网络上。
上述实施例中的各装置/功能模块/功能单元以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。上述提到的计算机可读取存储介质可以是只读存储器,磁盘或光盘等。
任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求所述的保护范围为准。
Claims (4)
1.一种集群内节点管理方法,其特征在于,包括:
判断集群内各节点的合法性;
对判定为非法节点的节点进行重启操作;
在共享磁盘上,所述集群内所有节点的心跳数(Heartbeat)为奇数时,判断集群内各节点的合法性包括:
按照以下表达式计算合法节点最少票数:
合法节点最少票数=(Heartbeat+1)/2;
计算所述集群内一节点在该集群内能够正常通信的节点数量作为连接数;
将节点的连接数与所述合法节点最少票数进行比较;
在所述节点的连接数小于所述合法节点最少票数时,判定所述节点为非法节点;
在所述节点的连接数大于或等于所述合法节点最少票数时,判定所述节点为合法节点;
或者在共享磁盘上,所述集群内所有节点的Heartbeat为偶数时,判断集群内各节点的合法性包括:
按照以下表达式计算合法节点最少票数:
合法节点最少票数=Heartbeat/2;
计算所述集群内一节点在该集群内能够正常通信的节点数量作为连接数;
将节点的连接数与所述合法节点最少票数进行比较;
在所述节点的连接数小于所述合法节点最少票数时,判定所述节点为非法节点;
在所述节点的连接数大于或等于所述合法节点最少票数时,判定所述节 点为合法节点。
2.根据权利要求1所述的集群内节点管理方法,其特征在于,该方法还包括:
选择与所述共享磁盘连接正常且编号最小的节点为基准节点。
3.根据权利要求2所述的集群内节点管理方法,其特征在于,所述将节点的连接数与所述合法节点最少票数进行比较的步骤之后,还包括:
在所述节点的连接数等于所述合法节点最少票数时,检查所述节点与所述基准节点是否处于连接状态;
在处于连接状态时,判定所述节点为合法节点;
在处于非连接状态时,判定所述节点为非法节点。
4.一种集群内节点管理装置,其特征在于,包括:
合法性判断模块,用于判断集群内各节点的合法性;
重启控制模块,用于对判定为非法节点的节点进行重启操作;
所述合法性判断模块包括:
第一最少票数计算单元,用于在共享磁盘上,所述集群内所有节点的Heartbeat为奇数时按照以下表达式计算合法节点最少票数:
合法节点最少票数=(Heartbeat+1)/2;
第一连接数计算单元,用于计算所述集群内一节点在该集群内能够正常通信的节点数量作为连接数;
第一比较单元,用于将节点的连接数与所述合法节点最少票数进行比较;
第一结果判定单元,用于在所述节点的连接数小于所述合法节点最少票数时,判定所述节点为非法节点,在所述节点的连接数大于或等于所述合法节点最少票数时,判定所述节点为合法节点;
所述合法性判断模块还包括:
第二合法节点最少票数计算单元,用于在共享磁盘上,所述集群内所有 节点的Heartbeat为偶数时,按照以下表达式计算合法节点最少票数:
合法节点最少票数=Heartbeat/2;
第二连接数计算单元,用于计算所述集群内一节点在该集群内能够正常通信的节点数量作为连接数;
第二比较单元,用于将节点的连接数与所述合法节点最少票数进行比较;
第二结果判定单元,用于在所述节点的连接数小于所述合法节点最少票数时,判定所述节点为非法节点,在所述节点的连接数大于或等于所述合法节点最少票数时,判定所述节点为合法节点。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210374869.3A CN102904946B (zh) | 2012-09-29 | 2012-09-29 | 集群内节点管理方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210374869.3A CN102904946B (zh) | 2012-09-29 | 2012-09-29 | 集群内节点管理方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102904946A CN102904946A (zh) | 2013-01-30 |
CN102904946B true CN102904946B (zh) | 2015-06-10 |
Family
ID=47576981
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210374869.3A Active CN102904946B (zh) | 2012-09-29 | 2012-09-29 | 集群内节点管理方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102904946B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103647820B (zh) * | 2013-12-09 | 2016-11-23 | 华为数字技术(苏州)有限公司 | 用于分布式集群系统的仲裁方法及仲裁装置 |
WO2016106682A1 (zh) * | 2014-12-31 | 2016-07-07 | 华为技术有限公司 | 一种集群脑裂后仲裁处理方法、仲裁存储装置以及系统 |
CN105430052B (zh) * | 2015-10-30 | 2018-09-07 | 浪潮(北京)电子信息产业有限公司 | 一种用于集群系统的仲裁方法和装置 |
CN109672559A (zh) * | 2018-12-04 | 2019-04-23 | 武汉烽火信息集成技术有限公司 | 一种集群系统中集群成员的仲裁方法及系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102308559A (zh) * | 2011-07-26 | 2012-01-04 | 华为技术有限公司 | 一种用于集群计算机系统的投票仲裁方法及装置 |
CN102394914A (zh) * | 2011-09-22 | 2012-03-28 | 浪潮(北京)电子信息产业有限公司 | 集群脑裂处理方法和装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4505763B2 (ja) * | 2007-01-31 | 2010-07-21 | ヒューレット−パッカード デベロップメント カンパニー エル.ピー. | ノードクラスタの管理 |
US9262229B2 (en) * | 2011-01-28 | 2016-02-16 | Oracle International Corporation | System and method for supporting service level quorum in a data grid cluster |
-
2012
- 2012-09-29 CN CN201210374869.3A patent/CN102904946B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102308559A (zh) * | 2011-07-26 | 2012-01-04 | 华为技术有限公司 | 一种用于集群计算机系统的投票仲裁方法及装置 |
CN102394914A (zh) * | 2011-09-22 | 2012-03-28 | 浪潮(北京)电子信息产业有限公司 | 集群脑裂处理方法和装置 |
Non-Patent Citations (1)
Title |
---|
高可用性集群中多个节点的心跳模型研究;尹康凯等;《计算机工程》;20050831;第31卷(第15期);第102页第1.2节 * |
Also Published As
Publication number | Publication date |
---|---|
CN102904946A (zh) | 2013-01-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10812284B2 (en) | IoT provisioning service | |
US20180295034A1 (en) | Techniques for analytics-driven hybrid concurrency control in clouds | |
EP2705433B1 (en) | Method and system for dynamically creating and servicing master-slave pairs within and across switch fabrics of a portable computing device | |
US8738701B2 (en) | Arbitration of disk ownership in a storage pool | |
CN102402395B (zh) | 基于仲裁磁盘的高可用系统不间断运行方法 | |
CN108540315B (zh) | 分布式存储系统、方法和装置 | |
CN103248667B (zh) | 一种分布式系统的资源访问方法和系统 | |
US11070979B2 (en) | Constructing a scalable storage device, and scaled storage device | |
US10169097B2 (en) | Dynamic quorum for distributed systems | |
CN114244835B (zh) | 基于区块链的去中心化自适应协同训练方法和装置 | |
US20120036345A1 (en) | Embedded device and file change notification method of the embedded device | |
CN106878382B (zh) | 一种分布式仲裁集群中动态改变集群规模的方法及装置 | |
CN102904946B (zh) | 集群内节点管理方法和装置 | |
US10826812B2 (en) | Multiple quorum witness | |
WO2017012383A1 (zh) | 一种服务注册方法、使用方法及相关装置 | |
CN105721486A (zh) | 一种单用户多系统登录框架及方法 | |
WO2012042724A1 (en) | Systems and methods for managing a virtual tape library domain | |
CN110612510B (zh) | 无需专用仲裁器的输入/输出(i/o)隔离 | |
CN105430052A (zh) | 一种用于集群系统的仲裁方法和装置 | |
CN103500108A (zh) | 系统内存访问方法、节点控制器和多处理器系统 | |
CN110309224B (zh) | 一种数据复制方法及装置 | |
CN109298974B (zh) | 系统控制方法、装置、计算机及计算机可读存储介质 | |
WO2019153493A1 (zh) | 基于h5页面的社交图谱生成方法、电子装置及存储介质 | |
CN112733123B (zh) | 授权管理方法和分布式管理系统 | |
CN112073492B (zh) | 请求执行方法、装置、电子设备及存储介质 |
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 |