本发明涉及计算机集群技术领域,特别是涉及一种集群自组网的方法与装置。
背景技术:
当今计算机技术已经进入以网络为中心的时代,互联网的高速发展,用户数量及网络流量的迅速增长,使得越来越多服务器显得负担沉重,对网络服务器的可扩展性和可用性提出了更高的要求。单个服务器已无法满足人们的计算存储需求。简单的提高硬件性能并不能真正解决这个问题。为了满足计算机的存储需求,出现了越来越多的集群系统。集群是一组相互独立的、通过高速网络互联的计算机,它们构成了一个组,并以单一系统的模式加以管理。一个客户与集群相互作用时,集群像是一个独立的服务器。集群配置可以提高可用性和可缩放性。
现在技术中,很多的集群系统构建过程过于繁杂,过于依赖人工的配置,不方便快速搭建集群。
可见,如何提升构建集群的效率,是本领域技术人员亟待解决的问题。
技术实现要素:
本发明实施例的目的是提供一种集群自组网的方法与装置,可以实现集群的自动组网,提升了构建集群的效率。
为解决上述技术问题,本发明实施例提供一种集群自组网的方法,包括:
判断在预设时间内是否接收到第一数据包;在所述第一数据包中携带有集群的名称和控制节点的ip地址;
若是,则依据所述ip地址向所述控制节点发送响应消息;
当接收到所述控制节点发送的反馈消息后,则依据所述反馈消息中包含的集群配置信息,加入所述集群;
若在预设时间内未接收到所述广播数据包,则将本节点作为控制节点,向外广播第二数据包;在所述第二数据包中携带有本节点的名称和本节点的ip地址。
可选的,所述将本节点作为控制节点,向外广播第二数据包包括:
将本节点作为控制节点,按照预设周期时间向外广播第二数据包。
可选的,还包括:
当所述本地节点为控制节点时,检测所述集群中其他节点的连接状态;
当出现离线的节点后,在规定时间内保存所述节点的配置信息;当超过所述规定时间后,若所述节点仍处于离线状态,则从所述集群配置信息中删除所述节点的配置信息。
可选的,还包括:
当在第二预设时间内未接收到所述控制节点发送的反馈消息,则向所述控制节点重新发送所述响应消息。
本发明实施例还提供了一种集群自组网的装置,包括判断单元、发送单元、加入单元和广播单元,
所述判断单元,用于判断在预设时间内是否接收到第一数据包;在所述第一数据包中携带有集群的名称和控制节点的ip地址;
若是,则触发所述发送单元,所述发送单元,用于依据所述ip地址向所述控制节点发送响应消息;
所述加入单元,用于当接收到所述控制节点发送的反馈消息后,则依据所述反馈消息中包含的集群配置信息,加入所述集群;
若在预设时间内未接收到所述广播数据包,则触发所述广播单元,所述广播单元,用于将本节点作为控制节点,向外广播第二数据包;在所述第二数据包中携带有本节点的名称和本节点的ip地址。
可选的,所述广播单元具体用于将本节点作为控制节点,按照预设周期时间向外广播第二数据包。
可选的,还包括检测单元和处理单元,
当所述本地节点为控制节点时,则触发所述检测单元,所述检测单元,用于检测所述集群中其他节点的连接状态;
所述处理单元,用于当出现离线的节点后,在规定时间内保存所述节点的配置信息;当超过所述规定时间后,若所述节点仍处于离线状态,则从所述集群配置信息中删除所述节点的配置信息。
可选的,当在第二预设时间内未接收到所述控制节点发送的反馈消息时,所述发送单元还用于向所述控制节点重新发送所述响应消息。
由上述技术方案可以看出,节点接入局域网后,可以通过判断在预设时间内是否接收到第一数据包;在所述第一数据包中携带有集群的名称和控制节点的ip地址;当在预设时间内接收到第一数据包,则说明该局域网中已经存在了控制节点,本节点可以依据所述ip地址向所述控制节点发送响应消息;当接收到所述控制节点发送的反馈消息后,则依据所述反馈消息中包含的集群配置信息,加入所述集群。当在预设时间内未接收到所述广播数据包,则说明该局域网中还未出现控制节点,则可以将本节点作为控制节点,向外广播第二数据包;在所述第二数据包中携带有本节点的名称和本节点的ip地址。可见,通过广播或监听数据包的方式,可以快速、准确的进行局域网内集群的自组网,提高了集群组网的效率,减少了节点组网的开销。
附图说明
为了更清楚地说明本发明实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种集群自组网的方法的流程图;
图2为本发明实施例提供的一种集群自组网的装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本发明保护范围。
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。
接下来,详细介绍本发明实施例所提供的一种集群自组网的方法。图1为本发明实施例提供的一种集群自组网的方法的流程图,该方法包括:
s101:判断在预设时间内是否接收到第一数据包。
在本发明实施例中,可以通过交换机或路由器划分出一个局域网,对于局域网内的节点,可以通过局域网广播的方式,实现集群自组网。
对于每个节点而言,可以选取两个端口,一个端口作为广播端口,节点可以通过该广播端口向外广播数据包;另一个端口作为监听端口,节点可以通过该监听端监听是否存在其他节点广播的数据包。
控制节点可以是发起建立集群的节点,控制节点通过广播端口向外广播集群基本信息即第一数据包。在该第一数据包中可以携带有集群的名称和控制节点的ip地址。每个节点都有其所属的节点名称和ip地址,当某一个节点作为控制节点后,则可以将该节点的名称作为集群名称,该节点的ip地址即为控制节点的ip地址。
当节点加入该局域网后,该节点可以通过监听端口监听是否有广播的数据包。
预设时间可以根据节点之间传输数据的时间确定出,例如,可以将预设时间设置为5秒。
当节点在预设时间内可以接收到第一数据包,则说明在该局域网内已经存在了控制节点,则进入步骤s102。当节点在预设时间内未接收到第一数据包,则说明在该局域网内还没有控制节点,则进入步骤s104。
s102:依据所述ip地址向所述控制节点发送响应消息。
响应消息可以看做是节点加入集群的请求消息。在响应消息中可以携带有该节点的配置信息,例如,该节点的名称、ip地址等。
s103:当接收到所述控制节点发送的反馈消息后,则依据所述反馈消息中包含的集群配置信息,加入所述集群。
控制节点接收到节点发送的响应消息后,可以向该节点发送反馈消息。集群配置信息可以用于表示加入集群的详细配置,以便于该节点可以加入到所述集群中。
s104:将本节点作为控制节点,向外广播第二数据包。
在所述第二数据包中携带有本节点的名称和本节点的ip地址。
当节点在预设时间内未接收到第一数据包,则说明在该局域网内还未出现控制节点,则本节点可以作为控制节点。来实现集群自组网。
在控制节点进行一次数据包的广播后,可能有新的节点加入到局域网中,为了保证局域网中的节点可以接收到控制节点广播的数据包,控制节点可以周期性的广播该数据包。
具体的,当某一个节点为控制节点时,该节点可以按照预设周期时间向外广播数据包。
预设周期时间的长短可以根据实际需求进行设定,例如,可以将预设周期时间设置为3秒。控制节点每隔3秒向外广播一次数据包。
由上述技术方案可以看出,节点接入局域网后,可以通过判断在预设时间内是否接收到第一数据包;在所述第一数据包中携带有集群的名称和控制节点的ip地址;当在预设时间内接收到第一数据包,则说明该局域网中已经存在了控制节点,本节点可以依据所述ip地址向所述控制节点发送响应消息;当接收到所述控制节点发送的反馈消息后,则依据所述反馈消息中包含的集群配置信息,加入所述集群。当在预设时间内未接收到所述广播数据包,则说明该局域网中还未出现控制节点,则可以将本节点作为控制节点,向外广播第二数据包;在所述第二数据包中携带有本节点的名称和本节点的ip地址。可见,通过广播或监听数据包的方式,可以快速、准确的进行局域网内集群的自组网,提高了集群组网的效率,减少了节点组网的开销。
考虑到受外部环境等因素的影响,可能会导致控制节点发送反馈消息的失败,导致其他节点无法顺利加入到集群中,实现集群的自组网。针对该种情况,可以采用重复发送响应消息的方式,保障集群自组网的顺利实现。
以某一节点为例,当该节点在第二预设时间内未接收到所述控制节点发送的反馈消息,则向所述控制节点重新发送所述响应消息。
考虑到集群中的节点可能会出现离线的情况,当该节点长时间处于离线状态时,该节点在集群中已经不能发挥任何作用,此时可以将该节点移除,以此来保障集群的高效工作。考虑到节点可能会因为网络或者是自身因素导致暂时离线,针对该种情况,可以设置规定时间。
具体的,可以由控制节点检测所述集群中其他节点的连接状态;当出现离线的节点后,在规定时间内保存所述节点的配置信息;当超过所述规定时间后,若所述节点仍处于离线状态,则从所述集群配置信息中删除所述节点的配置信息。
规定时间的长短可以根据实际需求进行设定,例如,可以将规定时间设置为24小时。当一个节点连续24小时处于连线状态时,则可以将该节点从集群中移除。图2为本发明实施例提供的一种集群自组网的装置的结构示意图,包括判断单元21、发送单元22、加入单元23和广播单元24,
所述判断单元21,用于判断在预设时间内是否接收到第一数据包;在所述第一数据包中携带有集群的名称和控制节点的ip地址。
若是,则触发所述发送单元22,所述发送单元22,用于依据所述ip地址向所述控制节点发送响应消息。
所述加入单元23,用于当接收到所述控制节点发送的反馈消息后,则依据所述反馈消息中包含的集群配置信息,加入所述集群。
若在预设时间内未接收到所述广播数据包,则触发所述广播单元24,所述广播单元24,用于将本节点作为控制节点,向外广播第二数据包;在所述第二数据包中携带有本节点的名称和本节点的ip地址。
可选的,所述广播单元具体用于将本节点作为控制节点,按照预设周期时间向外广播第二数据包。
可选的,还包括检测单元和处理单元,
当所述本地节点为控制节点时,则触发所述检测单元,所述检测单元,用于检测所述集群中其他节点的连接状态;
所述处理单元,用于当出现离线的节点后,在规定时间内保存所述节点的配置信息;当超过所述规定时间后,若所述节点仍处于离线状态,则从所述集群配置信息中删除所述节点的配置信息。
可选的,当在第二预设时间内未接收到所述控制节点发送的反馈消息时,所述发送单元还用于向所述控制节点重新发送所述响应消息。
图2所对应实施例中特征的说明可以参见图1所对应实施例的相关说明,这里不再一一赘述。
由上述技术方案可以看出,节点接入局域网后,可以通过判断在预设时间内是否接收到第一数据包;在所述第一数据包中携带有集群的名称和控制节点的ip地址;当在预设时间内接收到第一数据包,则说明该局域网中已经存在了控制节点,本节点可以依据所述ip地址向所述控制节点发送响应消息;当接收到所述控制节点发送的反馈消息后,则依据所述反馈消息中包含的集群配置信息,加入所述集群。当在预设时间内未接收到所述广播数据包,则说明该局域网中还未出现控制节点,则可以将本节点作为控制节点,向外广播第二数据包;在所述第二数据包中携带有本节点的名称和本节点的ip地址。可见,通过广播或监听数据包的方式,可以快速、准确的进行局域网内集群的自组网,提高了集群组网的效率,减少了节点组网的开销。以上对本发明实施例所提供的一种集群自组网的方法与装置进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。