一种用于集群系统的仲裁方法和装置的制造方法

文档序号:9670865阅读:465来源:国知局
一种用于集群系统的仲裁方法和装置的制造方法
【技术领域】
[0001]本发明涉及计算机技术,尤指一种用于集群系统的仲裁方法和装置。
【背景技术】
[0002]在云计算领域中,集群系统被广泛应用。它能为系统中至少一个节点提供共享的存储资源,在集群系统的运行过程中,可能由于某些原因,如网络阻塞等,导致集群系统分裂成两个或多个集群,此时处于集群中的节点可以相互通信,而集群间的节点则无法通信。当各集群中的节点仍有权限访问共享资源时,如果不采用相应的防护措施则会导致集群发生脑裂,即分裂后的子集群各自都认为自己对共享的存储资源拥有访问权限,可能先后对该共享存储上的特定资源进行读写操作,以至各节点看到的数据出现不一致的情况。为了使集群系统能正常运作,往往需要提供相应的仲裁方式,将非法的节点从原集群系统中剔除。
[0003]现有的集群系统中主要通过节点间的投票实现仲裁,具体地,集群系统中各节点通过心跳来通报彼此的健康状况,假设每收到一个节点的通报代表1票,例如,对于一个三节点的集群系统,正常运行时,每个节点都会有3票,假设节点1的心跳出现故障,但是节点1还在运行,这时整个集群系统就分裂成两个小的集群。节点1自己一个集群,节点2和节点3是另一个集群,这就必须剔除一个集群,这时节点2和节点3所在的集群中每个节点有两票,节点1只有一票,所以节点2和节点3组成的小集群获得对该集群系统的控制权,节点1被踢出。但是,上述仲裁方式在该集群系统只包含一个节点的情况下,由于该节点总是会获得对该集群系统的控制权,因此无法检验该节点自身的合法性。

【发明内容】

[0004]为了解决上述技术问题,本发明提供了一种用于集群系统的仲裁方法和装置,能够在集群系统只包含一个节点的情况下对该节点进行仲裁。
[0005]为了达到本发明目的,本发明提供了一种用于集群系统的仲裁方法,当前集群系统中,包括:确定连接多个心跳设备的节点的第一数目;在确定的节点的第一数目为一个时,确定所述当前集群系统中与所述节点连接的心跳设备的第二数目;根据确定出的第二数目和所述当前集群系统中的全部心跳设备的第三数目判断所述节点是否为合法节点。
[0006]可选地,所述判断所述节点是否为合法节点包括:在所述第二数目大于或等于所述第三数目的一半时,确定所述节点为合法节点;在所述第二数目小于所述第三数目的一半时,确定所述节点为非法节点。
[0007]可选地,在所述第一数目为多个时,该方法还包括:确定所述当前集群系统中与所述节点连接的其他节点的第四数目;根据所述第四数目和预设仲裁数目判断所述节点是否为合法节点。
[0008]可选地,在根据所述第四数目和预设仲裁数目判断所述节点是否为合法节点前,所述方法还包括:确定所述节点的第一数目是否为偶数:在确定所述节点的第一数目为偶数时,所述根据所述第四数目和预设仲裁数目判断所述节点是否为合法节点包括:在所述第四数目大于第一预设仲裁数目时,确定所述节点为合法节点;其中,所述第一预设仲裁数目为所述当前集群系统中与所述多个心跳设备连接的节点的数目的一半;在所述第四数目小于所述第一预设仲裁数目时,确定所述节点为非法节点;在所述第四数目等于所述第一预设仲裁数目时,判断所述节点是否与编号最小的节点处于连接状态,在所述节点与所述编号最小的节点处于连接状态时,确定所述节点为合法节点;在所述节点与所述编号最小的节点处于非连接状态时,确定所述节点为非法节点。
[0009]可选地,在确定所述节点的第一数目为奇数时,所述根据所述第四数目和预设仲裁数目判断所述节点是否为合法节点包括:在所述第四数目大于或等于第二预设仲裁数目时,确定所述节点为合法节点;其中,所述第二预设仲裁数目为所述当前集群系统中与所述多个心跳设备连接的节点的数目加一的一半;在所述第四数目小于所述第二预设仲裁数目时,确定所述节点为非法节点。
[0010]为了达到本发明目的,本发明还提供了一种用于集群系统的仲裁装置,包括:第一确定单元,用于确定连接多个心跳设备的节点的第一数目;第二确定单元,用于在所述第一确定单元确定的节点的第一数目为一个时,确定当前集群系统中与所述节点连接的心跳设备的第二数目;第一判断单元,用于根据确定出的第二数目和所述当前集群系统中的全部心跳设备的第三数目判断所述节点是否为合法节点。
[0011]可选地,所述第一判断单元,用于在所述第二数目大于或等于所述第三数目的一半时,确定所述节点为合法节点;在所述第二数目小于所述第三数目的一半时,确定所述节点为非法节点。
[0012]可选地,所述装置还包括:第二判断单元,用于在所述第一确定单元确定的节点的第一数目为多个时,确定所述当前集群系统中与所述节点连接的其他节点的第四数目;根据所述第四数目和预设仲裁数目判断所述节点是否为合法节点。
[0013]可选地,所述第一确定单元,还用于确定所述节点的第一数目是否为偶数:
[0014]所述第二判断单元,还用于在所述第一确定单元确定所述节点的第一数目为偶数时,若所述第四数目大于第一预设仲裁数目时,确定所述节点为合法节点;其中,所述第一预设仲裁数目为所述当前集群系统中与所述多个心跳设备连接的节点的数目的一半;若所述当前集群系统中与所述节点连接的其他节点的数目小于所述预设仲裁数目,确定所述节点为非法节点;若所述当前集群系统中与所述节点连接的其他节点的数目等于所述预设仲裁数目,判断所述节点是否与编号最小的节点处于连接状态,在所述节点与所述编号最小的节点处于连接状态时,确定所述节点为合法节点;在所述节点与所述编号最小的节点处于非连接状态时,确定所述节点为非法节点。
[0015]可选地,所述第二判断单元,还用于在所述第二确定单元确定所述节点的第一数目为奇数时,在所述第四数目大于或等于第二预设仲裁数目时,确定所述节点为合法节点;其中,所述第二预设仲裁数目为所述当前集群系统中与所述多个心跳设备连接的节点的数目加一的一半;在所述第四数目小于所述第二预设仲裁数目时,确定所述节点为非法节点。
[0016]与现有技术相比,本发明包括确定连接多个心跳设备的节点的第一数目;在确定的节点的第一数目为一个时,确定当前集群系统中与节点连接的心跳设备的第二数目;根据确定出的第二数目和当前集群系统中的全部心跳设备的第三数目判断节点是否为合法节点。这样,本发明根据单个节点与多个心跳设备的连接状态来判断单一节点是否为合法节点,从而能够在集群系统只包含一个节点的情况下实现对该节点的仲裁。
[0017]本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
【附图说明】
[0018]附图用来提供对本发明技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本发明的技术方案,并不构成对本发明技术方案的限制。
[0019]图1为本发明实施例提供
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1