CN107508694A - 一种集群内的节点管理方法及节点设备 - Google Patents
一种集群内的节点管理方法及节点设备 Download PDFInfo
- Publication number
- CN107508694A CN107508694A CN201610416731.3A CN201610416731A CN107508694A CN 107508694 A CN107508694 A CN 107508694A CN 201610416731 A CN201610416731 A CN 201610416731A CN 107508694 A CN107508694 A CN 107508694A
- Authority
- CN
- China
- Prior art keywords
- node
- management
- subgroup
- converted
- nodes
- 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/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
-
- 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/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0823—Configuration setting characterised by the purposes of a change of settings, e.g. optimising configuration for enhancing reliability
- H04L41/0836—Configuration setting characterised by the purposes of a change of settings, e.g. optimising configuration for enhancing reliability to enhance reliability, e.g. reduce downtime
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/51—Discovery or management thereof, e.g. service location protocol [SLP] or web services
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Cardiology (AREA)
- General Health & Medical Sciences (AREA)
- Hardware Redundancy (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种集群内的节点管理方法及节点设备,所述方法包括:第一节点检测到节点间心跳连接异常时,依据第一管理策略确定所述第一节点为所在子群的预备管理节点;基于第二管理策略判断所述第一节点是否可以由预备管理节点转换成管理节点,确定所述第一节点可以由预备管理节点转换成管理节点时,作为管理节点对集群资源进行节点间的重配置及节点间任务调度。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种集群内的节点管理方法及节点设备。
背景技术
为了使集群的整体服务尽可能可用,当高可用性集群中的节点发生故障时,集群系统应该迅速做出反应,将该系统的任务分配到集群中其它正在工作的节点上执行,而故障节点的共享资源(比如IP、磁阵)也会被其他节点接管。
一般的,高可用性集群中节点间使用心跳(heartbeat)检测节点的情况,然而在心跳失效的时候,可能会发生脑裂(split-brain)问题。脑裂会引起数据的不完整性,并且可能会对服务造成严重影响,一个高可用性集群,不可避免要面对脑裂问题,目前,针对脑裂问题有一些解决方案:
1)添加冗余的心跳,然而这只能减少而不能避免脑裂;
2)做好对裂脑的监控报警,如邮件以及手机短信等,在问题发生的时候能够人为的介入到仲裁,降低损失,然而这需要人工参与;
3)启用磁盘锁,正在服务一方锁住共享磁盘,脑裂发生的时候,让对方完全抢不走共享的磁盘资源,然而如果占用共享磁盘的一方不主动解锁,另一方就永远得不到共享磁盘,如果占用共享磁盘的节点突然死机或者崩溃,另一方不可能执行解锁命令,后备节点也就接管不了共享的资源和应用服务;
4)增加第三方仲裁的机制,确定资源获得者,然而这需要引入第三方,且第三方如果发生故障,脑裂问题变无法解决。
综上所述,提供一种集群内的节点管理方案,能够在集群节点异常情况下利用集群已有的节点设备进行节点管理,避免脑裂问题的发生,已成为亟待解决的问题。
发明内容
本发明实施例提供一种集群内的节点管理方法及节点设备,至少解决了现有技术中存在的问题,能够在不引入第三方设备的情况下,利用集群现有的资源有效地解决脑裂问题,保证集群的高可用性和可靠性。
本发明实施例的技术方案是这样实现的:
本发明实施例提供了一种集群内的节点管理方法,所述方法应用于第一节点,所述方法包括:
检测到节点间心跳连接异常时,依据第一管理策略确定所述第一节点为所在子群的预备管理节点;
基于第二管理策略判断所述第一节点是否可以由预备管理节点转换成管理节点,确定所述第一节点可以由预备管理节点转换成管理节点时,作为管理节点对集群资源进行节点间的重配置及节点间任务调度。
上述方案中,所述检测到节点间心跳连接异常之前,所述方法还包括:
依据第三管理策略确定第二节点为管理节点,以使所述第二节点进行资源配置及任务调度。
上述方案中,所述基于第二管理策略判断所述第一节点是否可以由预备管理节点转换成管理节点,包括:
基于预设的网络检测方式判断所述第一节点是否存在对外网络连接,判断为是时,确定所述第一节点可以转换成管理节点;判断为否时,确定所述第一节点不能转换成管理节点。
上述方案中,所述集群内的共享存储设备支持多节点共同访问;
所述基于第二管理策略判断所述第一节点是否可以由预备管理节点转换成管理节点,包括:
确定所述共享存储设备未被占用时,在所述共享存储设备上创建占位文件,并在一定时间后检测所述特定目录下是否存在其它预备管理节点创建的占位文件,若不存在,则确定所述第一节点可以转换成管理节点;否则,对所述第一节点所在子群的节点数及所述其它预备管理节点所在子群的节点数进行比较,并基于比较结果判定所述第一节点是否可以由预备管理节点转换成管理节点。
上述方案中,对所述第一节点所在子群的节点数及所述其它预备管理节点所在子群的节点数进行比较,并基于比较结果判定所述第一节点是否可以由预备管理节点转换成管理节点,包括:
确定所述第一节点所在子群的节点数多于所述其它预备管理节点所在子群的节点数时,确定所述第一节点可以转换成管理节点;
确定所述第一节点所在子群的节点数最多且存在与所述第一节点所在子群的节点数相同的子群时,判断所述第一节点的节点编号是否小于与所述第一节点所在子群的节点数相同的子群中的预备管理节点的节点编号,并在判断为是时确定所述第一节点可以转换成管理节点,判断为否时确定所述第一节点不可以转换成管理节点。
上述方案中,所述集群内的共享存储设备支持单节点独占访问;
所述基于第二管理策略判断所述第一节点是否可以由预备管理节点转换成管理节点,包括:
确定所述第一节点对所述共享存储设备的第一分区的访问时间,并在所述访问时间到达时挂载所述第一分区,且在确定所述第一分区内不存在占位文件时,确定所述第一节点可以转换成管理节点;在确定所述第一分区内存在占位文件时,确定所述第一节点不可以转换成管理节点。
上述方案中,所述依据第一管理策略确定所述第一节点为所在子群的预备管理节点,包括:
确定所述第一节点为所述第一节点所在子群内节点编号最小的节点,则所述第一节点为所在子群的预备管理节点。
本发明实施例还提供了一种节点设备,所述节点设备包括:确定模块及判断模块;
所述确定模块,用于检测到节点间心跳连接异常时,依据第一管理策略确定所述第一节点为所在子群的预备管理节点;
所述判断模块,用于基于第二管理策略判断所述第一节点是否可以由预备管理节点转换成管理节点,确定所述第一节点可以由预备管理节点转换成管理节点时,作为管理节点对集群资源进行节点间的重配置及节点间任务调度。
上述方案中,所述确定模块,还用于依据第三管理策略确定第二节点为管理节点,以使所述第二节点进行资源配置及任务调度。
上述方案中,所述判断模块,还用于基于预设的网络检测方式判断所述第一节点是否存在对外网络连接,判断为是时,确定所述第一节点可以转换成管理节点;判断为否时,确定所述第一节点不能转换成管理节点。
上述方案中,所述集群内的共享存储设备支持多节点共同访问;
所述判断模块,还用于确定所述共享存储设备未被占用时,在所述共享存储设备的特定目录下创建占位文件,并在一定时间后检测所述特定目录下是否存在其它预备管理节点创建的占位文件,若不存在,则确定所述第一节点可以转换成管理节点;否则,对所述第一节点所在子群的节点数及所述其它预备管理节点所在子群的节点数进行比较,并基于比较结果判定所述第一节点是否可以由预备管理节点转换成管理节点。
上述方案中,所述判断模块,还用于确定所述第一节点所在子群的节点数多于所述其它预备管理节点所在子群的节点数时,确定所述第一节点可以转换成管理节点;
确定所述第一节点所在子群的节点数最多且存在与所述第一节点所在子群的节点数相同的子群时,判断所述第一节点的节点编号是否小于与所述第一节点所在子群的节点数相同的子群中的预备管理节点的节点编号,并在判断为是时确定所述第一节点可以转换成管理节点,判断为否时确定所述第一节点不可以转换成管理节点。
上述方案中,所述集群内的共享存储设备支持单节点独占访问;
所述判断模块,还用于确定所述第一节点对所述共享存储设备的第一分区的访问时间,并在所述访问时间到达时挂载所述第一分区,判断所述第一分区内是否存在占位文件,确定所述第一分区内不存在占位文件时,确定所述第一节点可以转换成管理节点;在确定所述第一分区内存在占位文件时,确定所述第一节点不可以转换成管理节点。
上述方案中,所述确定模块,还用于确定所述第一节点为所述第一节点所在子群内节点编号最小的节点,则所述第一节点为所在子群的预备管理节点。
应用本发明上述集群内的节点管理方法及节点设备,高可用集群中的第一节点检测到节点间心跳连接异常时,依据预设的第一管理策略确定所述第一节点为预备管理节点;基于预设的第二管理策略判断所述第一节点是否可以由预备管理节点转换成管理节点,以在判断为是时,作为管理节点对集群资源进行节点间的重配置及节点间任务调度;如此,在节点间心跳连接异常时,集群分裂成两个或两个以上的子群,而第一节点在确定自身成为所在子群的预备管理节点后,进一步判断是否可以成为集群的管理节点,并在判断为是的情况下,作为管理节点对集群资源进行节点间的重配置及节点间任务调度,有效的避免了脑裂的发生,保证了集群的高可用性和可靠性,更由于第一节点为集群内的节点,因此无需引入第三方管理设备,实现简单。
附图说明
图1为本发明实施例中集群内的节点管理方法流程示意图一;
图2为本发明实施例中集群的架构示意图;
图3为本发明实施例中集群内的节点管理方法流程示意图二;
图4为本发明实施例中集群分裂成多个子群并确定预备管理节点的示意图;
图5为本发明实施例中集群内的节点管理方法流程示意图三;
图6为本发明实施例中集群内的节点管理方法流程示意图四;
图7为本发明实施例中节点设备的组成结构示意图。
具体实施方式
发明人在实施本发明的过程中发现,一个高可用性集群,不可避免要面对脑裂问题,常见的脑裂情况可以描述如下:
集群中的节点A和节点B会通过心跳检测以确认对方存在,在通过心跳检测确认不到对方存在时,就接管对应的共享资源。如果突然间,节点A和节点B之间的心跳不存在了(如网络断开),而节点A和节点B事实上却都处于激活(Active)状态,此时节点A要接管节点B的资源,同时节点B要接管节点A的资源,这时就是脑裂。
当集群的心跳网络出现异常时,集群可能分裂成多个节点组,即子群,每个子群分别接管服务并且访问文件系统资源(例如并发写入文件系统)导致数据损坏。
脑裂会引起数据的不完整性,并且可能会对服务造成严重影响。
集群的脑裂会引起数据的不完整性:集群中的节点(在脑裂期间)同时访问同一共享资源,而此时并没有锁机制来控制针对该数据访问,那么就存在数据的不完整性或其他错误的可能。
集群的脑裂还会对服务造成严重影响,举例来说,可能节点A和节点B不停在抢占一个IP资源,造成网络数据不能正常传输。
集群的脑裂会引起严重的负面后果,现有技术中应对脑裂的方案又存在不同的缺陷,而发明人在实施本发明的过程中还发现,如果集群中的第一节点在检测到节点间心跳连接异常时,依据预设的第一管理策略确定所述第一节点为所在子群的预备管理节点;基于预设的第二管理策略判断所述第一节点是否可以由预备管理节点转换成管理节点,以在判断为是时,作为管理节点对集群资源进行节点间的重配置及节点间任务调度;如此,在节点间心跳连接异常时,集群分裂成两个或两个以上的子群,第一节点在确定自身成为所在子群的预备管理节点后,进一步判断是否可以成为集群的管理节点,并在判断为是的情况下,作为管理节点对集群资源进行节点间的重配置及节点间任务调度,有效的避免了脑裂的发生,保证了集群的高可用性和可靠性,更由于第一节点为集群内的节点,因此无需引入第三方管理设备,实现简单。
下面结合附图和具体实施例对本发明作进一步详细说明。
实施例一
图1为本发明实施例中集群内的节点管理方法流程示意图,所述方法应用于第一节点,所述第一节点为所述集群内节点,图2为本发明实施例中集群的架构示意图,如图1、图2所示,本发明实施例中集群内的节点管理方法包括:
步骤101:检测到节点间心跳连接异常时,依据预设的第一管理策略确定所述第一节点为所在子群的预备管理节点。
这里,当集群内的第一节点通过心跳检测判断得到节点间的心跳连接存在异常,即当前集群的心跳平面存在节点不通时,此时集群被分裂成两个或两个以上的子群,第一节点存在于分裂成的两个或两个以上的子群中的一个。
第一节点依据预设的第一管理策略确定自身为所在子群的预备管理节点,由于在具体实施时,该第一管理策略适用于集群内所有节点,因此,可以理解为第一节点所在子群的所有节点通过第一管理策略选举出第一节点为预备管理节点;同时,由于心跳异常分裂出的其它子群内的节点也会依据所述第一管理策略选举出各个子群的预备管理节点。
在具体实施时,预设的第一管理策略可以为任意预先设置的选举规则,如,可设置节点编号(集群内每个节点都有唯一编号)最小/最大的节点作为预备管理节点。
基于本发明上述实施例,在实际应用中,在第一节点检测到节点间心跳连接异常之前,所述方法还可以包括:
依据第三管理策略确定第二节点为管理节点,以使所述第二节点进行资源配置及任务调度;所述第三管理策略可以和所述第一管理策略相同或不同,当相同时,在集群正常时,集群内的节点通过预设的第一管理策略选举出第二节点作为管理节点,以进行资源配置及任务调度,如在共享存储设备上创建特定分区、目录或文件,用于集群异常情况下节点之间协商;具体可以为确定集群内节点编号最小的节点为第二节点,则所述第二节点成为管理节点。
需要说明的是,任何情况下,同一时刻集群内只有一个管理节点,因此,当集群内出现心跳异常时,在集群正常时确定的管理节点便不再是管理节点。
步骤102:基于预设的第二管理策略判断所述第一节点是否可以由预备管理节点转换成管理节点,以在判断为是时,作为管理节点对集群资源进行节点间的重配置及节点间任务调度。
在实际实施时,由于集群内节点间心跳异常而分裂成的子群基于第一管理策略分别确定了各自子群的预备管理节点,然而,为了避免脑裂,仅可以有一个子群可以正常工作,因此,需要进一步从各个预备管理节点中确定一个作为管理节点,以对集群资源进行节点间的重配置及节点间任务调度,相应的,确定的管理节点所在的子群即为工作的子群,其它子群均停止工作。
第一节点基于预设的第二管理策略判断自身是否可以成为管理节点,并在判断为是时,作为管理节点对集群资源进行节点间的重配置及节点间任务调度;
这里,所述第二管理策略为依据所述集群的实际情况预先设置,优选的,在实际应用中,若所述集群存在对外连接的网络时,优先设置所述第二管理策略为:第一节点判断自身是否存在对外网络连接,即判断和外部网络实体是否连通,判断为是时,确定所述第一节点可以转换成管理节点;判断为否时,确定所述第一节点不能转换成管理节点;
而当所述集群不存在对外连接的网络,集群的共享存储设备支持多节点共同访问时,优先设置所述第二管理策略为:第一节点判断所述共享存储设备是否被占用,在所述共享存储设备未被占用时,在所述共享存储设备的特定目录下创建占位文件,并在一定时间后检测所述特定目录下是否存在其它预备管理节点创建的占位文件,若不存在,则确定所述第一节点可以转换成管理节点;否则,对所述第一节点所在子群的节点数及所述其它预备管理节点所在子群的节点数进行比较,并基于比较结果判定所述第一节点是否可以由预备管理节点转换成管理节点;
而当所述集群不存在对外连接的网络,集群的共享存储设备仅支持单节点独占访问时,优先设置所述第二管理策略为:第一节点确定自身对所述共享存储设备的第一分区的访问时间,并在所述访问时间到达时挂载所述第一分区,判断所述第一分区内是否存在占位文件,若所述第一分区内不存在占位文件,确定所述第一节点可以转换成管理节点。
应用本发明上述实施例,当集群内出现节点间心跳异常时,集群内的第一节点在确定自身成为所在子群的预备管理节点后,进一步判断是否可以成为集群的管理节点,并在判断为是的情况下,作为管理节点对集群资源进行节点间的重配置及节点间任务调度,以使得集群系统负载均衡,有效的避免了脑裂的发生,保证了集群的高可用性和可靠性,更由于第一节点为集群内的节点,因此无需引入第三方管理设备,实现简单。
实施例二
图3为本发明实施例中集群内的节点管理方法流程示意图,所述集群存在对外网络连接,如图3所示,本发明实施例中集群内的节点管理方法包括:
步骤301:第一节点依据预设的第一管理策略确定第二节点为管理节点,以使所述第二节点进行资源配置及任务调度。
在本实施例中,由于所述集群存在对外连接的网络,因此,可预先设置对外连接的网络平面作为冗余的心跳平面,如果有多个网络平面,则可选取一个关键网络平面作为冗余心跳平面;所述关键网络平面可以为若该平面异常会影响数据的处理的平面。
若所述集群存在共享存储设备,则本步骤之后,即确定第二节点为管理节点之后,所述第二节点可在所述共享存储设备上创建特定分区、目录或文件,用于集群异常情况下节点之间协商。
在本实施例中,第一节点确定集群内节点编号最小的节点为管理节点。
步骤302:第一节点检测到节点间心跳连接异常时,依据所述第一管理策略确定自身为所在子群的预备管理节点。
这里,当集群内存在心跳连接异常时,集群被分裂成两个或两个以上的子群,第一节点存在于分裂成的两个或两个以上的子群中的一个,每个子群内的节点均会依据所述第一管理策略确定各自子群的预备管理节点;如图4所示为本发明实施例中集群分裂成多个子群并确定预备管理节点的示意图;其中,A-C、A-D、A-E之间心跳异常,即节点A及节点B形成一个子群,剩余节点形成一个子群。
在本实施例中,第一节点依据所述第一管理策略确定自身为所在子群的预备管理节点,包括:第一节点确定自身为所在子群的节点编号最小的节点时,则确定第一节点为所在子群的预备管理节点。
在实际实施时,由于集群内节点间心跳异常而分裂成的子群基于第一管理策略分别确定了各自子群的预备管理节点,然而,为了避免脑裂,仅可以有一个子群可以正常工作,因此,需要进一步从各个预备管理节点中确定一个作为管理节点,以对集群资源进行节点间的重配置及节点间任务调度,相应的,确定的管理节点所在的子群即为工作的子群,其它子群均停止工作。
步骤303:第一节点基于预设的网络检测方式判断自身是否存在对外网络连接,如果存在,执行步骤304;否则执行步骤305。
在实际应用中,所述预设的网络检测方式可以为ping或者地址解析协议(ARP,Address Resolution Protocol);
第一节点判断自身是否存在对外网络连接,即判断和外部网络实体是否连通。
步骤304:确定自身可以成为管理节点,并作为管理节点对集群资源进行节点间的重配置及节点间任务调度。
在具体实施时,若有节点恢复心跳,可维持所述第一节点的管理节点位置不变,也可以依据第一管理策略及第二管理策略重新确定管理节点。
步骤305:确定自身不能成为管理节点,结束本次处理流程。
应用本发明上述实施例,集群利用自身内部的节点实现自我管理,当集群内出现心跳异常时,第一节点在确定自身成为子群内预备管理节点的情况下,进一步通过网络平面的方式,即通过判断自身是否存在对外网络连接来判断自身是否可成为管理节点,进而在可以成为管理节点的情况下,作为管理节点对集群资源进行节点间的重配置及节点间任务调度,以使得集群系统负载均衡,有效的避免了脑裂的发生,保证了集群的高可用性和可靠性。
实施例三
图5为本发明实施例中集群内的节点管理方法流程示意图,所述集群不存在对外网络连接,但存在支持多节点共同访问的共享存储设备,如图5所示,本发明实施例中集群内的节点管理方法包括:
步骤501:第一节点依据预设的第一管理策略确定第二节点为管理节点,以使所述第二节点进行资源配置及任务调度。
在本实施例中,由于所述集群存在共享存储设备,因此,本步骤之后,即确定第二节点为管理节点之后,所述第二节点可在所述共享存储设备上创建特定分区、目录或文件,用于集群异常情况下节点之间协商。
在本实施例中,第一节点确定集群内节点编号最小的节点为管理节点。
步骤502:第一节点检测到节点间心跳连接异常时,依据所述第一管理策略确定自身为所在子群的预备管理节点。
这里,当集群内存在心跳连接异常时,集群被分裂成两个或两个以上的子群,第一节点存在于分裂成的两个或两个以上的子群中的一个,每个子群内的节点均会依据所述第一管理策略确定各自子群的预备管理节点;如图4所示为本发明实施例中集群分裂成多个子群并确定预备管理节点的示意图。
在本实施例中,第一节点依据所述第一管理策略确定自身为所在子群的预备管理节点,包括:第一节点确定自身为所在子群的节点编号最小的节点时,则确定第一节点为所在子群的预备管理节点。
在实际实施时,由于集群内节点间心跳异常而分裂成的子群基于第一管理策略分别确定了各自子群的预备管理节点,然而,为了避免脑裂,仅可以有一个子群可以正常工作,因此,需要进一步从各个预备管理节点中确定一个作为管理节点,以对集群资源进行节点间的重配置及节点间任务调度,相应的,确定的管理节点所在的子群即为工作的子群,其它子群均停止工作。
步骤503:第一节点判断集群的共享存储设备是否被占用,如果未被占用,执行步骤504;如果被占用,执行步骤509。
在集群内节点心跳正常时,所述第二节点会在集群的共享存储设备上创建一个标识文件,作为对所述共享存储设备的占用标识,并定时(如S秒,S大小可依据实际需要设定)更新所述标识文件(如更新该标识文件的创建时间和/或内容);
而在具体实施本步骤的时候,第一节点通过周期性的检测第二节点在共享存储设备上创建的标识文件的变化情况来判断集群的共享存储设备是否被占用,具体可以包括:第一节点每隔W秒(W≥S)检测一次所述标识文件是否发生变化,若连续检测T次(T为正整数,具体值可依据实际需要进行设置)后所述标识文件均未发生变化,则确定所述共享存储设备未被占用;否则,确定所述共享存储设备已被占用。
步骤504:在所述共享存储设备的特定目录下创建占位文件,并在一定时间后检测所述特定目录下是否存在其它预备管理节点创建的占位文件,如果存在,执行步骤505;否则,执行步骤508。
这里,当第一节点确定集群的共享存储设备未被占用时,便可在共享存储设备的特定目录下创建占位文件,该占位文件包含了第一节点的节点编号信息及第一节点所在子群的节点数信息,相应的,其它预备管理节点创建的占位文件则会携带所述其它预备管理节点的节点编号信息及相应所在子群的节点数信息;所述一定时间的长短可以依据实际需要进行设定,但需大于S秒。
步骤505:比较所述第一节点所在子群的节点数及所述其它预备管理节点所在子群的节点数,判断所述第一节点所在子群的节点数是否最多,如果是,执行步骤506;否则,执行步骤509。
步骤506:判断所述其它预备管理节点所在子群中是否存在与所述第一节点所在子群的节点数相同的子群,如果存在,执行步骤507;否则,执行步骤508。
步骤507:判断第一节点的节点编号是否小于与第一节点所在子群的节点数相同的子群中的预备管理节点的节点编号,如果是,执行步骤508;否则,执行步骤509。
步骤508:确定第一节点可以成为管理节点,并作为管理节点对集群资源进行节点间的重配置及节点间任务调度。
在具体实施时,若有节点恢复心跳,可维持所述第一节点的管理节点位置不变,也可以依据第一管理策略及第二管理策略重新确定管理节点。
步骤509:确定第一节点不能成为管理节点,结束本次处理流程。
应用本发明上述实施例,当集群内出现心跳异常时,第一节点在确定自身成为子群内预备管理节点的情况下,进一步基于共享存储设备的占用情况、占位文件的创建及检测、第一节点所在子群节点数信息、第一节点的节点编号信息等来判断自身是否可成为管理节点,进而在可以成为管理节点的情况下,作为管理节点对集群资源进行节点间的重配置及节点间任务调度,以使得集群系统负载均衡,有效的避免了脑裂的发生,保证了集群的高可用性和可靠性。
实施例四
图6为本发明实施例中集群内的节点管理方法流程示意图,所述集群不存在对外网络连接,仅存在支持单节点独占访问的共享存储设备,如图6所示,本发明实施例中集群内的节点管理方法包括:
步骤601:第一节点依据预设的第一管理策略确定第二节点为管理节点,以使所述第二节点进行资源配置及任务调度。
在本实施例中,由于所述集群存在共享存储设备,因此本步骤之后,即确定第二节点为管理节点之后,所述第二节点可在所述共享存储设备上创建特定分区、目录或文件,用于集群异常情况下节点之间协商。
在本实施例中,第一节点确定集群内节点编号最小的节点为管理节点。
步骤602:第一节点检测到节点间心跳连接异常时,依据所述第一管理策略确定自身为所在子群的预备管理节点。
这里,当集群内存在心跳连接异常时,集群被分裂成两个或两个以上的子群,第一节点存在于分裂成的两个或两个以上的子群中的一个,每个子群内的节点均会依据所述第一管理策略确定各自子群的预备管理节点;如图4所示为本发明实施例中集群分裂成多个子群并确定预备管理节点的示意图。
在本实施例中,第一节点依据所述第一管理策略确定自身为所在子群的预备管理节点,包括:第一节点确定自身为所在子群的节点编号最小的节点时,则确定第一节点为所在子群的预备管理节点。
在实际实施时,由于集群内节点间心跳异常而分裂成的子群基于第一管理策略分别确定了各自子群的预备管理节点,然而,为了避免脑裂,仅可以有一个子群可以正常工作,因此,需要进一步从各个预备管理节点中确定一个作为管理节点,以对集群资源进行节点间的重配置及节点间任务调度,相应的,确定的管理节点所在的子群即为工作的子群,其它子群均停止工作。
步骤603:第一节点确定自身对所述共享存储设备的第一分区的访问时间。
这里,所述第一分区为所述第二节点在所述共享存储设备上创建的用于容灾时节点协商的小分区,在集群内节点间心跳正常时,第一分区处于清空状态。
由于集群的共享存储设备仅支持单节点独占访问,也即同一时间,仅允许一个节点访问该共享存储设备,编号为N的节点可以访问的时间段为当天零点开始后的n*M+N*T至n*M+(N+1)*T秒,其中n大于等于0,M为总结点数,N为节点编号,T为可配置的安全访问时长。
步骤604:第一节点确定自身的访问时间到达时,挂载所述第一分区,并判断所述第一分区内是否存在占位文件,若不存在,执行步骤605;否则,执行步骤606。
这里,当第一节点发现第一分区内存在占位文件时,确定共享存储设备被占用,如果第一分区内不存在占位文件,即共享存储设备未被占用;其中,所述占位文件指的是预备管理节点创建的携带自身节点编号及所在子群节点数的文件。
步骤605:确定自身可以成为管理节点,在所述第一分区内创建占位文件,并卸载第一分区。
第一节点确定自身可以成为管理节点后,在所述第一分区内创建占位文件,以标识占用所述共享存储文件,并作为管理节点对集群资源进行节点间的重配置及节点间任务调度。
在具体实施时,若有节点恢复心跳,可维持所述第一节点的管理节点位置不变,也可以依据第一管理策略及第二管理策略重新确定管理节点。
步骤606:确定自身不能成为管理节点,结束本次处理流程。
应用本发明上述实施例,当集群内出现心跳异常时,第一节点在确定自身成为子群内预备管理节点的情况下,确定自身访问共享设备的第一分区的时间,并在所述时间到达时基于第一分区是否被占用来判断自身是否可成为管理节点,进而在可以成为管理节点的情况下,作为管理节点对集群资源进行节点间的重配置及节点间任务调度,以使得集群系统负载均衡,有效的避免了脑裂的发生,保证了集群的高可用性和可靠性。
实施例五
图7为本发明实施例中节点设备的组成结构示意图,如图7所示,本发明实施例中节点设备的组成包括:确定模块71及判断模块72;
所述确定模块71,用于检测到节点间心跳连接异常时,依据预设的第一管理策略确定所述第一节点为所在子群的预备管理节点;
所述判断模块72,用于基于预设的第二管理策略判断所述第一节点是否可以由预备管理节点转换成管理节点,以在判断为是时,作为管理节点对集群资源进行节点间的重配置及节点间任务调度。
在一实施例中,所述确定模块71,还用于依据第三管理策略确定第二节点为管理节点,以使所述第二节点进行资源配置及任务调度。
在一实施例中,所述判断模块72,还用于基于预设的网络检测方式判断所述第一节点是否存在对外网络连接,判断为是时,确定所述第一节点可以转换成管理节点;判断为否时,确定所述第一节点不能转换成管理节点。
在一实施例中,所述集群的共享存储设备支持多节点共同访问;
所述判断模块72,还用于判断所述共享存储设备是否被占用,在所述共享存储设备未被占用时,在所述共享存储设备的特定目录下创建占位文件,并在一定时间后检测所述特定目录下是否存在其它预备管理节点创建的占位文件,若不存在,则确定所述第一节点可以转换成管理节点;否则,对所述第一节点所在子群的节点数及所述其它预备管理节点所在子群的节点数进行比较,并基于比较结果判定所述第一节点是否可以由预备管理节点转换成管理节点。
在一实施例中,所述集群的共享存储设备支持单节点独占访问;
所述判断模块72,还用于确定所述第一节点对所述共享存储设备的第一分区的访问时间,并在所述访问时间到达时挂载所述第一分区,判断所述第一分区内是否存在占位文件,若所述第一分区内不存在占位文件,确定所述第一节点可以转换成管理节点。
在一实施例中,所述确定模块71,还用于确定所述第一节点为所述第一节点所在子群内节点编号最小的节点,则所述第一节点为所在子群的预备管理节点。
在本发明实施例中,所述节点设备中的确定模块71及判断模块72,均可由终端或或服务器中的中央处理器(CPU,Central Processing Unit)或数字信号处理器(DSP,Digital Signal Processor)、或现场可编程门阵列(FPGA,FieldProgrammable Gate Array)、或集成电路(ASIC,Application Specific IntegratedCircuit)实现。
这里需要指出的是:以上涉及节点设备的描述,与上述方法描述是类似的,同方法的有益效果描述,不做赘述。对于本发明所述节点设备实施例中未披露的技术细节,请参照本发明方法实施例的描述。
本领域的技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、随机存取存储器(RAM,Random Access Memory)、只读存储器(ROM,Read-Only Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本发明上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、RAM、ROM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (14)
1.一种集群内的节点管理方法,其特征在于,所述方法应用于第一节点,所述方法包括:
检测到节点间心跳连接异常时,依据第一管理策略确定所述第一节点为所在子群的预备管理节点;
基于第二管理策略判断所述第一节点是否可以由预备管理节点转换成管理节点,确定所述第一节点可以由预备管理节点转换成管理节点时,作为管理节点对集群资源进行节点间的重配置及节点间任务调度。
2.根据权利要求1所述的方法,其特征在于,所述检测到节点间心跳连接异常之前,所述方法还包括:
依据第三管理策略确定第二节点为管理节点,以使所述第二节点进行资源配置及任务调度。
3.根据权利要求1或2所述的方法,其特征在于,所述基于第二管理策略判断所述第一节点是否可以由预备管理节点转换成管理节点,包括:
基于预设的网络检测方式判断所述第一节点是否存在对外网络连接,判断为是时,确定所述第一节点可以转换成管理节点;判断为否时,确定所述第一节点不能转换成管理节点。
4.根据权利要求1或2所述的方法,其特征在于,所述集群内的共享存储设备支持多节点共同访问;
所述基于第二管理策略判断所述第一节点是否可以由预备管理节点转换成管理节点,包括:
确定所述共享存储设备未被占用时,在所述共享存储设备上创建占位文件,并在一定时间后检测所述特定目录下是否存在其它预备管理节点创建的占位文件,若不存在,则确定所述第一节点可以转换成管理节点;否则,对所述第一节点所在子群的节点数及所述其它预备管理节点所在子群的节点数进行比较,并基于比较结果判定所述第一节点是否可以由预备管理节点转换成管理节点。
5.根据权利要求4所述的方法,其特征在于,对所述第一节点所在子群的节点数及所述其它预备管理节点所在子群的节点数进行比较,并基于比较结果判定所述第一节点是否可以由预备管理节点转换成管理节点,包括:
确定所述第一节点所在子群的节点数多于所述其它预备管理节点所在子群的节点数时,确定所述第一节点可以转换成管理节点;
确定所述第一节点所在子群的节点数最多且存在与所述第一节点所在子群的节点数相同的子群时,判断所述第一节点的节点编号是否小于与所述第一节点所在子群的节点数相同的子群中的预备管理节点的节点编号,并在判断为是时确定所述第一节点可以转换成管理节点,判断为否时确定所述第一节点不可以转换成管理节点。
6.根据权利要求1或2所述的方法,其特征在于,所述集群内的共享存储设备支持单节点独占访问;
所述基于第二管理策略判断所述第一节点是否可以由预备管理节点转换成管理节点,包括:
确定所述第一节点对所述共享存储设备的第一分区的访问时间,并在所述访问时间到达时挂载所述第一分区,且在确定所述第一分区内不存在占位文件时,确定所述第一节点可以转换成管理节点;在确定所述第一分区内存在占位文件时,确定所述第一节点不可以转换成管理节点。
7.根据权利要求1或2所述的方法,其特征在于,所述依据第一管理策略确定所述第一节点为所在子群的预备管理节点,包括:
确定所述第一节点为所述第一节点所在子群内节点编号最小的节点,则所述第一节点为所在子群的预备管理节点。
8.一种节点设备,其特征在于,所述节点设备包括:确定模块及判断模块;
所述确定模块,用于检测到节点间心跳连接异常时,依据第一管理策略确定所述第一节点为所在子群的预备管理节点;
所述判断模块,用于基于第二管理策略判断所述第一节点是否可以由预备管理节点转换成管理节点,确定所述第一节点可以由预备管理节点转换成管理节点时,作为管理节点对集群资源进行节点间的重配置及节点间任务调度。
9.根据权利要求8所述的节点设备,其特征在于,
所述确定模块,还用于依据第三管理策略确定第二节点为管理节点,以使所述第二节点进行资源配置及任务调度。
10.根据权利要求8或9所述的节点设备,其特征在于,
所述判断模块,还用于基于预设的网络检测方式判断所述第一节点是否存在对外网络连接,判断为是时,确定所述第一节点可以转换成管理节点;判断为否时,确定所述第一节点不能转换成管理节点。
11.根据权利要求8或9所述的节点设备,其特征在于,所述集群内的共享存储设备支持多节点共同访问;
所述判断模块,还用于确定所述共享存储设备未被占用时,在所述共享存储设备的特定目录下创建占位文件,并在一定时间后检测所述特定目录下是否存在其它预备管理节点创建的占位文件,若不存在,则确定所述第一节点可以转换成管理节点;否则,对所述第一节点所在子群的节点数及所述其它预备管理节点所在子群的节点数进行比较,并基于比较结果判定所述第一节点是否可以由预备管理节点转换成管理节点。
12.根据权利要求11所述的节点设备,其特征在于,
所述判断模块,还用于确定所述第一节点所在子群的节点数多于所述其它预备管理节点所在子群的节点数时,确定所述第一节点可以转换成管理节点;
确定所述第一节点所在子群的节点数最多且存在与所述第一节点所在子群的节点数相同的子群时,判断所述第一节点的节点编号是否小于与所述第一节点所在子群的节点数相同的子群中的预备管理节点的节点编号,并在判断为是时确定所述第一节点可以转换成管理节点,判断为否时确定所述第一节点不可以转换成管理节点。
13.根据权利要求8或9所述的节点设备,其特征在于,所述集群内的共享存储设备支持单节点独占访问;
所述判断模块,还用于确定所述第一节点对所述共享存储设备的第一分区的访问时间,并在所述访问时间到达时挂载所述第一分区,判断所述第一分区内是否存在占位文件,确定所述第一分区内不存在占位文件时,确定所述第一节点可以转换成管理节点;在确定所述第一分区内存在占位文件时,确定所述第一节点不可以转换成管理节点。
14.根据权利要求8或9所述的节点设备,其特征在于,
所述确定模块,还用于确定所述第一节点为所述第一节点所在子群内节点编号最小的节点,则所述第一节点为所在子群的预备管理节点。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610416731.3A CN107508694B (zh) | 2016-06-14 | 2016-06-14 | 一种集群内的节点管理方法及节点设备 |
PCT/CN2017/085935 WO2017215430A1 (zh) | 2016-06-14 | 2017-05-25 | 一种集群内的节点管理方法及节点设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610416731.3A CN107508694B (zh) | 2016-06-14 | 2016-06-14 | 一种集群内的节点管理方法及节点设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107508694A true CN107508694A (zh) | 2017-12-22 |
CN107508694B CN107508694B (zh) | 2021-11-16 |
Family
ID=60663429
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610416731.3A Active CN107508694B (zh) | 2016-06-14 | 2016-06-14 | 一种集群内的节点管理方法及节点设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN107508694B (zh) |
WO (1) | WO2017215430A1 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108111337A (zh) * | 2017-12-06 | 2018-06-01 | 北京天融信网络安全技术有限公司 | 分布式系统仲裁主节点的方法及设备 |
CN109614390A (zh) * | 2018-12-06 | 2019-04-12 | 无锡华云数据技术服务有限公司 | 数据库读写分离方法、装置、服务系统、设备及介质 |
CN110290159A (zh) * | 2018-03-19 | 2019-09-27 | 中移(苏州)软件技术有限公司 | 一种调度管理的方法和设备 |
CN110858168A (zh) * | 2018-08-24 | 2020-03-03 | 浙江宇视科技有限公司 | 集群节点故障处理方法、装置及集群节点 |
CN112835915A (zh) * | 2019-11-25 | 2021-05-25 | 中国移动通信集团辽宁有限公司 | Mpp数据库系统、数据存储方法及数据查询方法 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113472662B (zh) * | 2021-07-09 | 2022-10-04 | 武汉绿色网络信息服务有限责任公司 | 路径重分配方法和网络业务系统 |
CN115269248B (zh) * | 2022-07-28 | 2023-08-08 | 安超云软件有限公司 | 双节点集群下防止脑裂方法和装置、电子设备和存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140040671A1 (en) * | 2012-07-31 | 2014-02-06 | International Business Machines Corporation | Securing crash dump files |
CN104378232A (zh) * | 2014-11-10 | 2015-02-25 | 东软集团股份有限公司 | 主备集群组网模式下的脑裂发现、恢复方法及装置 |
CN104917792A (zh) * | 2014-03-12 | 2015-09-16 | 上海宝信软件股份有限公司 | 民主自治的集群管理方法和系统 |
CN105046382A (zh) * | 2015-09-16 | 2015-11-11 | 浪潮(北京)电子信息产业有限公司 | 异构系统并行随机森林优化方法和系统 |
CN105450717A (zh) * | 2014-09-29 | 2016-03-30 | 中兴通讯股份有限公司 | 集群脑裂处理方法和装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102402395B (zh) * | 2010-09-16 | 2014-07-16 | 中标软件有限公司 | 基于仲裁磁盘的高可用系统不间断运行方法 |
US9146705B2 (en) * | 2012-04-09 | 2015-09-29 | Microsoft Technology, LLC | Split brain protection in computer clusters |
-
2016
- 2016-06-14 CN CN201610416731.3A patent/CN107508694B/zh active Active
-
2017
- 2017-05-25 WO PCT/CN2017/085935 patent/WO2017215430A1/zh active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140040671A1 (en) * | 2012-07-31 | 2014-02-06 | International Business Machines Corporation | Securing crash dump files |
CN104917792A (zh) * | 2014-03-12 | 2015-09-16 | 上海宝信软件股份有限公司 | 民主自治的集群管理方法和系统 |
CN105450717A (zh) * | 2014-09-29 | 2016-03-30 | 中兴通讯股份有限公司 | 集群脑裂处理方法和装置 |
CN104378232A (zh) * | 2014-11-10 | 2015-02-25 | 东软集团股份有限公司 | 主备集群组网模式下的脑裂发现、恢复方法及装置 |
CN105046382A (zh) * | 2015-09-16 | 2015-11-11 | 浪潮(北京)电子信息产业有限公司 | 异构系统并行随机森林优化方法和系统 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108111337A (zh) * | 2017-12-06 | 2018-06-01 | 北京天融信网络安全技术有限公司 | 分布式系统仲裁主节点的方法及设备 |
CN110290159A (zh) * | 2018-03-19 | 2019-09-27 | 中移(苏州)软件技术有限公司 | 一种调度管理的方法和设备 |
CN110290159B (zh) * | 2018-03-19 | 2022-06-28 | 中移(苏州)软件技术有限公司 | 一种调度管理的方法和设备 |
CN110858168A (zh) * | 2018-08-24 | 2020-03-03 | 浙江宇视科技有限公司 | 集群节点故障处理方法、装置及集群节点 |
CN110858168B (zh) * | 2018-08-24 | 2023-08-18 | 浙江宇视科技有限公司 | 集群节点故障处理方法、装置及集群节点 |
CN109614390A (zh) * | 2018-12-06 | 2019-04-12 | 无锡华云数据技术服务有限公司 | 数据库读写分离方法、装置、服务系统、设备及介质 |
CN112835915A (zh) * | 2019-11-25 | 2021-05-25 | 中国移动通信集团辽宁有限公司 | Mpp数据库系统、数据存储方法及数据查询方法 |
CN112835915B (zh) * | 2019-11-25 | 2023-07-18 | 中国移动通信集团辽宁有限公司 | Mpp数据库系统、数据存储方法及数据查询方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2017215430A1 (zh) | 2017-12-21 |
CN107508694B (zh) | 2021-11-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107508694A (zh) | 一种集群内的节点管理方法及节点设备 | |
CN104798349B (zh) | 响应于端口故障的故障转移 | |
US11194679B2 (en) | Method and apparatus for redundancy in active-active cluster system | |
US7853767B2 (en) | Dual writing device and its control method | |
CN107659948B (zh) | 一种控制ap接入的方法及装置 | |
CN104717077B (zh) | 一种管理数据中心的方法、装置及系统 | |
US20130346790A1 (en) | Non-disruptive controller replacement in network storage systems | |
US20080082630A1 (en) | System and method of fault tolerant reconciliation for control card redundancy | |
CN107368485A (zh) | 一种数据库的管理方法及数据库系统 | |
CN110971662A (zh) | 一种基于Ceph的两节点高可用实现方法及装置 | |
CN109189854B (zh) | 提供持续业务的方法及节点设备 | |
CN108509296B (zh) | 一种处理设备故障的方法和系统 | |
JP3790717B2 (ja) | クラスタ化コンピュータ・システムでの入出力ブリッジ・デバイスのアトミック所有権変更動作 | |
CN112486718B (zh) | 数据库故障自动切换方法、装置和计算机存储介质 | |
JP2009065303A (ja) | ネットワーク装置、ネットワーク管理システム及びそれらに用いるmacアドレス重複検出方法 | |
CN109587218B (zh) | 一种集群选举的方法和装置 | |
CN108092829A (zh) | 集群分裂的处理方法、sdn控制器及存储介质 | |
CN106657390A (zh) | 集群文件系统目录隔离方法、装置及系统 | |
CN114301763B (zh) | 分布式集群故障的处理方法及系统、电子设备及存储介质 | |
US10516625B2 (en) | Network entities on ring networks | |
CN113596195B (zh) | 公共ip地址管理方法、装置、主节点及存储介质 | |
JP5956940B2 (ja) | 冗長化システムおよび現用機決定方法 | |
CN112612652A (zh) | 分布式存储系统异常节点重启方法及系统 | |
JP7498731B2 (ja) | クラスタシステム、復旧方法 | |
JP2013207674A (ja) | ネットワーク監視システム、ネットワーク監視方法、制御装置およびプログラム |
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 |