CN106936614B - 集群系统的自组织方法、设备及系统 - Google Patents
集群系统的自组织方法、设备及系统 Download PDFInfo
- Publication number
- CN106936614B CN106936614B CN201511028856.0A CN201511028856A CN106936614B CN 106936614 B CN106936614 B CN 106936614B CN 201511028856 A CN201511028856 A CN 201511028856A CN 106936614 B CN106936614 B CN 106936614B
- Authority
- CN
- China
- Prior art keywords
- node
- cluster system
- cluster
- nodes
- external
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W84/00—Network topologies
- H04W84/18—Self-organising networks, e.g. ad-hoc networks or sensor networks
-
- 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/12—Discovery or management of network topologies
-
- 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/06—Management of faults, events, alarms or notifications
-
- 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
- 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/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W24/00—Supervisory, monitoring or testing arrangements
- H04W24/02—Arrangements for optimising operational condition
Abstract
本发明实施例涉及集群系统自组织技术,尤其涉及一种集群系统的自组织方法、设备及系统,其中该方法,包括:集群系统中的节点A接收外部节点发送的请求加入集群系统的请求消息,其中,节点A为集群系统中的一个节点,节点A与集群系统中的其它至少一个节点互为双向邻居关系,具有双向邻居关系的两个节点之间相互传递信息;节点A分别确定节点A在集群系统中所分配的空间面积与节点A的双向邻居节点在集群系统中所分配的空间面积的比值是否均满足预设关系;若均满足,则节点A与外部节点建立双向邻居关系。本发明的集群系统的自组织方法、设备及系统,能够保持集群系统拓扑结构的高可用性。
Description
技术领域
本发明实施例涉及集群系统自组织技术,尤其涉及一种集群系统的自组织方法、设备及系统。
背景技术
集群是一组相互独立的、通过高速网络互连的终端设备,如计算机、移动通信设备等。集群系统中的各个终端设备也可以称为节点,它们构成一个组,并以单一系统的模式加以管理。
随着开源虚拟化KVM(kernel-based Virtual Machine,基于内核的虚拟机)、云计算OpenStack等技术的发展,未来集群规模将会指数增长,业务层对集群的管理问题愈发突出,如何组织集群结构关系在集群管理尤其故障节点的快速检测中非常关键。
目前,集群系统组织各节点的方法包括:集群系统中包括多个节点,其中集群中的每个节点均可以作为种子节点,当外部普通节点加入该集群时,外部节点在不同的时刻,分别随机选择不同的节点建立邻居关系,如在第一时刻,普通节点A随机选择集群系统中的节点B作为邻居节点,依据与节点B的邻居关系,节点A可将自身的信息共享给节点B;在第二时刻,节点A随机选择集群系统中的节点C作为邻居节点,依据与节点C的邻居关系,节点A可以将自身的信息共享给节点C,当有其它节点选择节点A作为邻居节点时,节点A可以接收其它节点共享的信息。
现有技术中的集群系统,不同时刻节点邻居节点之间的关系不确定,不利于保持集群系统的高可用性。
发明内容
本发明实施例提供了一种集群系统的自组织方法、设备及系统,以保持集群系统拓扑结构的高可用性。
第一方面,本发明实施例提供了一种集群系统的自组织方法,包括:
集群系统中的节点A接收外部节点发送的请求加入所述集群系统的请求消息,其中,所述集群系统包括至少两个节点,所述节点A为所述集群系统中的一个节点,所述节点A与所述集群系统中的其它至少一个节点互为双向邻居关系,具有所述双向邻居关系的两个节点之间相互传递信息;
所述节点A分别确定所述节点A在所述集群系统中所分配的空间面积与所述节点A的双向邻居节点在所述集群系统中所分配的空间面积的比值是否均满足预设关系,其中,所述集群系统中仅有一个节点时,以该一个节点为原点建立二维坐标系,并在所述二维坐标中为所述集群系统分配集群面积,所述一个节点分配有整个所述集群面积,当有至少一个外部节点加入时,减少所述一个节点在所述集群面积中所占空间面积,并分别为加入的所述至少一个外部节点在所述集群面积中分配空间面积;
若均满足,则所述节点A与所述外部节点建立所述双向邻居关系,以保持所述集群系统中节点分布的均衡性,避免所述集群系统中节点的集中分布。
可选的,所述方法还包括:
若所述节点A在集群系统中所分配的空间面积与所述节点A的至少一个双向邻居节点在所述集群系统中所分配的空间面积的比值不满足预设关系,则所述节点A向所述外部节点发送集群系统中除所述节点A外的至少一个节点的信息,用于所述外部节点通过所述其它节点加入所述集群系统。
可选的,所述节点A向所述外部节点发送集群系统中除所述节点A外的至少一个节点的信息,包括:
所述节点A根据所述集群系统中的各节点在所述集群系统中所分配的空间面积,将至少一个在所述集群系统中分配的空间面积分别与其自身的双向邻居节点在所述集群系统中的空间分配面积之比均满足预设关系的节点的信息发送给所述外部节点。
可选的,所述方法还包括:
所述节点A通过所述节点A的双向邻居节点获取所述外部节点通过集群系统中除所述节点A外的其它节点加入所述集群系统的消息。
可选的,所述方法还包括:
所述节点A将已与所述节点A互为双向邻居关系的节点的信息发送给所述外部节点,用于所述外部节点与集群系统中的除所述A点外的其它节点建立所述双向邻居关系。
可选的,所述方法还包括:
所述节点A接收所述外部节点与集群中除所述节点A外的其它节点建立双向邻居关系的通知消息。
可选的,所述节点A接收所述外部节点与集群中除所述节点A外的其它节点建立双向邻居关系的通知消息,包括:
所述节点A接收所述外部节点与所述节点A的双向邻居节点建立所述双向邻居关系的通知消息。
可选的,所述节点A接收所述外部节点与集群中除所述节点A外的其它节点建立双向邻居关系的通知消息,包括:
所述节点A通过所述外部节点和/或所述节点A的其它双向邻居节点接收所述通知消息。
可选的,所述节点A与所述外部节点建立所述双向邻居关系之后,还包括:
所述节点A将与所述外部节点建立双向邻居关系的消息发送给除所述外部节点外的所述节点A的其它双向邻居节点,用于通过所述节点A的双向邻居节点将所述外部节点加入的消息共享至整个集群系统。
可选的,所述方法还包括:
所述节点A通过所述节点A的双向邻居节点获取其它新节点加入所述集群系统的消息。
第二方面,本发明实施例提供了一种集群系统的自组织方法,包括:
外部节点向集群系统中的节点A发送请求加入所述集群系统的请求消息,其中所述集群系统包括至少两个节点,所述节点A为所述集群系统中的一个节点,所述节点A与所述集群系统中的其它至少一个节点互为双向邻居关系,具有所述双向邻居关系的两个节点之间相互传递信息;
所述外部节点在所述节点A允许所述外部节点加入所述集群系统时,与所述节点A建立所述双向邻居关系。
可选的,所述方法还包括:
所述外部节点在所述节点A不允许所述外部节点加入所述集群系统时,所述外部节点接收所述节点A发送的集群系统中除所述节点A外的至少一个节点的信息;
所述外部节点根据所述除所述节点A外的至少一个节点的信息,与所述集群系统中除所述节点A外的其中一个节点建立所述双向邻居关系。
可选的,所述外部节点接收所述节点A发送的集群系统中除所述节点A外的至少一个节点的信息,包括:
所述外部节点接收所述节点A发送的至少一个在所述集群系统中分配的空间面积分别与自身的双向邻居节点在所述集群系统中的空间分配面积之比均满足预设关系的节点的信息;
相应的,所述外部节点根据所述除所述节点A外的至少一个节点的信息,与所述集群系统中除所述节点A外的其中一个节点建立所述双向邻居关系,包括:
所述外部节点与所述至少一个在所述集群系统中分配的空间面积分别与自身的双向邻居节点在所述集群系统中的空间分配面积之比均满足预设关系的节点中的任意一个建立所述双向邻居关系。
可选的,所述外部节点在所述节点A允许所述外部节点加入所述集群系统时,所述方法还包括:
所述外部节点接收所述节点A发送的已与所述节点A互为双向邻居关系的节点的信息;
所述外部节点根据所述已与所述节点A互为双向邻居关系的节点的信息,与所述节点A的双向邻居节点建立所述双向邻居关系。
可选的,所述与所述节点A的双向邻居节点建立所述双向邻居关系之后,还包括:
所述外部节点将与所述节点A的双向邻居节点建立双向邻居关系的信息发送给所述节点A。
第三方面,本发明实施例提供了一种集群系统的自组织装置,所述装置部署于集群系统的节点A中,所述装置包括:
接收模块,用于接收外部节点发送的请求加入所述集群系统的请求消息,其中,所述集群系统包括至少两个节点,所述节点A为所述集群系统中的一个节点,所述节点A与所述集群系统中的其它至少一个节点互为双向邻居关系,具有所述双向邻居关系的两个节点之间相互传递信息;
确定模块,用于分别确定所述节点A在所述集群系统中所分配的空间面积与所述节点A的双向邻居节点在所述集群系统中所分配的空间面积的比值是否均满足预设关系,其中,所述集群系统中仅有一个节点时,以该一个节点为原点建立二维坐标系,并在所述二维坐标中为所述集群系统分配集群面积,所述一个节点分配有整个所述集群面积,当有至少一个外部节点加入时,减少所述一个节点在所述集群面积中所占空间面积,并分别为加入的所述至少一个外部节点在所述集群面积中分配空间面积;
邻居关系建立模块,用于满足预设关系时,建立所述节点A与所述外部节点的所述双向邻居关系,以保持所述集群系统中节点分布的均衡性,避免所述集群系统中节点的集中分布。
可选的,所述装置还包括:第一发送模块,用于所述节点A在集群系统中所分配的空间面积与所述节点A的至少一个双向邻居节点在所述集群系统中所分配的空间面积的比值不满足预设关系时,向所述外部节点发送集群系统中除所述节点A外的至少一个节点的信息,用于所述外部节点通过所述其它节点加入所述集群系统。
可选的,所述第一发送模块,具体用于:
根据所述集群系统中的各节点在所述集群系统中所分配的空间面积,将至少一个在所述集群系统中分配的空间面积分别与其自身的双向邻居节点在所述集群系统中的空间分配面积之比均满足预设关系的节点的信息发送给所述外部节点。
可选的,所述接收模块,还用于:
通过所述节点A的双向邻居节点获取所述外部节点通过集群系统中除所述节点A外的其它节点加入所述集群系统的消息。
可选的,所述装置还包括:第二发送模块,用于将已与所述节点A互为双向邻居关系的节点的信息发送给所述外部节点,用于所述外部节点与集群系统中的除所述A点外的其它节点建立所述双向邻居关系。
可选的,所述接收模块,还用于:
接收所述外部节点与集群中除所述节点A外的其它节点建立双向邻居关系的通知消息。
可选的,所述接收模块,具体用于:
接收所述外部节点与所述节点A的双向邻居节点建立双向邻居关系的通知消息。
可选的,所述接收模块,具体用于:
通过所述外部节点和/或所述节点A的其它双向邻居节点接收所述通知消息。
可选的,所述装置还包括第三发送模块,用于将所述节点A与所述外部节点建立双向邻居关系的消息发送给除所述外部节点外的所述节点A的其它双向邻居节点,用于通过所述节点A的双向邻居节点将所述外部节点加入的消息共享至整个集群系统。
可选的,所述接收模块,还用于:
通过所述节点A的双向邻居节点获取其它新节点加入所述集群系统的消息。
第四方面,本发明实施例提供了一种集群系统的自组织装置,所述装置部署于外部节点中,包括:
发送模块,用于向集群系统中的节点A发送请求加入所述集群系统的请求消息,其中,所述集群系统包括至少两个节点,所述节点A为所述集群系统中的一个节点,所述节点A与所述集群系统中的其它至少一个节点互为双向邻居关系,具有所述双向邻居关系的两个节点之间相互传递信息;
邻居关系建立模块,用于在所述节点A允许所述外部节点加入所述集群系统时,建立所述外部节点与所述节点A的所述双向邻居关系。
可选的,所述装置还包括:第一接收模块,用于在所述节点A不允许所述外部节点加入所述集群系统时,接收所述节点A发送的集群系统中除所述节点A外的至少一个节点的信息;
相应的,所述邻居关系建立模块,具体用于根据所述除所述节点A外的至少一个节点的信息,建立所述外部节点与所述集群系统中除所述节点A外的其中一个节点的所述双向邻居关系。
可选的,所述第一接收模块,具体用于:
接收所述节点A发送的至少一个在所述集群系统中分配的空间面积分别与自身的双向邻居节点在所述集群系统中的空间分配面积之比均满足预设关系的节点的信息;
相应的,所述邻居关系建立模块,具体用于:
建立所述外部节点与所述至少一个在所述集群系统中分配的空间面积分别与自身的双向邻居节点在所述集群系统中的空间分配面积之比均满足预设关系的节点中的任意一个节点的所述双向邻居关系。
可选的,所述装置还包括:第二接收模块,用于在所述节点A允许所述外部节点加入所述集群系统时,接收所述节点A发送的已与所述节点A互为双向邻居关系的节点的信息;
相应的,所述邻居关系建立模块,具体用于:
根据所述已与所述节点A互为双向邻居关系的节点的信息,建立所述外部节点与所述节点A的双向邻居节点的所述双向邻居关系。
可选的,所述发送模块,还用于:
将与所述节点A的双向邻居节点建立双向邻居关系的信息发送给所述节点A。
第五方面,本发明实施例提供了一种节点设备,所述节点设备用于部署于集群系统的节点中,包括:通信接口、存储器、处理器和通信总线,其中,所述通信接口、所述存储器和所述处理器通过所述通信总线通信;
所述存储器用于存放程序,所述处理器用于执行所述存储器存储的程序;
所述通信接口,用于接收外部节点发送的请求加入所述集群系统的请求消息,其中,所述集群系统包括至少两个节点,接收所述请求消息的节点为节点A,所述节点A为所述集群系统中的一个节点,所述节点A与所述集群系统中的其它至少一个节点互为双向邻居关系,具有所述双向邻居关系的两个节点之间相互传递信息;
所述处理器,用于分别确定所述节点A在所述集群系统中所分配的空间面积与所述节点A的双向邻居节点在所述集群系统中所分配的空间面积的比值是否均满足预设关系,其中,所述集群系统中仅有一个节点时,以该一个节点为原点建立二维坐标系,并在所述二维坐标中为所述集群系统分配集群面积,所述一个节点分配有整个所述集群面积,当有至少一个外部节点加入时,减少所述一个节点在所述集群面积中所占空间面积,并分别为加入的所述至少一个外部节点在所述集群面积中分配空间面积;若均满足,则建立所述节点A与所述外部节点建立所述双向邻居关系,以保持所述集群系统中节点分布的均衡性,避免所述集群系统中节点的集中分布。
第六方面,本发明实施例提供了一种节点设备,所述节点设备用于部署于集群系统外的节点中,包括:通信接口、存储器、处理器和通信总线,其中,所述通信接口、所述存储器和所述处理器通过所述通信总线通信;
所述存储器用于存放程序,所述处理器用于执行所述存储器存储的程序;
所述通信接口,用于向集群系统中的节点A发送请求加入所述集群系统的请求消息,其中所述集群系统包括至少两个节点,所述节点A为所述集群系统中的一个节点,所述节点A与所述集群系统中的其它至少一个节点互为双向邻居关系,具有所述双向邻居关系的两个节点之间相互传递信息;
所述处理器,用于在所述节点A允许所述外部节点加入所述集群系统时,建立与所述节点A的双向邻居关系。
第七方面,本发明实施例提供了一种集群系统,所述集群系统包括至少两个节点及新增节点B,节点A为所述至少两个节点中的一个节点,所述新增节点加入所述集群系统的过程包括:
所述节点A接收所述节点B发送的请求加入所述集群系统的请求消息,其中,所述节点A与所述集群系统中的其它至少一个节点互为双向邻居关系,具有所述双向邻居关系的两个节点之间相互传递信息;
所述节点A分别确定所述节点A在所述集群系统中所分配的空间面积与所述节点A的双向邻居节点在所述集群系统中所分配的空间面积的比值是否均满足预设关系,其中,所述集群系统中仅有一个节点时,以该一个节点为原点建立二维坐标系,并在所述二维坐标中为所述集群系统分配集群面积,所述一个节点分配有整个所述集群面积,当有至少一个外部节点加入时,减少所述一个节点在所述集群面积中所占空间面积,并分别为加入的所述至少一个外部节点在所述集群面积中分配空间面积;
若均满足,则所述节点A与所述节点B建立所述双向邻居关系,以保持所述集群系统中节点分布的均衡性,避免所述集群系统中节点的集中分布。
本发明中,集群系统中的节点之间保持双向固定的邻居关系,当有外部新的节点加入时,该外部节点与集群系统中的任意一个节点建立双向邻居关系,仅改变集群系统局部的邻居关系,不影响集群系统的整体拓扑结构,有利于保持集群系统拓扑结构的稳定性,而且节点之间双向的邻居关系有利于节点信息在整个集群系统的快速传播,尤其当集群中出现故障节点时,有利于对故障节点的快速诊断与检测,因此利用本方法组建的集群系统能够保持有较高的可用性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1示出了现有技术中组织集群结构的一种状态示意图;
图2示出了现有技术中组织集群结构的另一种状态示意图;
图3示出了本发明实施例集群系统的自组织方法的一种流程图;
图4示出了本发明实施例集群系统的自组织方法的另一种流程图;
图5示出了任意一个节点请求加入集群系统的效果示意图;
图6示出了了节点B加入集群系统后的结构示意图;
图7示出了各节点加入集群系统的一种效果示意图;
图8示出了本发明实施例集群系统的自组织方法的又一种流程图;
图9示出了本发明实施例集群系统的自组织方法的另一种流程图;
图10示出了本发明实施例集群系统的自组织装置的一种结构示意图;
图11示出了本发明实施例集群系统的自组织装置的另一种结构示意图;
图12示出了本发明实施例节点设备的一种结构示意图;
图13示出了本发明实施例节点设备的一种结构示意图;
图14示出了一种集群系统的一种结构示意图;
图15示出了本发明实施例集群系统的另一种结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
集群技术是一种比较新的技术,通过集群技术,可以在付出较低成本的情况下,获得在性能、可靠性、灵活性方面相对比较高的收益。
集群系统中一般包括多个节点,各个节点之间建立一定的相邻关系,以保持节点之间的关联性,同时便于业务信息在集群系统中的传输。
图1示出了现有技术中组织集群结构的一种状态示意图。
图2示出了现有技术中组织集群结构的另一种状态示意图。
如图1及图2所示,集群系统中的任意节点可以作为种子节点,集群系统外的节点为普通节点。集群中或集群外的节点可以选择任意种子节点(S_A,S_B,S_C,S_D)和其它普通节点(O_A,O_B,O_C,O_D,O_E,O_F)成为邻居节点,且不同时刻选择的邻居节点可以同。
例如,如图1所示,第一时刻:节点O_F选择节点S_B和节点O_D作为节点O_F的邻居节点,节点O_D选择节点S_C和节点O_A作为节点O_D的邻居节点,建立有邻居关系的节点之间是一种单向、独立的邻居关系,如节点O_D是节点O_F的邻居节点,节点O_F可以将自身所持有的信息共享给节点O_D;而节点O_F并不是节点O_D的邻居节点,因此节点O_D并不会将自身所持有的信息共享给节点O_F,可见节点之间建立的是一种单向的邻居关系。
如图2所示,第二时刻:节点O_F选择节点S_D和节点O_D作为节点O_F的邻居节点,节点O_D选择节点S_C和节点O_A作为节点O_D的邻居节点,可见节点O_F和节点O_D在第二时刻所选择的邻居节点与第一时刻所选择的邻居节点不同,即单节点不同时刻的邻居关系不相同。
由此可见,现有的组织集群系统结构的方法存在以下问题:
(1)相邻关系随机:集群节点任意选择一个或多个节点成为自身的邻居节点,时刻不同,相邻关系不同。
(2)相邻关系单向:由于邻居节点选择的随机性,导致节点信息同步的单向性。
在集群系统中,集群节点相邻关系随机且相邻关系单向,使得集群的拓扑结构相对不稳定,节点信息传递速度较慢,集群节点无法快速检测及诊断集群中其它节点的状态,严重影响集群的高可用性。
为了解决现有技术中组织集群系统结构时所存在的问题,本发明实施例提供了一种集群系统的自组织方法,该方法中,外部节点(对应图1及图2中的普通节点)可以随机选择集群系统中的任意一个节点作为种子节点,并与选择的节点建立双向邻居关系,所谓双向邻居关系是指节点之间双向同步信息,如节点A选择了节点B作为节点A的邻居节点,同时节点B也会选择节点A作为节点B的邻居,集群系统中的此种组织结构,有利于集群系统拓扑结构的稳定性,便于节点信息在集群系统的快速传播,尤其在集群系统中的任意节点出现故障时支持该故障节点的快速诊断,保持集群系统的高可用性。
本发明实施例中,集群系统中的各个节点中可以部署相同的代理,以保持各个节点执行本方法规则的一致性。
图3示出了本发明实施例集群系统的自组织方法的一种流程图,该方法的执行主体为集群系统中的任意一个节点,包括:
步骤S11:集群系统中的节点A接收外部节点发送的请求加入集群系统的请求消息。
本实施例中,集群系统包括至少两个节点,节点A为集群系统中的一个节点,节点A与集群系统中的其它至少一个节点互为双向邻居关系,具有双向邻居关系的两个节点之间相互传递信息。
当有新的节点(对应外部节点)加入集群系统时,该外部节点选择集群系统中的任意一个节点作为接入节点,并向选择的节点发送请求消息。
步骤S12:节点A分别确定节点A在集群系统中所分配的空间面积与节点A的邻居节点在集群系统中所分配的空间面积的比值是否均满足预设关系。
其中,当集群系统中仅有一个节点时,以该一个节点为原点建立二维坐标系,并在二维坐标中为集群系统分配集群面积,一个节点分配有整个集群面积,当有至少一个外部节点加入时,减少一个节点在集群面积中所占空间面积,并分别为加入的至少一个外部节点在集群面积中分配空间面积。
图7示出了各节点加入集群系统的一种效果示意图。如图7所示,当集群系统中只有节点A时,以节点A为原点建立二维坐标系O-xy,并在二维坐标系O-xy中为集群系统分配集群面积,其中该集群面积为任意设定的一个虚拟面积,用于表示集群系统中各节点空间之间的空间架构或空间布局。如图7中第一行的第一个子图,确定集群面积的四个坐标点分别为(0,0)、(0,4)、(4,0)及(4,4),集群面积为16,当集群系统中只有一个节点A时,节点A分配有整个集群面积。
当有外部节点通过节点A加入集群系统时,节点A将自身所分配的空间面积分配给外部节点,如图7中,节点B通过节点A加入到集群系统后,节点A将自身所分配的空间面积的部分面积分配给节点B,其中节点A分配给节点B的空间面积的比例关系可以根据实际应用场景进行设定,如将自身所分配的空间面积的1/2、1/3……或1/n分配给新加入的外部节点。
如图7中,当外部节点C再次通过节点A加入集群系统时,节点A将自身所分配的空间面积与邻居节点B所分配的空间面积进行比较,当两者的比值满足预设关系时,节点A允许节点C通过节点A加入到集群系统中,并将自身当前所分配的空间面的部分分配给节点C。本实施例中节点A与邻居节点所分配的空间面积的比值所预设关系,可以根据节点A每次分配给外部节点空间面积确定,总体原则是:保证外部节点加入后,节点A所分配的空间不会远远小于其邻居节点所分配的空间面积,从而保证集群系统中网络结构的稳定性。
例如,图7中,节点A将自身所分配的空间面积的1/2分配给节点B,当节点C加入时,节点A再次将自身所分配的空间面积的1/2分配给节点C,当节点D加入时,若节点A再次将自身所分配的空间面积的1/2分配给节点D会使节点A所分配的空间面积远远小于节点B所分配的空间面积,此时节点D通过节点B加入到集群系统中。
图7给出的示例中以每次分出1/2面积举例进行说明,在实际应用时,节点A也可以每次分出自身所分配的空间面积的1/2、1/3……或1/n等,本实施例中不再一一举例说明。
本实施例中,节点A确定是否允许外部节点的加入时,节点A根据自身在集群系统中所分配的空间面积与自身的双向邻居节点所分配的空间面积的比值是否均满足预设关系的方式来确定,如图7中第二行第一个子图,当节点F通过节点A加入时,节点A分别确定节点A所分配的空间面积与其双向邻居节点(即节点E、节点C)所分配的空间面积之比是否均满足预设的比值关系,如是否均满足1:1或2:1,根据该预设的比值关系节点A与节点C分配面积的比值关系不满足设定的比例,因此节点A不允许节点F通过节点A加入集群系统,通过此种加入集群系统的方式,可以保持各节点在集群系统中所分配的空间面积的均衡性,有利于保持集群系统拓扑结构的平衡性及稳定性。
步骤S13:若均满足,则节点A与外部节点建立双向邻居关系。
当节点A允许发送请求消息的外部节点加入时,与该外部节点建立双向邻居关系,以保持集群系统中节点分布的均衡性,避免集群系统中节点的集中分布,进一步的节点A还将自身所分配的空间面积的按照设定的比例分配给加入的外部节点。
本实施例中,集群系统中的节点之间保持双向固定的邻居关系,当有外部新的节点加入时,该外部节点与集群系统中的任意一个节点建立双向邻居关系,仅改变集群系统局部的邻居关系,不影响集群系统的整体拓扑结构,有利于保持集群系统拓扑结构的稳定性,而且节点之间双向的邻居关系有利于节点信息在整个集群系统的快速传播,尤其当集群中出现故障节点时,有利于对故障节点的快速诊断与检测,因此利用本方法组建的集群系统能够保持有较高的可用性。
本实施例的集群系统的自组织方法可以应用在云计算服务器集群系统中,具体的云计算服务集群系统中部署至少两台服务器,集群系统中的任意一台服务器与集群系统中的其它服务器建立邻居关系,以实现数据在集群系统中传输。
现有方法中,云计算服务器集群系统中的任意一台服务器选择集群系统中的其它至少一个服务器建立单向的邻居关系,即该台服务器选择集群中的其它至少一台服务器作为自己的邻居后,该台服务器可以向其邻居服务器发送信息,但其邻居服务器不向该台服务器发送自身信息,另外,在不同时刻,该台服务器可以更换邻居,可见现有的云计算服务器集群系统中,节点之间建立的是单向邻居关系,服务器中的信息也是单向传输,不利于服务器信息在集群系统中传播,且服务器不同时刻可能选择不同的邻居,也使得集群系统的拓扑结构不稳定,不利于保持云计算服务器集群系统的高可用性。
为了保持云计算服务器集群系统的高可用性,本方法中,云计算服务器集群系统中部署的服务器与其邻居服务器建立双向的邻居关系,当一台服务器如A服务器选择集群中的至少一台服务器作为邻居服务器后,A服务器与其邻居建立双向邻居关系,即A服务器与其双向邻居服务器之间可以相互传递信息,且在不同时刻,服务器之间的双向邻居关系保持不变。
进一步,当云计算服务器集群系统之外的外部服务器向集群中的其中一台服务器发送请求加入消息时,接收到该消息的服务器根据自身预先存储的空间面积是否分别与其双向邻居服务器的空间面积的比值满足预设关系,若满足,该服务器允许外部服务器接入,否则,该服务器向外部服务器发送集群系统中其它服务器的信息,从而使外部服务器通过其它服务器加入云计算服务器集群系统,其中云计算服务器集群系统中的各服务器对应上述的节点概念,云计算服务器集群系统中各服务器分配空间面积的方法与实施例一图7中的方式相同,不再赘述。
可见本发明的云计算服务器集群系统中的服务器之间保持双向固定的邻居关系,当有外部新的服务器加入时,该外部服务器与集群系统中的任意一个服务器建立双向邻居关系,仅改变集群系统局部的邻居关系,不影响集群系统的整体拓扑结构,有利于保持集群系统拓扑结构的稳定性,而且服务器之间双向的邻居关系有利于服务器信息在整个集群系统的快速传播,尤其当集群中出现故障服务器时,有利于对故障服务器的快速诊断与检测,因此利用本方法组建的集群系统能够保持有较高的可用性。
图4示出了本发明实施例集群系统的自组织方法的另一种流程图,该方法在实施例一的基础上进一步详细说明了集群系统中基于双向邻居关系信息的快速传递性,其中本实施例方法的执行主体为集群系统中的任意一个节点,包括:
步骤S21:集群系统中的节点A接收外部节点发送的请求加入集群系统的请求消息。
其中,集群系统包括至少两个节点,节点A为集群系统中的一个节点,节点A与集群系统中的其它至少一个节点互为双向邻居关系,具有双向邻居关系的两个节点之间相互传递信息,另外,集群系统中其它节点之间的邻居关系也为双向邻居关系。
图5示出了任意一个节点请求加入集群系统的效果示意图。
如图5所示,节点B随机选择集群系统中的任意一个节点作为接入节点,并向该节点发送加入集群系统的请求消息,节点A接收节点B发送的请求消息。
步骤S22:节点A分别确定节点A在集群系统中所分配的空间面积与节点A的双向邻居节点在集群系统中所分配的空间面积的比值是否均满足预设关系;若满足,执行步骤S23;若不满足,执行步骤S27。
本实施例中节点A确定是否允许外部节点加入的方法与实施例一种相同,不再赘述。
如图5中,节点A接收到节点B发送的请求消息后,确定自身在集群系统中所分配的空间面积分别与双向邻居节点C、节点E以及节点N的空间面积的比值是否均满足预设关系,例如是否满足n:1的关系,其中n的取值为1、2、3……等整数,若均满足,则节点A允许外部节点B加入集群系统。
步骤S23:节点A与外部节点建立双向邻居关系。
如图5中,当节点A确定自身在集群系统中所分配的空间面积与节点A的双向邻居节点在集群系统中所分配的空间面积的比值均满足预设关系时,节点A与节点B之间建立双向邻居关系。
步骤S24:节点A将已与节点A互为双向邻居关系的节点的信息发送给外部节点。
节点A将与自身建立有双向邻居关系的节点的信息发送给外部节点,外部节点根据接收到的该信息与集群系统中除A点外的其它节点建立双向邻居关系,优选的,外部节点与节点A已有的双向邻居节点建立双向邻居关系。
如图5中,节点A确定允许节点B的接入后,节点A将自身已有双向邻居节点C、节点E以及节点N的信息发送给节点B,实现信息共享。
步骤S25:节点A将与外部节点建立双向邻居关系的消息发送给除外部节点外的其它与节点A互为邻居关系的节点。
本实施例中,节点A与外部节点建立双向邻居关系后,节点A将节点A与外部节点建立双向邻居关系的消息发送给除外部节点外的其它与节点A具有双向邻居关系的节点,其它节点可以将该消息传递给自身的双向双向邻居节点,从而可以使新节点加入的消息快速传输至整个集群系统中,克服了现有技术中,节点之间信息单向传输,传输速度较慢的问题。
如图5中,节点A与节点B建立双向邻居关系后,节点A将与节点B建立双向邻居关系的信息发送给自己的双向邻居节点,即发送给节点C、节点E以及节点N,节点C、节点E以及节点N还可以将节点B加入以及与节点A建立双向邻居关系的信息各自发送给自己的邻居,直至该信息传递至整个系统。
步骤S26:节点A接收外部节点与集群中除节点A外的其它节点建立双向邻居关系的通知消息。
外部节点接收到节点A发送的节点A已有双向邻居节点的信息后,根据接收到的该消息与集群系统中除A点外的其它节点建立双向邻居关系,并将与其它节点建立邻居关系的信息通知节点A,节点A可以通过自身双向邻居节点在整个系统中传递该消息。
优选的,当外部节点与节点A的已有双向邻居节点建立双向连接后,外部节点将与节点A的双向邻居节点建立双向邻居关系信息通知节点A。
图6示出了节点B加入集群系统后的结构示意图。如图6,当节点B接收到节点A发送的节点A已有双向邻居节点的信息后,节点B与节点A的各个双向邻居节点建立双向邻居关系,即节点B还与节点C、节点E以及节点N建立了双向邻居关系。
另外,节点B与节点C、节点E以及节点N建立了双向邻居关系后,节点B、节点C、节点E、节点N中的至少一个将该信息发送给节点A,以及系统中的其它节点。
步骤S27:节点A向外部节点发送集群系统中除节点A外的至少一个节点的信息,用于外部节点通过其它节点加入集群系统。
当节点A确定不允许外部节点的加入时,节点A向外部节点发送其它节点的信息。
具体的,节点A向外部节点发送集群系统中除节点A外的至少一个节点的信息,包括:节点A根据集群系统中的各节点在集群系统中所分配的空间面积,将至少一个在集群系统中分配的空间面积分别与自身的双向邻居节点在集群系统中的空间分配面积之比均满足预设关系的节点的信息发送给外部节点。
本实施例中外部节点通过除节点A外的其它节点加入集群系统的方法与上述通过节点A的方式相同,不再赘述。
另外,由于集群系统中节点之间建立的双向邻居关系,节点A还可以通过与节点A互为邻居的节点获取外部节点通过集群系统中除节点A外的其它节点加入集群系统的消息。
如图5中,当节点B通过节点G接入集群系统后,节点G通过节点E将节点B的信息传输至节点A。
本发明实施例中,节点A还可以通过与节点A互为邻居的节点获取其它新节点加入集群系统的消息。
本发明实施例的方法,当有新的节点加入时,通过局部节点之间相邻关系的改变,建立整个集群的相邻关系网,实现集群系统中关系变化的局部化,支持集群系统动态无限扩展。
本发明实施例的方法,当有节点故障或主动退出集群时,可以仅改变局部节点之间的相邻关系,保持整个集群拓扑结构的稳定。
本发明实施例的方法,节点之间建立双向邻居关系,有利于信息在集群系统的快速传输,支持故障节点的快速检测和诊断。
图8示出了本发明实施例集群系统的自组织方法的又一种流程图,该方法的执行主体为集群系统外部任意待加入到集群系统中的外部节点,包括:
步骤S31:外部节点向集群系统中的节点A发送请求加入集群系统的请求消息。
其中,集群系统包括至少两个节点,节点A为集群系统中的一个节点,节点A与集群系统中的其它至少一个节点互为双向邻居关系,具有双向邻居关系的两个节点之间相互传递信息。
步骤S32:外部节点在节点A允许外部节点加入集群系统时,与节点A建立双向邻居关系。
图9示出了本发明实施例集群系统的自组织方法的另一种流程图,该方法的执行主体为集群系统外部任意待加入到集群系统中的外部节点,包括:
步骤S41:外部节点向集群系统中的节点A发送请求加入集群系统的请求消息。
其中,集群系统包括至少两个节点,节点A为集群系统中的一个节点,节点A与集群系统中的其它至少一个节点互为双向邻居关系,具有双向邻居关系的两个节点之间相互传递信息。
步骤S42:外部节点在节点A允许外部节点加入集群系统时,与节点A建立双向邻居关系。
步骤S43:外部节点接收节点A发送的已与节点A互为双向邻居关系的节点的信息。
步骤S44:外部节点根据已与节点A互为双向邻居关系的节点的信息,与节点A的双向邻居节点建立双向邻居关系。
步骤S45:外部节点将与节点A的双向邻居节点建立双向邻居关系的信息发送给节点A。
步骤S46:外部节点在节点A不允许外部节点加入集群系统时,外部节点接收节点A发送的集群系统中除节点A外的至少一个节点的信息。
步骤S47:外部节点根据除节点A外的至少一个节点的信息,与集群系统中除节点A外的其中一个节点建立双向邻居关系。
本实施例中,外部节点接收节点A发送的集群系统中除节点A外的至少一个节点的信息,包括:外部节点接收节点A发送的至少一个在集群系统中分配的空间面积分别与自身双向邻居节点在集群系统中的空间分配面积之比均满足预设关系的节点的信息;
相应的,外部节点根据除节点A外的至少一个节点的信息,与集群系统中除节点A外的其中一个节点建立双向邻居关系,包括:外部节点与至少一个在集群系统中分配的空间面积分别与自身双向邻居节点在集群系统中的空间分配面积之比均满足预设关系的节点中的任意一个建立双向邻居关系。
本实施例中外部节点与除节点A外的其它节点建立双向邻居关系的方式,与步骤S41~步骤S46的方式相同,本实施例不再赘述。
图10示出了本发明实施例集群系统的自组织装置的一种结构示意图,该装置部署于集群系统的各节点中,如图10所示该装置包括:接收模块51、确定模块52及邻居关系建立模块53;
其中,接收模块51,用于接收外部节点发送的请求加入集群系统的请求消息,其中,集群系统包括至少两个节点,节点A为集群系统中的一个节点,节点A与集群系统中的其它至少一个节点互为双向邻居关系,具有双向邻居关系的两个节点之间相互传递信息;
确定模块52,用于分别确定节点A在集群系统中所分配的空间面积与节点A的双向邻居节点在集群系统中所分配的空间面积的比值是否均满足预设关系,其中,集群系统中仅有一个节点时,以该一个节点为原点建立二维坐标系,并在二维坐标中为集群系统分配集群面积,一个节点分配有整个集群面积,当有至少一个外部节点加入时,减少一个节点在集群面积中所占空间面积,并分别为加入的至少一个外部节点在集群面积中分配空间面积;
邻居关系建立模块53,用于满足预设关系时,建立节点A与外部节点的双向邻居关系,以保持集群系统中节点分布的均衡性,避免集群系统中节点的集中分布。
在上述实施例中,集群系统的自组织装置还包括:第一发送模块,用于节点A在集群系统中所分配的空间面积与节点A的至少一个双向邻居节点在集群系统中所分配的空间面积的比值不满足预设关系时,向外部节点发送集群系统中除节点A外的至少一个节点的信息,用于外部节点通过其它节点加入集群系统。
在上述实施例中,第一发送模块,具体用于:
根据集群系统中的各节点在集群系统中所分配的空间面积,将至少一个在集群系统中分配的空间面积分别与其自身的双向邻居节点在集群系统中的空间分配面积之比均满足预设关系的节点的信息发送给外部节点。
在上述实施例中,接收模块51,还用于:
通过节点A的双向邻居节点获取外部节点通过集群系统中除节点A外的其它节点加入集群系统的消息。
在上述实施例中,集群系统的自组织装置还包括:第二发送模块,用于将已与节点A互为双向邻居关系的节点的信息发送给外部节点,用于外部节点与集群系统中的除A点外的其它节点建立双向邻居关系。
在上述实施例中,接收模块51,还用于:
接收外部节点与集群中除节点A外的其它节点建立双向邻居关系的通知消息。
在上述实施例中,接收模块51,具体用于:
接收外部节点与节点A的双向邻居节点建立双向邻居关系的通知消息。
在上述实施例中,接收模块51,具体用于:
通过外部节点和/或节点A的其它双向邻居节点接收通知消息。
在上述实施例中,集群系统的自组织装置还包括第三发送模块,用于将节点A与外部节点建立双向邻居关系的消息发送给除外部节点外的节点A的其它双向邻居节点,用于通过节点A的双向邻居节点将外部节点加入的消息共享至整个集群系统。
在上述实施例中,接收模块51,还用于:
通过节点A的双向邻居节点获取其它新节点加入集群系统的消息。
图11示出了本发明实施例集群系统的自组织装置的另一种结构示意图,装置部署于外部节点中,包括:发送模块61及邻居关系建立模块62;
发送模块61,用于向集群系统中的节点A发送请求加入集群系统的请求消息,其中,集群系统包括至少两个节点,节点A为集群系统中的一个节点,节点A与集群系统中的其它至少一个节点互为双向邻居关系,具有双向邻居关系的两个节点之间相互传递信息;
邻居关系建立模块62,用于在节点A允许外部节点加入集群系统时,建立外部节点与节点A的双向邻居关系。
在上述实施例中,集群系统的自组织装置还包括:第一接收模块,用于在节点A不允许外部节点加入集群系统时,接收节点A发送的集群系统中除节点A外的至少一个节点的信息;
相应的,邻居关系建立模块62,具体用于根据除节点A外的至少一个节点的信息,建立外部节点与集群系统中除节点A外的其中一个节点的双向邻居关系。
在上述实施例中,第一接收模块,具体用于:
接收节点A发送的至少一个在集群系统中分配的空间面积分别与自身的双向邻居节点在集群系统中的空间分配面积之比均满足预设关系的节点的信息;
相应的,邻居关系建立模块62,具体用于:
建立外部节点与至少一个在集群系统中分配的空间面积分别与自身的双向邻居节点在集群系统中的空间分配面积之比均满足预设关系的节点中的任意一个节点的双向邻居关系。
在上述实施例中,集群系统的自组织装置还包括:第二接收模块,用于在节点A允许外部节点加入集群系统时,接收节点A发送的已与节点A互为双向邻居关系的节点的信息;
相应的,邻居关系建立模块62,具体用于:
根据已与节点A互为双向邻居关系的节点的信息,建立外部节点与节点A的双向邻居节点的双向邻居关系。
在上述实施例中,发送模块61,还用于:
将与节点A的双向邻居节点建立双向邻居关系的信息发送给节点A。
图12示出了本发明实施例节点设备的一种结构示意图,节点设备用于部署于集群系统的节点中,节点设备1200包括通信接口1201、存储器1203和处理器1202,其中,通信接口1201、处理器1202、存储器1203、通过总线1204相互连接;总线1204可以是外设部件互连标准(peripheral component interconnect,简称PCI)总线或扩展工业标准结构(extended industry standard architecture,简称EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图12中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口1201用于与发送端通信。存储器1203,用于存放程序。具体地,程序可以包括程序代码,程序代码包括计算机操作指令。存储器1203可能包含随机存取存储器(random access memory,简称RAM),也可能还包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。
处理器1202执行存储器1203所存放的程序,实现本发明前述方法实施例的方法,其中,
通信接口1201,用于接收外部节点发送的请求加入集群系统的请求消息,其中,集群系统包括至少两个节点,接收请求消息的节点为节点A,节点A为集群系统中的一个节点,节点A与集群系统中的其它至少一个节点互为双向邻居关系,具有双向邻居关系的两个节点之间相互传递信息;
处理器1202,用于分别确定节点A在集群系统中所分配的空间面积与节点A的双向邻居节点在集群系统中所分配的空间面积的比值是否均满足预设关系,其中,集群系统中仅有一个节点时,以该一个节点为原点建立二维坐标系,并在二维坐标中为集群系统分配集群面积,一个节点分配有整个集群面积,当有至少一个外部节点加入时,减少一个节点在集群面积中所占空间面积,并分别为加入的至少一个外部节点在集群面积中分配空间面积;若均满足,则建立节点A与外部节点建立双向邻居关系,以保持集群系统中节点分布的均衡性,避免集群系统中节点的集中分布。
上述的处理器1202可以是通用处理器,包括中央处理器(Central ProcessingUnit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
图13示出了本发明实施例节点设备的一种结构示意图,节点设备用于部署于集群系统外的节点中,节点设备1300包括通信接口1301、存储器1303和处理器1302,其中,通信接口1301、处理器1302、存储器1303、通过总线1304相互连接;总线1304可以是外设部件互连标准(peripheral component interconnect,简称PCI)总线或扩展工业标准结构(extended industry standard architecture,简称EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图13中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口1301用于与发送端通信。存储器1303,用于存放程序。具体地,程序可以包括程序代码,程序代码包括计算机操作指令。存储器1303可能包含随机存取存储器(random access memory,简称RAM),也可能还包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。
处理器1302执行存储器1303所存放的程序,实现本发明前述方法实施例的方法,其中:
通信接口1301,用于向集群系统中的节点A发送请求加入集群系统的请求消息,其中集群系统包括至少两个节点,节点A为集群系统中的一个节点,节点A与集群系统中的其它至少一个节点互为双向邻居关系,具有双向邻居关系的两个节点之间相互传递信息;
在节点A允许外部节点加入集群系统时,建立与节点A的双向邻居关系。
上述的处理器1302可以是通用处理器,包括中央处理器(Central ProcessingUnit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
图14示出了一种集群系统的一种结构示意图,如图14所示,集群系统中包括至少两个主机设备,每个主机设备中均部署有图12所示的节点设备作为代理设备。
集群系统中的主机设备通过代理设备与集群系统中的除自身外的其它至少一个主机设备建立双向邻居关系,具有双向邻居关系的两个主机设备之间通过代理设备互相传递信息;
集群系统中的任意一个主机设备还通过代理设备接收外部主机设备发送的请求加入集群系统的请求消息,其中,外部主机设备中部署有如图13所示的节点设备;
接收到请求消息的主机设备通过自身中的代理设备分别确定自身在集群系统中所分配的空间面积与自身双向邻居节点在集群系统中所分配的空间面积的比值是否均满足预设关系,其中,集群系统中仅有一个节点时,以该一个节点为原点建立二维坐标系,并在二维坐标中为集群系统分配集群面积,一个节点分配有整个集群面积,当有至少一个外部节点加入时,减少一个节点在集群面积中所占空间面积,并分别为加入的至少一个外部节点在集群面积中分配空间面积;若均满足,则通过代理设备与外部主机设备建立双向邻居关系,以保持集群系统中节点分布的均衡性,避免集群系统中节点的集中分布。
图15示出了本发明实施例集群系统的另一种结构示意图,如图15所示,集群系统包括多个节点设备,其中任意一个节点设备与集群系统中的其它节点设备建立有双向邻居关系,每个节点加入集群后,集群系统为节点分配节点编号及新加入节点在集群系统中所分配的空间面积。如图15中,节点318(1024)是指该节点的编号为318,集群系统为节点318分配的空间面积为1024,节点318接收到外部节点发送的请求加入集群系统的请求消息后,节点318分别确定节点318在集群系统中所分配的空间面积与节点318的双向邻居节点在集群系统中所分配的空间面积的比值是否均满足预设关系,即节点318确定自身所分配空间面积与邻居节点212、315、509、216及513所分配空间面积的比是否均满足预设关系,例如是否均满足1:1或2:1关系,由于节点318(1024)与节点509(2048)的空间面积不满足设定的比例关系,因此节点318不能接收外部节点加入,此时节点318可以将节点509的信息发送该外部节点以使外部节点向节点509发送请求加入信息,节点509接收到外部节点发送的请求加入集群系统的请求消息后,确定自身所分配的空间面积与双向邻居节点所分配空间面积满足预设比例关系,因此节点509建立与外部节点的双向邻居关系,外部节点加入集群系统后,节点509将自身面积的一半分配给新加入的外部节点,新加入的外部节点也存储自己的编号及节点509分配给的面积。
本发明实施例中,为集群系统中的各节点分配虚拟空间面积,通过虚拟空间面积反映各节点在集群系统中的分布状况,并根据节点所分配的空间面积确定是否外部节点的加入,从而保持集群系统中节点分布的均衡性,避免集群系统中节点的集中分布。
进一步,图15所示的集群系统中的各节点与其邻居节点均建立双向邻居关系,每个节点维护并检测其邻居节点的运行状态,当其中一个节点故障后,发生故障的节点的邻居节点之间同步故障检测结果,同时接管故障节点的邻居关系,从而实现集群系统中节点故障的快速检测。
本实施例的集群系统具体可以应用在云计算服务器集群系统中,具体的云计算服务集群系统中部署至少两台服务器,集群系统中的任意一台服务器与集群系统中的其它服务器建立邻居关系,以实现数据在集群系统中传输。
现有方法中,云计算服务器集群系统中的任意一台服务器选择集群系统中的其它至少一个服务器建立单向的邻居关系,即该台服务器选择集群中的其它至少一台服务器作为自己的邻居后,该台服务器可以向其邻居服务器发送信息,但其邻居服务器不向该台服务器发送自身信息,另外,在不同时刻,该台服务器可以更换邻居,可见现有的云计算服务器集群系统中,节点之间建立的是单向邻居关系,服务器中的信息也是单向传输,不利于服务器信息在集群系统中传播,且服务器不同时刻可能选择不同的邻居,也使得集群系统的拓扑结构不稳定,不利于保持云计算服务器集群系统的高可用性。
为了保持云计算服务器集群系统的高可用性,本方法中,云计算服务器集群系统中部署的服务器与其邻居服务器建立双向的邻居关系,当一台服务器如A服务器选择集群中的至少一台服务器作为邻居服务器后,A服务器与其邻居建立双向邻居关系,即A服务器与其双向邻居服务器之间可以相互传递信息,且在不同时刻,服务器之间的双向邻居关系保持不变。
进一步,当云计算服务器集群系统之外的外部服务器向集群中的其中一台服务器发送请求加入消息时,接收到该消息的服务器根据自身预先存储的空间面积是否分别与其双向邻居服务器的空间面积的比值满足预设关系,若满足,该服务器允许外部服务器接入,否则,该服务器向外部服务器发送集群系统中其它服务器的信息,从而使外部服务器通过其它服务器加入云计算服务器集群系统,其中云计算服务器集群系统中的各服务器对应上述的节点概念,云计算服务器集群系统中各服务器分配空间面积的方法与图7中的方式相同,不再赘述。
可见本发明的云计算服务器集群系统中的服务器之间保持双向固定的邻居关系,当有外部新的服务器加入时,该外部服务器与集群系统中的任意一个服务器建立双向邻居关系,仅改变集群系统局部的邻居关系,不影响集群系统的整体拓扑结构,有利于保持集群系统拓扑结构的稳定性,而且服务器之间双向的邻居关系有利于服务器信息在整个集群系统的快速传播,尤其当集群中出现故障服务器时,有利于对故障服务器的快速诊断与检测,因此利用本方法组建的集群系统能够保持有较高的可用性。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (13)
1.一种集群系统的自组织方法,其特征在于,包括:
集群系统中的节点A接收外部节点发送的请求加入所述集群系统的请求消息,其中,所述集群系统包括至少两个节点,所述节点A为所述集群系统中的一个节点,所述节点A与所述集群系统中的其它至少一个节点互为双向邻居关系,具有所述双向邻居关系的两个节点之间相互传递信息;
所述节点A分别确定所述节点A在所述集群系统中所分配的空间面积与所述节点A的双向邻居节点在所述集群系统中所分配的空间面积的比值是否均满足预设关系,其中,所述集群系统中仅有一个节点时,以该一个节点为原点建立二维坐标系,并在所述二维坐标中为所述集群系统分配集群面积,所述一个节点分配有整个所述集群面积,当有至少一个外部节点加入时,减少所述一个节点在所述集群面积中所占空间面积,并分别为加入的所述至少一个外部节点在所述集群面积中分配空间面积;
若均满足,则所述节点A与所述外部节点建立所述双向邻居关系,以保持所述集群系统中节点分布的均衡性,避免所述集群系统中节点的集中分布。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若所述节点A在集群系统中所分配的空间面积与所述节点A的至少一个双向邻居节点在所述集群系统中所分配的空间面积的比值不满足预设关系,则所述节点A向所述外部节点发送集群系统中除所述节点A外的至少一个节点的信息,用于所述外部节点通过所述集群系统中除所述节点A外的其它节点加入所述集群系统。
3.根据权利要求2所述的方法,其特征在于,所述节点A向所述外部节点发送集群系统中除所述节点A外的至少一个节点的信息,包括:
所述节点A根据所述集群系统中的各节点在所述集群系统中所分配的空间面积,将至少一个在所述集群系统中分配的空间面积分别与其自身的双向邻居节点在所述集群系统中的空间分配面积之比均满足预设关系的节点的信息发送给所述外部节点。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
所述节点A通过所述节点A的双向邻居节点获取所述外部节点通过集群系统中除所述节点A外的其它节点加入所述集群系统的消息。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述节点A将已与所述节点A互为双向邻居关系的节点的信息发送给所述外部节点,用于所述外部节点与集群系统中的除所述节点A外的其它节点建立所述双向邻居关系。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
所述节点A接收所述外部节点与集群中除所述节点A外的其它节点建立双向邻居关系的通知消息。
7.根据权利要求6所述的方法,其特征在于,所述节点A接收所述外部节点与集群中除所述节点A外的其它节点建立双向邻居关系的通知消息,包括:
所述节点A接收所述外部节点与所述节点A的双向邻居节点建立所述双向邻居关系的通知消息。
8.根据权利要求6所述的方法,其特征在于,所述节点A接收所述外部节点与集群中除所述节点A外的其它节点建立双向邻居关系的通知消息,包括:
所述节点A通过所述外部节点和/或所述节点A的其它双向邻居节点接收所述通知消息。
9.根据权利要求1~8中任一项所述的方法,其特征在于,所述节点A与所述外部节点建立所述双向邻居关系之后,还包括:
所述节点A将与所述外部节点建立双向邻居关系的消息发送给除所述外部节点外的所述节点A的其它双向邻居节点,用于通过所述节点A的双向邻居节点将所述外部节点加入的消息共享至整个集群系统。
10.根据权利要求1~8中的任一项所述的方法,其特征在于,所述方法还包括:
所述节点A通过所述节点A的双向邻居节点获取其它新节点加入所述集群系统的消息。
11.一种节点设备,其特征在于,所述节点设备用于部署于集群系统的节点中,包括:通信接口、存储器、处理器和通信总线,其中,所述通信接口、所述存储器和所述处理器通过所述通信总线通信;
所述存储器用于存放程序,所述处理器用于执行所述存储器存储的程序;
所述通信接口,用于接收外部节点发送的请求加入所述集群系统的请求消息,其中,所述集群系统包括至少两个节点,接收所述请求消息的节点为节点A,所述节点A为所述集群系统中的一个节点,所述节点A与所述集群系统中的其它至少一个节点互为双向邻居关系,具有所述双向邻居关系的两个节点之间相互传递信息;
所述处理器,用于分别确定所述节点A在所述集群系统中所分配的空间面积与所述节点A的双向邻居节点在所述集群系统中所分配的空间面积的比值是否均满足预设关系,其中,所述集群系统中仅有一个节点时,以该一个节点为原点建立二维坐标系,并在所述二维坐标中为所述集群系统分配集群面积,所述一个节点分配有整个所述集群面积,当有至少一个外部节点加入时,减少所述一个节点在所述集群面积中所占空间面积,并分别为加入的所述至少一个外部节点在所述集群面积中分配空间面积;若均满足,则建立所述节点A与所述外部节点建立所述双向邻居关系,以保持所述集群系统中节点分布的均衡性,避免所述集群系统中节点的集中分布。
12.一种节点设备,其特征在于,所述节点设备用于部署于集群系统外的节点中,包括:通信接口、存储器、处理器和通信总线,其中,所述通信接口、所述存储器和所述处理器通过所述通信总线通信;
所述存储器用于存放程序,所述处理器用于执行所述存储器存储的程序;
所述通信接口,用于向集群系统中的节点A发送请求加入所述集群系统的请求消息,其中所述集群系统包括至少两个节点,所述节点A为所述集群系统中的一个节点,所述节点A与所述集群系统中的其它至少一个节点互为双向邻居关系,具有所述双向邻居关系的两个节点之间相互传递信息;
所述处理器,用于在所述节点A允许所述节点设备加入所述集群系统时,建立与所述节点A的双向邻居关系;其中,所述节点A是通过分别确定所述节点A在所述集群系统中所分配的空间面积与所述节点A的双向邻居节点在所述集群系统中所分配的空间面积的比值是否均满足预设关系,若均满足,则所述节点A确定允许与所述节点设备建立所述双向邻居关系;所述集群系统中仅有一个节点时,以该一个节点为原点建立二维坐标系,并在所述二维坐标中为所述集群系统分配集群面积,所述一个节点分配有整个所述集群面积,当有至少一个节点设备加入时,减少所述一个节点在所述集群面积中所占空间面积,并分别为加入的所述至少一个节点设备在所述集群面积中分配空间面积。
13.一种集群系统,其特征在于,所述集群系统包括至少两个节点及新增节点B,节点A为所述至少两个节点中的一个节点,所述新增节点加入所述集群系统的过程包括:
所述节点A接收所述节点B发送的请求加入所述集群系统的请求消息,其中,所述节点A与所述集群系统中的其它至少一个节点互为双向邻居关系,具有所述双向邻居关系的两个节点之间相互传递信息;
所述节点A分别确定所述节点A在所述集群系统中所分配的空间面积与所述节点A的双向邻居节点在所述集群系统中所分配的空间面积的比值是否均满足预设关系,其中,所述集群系统中仅有一个节点时,以该一个节点为原点建立二维坐标系,并在所述二维坐标中为所述集群系统分配集群面积,所述一个节点分配有整个所述集群面积,当有至少一个外部节点加入时,减少所述一个节点在所述集群面积中所占空间面积,并分别为加入的所述至少一个外部节点在所述集群面积中分配空间面积;
若均满足,则所述节点A与所述节点B建立所述双向邻居关系,以保持所述集群系统中节点分布的均衡性,避免所述集群系统中节点的集中分布。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201511028856.0A CN106936614B (zh) | 2015-12-31 | 2015-12-31 | 集群系统的自组织方法、设备及系统 |
EP16206544.5A EP3188531B1 (en) | 2015-12-31 | 2016-12-23 | Cluster system self-organizing method, device, and cluster system |
US15/392,136 US10904093B2 (en) | 2015-12-31 | 2016-12-28 | Cluster system self-organizing method, device, and cluster system |
JP2016256211A JP6353025B2 (ja) | 2015-12-31 | 2016-12-28 | クラスタシステム自己組織化方法、デバイス、およびクラスタシステム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201511028856.0A CN106936614B (zh) | 2015-12-31 | 2015-12-31 | 集群系统的自组织方法、设备及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106936614A CN106936614A (zh) | 2017-07-07 |
CN106936614B true CN106936614B (zh) | 2020-02-14 |
Family
ID=57944238
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201511028856.0A Active CN106936614B (zh) | 2015-12-31 | 2015-12-31 | 集群系统的自组织方法、设备及系统 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10904093B2 (zh) |
EP (1) | EP3188531B1 (zh) |
JP (1) | JP6353025B2 (zh) |
CN (1) | CN106936614B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108833169A (zh) * | 2018-06-21 | 2018-11-16 | 郑州云海信息技术有限公司 | 一种节点上线管理方法和节点 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101800689A (zh) * | 2009-02-05 | 2010-08-11 | 李冰 | 一种大规模非中心互联网中基于角色的路由方法 |
CN103441918A (zh) * | 2013-08-29 | 2013-12-11 | 哈尔滨工程大学 | 一种自组织集群服务器系统及其自组织方法 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7242907B2 (en) * | 2001-12-10 | 2007-07-10 | Harris Corporation | System and method for inband signaling for sector synchronization in a wireless communication system |
US20060031429A1 (en) | 2004-08-06 | 2006-02-09 | Sharp Laboratories Of America, Inc. | Central coordinator selection in ad hoc network |
FI20105658A (fi) * | 2010-06-10 | 2011-12-11 | Defendec Inc | Laite ja menetelmä liikkuvaa ad hoc -monijänneverkkoa varten |
US9363164B2 (en) * | 2012-07-20 | 2016-06-07 | Telefonaktiebolaget Lm Ericsson (Publ) | Logical inter-cloud dispatcher |
US20140162682A1 (en) * | 2012-12-06 | 2014-06-12 | At&T Intellectual Property I, L.P. | Overshooting cell detection for self optimizing network applications |
CN105027173B (zh) * | 2013-03-07 | 2019-03-01 | 富士通株式会社 | 数据收集方法、系统以及数据收集程序 |
CN104378800B (zh) | 2013-08-13 | 2018-03-06 | 华为终端(东莞)有限公司 | 用于加入邻近感知网络设备群的方法及设备 |
US10327197B2 (en) * | 2014-01-31 | 2019-06-18 | Qualcomm Incorporated | Distributed clustering of wireless network nodes |
-
2015
- 2015-12-31 CN CN201511028856.0A patent/CN106936614B/zh active Active
-
2016
- 2016-12-23 EP EP16206544.5A patent/EP3188531B1/en active Active
- 2016-12-28 US US15/392,136 patent/US10904093B2/en active Active
- 2016-12-28 JP JP2016256211A patent/JP6353025B2/ja active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101800689A (zh) * | 2009-02-05 | 2010-08-11 | 李冰 | 一种大规模非中心互联网中基于角色的路由方法 |
CN103441918A (zh) * | 2013-08-29 | 2013-12-11 | 哈尔滨工程大学 | 一种自组织集群服务器系统及其自组织方法 |
Also Published As
Publication number | Publication date |
---|---|
US20170195185A1 (en) | 2017-07-06 |
EP3188531A1 (en) | 2017-07-05 |
JP6353025B2 (ja) | 2018-07-04 |
CN106936614A (zh) | 2017-07-07 |
EP3188531B1 (en) | 2020-03-25 |
JP2017146962A (ja) | 2017-08-24 |
US10904093B2 (en) | 2021-01-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10476697B2 (en) | Network-on-chip, data transmission method, and first switching node | |
CN107453929B (zh) | 集群系统自构建方法、装置及集群系统 | |
JP6300918B2 (ja) | D2d発見信号の送信方法及び送信装置 | |
CN110557416B (zh) | 一种多节点协同打块的方法及系统 | |
CN106230622B (zh) | 一种集群实现方法及装置 | |
Biswas et al. | A novel leader election algorithm based on resources for ring networks | |
US10216593B2 (en) | Distributed processing system for use in application migration | |
CN113886058A (zh) | 一种跨集群资源调度方法和装置 | |
US9032118B2 (en) | Administration device, information processing device, and data transfer method | |
CN102984174A (zh) | 一种发布订阅系统中可靠性保障方法及系统 | |
CN106936614B (zh) | 集群系统的自组织方法、设备及系统 | |
US20200412603A1 (en) | Method and system for managing transmission of probe messages for detection of failure | |
CN106790354B (zh) | 一种防数据拥堵的通信方法及其装置 | |
CN112631756A (zh) | 一种应用于航天测控软件的分布式调控方法及装置 | |
US11422866B2 (en) | Computer network of computing resource infrastructures and method for allocating said resources to client applications | |
CN114173396B (zh) | 终端联网时间的确定方法和装置、电子设备和存储介质 | |
KR101251630B1 (ko) | 푸쉬 서비스 제공 시스템 및 방법 | |
CN112968794B (zh) | 网络功能链部署方法、装置、终端设备以及存储介质 | |
CN111131083B (zh) | 节点间数据传输方法、装置、设备及计算机可读存储介质 | |
CN107615872B (zh) | 一种释放连接的方法、装置及系统 | |
CN104580328A (zh) | 虚拟机迁移方法、装置及系统 | |
CN114422526A (zh) | 一种区块同步方法、装置、电子设备和存储介质 | |
CN111901421A (zh) | 一种数据处理方法及相关设备 | |
Guerrero-Contreras et al. | Proposal and comparative analysis of a voting-based election algorithm for managing service replication in MANETs | |
WO2022228121A1 (zh) | 提供服务的方法及装置 |
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 |