云平台虚拟机资源自动扩容技术研究

2022-11-02 07:59李茂超
铁道运营技术 2022年4期
关键词:管理工具实例客户端

李茂超,敬 昕

(中国铁路南宁局集团有限公司 信息技术所,1.助理工程师,2.高级工程师,广西 南宁 530029)

随着铁路信息化建设工作的日益深入,云计算管理平台(下文简称云平台)规模迅速扩大,截至2022年5月,中国铁路南宁局集团有限公司(简称南宁局)云平台部署服务器已超过200台,同年计划从基层单位至云平台的系统94个,预计年底虚拟机规模将超过500台,运维人员的工作量不断增大。因此,研究资源自动扩容技术对提升运维效率、减轻人员运维压力有重要意义。

1 现状分析

南宁局部署的管理信息私有云、互联网网站群、一体化生产集成平台均采用云平台架构,为集团公司各类生产、管理、互联网业务系统提供了统一的计算、存储及网络资源。

南宁局采用的云平台资源监控平台具有高度集成、分布式和开箱即用的特性,能够对服务器、网络设备和存储等硬件设备以及数据库、中间件等软件进行监控,同时还支持快捷添加自定义监控脚本,灵活实现对自研程序的监控。监控平台的引入实现了600多套信息系统重要节点的监控,改变了南宁局信息运维部门长期存在的人工巡检的工作模式,有效提升了问题发现与解决效率。

但是,随着信息系统规模和重要程度日益加大,虚拟化技术的广泛使用,对人工处置故障的效率有了更高的要求。同时资源管理部门为节约资源往往采用最小规模分配,按需调整的资源管理模式,容易产生因业务突然增长、虚拟机资源调整不及时造成系统崩溃的重大风险。

2 自动扩容技术研究思路

依据智能运管的理念,运维自动化不应仅仅局限在资源监控方面,更应该在资源自动扩容方面发挥作用,真正实现“监”、“控”全流程的自动化。

研究设计的智能运管技术方案主要包括四个部分,分别是云平台、监控平台、资源管理程序和操作系统管理工具。

3 自动扩容技术设计

3.1 自动扩容技术构架

自动扩容技术架构如图1所示。

图1 自动扩容技术架构设计

云平台主要由两部分构成,分别是计算节点和控制节点,计算节点用于提供虚拟机所需的计算资源,控制节点提供网络管理和资源管控;在每台虚拟机上均需安装监控平台客户端,控制节点需要安装操作系统管理客户端。监控平台服务器通过监控平台客户端采集虚拟服务器当前CPU、内存等资源使用情况信息,如果出现使用率过高情况,监控平台服务器会产生报警信息;自动化资源管理程序由调度器(Scheduler)和执行器(Executer)两个子进程组成,调度器用于周期性调用执行器执行相关服务功能,执行器通过调用操作系统管理工具接口获取出报警信息,筛选出所有与性能瓶颈相关的报警,调用操作系统管理工具接口对云平台进行操作;操作系统管理服务发送虚拟机模板调整命令到安装工具控制节点,工具将命令在控制节点执行,实现对虚拟机的扩容。

3.2 云平台标准构架

在云平台标准架构下,所有资源都使用通用身份验证机制的接口进行管理和配置[1]。云平台所有组件以一种松散的方式组织在一起,分成一个个服务,允许用户按需插拔和使用。云平台标准架构如图2。

图2 云平台标准架构视图

3.3 操作系统管理工具构架

操作系统管理工具可以简单的实现快速横向扩展,并且高效地对服务器进行管理[2]。操作系统管理工具工作在C∕S模式下,既可以通过被控服务器上普通SSH服务进行管理,也可以通过操作系统管理工具专用客户端代理软件进行通信[3]。架构与组件说明如图3。

图3 操作系统管理工具架构与组件

操作系统管理服务器是运行管理服务的服务器。它向一个或多个运行着并已经向服务器注册过的操作系统管理客户端发送指令,指令发送到端口为4505的总线上,之后再从端口地址为4506的总线上获取返回结果[4]。

操作系统管理客户端配置完后会立即向服务器进行注册,并通过4505端口订阅所有目标包含的消息。客户端接收到消息后,在本地执行,执行后产生的结果发送到端口号4506的事件总线上[5]。

速度是操作系统管理工具的最强项,速度的基础就在于有这一套高性能的事件系统。操作系统管理消息总线使用的是ZeroMQ,它使创建异步拓扑以提供最快的通信成为可能。

4 自动扩容技术实现方案

4.1 统一实例名

为保证资源管理程序能通过监控平台接口中的报警信息唯一定位到云平台中的虚拟机实例(如图4),需要使监控平台在客户端(如图5)和服务器端(如图6)配置的主机名,云平台中实例名称,以及操作系统管理客户端中配置的客户端ID(如图7)均需相同。

图4 云平台实例配置

图5 监控平台客户端配置

图6 监控平台服务器实例配置

图7 操作系统管理客户端id配置

4.2 发现问题实例

为使资源管理程序能精准实现对出现性能瓶颈的服务器进行扩容,需要通过监控平台提供报警信息。监控平台提供了完善的接口程序,用于实现报警信息的提取。

为判断虚拟机是否需要扩容,要将通过实例(host)名获取实例id(hostid)信息,通过事件(event)获取事件id(eventid),并以实例id和事件id共同筛选当前发生的报警事件,以此为根据对实例进行扩容。

监控平台提供了三种方法用于提取实例id,事件id和 报 警 信 息,分 别 是:host.get、event.get和problem.get。host.get用于根据被监控实例列表获取被监控实例hostid,event.get用于根据与性能瓶颈相关的事件名筛选出相关的eventid,problem.get将结合host.get和event.get方法返回的hostid和eventid,判断是否存与被控实例相关的性能瓶颈报警。通过这三个接口就可以从所有报警信息中,并定位实例,以此为根据,对云平台实例进行扩容操作。

图8为使用host.get方法获取hostid的代码实现,其中HOST_LIST为被控虚拟机列表,使用POST方法,将监控平台接口的返回hostid信息存入返回指令集中。

图8获取hostid

图9 为使用event.get方法获取eventid的代码实现,其中EVENT_NAME为与资源是否出现瓶颈相关的事件名,使用POST方法,将监控平台接口返回的eventid信息存入返回指令集中。

图9获取eventid

图10 为使用hostid和eventid共同筛选当前存在的报警信息,判断当前哪些被控服务器需要扩容,在此实现代码中,如果执行后返回报警信息,则表示hostid对应的被控服务器已经出现资源瓶颈,需要对其进行扩容操作。

图10 报警信息采集实现

4.3 调用操作系统管理接口

将上一步中所有存在资源瓶颈告警的被控服务器汇总成列表,并调用操作系统管理接口在云平台控制节点上执行远程操作,逐一对被控服务器进行资源扩容。

5 结论

通过将监控平台、云平台、操作系统管理工具技术相结合,研发了一套资源管理程序,设计出一套适用于南宁局云平台的虚拟机实例自动扩容方案,实现自动发现虚拟机实例的资源出现不足隐患,并对出现性能瓶颈隐患的虚拟机进行自动扩容,保证运行在虚拟机实例上的业务更加稳定。结合铁路业务特性,自动扩容技术还可以解决客运高峰、财务统计等可预见性资源调整的需求。

在试运行实验过程中,通过人工干预虚拟机运算量检验功能,实验结果显示,从虚拟机资源占比超出阈值,到监控平台自动发现预警,再到操作系统管理工具主动干预完成虚拟机资源扩容,整个流程约30秒。按传统运维经验,通过人工处置该故障,从资源问题发现到资源扩容申请、审核,再到最后的资源扩容需要数小时。所以,利用自动扩容技术能够有效提升了运维自动化程度及运维效率。

猜你喜欢
管理工具实例客户端
精益A3管理工具在提高STEMI患者绕行急诊科直达导管室的应用与探讨
精益管理工具在手术室耗材管理中的应用
质量管理工具在减少CT停机天数中的应用
如何看待传统媒体新闻客户端的“断舍离”?
县级台在突发事件报道中如何应用手机客户端
孵化垂直频道:新闻客户端新策略
大枢纽 云平台 客户端——中央人民广播电台的探索之路
现代企业与管理工具的运用
完形填空Ⅱ
完形填空Ⅰ