一种服务器集群管理方法及系统与流程

文档序号:12491522阅读:200来源:国知局
一种服务器集群管理方法及系统与流程

本发明涉及计算机领域,尤其涉及一种服务器集群管理方法及系统。



背景技术:

服务器集群(Server cluster)就是指将很多服务器集中起来一起进行同一种服务,在客户端看来就像是只有一个服务器。服务器集群可以利用多个计算机进行并行计算从而获得很高的计算速度,也可以用多个计算机做备份,从而使得任何一个机器坏了整个系统还是能正常运行。如何进行服务器集群进行统一的控制管理是非常重要的课题。



技术实现要素:

本发明提供了一种服务器集群管理方法及系统,实现了对所述服务器集群中服务器的控制和管理。

本发明实施例提供了一种服务器集群管理方法,所述方法包括:

中心机向被管理服务器发送命令执行消息,所述命令执行消息中包括待执行命令以及所述待执行命令的命令标识,所述被管理服务器为服务器集群中的任意一个服务器;

所述被管理服务器在接收到所述命令执行消息后,执行所述待执行命令,生成命令执行结果,并向所述中心机发送所述命令执行结果,所述命令执行结果中携带有所述待执行命令的命令标识。

可选的,所述待执行命令中包括被调用函数名称以及待执行命令参数;

所述执行所述待执行命令,生成命令执行结果包括:

结合所述待执行命令参数,根据所述被调用函数名称调用所述被管理服务器中存储的被调用函数,生成调用结果。

可选的,所述命令执行消息中还包括:服务器标识;

所述方法还包括:

所述被管理服务器判断所述命令执行消息中携带的所述服务器标识与所述被管理服务器的标识是否匹配,若匹配,则执行所述待执行命令。

可选的,所述命令执行结果中还包括:

所述被管理服务器执行所述待执行命令时所使用的进程的标识。

可选的,在所述中心机在向所述被管理服务器发送命令执行消息之前,所述方法还包括:

对所述命令执行消息进行加密;

所述被管理服务器在接收到加密后的所述命令执行消息后,所述方法还包括:

对所述命令执行消息进行解密。

可选的,所述方法还包括:

所述中心机周期性的向所述被管理服务器发送心跳数据包;

所述被管理服务器在接收到所述心跳包后,向所述中心机返回应答数据包。

可选的,所述方法还包括:

所述被管理服务器对第一主进程进行监控,若所述第一主进程中断,则新建第二主进程,所述第一主进程和所述第二主进程用于执行所述待执行命令。

本发明实施例还提供了一种服务器集群管理系统,所述系统包括:中心机和被管理服务器;

其中,所述中心机,用于向所述被管理服务器发送命令执行消息,所述命令执行消息中包括待执行命令以及所述待执行命令的命令标识,所述被管理服务器为服务器集群中的任意一个服务器;

所述被管理服务器,用于在接收到所述命令执行消息后,执行所述待执行命令,生成命令执行结果,并向所述中心机发送所述命令执行结果,所述命令执行结果中携带有所述待执行命令的命令标识。

可选的,所述待执行命令中包括被调用函数名称以及待执行命令参数;

所述被管理服务器,具体用于在接收到所述命令执行消息后,结合所述待执行命令参数,根据所述被调用函数名称调用所述被管理服务器中存储的被调用函数,生成调用结果,并向所述中心机发送所述调用结果,所述调用结果中携带有所述待执行命令的命令标识。

可选的,所述中心机,还用于:

周期性的向所述被管理服务器发送心跳数据包;

所述被管理服务器,还用于在接收到所述心跳数据包后,向所述中心机返回应答数据包。

本发明通过中心机向被管理服务器发送命令执行消息,所述被管理服务器在接收到所述命令执行消息后,执行所述待执行命令,生成命令执行结果,并向所述中心机发送所述命令执行结果,实现了中心机对被管理服务器的控制和管理。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。

图1为本发明实施例一提供的一种服务器集群管理方法的流程图;

图2为本发明实施例二提供的一种服务器集群管理系统的结构框图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

实施例一:

参见图1,该图为本发明实施例一提供的一种服务器集群管理方法的流程图。

本实施例提供的服务器集群管理方法包括如下步骤:

步骤S101:中心机向被管理服务器发送命令执行消息,所述命令执行消息中包括待执行命令以及所述待执行命令的命令标识,所述被管理服务器为服务器集群中的任意一个服务器。

在本实施例中,所述被管理服务器为服务器集群中任意一个服务器。所述中心机是指控制和管理所述被管理服务器的设备,例如服务器。所述中心机管理所述被管理服务器的方式是:向所述被管理服务器发送命令执行消息,所述命令执行消息中包括待执行命令以及所述待执行命令的命令标识。所述待执行命令可以包括但不限于在所述被管理服务器上安装应用程序、重启应用程序、采集被管理服务器的信息(例如CPU的使用率、物理内存使用率、负载情况等)等等。每个待执行命令都分配有对应的命令标识,所述命令标识可以是命令ID,被管理服务器在返回命令执行结果时,携带所述命令标识,以使所述中心机知晓是哪个命令对应的命令执行结果。

在实际应用中,所述中心机在生成所述命令执行消息时,需要按照指定的格式生成。比如,在所述命令执行消息的首位填写命令类型,命令类型可以采用数字、字母等表示,例如用1表示命令执行消息、2表示心跳包等。再比如,在所述命令执行消息的第二位填写服务器标识。服务器标识用于对被管理服务器进行验证,即当被管理服务器接收到所述命令执行消息中携带的服务器标识后,根据服务器标识与被管理服务器的标识进行比对,若二者匹配,则说明所述命令执行消息被发送的对象是正确的,可以执行所述待执行命令;若二者不匹配,则说明所述命令执行消息被发错了对象,所述被管理服务器停止执行所述待执行命令,并且可以向所述中心机发送所述命令执行消息发送错误的消息。所述服务器标识可以是服务器的IP地址,也可以是唯一标识等等,本发明不做具体限定。当被管理服务器在接收到按照指定格式生成的命令执行消息后,按照指定格式读取命令执行消息中携带的各种信息。

此外,在实际应用中,为了提高所述命令执行消息在中心机与被管理服务器之间传输的安全性,可选的,所述中心机对所述命令执行消息进行加密,加密后再发送给所述被管理服务器。加密算法可以采用现有技术中的AES(Advanced Encryption Standard,高级加密标准)算法、MD5算法、DES(Data Encryption Standard,数据加密标准)算法、IDEA(International Data Encryption Algorithm,国际数据加密算法)等等,本发明不做具体限定。当所述被管理服务器接收到所述加密后的命令执行消息后,需要对所述命令执行消息进行解密,以得到所述待执行命令。

步骤S102:所述被管理服务器在接收到所述命令执行消息后,执行所述待执行命令,生成命令执行结果,并向所述中心机发送所述命令执行结果,所述命令执行结果中携带有所述待执行命令的命令标识。

所述被管理服务器在接收到所述命令执行消息后,执行所述待执行命令,生成命令执行结果。所述命令执行结果中除了可以携带有所述待执行命令的命令标识,可选的,还可以携带有待执行命令被执行的线程的标识,以便所述中心机通过控制线程中断来结束执行所述待执行命令。

所述命令执行结果在生成之后可以立即发出,也可以延迟发出。若命令执行结果有多个,则可以每生成一个就发出一个,也可以同时发多个。在实际应用中,所述命令执行结果可以以日志的形式体现,所述日志中还可以记载所述被管理服务器的状态,例如CPU利用率、内存空间使用大小、线程使用状况等信息。

所述被管理服务器可以周期性的向中心机发送日志,也可以根据日志积累的数量来发送,即若被管理服务器生成的日志数量达到预设数量时,就向中心机发送这些日志。或者,还可以将周期性发送和预设数量结合在一起,即当在预设时间段(比如5秒钟)内,生成的日志没有累计到该预设数量,就发送当前已经生成的日志。

为了节约中心机与所述被管理服务器之间的信息传输资源,提高信息传输效率,可选的,所述被管理服务器事先存储有用于执行待执行命令的被调用函数,所述中心机在向所述被管理服务器发送所述命令执行消息时,仅需要发送被调用函数的名称以及待执行命令参数即可,不需要发送完整的被调用函数。当所述被管理服务器接收到所述被调用函数的名称以及待执行命令参数后,结合所述待执行命令参数,根据所述被调用函数名称调用所述被管理服务器中存储的被调用函数,生成调用结果。

例如,所述待执行命令为统计文件夹的大小,那么所述命令执行消息可以包括如下待执行命令:scm_folderSize(文件夹路径),其中,所述scm_folderSize为被调用函数的名称,括号中的文件夹路径为待执行命令参数。所述被管理服务器根据所述被调用函数名称X查找对应的被调用函数,并调用所述被调用函数统计与所述文件夹路径对应的文件夹的大小。

此外在实际应用中,为了确认所述被管理服务器始终处于可通信状态下的,所述中心机可以向所述被管理服务器发送心跳数据包,当所述被管理服务器在接收到所述心跳数据包后,向所述中心机返回应答数据包,以让中心机知道所述被管理服务器处于能够接收到中心机的消息的状态下。若中心机在发送了心跳数据包后的预设时间段内都没有收到被管理服务器反馈的应答数据包,则可能是被管理服务器出现了故障,或者中心机与被管理服务器之间的链路出现了问题。在这种情况下,中心机就不向所述被管理服务器发送命令执行消息了,以免浪费资源。待到被管理服务器或二者之间的链路恢复正常之后,中心机再向被管理服务器发送命令执行消息。所述心跳数据包和所述应答数据包的内容以及格式本领域技术人员可以自行设计。比如说,心跳数据包中可以包括所述心跳数据包的标识,以使所述被管理服务器根据所述心跳数据包的标识识别出心跳数据包,以及触发反馈应答数据包的指令。在实际应用中,被管理服务器生成的日志可以单独发送,也可以随着所述反馈应答数据包来发送,本发明不做具体限定。

对于被管理服务器来讲,保证其处于工作状态,即处于能够执行所述命令执行消息的状态也是十分重要的。为了确保这一点,被管理服务器可以对用于执行待执行命令的主进程进行监控,若发现所述第一主进程中断,则新建第二主进程,采用第二主进程来执行中心机下发的待执行命令。当然,如果第一主进程恢复正常,则可以恢复第一主进程的命令执行工作。

另外,本实施例可以采用zeromq作为命令执行消息和命令执行结果等消息的传输协议,从而使传输功能高效可靠,且支持的环境较多。本实施例还可以采用python对待执行命令进行解析和执行,从而使被管理服务器部署方便快捷。中心机接收到的日志可以存储到redis中,redis可以容纳大量日志信息,读取速度快,方便用户查询命令输出。

综上所述,本实施例通过中心机向被管理服务器发送命令执行消息,所述被管理服务器在接收到所述命令执行消息后,执行所述待执行命令,生成命令执行结果,并向所述中心机发送所述命令执行结果,实现了中心机对被管理服务器的控制和管理。

基于以上实施例提供的一种服务器集群管理方法,本发明实施例还提供了一种服务器集群管理系统,下面结合附图来详细说明其工作原理。

实施例二

参见图2,该图为本发明提供的一种服务器集群管理系统的结构框图。

本实施例提供的服务器集群管理系统包括:

中心机101和被管理服务器102。

其中,所述中心机101,用于向所述被管理服务器102发送命令执行消息,所述命令执行消息中包括待执行命令以及所述待执行命令的命令标识。

在本实施例中,所述被管理服务器102为服务器集群中的任意一个服务器。所述中心机101是指控制和管理所述被管理服务器102的设备,例如服务器。所述中心机101管理所述被管理服务器102的方式是:向所述被管理服务器102发送命令执行消息,所述命令执行消息中包括待执行命令以及所述待执行命令的命令标识。所述待执行命令可以包括但不限于在所述被管理服务器102上安装应用程序、重启应用程序、采集被管理服务器102的信息(例如CPU的使用率、物理内存使用率、负载情况等)等等。每个待执行命令都分配有对应的命令标识,所述命令标识可以是命令ID,被管理服务器在返回命令执行结果时,携带所述命令标识,以使所述中心机知晓是哪个命令对应的命令执行结果。

在实际应用中,所述中心机101在生成所述命令执行消息时,需要按照指定的格式生成。比如,在所述命令执行消息的首位填写命令类型,命令类型可以采用数字、字母等表示,例如用1表示命令执行消息、2表示心跳包等。再比如,在所述命令执行消息的第二位填写服务器标识。服务器标识用于对被管理服务器102进行验证,即当被管理服务器102接收到所述命令执行消息中携带的服务器标识后,根据服务器标识与被管理服务器102的标识进行比对,若二者匹配,则说明所述命令执行消息被发送的对象是正确的,可以执行所述待执行命令;若二者不匹配,则说明所述命令执行消息被发错了对象,所述被管理服务器102停止执行所述待执行命令,并且可以向所述中心机101发送所述命令执行消息发送错误的消息。所述服务器标识可以是服务器的IP地址,也可以是唯一标识等等,本发明不做具体限定。当被管理服务器102在接收到按照指定格式生成的命令执行消息后,按照指定格式读取命令执行消息中携带的各种信息。

此外,在实际应用中,为了提高所述命令执行消息在中心机与被管理服务器102之间传输的安全性,可选的,所述中心机101对所述命令执行消息进行加密,加密后再发送给所述被管理服务器102。加密算法可以采用现有技术中的AES(Advanced Encryption Standard,高级加密标准)算法、MD5算法、DES(Data Encryption Standard,数据加密标准)算法、IDEA(International Data Encryption Algorithm,国际数据加密算法)等等,本发明不做具体限定。当所述被管理服务器102接收到所述加密后的命令执行消息后,需要对所述命令执行消息进行解密,以得到所述待执行命令。

所述被管理服务器102,用于在接收到所述命令执行消息后,执行所述待执行命令,生成命令执行结果,并向所述中心机发送所述命令执行结果,所述命令执行结果中携带有所述待执行命令的命令标识。

本实施例通过中心机101向被管理服务器102发送命令执行消息,所述被管理服务器102在接收到所述命令执行消息后,执行所述待执行命令,生成命令执行结果,并向所述中心机101发送所述命令执行结果,实现了中心机对被管理服务器102的控制和管理。

为了节约中心机与所述被管理服务器之间的信息传输资源,提高信息传输效率,可选的,所述待执行命令中包括被调用函数名称以及待执行命令参数;

所述被管理服务器102,具体用于在接收到所述命令执行消息后,结合所述待执行命令参数,根据所述被调用函数名称调用所述被管理服务器中存储的被调用函数,生成调用结果,并向所述中心机101发送所述调用结果,所述调用结果中携带有所述待执行命令的命令标识。

为了确认所述被管理服务器始终处于可通信状态下的,可选的,所述中心机101,还用于:

周期性的向所述被管理服务器102发送心跳数据包;

所述被管理服务器102,还用于在接收到所述心跳数据包后,向所述中心机返回应答数据包。

为了确认所述命令执行消息是否发送给了正确的对象,可选的,所述命令执行消息中还包括:服务器标识;

所述被管理服务器102,还用于判断所述命令执行消息中携带的所述服务器标识与所述被管理服务器的标识是否匹配,若匹配,则执行所述待执行命令。

可选的,所述命令执行结果中还包括:

所述被管理服务器102执行所述待执行命令时所使用的进程的标识。

为了保证命令执行消息在传输过程中的安全性,可选的,所述中心机101,还用于:对所述命令执行消息进行加密;

所述被管理服务器102,还用于:对所述命令执行消息进行解密。

对于被管理服务器来讲,保证其处于工作状态,即处于能够执行所述命令执行消息的状态也是十分重要的。为了确保这一点,可选的,所述被管理服务器102,还用于对第一主进程进行监控,若所述第一主进程中断,则新建第二主进程,所述第一主进程和所述第二主进程用于执行所述待执行命令。

另外,本实施例可以采用zeromq作为命令执行消息和命令执行结果等消息的传输协议,从而使传输功能高效可靠,且支持的环境较多。本实施例还可以采用python对待执行命令进行解析和执行,从而使被管理服务器部署方便快捷。中心机接收到的日志可以存储到redis中,redis可以容纳大量日志信息,读取速度快,方便用户查询命令输出。

当介绍本发明的各种实施例的元件时,冠词“一”、“一个”、“这个”和“所述”都意图表示有一个或多个元件。词语“包括”、“包含”和“具有”都是包括性的并意味着除了列出的元件之外,还可以有其它元件。

需要说明的是,本领域普通技术人员可以理解实现上述方法实施例中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法实施例的流程。其中,所述存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元及模块可以是或者也可以不是物理上分开的。另外,还可以根据实际的需要选择其中的部分或者全部单元和模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

以上所述仅是本发明的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1