杨靖琦,胡勋
(中国电子科学研究院,北京 100041)
摘要:近年来,随着云计算的兴起和逐步发展,云平台已成为各类企业和机构提供服务的主要方式,为保证云平台高效稳定运行,需要对云平台进行实时监控。针对以上需求,基于开源监控工具Ganglia和Ceilometer,设计并实现了一个多云平台监控系统,提供云平台、物理机和虚拟机中内存、CPU和硬盘等资源使用情况的监控能力,同时,通过物理资源管理、监控策略管理、日志管理和用户管理等功能,提升监控系统的可扩展水平和用户友好程度。最终,实现对多云平台全方位可视化的管理和控制。
关键词:云平台;监控系统;物理机;虚拟机
中图分类号:TP399文献标识码:ADOI: 10.19358/j.issn.1674-7720.2017.10.030
引用格式:杨靖琦,胡勋.多云平台监控系统的设计与实现[J].微型机与应用,2017,36(10):102-105.
0引言
计算平台的发展主要经历了以主机为中心和以PC为中心两个阶段,目前正处于以网络为中心的阶段。在这一阶段,随着云计算技术的快速发展,以云平台为代表的网络计算平台逐渐成为主要的资源提供方式。企业可以基于分散的计算、存储等物理资源按照不同组织架构搭建云平台,动态地为用户提供所需的计算、存储等资源,提高资源利用率,降低运营复杂度和成本[1]。随着云平台的不断增多和规模的不断扩大,平台监控难度急剧增加,传统的人工查询方式已不适用于多个大规模云平台的监控和管理,为实现更有效的云平台管理,需提供云平台资源的统一监控管理能力,从而直观地了解平台运行状态,最大限度地使用系统的资源。
目前,国内已开展了对云平台监控的研究,其中一些研究[2]实现了OpenStack云平台中虚拟资源的监控,另外一些研究[3]实现了OpenStack云平台中物理资源的监控,但现有云平台监控研究成果大多针对单个云平台的单一资源类型,无法提供多个平台中物理资源和虚拟资源的多功能、一体化监控系统。为解决现有问题,本文设计并实现了面向多个云平台、覆盖物理资源和虚拟资源的监控系统。
本文的多云平台监控系统面向OpenStack云平台设计和实现,具有可移植性,其中物理资源监控是平台无关的,无需修改即可适用于其他平台,虚拟资源监控可通过修改访问接口的方式应用于对其他云平台的监控,由于文章篇幅限制,在此不做赘述。
1云平台及监控方法
1.1OpenStack
OpenStack是美国国家航天局和Rackspace公司共同开发的开源云计算平台,可支撑公有云或私有云的建设和管理,为用户提供IaaS(基础设施即服务)层的云服务。OpenStack包括Nova、Swift、Glance和Keystone等主要模块,分别提供计算、存储、镜像和安全认证等能力,由于其具备模块松耦合、组件配置灵活、易于二次开发等优点,已成为应用最广的开源云平台[4]。
1.2Ceilometer
2012年10月,随着OpenStack Folsom的发布,Ceilometer项目发布了第一个版本,从2013年开始,Ceilometer作为OpenStack发行版的一部分发布,提供OpenStack平台的虚拟机监控功能。为适应云计算环境节点大规模动态调整的特点,Ceilometer通过插件机制,提供了可灵活扩展的架构。
Ceilometer通过轮询计算节点上的虚拟机实例获取监控信息,并在数据库中将监控信息进行持久化存储,为计费和监控提供支撑。
1.3Ganglia
目前,在集群计算机监控领域主要有Cacti、Parmon、Nagios、Ganglia等软件系统。通过对此类软件的比较分析可知,Ganglia具备功能模块丰富、监控功能强、可扩展性高等优点,同时具有良好的移植性,支撑在Linux、Solaris、Mac OS和Windows等主流操作系统上运行,可满足复杂环境下的集群监控需求[5]。
Ganglia是加州学校伯克利分校发起的计算机集群监视项目[6],用于监控大规模集群的运行状态,如:CPU、内存、网络负载、硬盘利用率等。Ganglia采用分布式的监控结构,通过安装gmond和gmetad软件实现集群的监控,其中,被监控的节点安装gmond实现节点运行状态的收集和上报;监控节点安装gmetad实现与gmond通信,通过轮询的方式收集区域内节点上报的状态信息。Ganglia使用RRDTool工具实现采集数据的存储和处理,并可通过个性化配置实现基于Web的图形化显示。
2系统设计
2.1系统架构设计
多云平台监控系统提供云平台、服务器和虚拟机监控数据的获取、处理和展现功能,其系统架构如图1所示。
资源层:依托分布式服务器设备,基于OpenStack开源软件,搭建异构云计算平台,可为用户按需提供物理资源和虚拟资源,是监控系统监控主体。
监控层:基于Ganglia软件实现服务器资源状态监控,基于Ceilometer组件实现虚拟机资源状态监控,通过对服务器和虚拟机监控信息的获取和融合处理,为展示层提供所需状态数据,同时根据资源监控策略,实现资源状态告警和利用率告警信息生成。
展示层:以Web页面方式进行信息展示,提供异构云监控和异构云管理两类功能,实现异构云平台资源信息和状态的统一监视和控制。其中:
多云平台监控主要展现云平台总体状态、云平台监控、服务器监控、虚拟机监控等相关信息。
(1)云平台总体状态:实时监控数据中心所包含的服务器、虚拟机的数量和相关信息;
(2)云平台监控:对数据中心进行监控,提供数据中心列表、地理位置、概述、运行状态等信息的展示;
(3)服务器监控:对服务器进行监控,提供服务器实时监控信息,并展示服务器所包含的虚拟机信息;
(4)虚拟机监控:对虚拟机进行监控,提供虚拟机实时监控信息,并展示虚拟机配置。
多云平台管理主要提供物理资源管理、监控策略管理、日志查询和用户管理等功能。
(1)物理资源管理:提供数据中心、服务器等物理区域和物理设备信息添加修改功能;
(2)监控策略管理:对服务器和虚拟机等计算资源需要监控的指标和阈值进行查看和设置;
(3)日志查看:记录计算资源监控软件产生的用户操作日志和告警日志,提供分时段查看功能;
(4)用户管理:提供监控系统用户的增加、删除、修改和查询功能。
2.2系统类图与接口设计
使用基于开放源码的Web应用框架Django开发异构云平台监控系统,构建支持监控信息处理和显示的MTV架构,即Model、Template、View,多云平台监控系统类图如图2所示。
其中,Model(Cloud、Server、VM、Log)定义资源信息和监控数据的存储格式,并且提供了数据库访问的API;View(IndexView、CloudView、ServerView、VmView、ManagerView)定义应该显示哪些数据,是业务逻辑处理模块;Template定义View的数据应该如何被显示。MonitorVM、GraphForServer、UpdateStatus三个类分别提供虚拟机状态监控、服务器状态绘图和状态信息更新功能。
按照系统类设计,异构云平台监控系统内部接口示意图如图3所示,接口标识见表1。
监控状态获取VMStatus监控虚拟机资源使用情况
3系统实现与部署
基于OpenStack搭建多个云计算平台[7],用来模拟四个数据中心,每个云平台由1个控制节点和网络节点及若干个计算节点组成,基于KVM的虚拟化技术实现计算资源的虚拟化,构建弹性计算环境。其中环境配置及功能如表2所示。
所有节点通过2台48口交换机相连,一台负责控制流信息的交互,另一台用于数据流信息的交互。环境中计算资源与外部网络是隔离的,网络节点单独有一个网卡与外部网络相连,通过GRE隧道协议,使得外部网络环境中的用户能够登录访问虚拟机。
通过安装OpenStack的Ceilometer模块和Ganglia软件(Python版),多云平台监控系统可对多个云平台节点进行监控,并能够动态适应集群规模调整,以适应混合云伸缩的需要,其安装示意图如图4所示。
多云平台监控服务器端:运行基于Django Web框架的多云平台监控软件,通过获取并处理Ceilometer和Ganglia的监控数据,实现对云平台中虚拟资源和物理资源的监控,为用户提供基于浏览器的可视化交互界面,系统后台数据存储在MySQL数据库中。
Ceilometer:云平台各节点安装compute agent收集节点的状态信息,实现虚拟机的监控,Ceilometer监控信息可存储于MangoDB、MySQL、PostgreSQL和HBase等数据库中,其中对MongoDB是支持最好的,本文系统使用MangoDB存储虚拟机监控信息。
Ganglia:云平台控制节点安装gmetad和gmond,网络节点和计算节点安装gmond,通过修改源代码,选取并配置所需监控指标,实现集群整体和各物理节点CPU、内存、硬盘和网络负载等运行状态监控,Ganglia监控数据默认存储在RRD数据库中。
多云平台监控系统可实现对各个云平台、服务器、虚拟机相关配置信息和运行状态的监控与管理。
4结论
本文提出了基于Ganglia与Ceilometer的多云平台监控系统设计与实现方法,实现了多个云平台服务器和虚拟机的一体化监控,为云平台资源运行情况提供统一的可视化监控管理能力,提升平台管理水平。在此基础上,监控系统的实现可为云平台资源的组织、调度和分配提供决策依据,提高资源使用的合理性。
参考文献
[1] 张建勋,古志民,郑超. 云计算研究进展综述[J]. 计算机应用研究, 2010,27(2):429-433.
[2] 刘智超. 基于OpenStack的虚拟机集群监控系统的设计与实现[D]. 北京:北京邮电大学,2014.
[3] 尤海鹏. 基于Ganglia的数据中心监控平台设计[D]. 济南:山东大学, 2014.
[4] 李志军,孔朋朋,雷振伍. 基于OpenStack的私有云平台设计[J]. 微型机与应用, 2016,35(9):24-26.
[5] 吴怡凤,归强,罗明宇,等. 集群计算机监控技术研究[J].计算机与现代化, 2013(11):218-222.
[6] MASSIE M, LI B, NICHOLES B, et al.Monitoring with Ganglia[M].O’Reilly Media,2012.
[7] 王霄飞. 基于OpenStack构建私有云计算平台[D]. 广州:华南理工大学, 2013.