一种服务器集群管理方法、装置及相关组件与流程

文档序号:24124688发布日期:2021-03-02 12:54阅读:70来源:国知局
一种服务器集群管理方法、装置及相关组件与流程

[0001]
本申请涉及服务器领域,特别涉及一种服务器集群管理方法、装置及相关组件。


背景技术:

[0002]
随着云技术的不断发展、成熟,云计算数据中心也在不断地变化、发展、壮大。如今,云数据中心已经普遍实现了以千为统计单位的服务器,其不断规模化发展也使它不再仅仅是服务器的托管、维护场所,更是一个集大规模数据运算和海量数据存储为一体的高可靠、高性能计算机的集中场所。这一切都促使云计算数据中心具备较强异构性、数据庞大等特点。而对于如此数量的服务器,在复杂的it环境下,任何的服务器单点故障,如网络中断、服务器宕机、数据库性能下降、防火墙失效、应用停止等,都会导致集群系统部分或全部中断。
[0003]
在目前的集群管理中,大多采用snmp协议对网络设备进行监管。snmp协议即简单网络管理协议,提供统一的接口,实现了不同种类和厂商的网络设备之间的统一管理。snmp使用嵌入到网络设施中的代理软件来收集设备统计数据,代理不断地收集统计数据并记录到mib中,网络管理人员通过向代理的mib发出查询信号可以得到这些信息。虽然mib计数器将统计数据的总和记录下来了,但它无法对日常统计数据进行历史分析。为了能全面地查看一天或者更久的性能数据和变化率,管理人员必须不断轮询snmp代理,例如一天中的每分钟都要轮询一次,显然,在中、大型集群中,snmp协议建立在轮询上的管理存在着两个弱点,一是轮询会产生巨大的网络管理通信量,导致网络拥挤情况的发生,二是网络控制台难应付收集数据的负担。
[0004]
因此,如何提供一种解决上述技术问题的方案是本领域技术人员目前需要解决的问题。


技术实现要素:

[0005]
本申请的目的是提供一种服务器集群管理方法、装置、电子设备及计算机可读存储介质,能够避免轮询所造成的网络阻塞和性能下降,有效提升了服务器集群的稳定性,同时可以保证各个监测服务器负载均衡,进一步提高管理性能。
[0006]
为解决上述技术问题,本申请提供了一种服务器集群管理方法,包括:
[0007]
确定监测服务器;
[0008]
根据负载均衡策略,为集群中的各个被监测服务器分配对应的所述监测服务器,其中,所述被监测服务器中配置有agent服务;
[0009]
通过所述agent服务将获取到的所述被监测服务器的性能指标数据发送至其对应的所述监测服务器;
[0010]
利用所述监测服务器根据所述性能指标数据管理所述被监测服务器。
[0011]
优选的,所述确定监测服务器的过程具体包括:
[0012]
在所述集群内的所有服务器中确定监测服务器;
[0013]
和/或,
[0014]
在所述集群外的服务器中确定所述监测服务器。
[0015]
优选的,所述监测服务器的数量为多个;
[0016]
该服务器集群管理方法还包括:
[0017]
在所有所述监测服务器中确定主监测服务器或从监测服务器。
[0018]
优选的,该服务器集群管理方法还包括:
[0019]
通过处于正常状态的所述主监测服务器或所述从监测服务器向所述集群发送广播信息,以识别所述集群中上线或下线的服务器。
[0020]
优选的,所述利用所述监测服务器根据所述性能指标数据管理所述被监测服务器的过程包括:
[0021]
通过所述监测服务器执行以下操作:
[0022]
对所述性能指标数据进行处理;
[0023]
根据所述处理后的性能指标数据管理所述被监测服务器;
[0024]
其中,所述处理包括数据过滤处理和/或单位换算处理和/或格式转换处理和/或汇聚计算。
[0025]
优选的,所述利用所述监测服务器根据所述性能指标数据管理所述被监测服务器的过程还包括:
[0026]
通过所述监测服务器执行以下操作:
[0027]
根据所述性能指标数据判断所述被监测服务器是否异常;
[0028]
若是,执行与所述被监测服务器对应的告警操作。
[0029]
优选的,所述根据负载均衡策略,为集群中的各个被监测服务器分配对应的所述监测服务器的过程包括:
[0030]
利用fnv1_32_hash构造hash算法;
[0031]
利用红黑树结构构造hash环;
[0032]
获取所述监测服务器映射出的多个虚拟节点,将所有所述虚拟节点加入所述hash环中;
[0033]
通过所述hash环为集群中的各个被监测服务器分配对应的所述监测服务器。
[0034]
为解决上述技术问题,本申请还提供了一种服务器集群管理装置,包括:
[0035]
确定模块,用于确定监测服务器;
[0036]
分配模块,用于根据负载均衡策略,为集群中的各个被监测服务器分配对应的所述监测服务器,其中,所述被监测服务器中配置有agent服务;
[0037]
上传模块,用于通过所述agent服务将获取到的所述被监测服务器的性能指标数据发送至其对应的所述监测服务器;
[0038]
管理模块,用于利用所述监测服务器根据所述性能指标数据管理所述被监测服务器。
[0039]
为解决上述技术问题,本申请还提供了一种电子设备,包括:
[0040]
存储器,用于存储计算机程序;
[0041]
处理器,用于执行所述计算机程序时实现如上文任意一项所述的服务器集群管理方法的步骤。
[0042]
为解决上述技术问题,本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上文任意一项所述的服务器集群管理方法的步骤。
[0043]
本申请提供了一种服务器集群管理方法,首先在集群的被监测服务器中配置agent服务,由agent服务完成被监测服务器的性能指标数据地获取和上报,以便监测服务器根据接收到的性能指标数据对被监测服务器进行管理,相较于现有技术,监测服务器不需要主动去获取被监测服务器的性能指标数据,从而避免轮询所造成的网络阻塞和性能下降,有效提升了服务器集群的稳定性。此外,按照负载均衡策略将被监测服务器分配给对应的监测服务器节点上,保证各个监测服务器负载均衡,进一步提高管理性能。本申请还提供了一种服务器集群管理装置、电子设备及计算机可读存储介质,具有和上述服务器集群管理方法相同的有益效果。
附图说明
[0044]
为了更清楚地说明本申请实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0045]
图1为本申请所提供的一种服务器集群管理方法的步骤流程图;
[0046]
图2为本申请所提供的一种服务器集群管理系统的结构示意图;
[0047]
图3为本申请所提供的一种hash环示意图;
[0048]
图4为本申请所提供的一种服务器集群管理装置的结构示意图。
具体实施方式
[0049]
本申请的核心是提供一种服务器集群管理方法、装置、电子设备及计算机可读存储介质,能够避免轮询所造成的网络阻塞和性能下降,有效提升了服务器集群的稳定性,同时可以保证各个监测服务器负载均衡,进一步提高管理性能。
[0050]
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0051]
请参照图1,图1为本申请所提供的一种服务器集群管理方法的步骤流程图,该服务器集群管理方法包括:
[0052]
s101:确定监测服务器;
[0053]
具体的,本实施例首先确定监测服务器,监测服务器用于管理集群中的被监测服务器,监测服务器可以从服务器集群内选择,也可以从服务器集群外选择。监测服务器的个数可以为一个也可以为多个,当监测服务器个数为多个时,每个监测服务器可以监测一个被监测服务器,也可以监测多个被监测服务器,根据实际工程需要确定即可,本实施例在此不做具体的限定。
[0054]
s102:根据负载均衡策略,为集群中的各个被监测服务器分配对应的监测服务器,其中,被监测服务器中配置有agent服务;
[0055]
s103:通过agent服务将获取到的被监测服务器的性能指标数据发送至其对应的监测服务器;
[0056]
具体的,考虑到有多个监测服务器同时工作,按照负载均衡策略将被监测服务器分配到不同的监测服务器节点上,保证各个监测服务器负载均衡,提高管理性能。
[0057]
具体的,在服务器集群中的被监测服务器上安装agent服务,agent服务以预设频率周期采集该被监测服务器上的性能指标数据,并将采集到的性能指标数据上报给监测服务器,以避免监测服务器主动轮询查询造成的网络阻塞和性能下降。其中,性能指标数据包括cpu利用率、内存利用率、硬盘利用率、进程及网络使用率等。
[0058]
可以理解的是,由于agent服务需要长期驻留被监测服务器内存,需要考虑程序的资源占用和执行效率,本申请采用c语言实现agent服务,支持第三方监测采集插件,易于监测服务程序扩展。
[0059]
其中,agent服务以预设上报周期向监测服务器上报被监测服务器的性能指标数据,预设上报周期和预设频率周期都可根据实际工况设置,支持秒级精度性能监控,提高可靠性。
[0060]
作为一种优选的实施例,监测服务器的数量为多个;
[0061]
该服务器集群管理方法还包括:
[0062]
在所有监测服务器中确定主监测服务器或从监测服务器。
[0063]
具体的,当监测服务器的个数为多个时,从多个监测服务器中选择一台作为主监测服务器,再选择一台作为从监测服务器,从监测服务器为主监测服务器故障时的备份监测服务器,以实现高可用性。可以理解的是,当主从两台监测服务器均为正常状态时,主监测服务器作为默认服务器,对服务器集群中对应的被监测服务器进行监控、管理。主监测服务器和从监测服务器之间互相发送心跳信号,以使二者可以互相知道对方的工作状态,当从监测服务器超过预设时间未接收主监测服务器发送的心跳信号时,判定主监测服务器为异常状态,此时由从监测服务器对服务器集群中对应的被监测服务器进行监控、管理。
[0064]
s104:利用监测服务器根据性能指标数据管理被监测服务器。
[0065]
具体的,监测服务器根据其对应的被监测服务器中的agent服务上传的性能指标数据对被监测服务器进行管理。
[0066]
具体的,请参照图2,图2为本申请实施例所提供的一种服务器集群管理系统的结构示意图,监测服务器中部署有数据接收器、数据分析器及业务处理器,相应的,利用监测服务器根据性能指标数据管理被监测服务器的过程包括:
[0067]
利用监测服务器中的数据接收器接收agent服务上报的性能指标数据,并根据业务需要对接收到的性能指标数据进行处理,处理包括数据过滤处理,过滤掉不符合标准的性能指标数据,以减低干扰数据对监测服务器执行管理步骤的影响,处理还包括单位换算处理,将性能指标数据转化为标准单位,便于后续分析,处理还包括格式转换处理,将性能指标数据转换为标准格式,便于后续分析。可以理解的是,数据接收器必须适应服务器集群规模的快速增长,因此需要考虑数据接收器在短时间内的并发处理能力,netty是一个基于java nio的异步通信框架,具有异步非阻塞、基于事件驱动、高性能、高可靠性和高可定制性,同时支持自定义协议栈的框架,因此,作为一种优选的实施例,可以通过netty实现数据接收器,基于tcp协议构建性能监控私有协议,与agent服务进行数据通信。
[0068]
进一步的,通过监测服务器中的数据分析器接收数据接收器传输过来的经过处理后的性能指标数据,可以通过数据分析器对性能指标数据进行二次处理,包括汇聚计算,这里的汇聚计算可以指平均值计算,即对预设时间段内获取到的同一性能指标对应的数据求平均值,一方面降低干扰数据的影响,另一方面,可以将每一时间段对应的平均值存入数据库,实现对集群运行性能指标历史回溯的同时,减少数据存储量,当然汇聚计算可以根据实际工程需要选择,本申请在此不做具体的限定。数据分析器还可以根据预设的告警规则判断接收到的性能指标数据是否达到告警条件,若是,则根据告警规则向外发出告警信号,告警规则可分级设置,根据不同的告警等级,生成不同的告警信号,以便工作人员采取对应的措施。作为一种优选的实施例,可以利用java多线程技术实现数据分析器,并将处理后的性能指标数据存储influxdb数据库。
[0069]
具体的,利用监测服务器中的业务处理器实现业务处理、日志记录、异常处理等功能,该业务处理器对外提供性能指标数据的查询、邮件告警、性能报表等借口,实现与管理员的交互,是与第三方系统集成的门面。
[0070]
可见,本实施例中首先在集群的被监测服务器中配置agent服务,由agent服务完成被监测服务器的性能指标数据地获取和上报,以便监测服务器根据接收到的性能指标数据对被监测服务器进行管理,相较于现有技术,监测服务器不需要主动去获取被监测服务器的性能指标数据,从而避免轮询所造成的网络阻塞和性能下降,有效提升了服务器集群的稳定性。此外,按照负载均衡策略将被监测服务器分配给对应的监测服务器节点上,保证各个监测服务器负载均衡,进一步提高管理性能。
[0071]
在上述实施例的基础上:
[0072]
作为一种优选的实施例,该服务器集群管理方法还包括:
[0073]
通过处于正常状态的主监测服务器或从监测服务器向集群发送广播信息,以识别集群中上线或下线的服务器。
[0074]
具体的,参照上文所述,本实施例中可通过主监测服务器或从监测服务器对集群中的被监测服务器进行管理,可以理解是,当二者均为正常状态,默认主监测服务器具有管理权,当主监测服务器异常,且从监测服务器处于正常状态,从监测服务器具有管理权,通过具有管理权的主监测服务器或从监测服务器向集群发送广播信息,根据集群返回的信息,动态识别集群中是否有新上线或新下线的服务器,维护集群中服务器状态,便于后续管理。
[0075]
作为一种优选的实施例,根据负载均衡策略,为集群中的各个被监测服务器分配对应的监测服务器的过程包括:
[0076]
利用fnv1_32_hash构造hash算法;
[0077]
利用红黑树结构构造hash环;
[0078]
获取监测服务器映射出的多个虚拟节点,将所有虚拟节点加入hash环中;
[0079]
通过hash环为集群中的各个被监测服务器分配对应的监测服务器。
[0080]
具体的,集群中各服务器上线时,首先会产生唯一标识符比如资源id,本实施例根据负载均衡策略hash(id)分配资源到监测节点,利用改进的一致性hash算法实现负载均衡,首先使用fnv1_32_hash构造hash算法,然后使用红黑树结构构造hash环,将所有的监测服务器节点加入hash环中,考虑到如果监测节点数量较少,会造成分布在hash环上的位置
不均匀,发生严重的数据倾斜,如果某监测服务器节点下线,它原本负责的任务将全部交由顺时针方向的下一个监测服务器节点,可能造成滚雪球似的崩溃,因此,本实施例引入了虚拟节点,由一个实际检测服务器节点映射出多个虚拟节点,将虚拟节点加入到hash环中,这样hash环上的空间分割会变得均匀,参照图3所示,当一个实际检测服务器节点失效退出后,它原来所承载的压力也会均匀地分散到其它节点上去,从而实现了负载均衡。
[0081]
综上所述,采用本申请的方案避免了使用snmp造成的控制台压力,支持大型集群管理;能够根据实际需要调节指标监控频率,支持秒级精度性能监控,功能强大;通过分布式管理架构,能够根据集群规模大小,水平扩展,灵活部署;过master-slave模式实现性能监控高可用,保障监控服务的稳定性;通过业务处理器提供各种服务接口,支持第三方系统集成,方便管理员查询交互,极大降低了数据中心服务器集群的管理运维难度,有效提升了服务器集群稳定性。
[0082]
请参照图4,图4为本申请所提供的一种服务器集群管理装置的结构示意图,该服务器集群管理装置包括:
[0083]
确定模块1,用于确定监测服务器;
[0084]
分配模块2,用于根据负载均衡策略,为集群中的各个被监测服务器分配对应的监测服务器,其中,被监测服务器中配置有agent服务;
[0085]
上传模块3,用于通过agent服务将获取到的被监测服务器的性能指标数据发送至其对应的监测服务器;
[0086]
管理模块4,用于利用监测服务器根据性能指标数据管理被监测服务器。
[0087]
可见,本实施例中首先在集群的被监测服务器中配置agent服务,由agent服务完成被监测服务器的性能指标数据地获取和上报,以便监测服务器根据接收到的性能指标数据对被监测服务器进行管理,相较于现有技术,监测服务器不需要主动去获取被监测服务器的性能指标数据,从而避免轮询所造成的网络阻塞和性能下降,有效提升了服务器集群的稳定性。此外,按照负载均衡策略将被监测服务器分配给对应的监测服务器节点上,保证各个监测服务器负载均衡,进一步提高管理性能。
[0088]
作为一种优选的实施例,确定模块1具体用于:
[0089]
在集群内的所有服务器中确定监测服务器;
[0090]
和/或,
[0091]
在集群外的服务器中确定监测服务器。
[0092]
作为一种优选的实施例,监测服务器的数量为多个;
[0093]
该服务器集群管理装置还包括:
[0094]
主从配置模块,用于在所有监测服务器中确定主监测服务器或从监测服务器。
[0095]
作为一种优选的实施例,该服务器集群管理装置还包括:
[0096]
识别模块,用于通过处于正常状态的主监测服务器或从监测服务器向集群发送广播信息,以识别集群中上线或下线的服务器。
[0097]
作为一种优选的实施例,管理模块4包括:
[0098]
数据处理单元,用于通过监测服务器执行以下操作:
[0099]
对性能指标数据进行处理;
[0100]
根据处理后的性能指标数据管理被监测服务器;
[0101]
其中,处理包括数据过滤处理和/或单位换算处理和/或格式转换处理和/或汇聚计算。
[0102]
作为一种优选的实施例,管理模块4还包括:
[0103]
告警单元,用于通过监测服务器执行以下操作:
[0104]
根据性能指标数据判断被监测服务器是否异常;
[0105]
若是,执行与被监测服务器对应的告警操作。
[0106]
作为一种优选的实施例,根据负载均衡策略,为集群中的各个被监测服务器分配对应的监测服务器的过程包括:
[0107]
利用fnv1_32_hash构造hash算法;
[0108]
利用红黑树结构构造hash环;
[0109]
获取监测服务器映射出的多个虚拟节点,将所有虚拟节点加入hash环中;
[0110]
通过hash环为集群中的各个被监测服务器分配对应的监测服务器。
[0111]
另一方面,本申请还提供了一种电子设备,包括:
[0112]
存储器,用于存储计算机程序;
[0113]
处理器,用于执行计算机程序时实现如上文任意一项的服务器集群管理方法的步骤。
[0114]
对于本申请所提供的一种电子设备的介绍请参照上述实施例,本申请在此不再赘述。
[0115]
本申请所提供的一种电子设备具有和上述服务器集群管理方法相同的有益效果。
[0116]
另一方面,本申请还提供了一种计算机可读存储介质,,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上文任意一项的服务器集群管理方法的步骤。
[0117]
对于本申请所提供的一种计算机可读存储介质的介绍请参照上述实施例,本申请在此不再赘述。
[0118]
本申请所提供的一种计算机可读存储介质具有和上述服务器集群管理方法相同的有益效果。
[0119]
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的状况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0120]
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其他实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1