APP下载

“魔方-3”高性能计算机运维管理平台设计与实现

2020-11-05赵奇奇

计算机工程与科学 2020年10期
关键词:魔方集群运维

赵奇奇

(上海超级计算中心,上海 201203)

1 引言

进入信息社会,人类对数据处理的要求越来越高,为了满足科学计算、工程计算等海量数据的处理需求,超级计算机被广泛应用到各行各业。2019年7月“魔方-3”高性能计算机在上海超级计算中心建成并投入使用。“魔方-3”能显著提升上海超算的计算能力,为天文气象、生命科学、能源勘探等领域的模拟计算提供有力支撑。

为了保障“魔方-3”的稳定运行,提高运维效率,需要有一套能对软硬件进行监控管理的系统。由于上海超级计算中心是一个面向社会的开放计算平台,应用场景纷繁复杂。而主机厂商提供的集群管理软件作为一套通用化的软件,并没有针对上海超算的应用场景进行优化和定制,日常使用过程中存在诸多不便。正是在这样的需求推动下,上海超级计算中心系统运维部组织开发了一套适合超算中心运行模式的主机运维管理平台。

2 平台设计

主机运维管理平台采用浏览器/服务器(B/S)结构[1]。平台的运行离不开数据的支撑,本平台的基本数据主要分成2大类:集群硬件数据和用户作业数据。平台通过调用“魔方-3”的IPMI(Intelligent Platform Management Interface)管理网络接口获取集群运行的温度、CPU、内存、硬盘、网络等硬件信息,通过IBM Platform LSF作业调度软件接口获取用户作业运行信息,并将获取的信息进行组织、筛选、分析,最终实现平台的各项功能。各类数据的采集频率可根据集群运行状况随时调节,获取数据之后定时导入MySQL数据库。用户通过终端浏览器访问Web服务器获取数据库里的信息,如图1所示。

Figure 1 Framework of Magic Cube-3 maintenance and management platform图1 “魔方-3”运维管理平台架构

平台采用模块化架构,针对功能需要动态性、可扩展性,构建运维管理平台软件模块“热插拔”机制,灵活应对平台的动态扩展需求。这种模块插件架构体系的核心理念是基于松散的模块积累方式,通过新增模块插件以及升级原有模块插件的方法来完善平台的功能。一个模块的更新不需要对整个运维管理平台进行重新编译,不会影响其它模块。模块插件架构体系的优点非常明显,像硬件一样即插即用。在开发的初期只需划分好模块,只要遵循接口协议,就能开发出互不影响的模块插件,方便开发和调试;由于其灵活性,可以实现平台的灵活定制,当需要新增功能或者修改功能时,只需要对相应模块插件进行修改即可实现,为平台的后续扩展带来了极大的灵活度。

目前平台集成了机房运维、集群监控、自动巡检和数据统计分析4大模块。为了提升操作便利性,显示内容直观明了,该平台采用了基于Web的图形界面。使用者只要通过Web Portal登录运维管理平台,点击鼠标打开界面即可获取当前主机运行状况,包括各结点CPU使用率、集群当前负载、各队列作业数量等众多信息,可生成统计分析报表,也可对集群的软硬件故障进行处置。

硬件配置:Intel Xeon E5-2620,32 GB 内存,双网卡独立服务器;

操作系统:选用CentOS release 6.4版本;

数据库软件:选用MySQL共享版;

服务器端软件:选用Tomcat;

主机端开发工具:Java、shell脚本语言;

服务器端开发工具:选用Java、JSP语言、echart绘图插件。

3 数据采集

主机运维管理平台通过数据采集引擎对多种采集方式进行封装,并对底层硬件以及作业调度软件进行数据采集。在保存这些信息时引入硬件池、指标池、线程池和数据池概念,对采集的各类数据进行分类存储,从而搭建运维管理平台的采集框架。通过采集框架对数据进行统一分发,为上层监控、巡检、统计分析等模块提供数据支撑。

3.1 硬件数据采集

“魔方-3”拥有管理网络、IPMI网络[1]和OPA(Omni-Path Architecture)计算存储网络3套网络系统,如图2所示。其中IPMI由千兆以太网组成网络,并通过一台万兆交换机汇聚所有千兆IPMI交换机。刀箱通过管理模块的千兆网口接入IPMI网络。系统管理员通过计算结点的IPMI网络接口和机柜中的IPMI监控交换机构建IPMI远程管理网络。通过IPMI网络接口,对集群内各个结点的CPU、内存、硬盘、网卡、功耗、温度等信息进行采集监控,以实现日志历史查询、远程开关机、远程访问结点图形界面等功能。

Figure 2 IPMI topographic map of Magic Cube-3图2 “魔方-3”的IPMI网络拓扑图

“魔方-3”预装了Gridview软件,开机后启动Gridview服务进程,该软件会通过IPMI网络采集集群硬件信息并导入Gridview自带的数据库。系统管理员可以通过Gridview数据库接口和Gridview API接口2种方式来获取实时硬件信息。

3.1.1 通过访问数据库直接获取

利用mysqldump命令远程登录Gridview的数据库安装节点,获取并压缩数据;通过管道符号将传回的数据导入“魔方-3”运维管理平台的数据库。例如:“mysqldump-h 远程ip-u用户名-p密码-P 指定端口--opt--compress 数据表--skip-lock-tables | mysql-h 本地ip-u用户名-p密码 本地数据库”。这种方法的优点是获取数据简便直接,可以通过一次传输获取所有的硬件信息。缺点是在后期进行数据筛选时,需要知晓Gridview源数据库中每个字段以及对应数值的含义,耦合性较高。

3.1.2 利用API接口获取

Gridview API接口为HTTP形式,支持HTTP协议。接口采用基于HTTP cookie与session用户认证机制,调用接口时需要先调用登录接口进行登录,服务器将在cookie中返回登录的会话信息,在调用接口时将会话信息同时传递。默认返回结果为JSON格式,接口中定义的对象都将转换为JSON格式,字符编码格式为UTF-8。数据返回时客户端首先需要判断HTTP响应的状态码(Status Code),如果状态码为404,500这一类请求错误状态,则按照浏览器等常用HTTP客户端的惯例处理;如果返回状态码为200,表示服务器处理正常。返回结果的对象属性基本类型如下:string:字符型;integer:数值型;boolean:布尔型true/false。对象在接口中都将被转换为JSON格式,对象的属性为key,对象实例值为value。例如,机房对象实际格式为:

{"id":10001,"name":"room001","displayName":"Data Center","description":"This is the first Data Center"}。

3.2 用户作业数据采集

“魔方-3”集群选用IBM Platform LSF作为作业调度软件来统一管理和调度所有软硬件资源,同时监控并收集用户作业信息。作业信息分为运行中作业信息和已完成作业信息。运行中作业信息保存在LSF服务器的内存中,可通过LSF命令行形式输出作业信息。已完成作业信息以文本形式保存在lsb.acct文件中。

获取LSF作业数据的方式有2种:一是通过ElasticSearch分布式的搜索与数据分析引擎,这种方式需要另外安装elasticsearch-head客户端;二是通过LSF提供的命令行脚本方式获取。在此本文选用第2种方式。

使用bjobs-u all-r命令可获取运行中作业信息,但默认输出的格式并不符合本文的要求,需要用awk、sed等文本处理工具进行筛选、转换后将数据保存到文件,然后导入数据库。bacct命令可输出已完成作业信息,同样需要对输出格式进行筛选转换再导入数据库。本文在调试作业采集脚本时发现,LSF提供的bacct命令随着历史作业的累积增加,输出的数据量非常庞大,频繁运行bacct命令会使服务器负载上升,输出响应时间变长,影响数据采集效率。LSF的作业记账信息是保存在lsb.acct文件中的,当执行bacct这个命令脚本时其实会去读取lsb.acct的内容并且输出作业信息,那么可以改用Java程序直接读取lsb.acct文件内容,仅筛选截取本文需要的数据内容,并按既定格式输出数据导入数据库[3]。这样可以大大降低服务器负载,提高数据采集效率。

4 “魔方-3”运维管理平台的功能及实现

“魔方-3”运维管理平台实现的功能均基于“魔方-3”集群运维需求,可按使用者角色和应用场景提供不同的功能,显示界面简洁直观,具有良好的交互性和操作体验,如图3所示。

平台主要功能模块如下所示:

(1)系统监控模块。

(2)自动巡检模块。

(3)机房运维管理模块。

(4)数据统计分析模块。

Figure 3 Home page of Magic Cube-3 maintenance and management platform图3 魔方-3运维管理平台

4.1 系统监控

系统监控模块可分为2类,一类是对“魔方-3”集群的硬件运行状态进行监控,另一类是对集群上运行的作业和队列进行监控。

硬件监控主要对集群CPU利用率、内存利用率、磁盘I/O利用率和网络I/O利用率等进行监控。图4所示监控界面又分为单结点监控和全机监控、实时监控和历史监控。“魔方-3”集群一共有21个机柜。每一小方格代表一个计算结点,根据结点CPU利用率的高低,小方格的颜色会发生变化,利用率为0~50显示绿色,利用率为51~80显示黄色,利用率为80以上显示红色。左下方的3个圆形码表显示集群全机实时CPU使用率、内存使用率和1分钟负载。右下方的柱状图以小时为单位显示集群全机历史使用率,时间轴长度为12小时。

Figure 4 Monitoring interface of Magic Cube-3 maintenance and management platform图4 运维管理系统监控界面

图5所示作业监控系统实时显示“魔方-3”集群各个作业队列中运行的作业。界面左侧以核数进行分块,每个计算结点32核,全机共35 840核。不同用户提交的作业用不同颜色显示,当前有哪些作业运行在哪些结点上、共占用了多少核数可一目了然。右侧的柱状图滚动显示当前提交作业的用户单位、账号、核数、作业数等信息。下方的饼图按作业占用核数的比例显示全机运行的作业规模分布,按0~4核、5~16核、17~64核、65~128核、129~512核来划分。

Figure 5 Job state of Magic Cube-3 maintenance and management platform图5 “魔方-3”运维管理平台作业监控界面

图6所示为队列监控界面,上方以柱状图的形式显示“魔方-3”集群各队列中运行作业和排队作业的数量,时间轴长度为3天。通过这种形式可直观反映集群各队列作业排队和运行情况,为今后队列调整提供参考依据。下方滚动显示作业ID、用户账号、作业名、提交队列、占用核数、作业状态、结点号等实时信息。

Figure 6 Queue state of Magic Cube-3 maintenance and management platform图6 “魔方-3”运维管理平台队列监控界面

4.2 自动巡检

自动巡检功能是通过IPMI管理网络和SNMP及采集代理对计算刀片、机箱、功能结点、磁盘阵列、网络交换机等硬件设备的运行指标进行定时采集[4],并通过自动巡检引擎进行数据筛选和分析。如果发现设备异常,会触发主动报警,以此实现7*24小时的集群全面监控,保障集群的正常运行。系统管理员可通过Web客户端界面查看自动巡检引擎的返回信息,如图7和图8所示,直观掌握各类设备的运行状态,并可以依据获取的监控数据对设备状态进行分析,预测集群运行风险和隐患,提高运维管理的效率,保障集群始终运行在稳定的健康状态。自动巡检主要监测项目如表1所示。

Figure 7 Fault list of Magic Cube-3 maintenance and management platform图7 “魔方-3”运维管理平台故障列表

Figure 8 Troubleshooting interface of Magic Cube-3 maintenance and management platform图8 “魔方-3”运维管理平台故障处理界面

当自动巡检引擎发现某个设备出现故障时,会启动邮件发送功能向系统管理员发送故障告警邮件,并且会在Web客户端界面弹出告警窗口显示故障信息。系统管理员可根据这些信息快速定位发生故障的设备,并初步判定故障类型。系统管理员也可结合结点健康度和集群运行负载情况对告警阈值进行灵活调整,以提高巡检准确率。自动巡检还可根据某一设备健康指标的历史表现,结合该设备的固有故障模型,预测出未来某段时间的设备故障概率,从而将设备告警从事后处理提前到事前预防。

Table 1 Automatic detection services of Magic Cube-3 maintenance and management platform表1 魔方-3运维管理平台自动巡检项目

故障处理流程如下所示:

(1)监控集群:根据集群现状实时采集各设备运行信息。

(2)自动告警:巡检程序判断异常后向系统管理员发送告警信息,并生成故障case。

(3)故障判断:系统管理员在收到告警并判断故障问题后,对故障case给出解决方案。

(4)故障处置:按解决方案修复故障,如无法修复故障可将case反馈主机厂商解决。

(5)处置完成:故障修复后平台会更新case状态,每月汇总故障case生成运维月报。

4.3 机房运维管理

上海超级计算中心拥有多套主机系统及外围基础设备,涵盖了科学计算、工程计算、大数据和云计算等多个应用领域,运维人员在控制机房内对这些设备进行操控和管理。通过本平台的机房运维管理模块对控制机房内的日常运维工作实现信息化管理,使整个运维过程变得有序、连贯、可控,如图9所示。

Figure 9 Control room management platform interface图9 魔方-3运维管理平台机房管理界面

日报发送功能将自动记录当日集群运行的各项性能指标以及发生的故障情况,并生成报表通过邮件方式发送,接班的系统管理员阅览邮件即可快速了解上一个班次集群运行状况。机房环境记录和运行监测记录是要求当班的运维人员在规定的机房巡视检查时间段-10分钟 ~+30分钟内将水冷、UPS供电、环境温湿度等数据录入平台,同时提供历史数据查询功能,超过规定时间将无法录入数据。通过上述一系列方式将运维人员的日常工序形成数字化记录管理,使得日常工作考核有据可依,有助于减少运维人员简单、重复工作,提高员工的工作效率,并提升管理集群的能力和水平。

4.4 统计分析

数据统计分析是通过采集用户提交的作业信息统计“魔方-3”集群在某时间段内的CPU利用率、内存使用率、作业平均运行效率、平均排队时间、作业吞吐量和应用对资源的使用情况,并通过多角度的数据挖掘生成分析报表,能直观反映“魔方-3”集群运行效率,找出影响系统性能的资源瓶颈[5],为今后升级优化,改善用户使用体验提供科学的决策依据。

机时查询可统计“魔方-3”集群所有用户账号在某一时间段内提交作业的运行时间,统计单位为“core/小时”,统计结果默认包含该时间段内正在运行还未结束的作业机时,也可输入某一用户账号,进行精确匹配统计,如图10所示。

Figure 10 User CPU time statistics interface图10 用户机时统计界面

作业规模查询按作业使用核数规模划分来统计某一时间段内在“魔方-3”上运行作业的规模比例,如图11所示。“魔方-3”单个计算结点为32核,故作业规模通常按32的倍数来划分,也可小于32。有典型代表的规模区间为1~16核、17~32核、33~64核、65~128核和256核以上。通过作业规模分析可得出某一时间段内大小作业的运行比例,并据此来调整队列配置和作业提交策略。

Figure 11 Job scale statistics interface图11 作业规模统计界面

CPU利用率查询可按天显示在指定时间段内程序占用集群CPU资源的情况,反映集群的使用负荷。core占用率可按天显示指定时间段内程序占用全机核数的百分比。上海超级计算中心作为一个开放计算平台,有来自各领域不同类别的用户提交不同的作业,有些作业运行时会占用大量CPU资源,而有些作业特性是虽然占用了内核运行,但CPU利用率并不高。这种情况下单纯通过CPU利用率不能准确反映“魔方-3”集群使用情况,结合core占用率这个指标可更全面完整地反映集群使用情况,“魔方-3”core占用率如图12所示。

Figure 12 Occupancy rate of core of Magic Cube-3 computer图12 “魔方-3”core占用率

5 结束语

主机运维管理平台通过软件和硬件不同渠道对“魔方-3”集群进行全面监控、数据校对和分析、告警,根据数据分析结果提供自动巡检功能,进行集群巡检,并根据故障结点的数量和健康状况调整监控频率及监控阈值。利用历史数据通过故障模型来实现故障预测。能实时将各管理点传输来的监控数据从数据队列中取出,通过各资源池进行分类汇总后存储到数据库中,通过浏览器为用户提供统一的界面入口,使得运维人员能够清晰地浏览集群中各服务器结点的实时状态及监控数据。

根据高性能计算、深度学习、大数据和云计算几类应用特征,借助IPMI网络协议并融合作业调度软件,通过可订制化的策略配置,实现运维管理平台灵活、弹性部署在“魔方-3”高性能计算机之上,对所有软件、硬件、虚拟化资源进行统一的管理、监控和调度,保障集群高效运行。

猜你喜欢

魔方集群运维
魔方廖
海上小型无人机集群的反制装备需求与应对之策研究
运维技术研发决策中ITSS运维成熟度模型应用初探
成语魔方
风电运维困局
一种无人机集群发射回收装置的控制系统设计
楼房魔方
杂乱无章的光伏运维 百亿市场如何成长
Python与Spark集群在收费数据分析中的应用
勤快又呆萌的集群机器人