标题 | OpenStack云主机监控系统研究与实现 |
范文 | 周晴伦![]() ![]() ![]() 摘要:〖HT5”K〗针对OpenStack云平台中云主机的运行及安全状况,分析开源OpenStack云平台对于云主机监控的关键技术,提出OpenStack云平台的云主机监控系统解决方案,设计系统框架,实现一套云主机监控系统。该系统既有助于完善OpenStack云管理平台,又为云平台运维人员提供更好的云主机监控数据,为云用户提供更好的云主机服务。 关键词:云计算;OpenStack;云主机;监控系统 中图分类号:TP319 文献标识码:A 文章编号:16727800(2017)004007303 0引言 云计算(Cloud Computing)是分布式计算(Distributed Computing)、并行计算(Parallel Computing)、效用计算(Utility Computing)、虚拟化(Virtualization)、负载均衡(Load Balance)、网络存储(Network Storage Technologies)等传统网络与计算机技术等发展融合的产物[13]。自2006年谷歌提出云计算概念以来,云计算在全世界掀起了一股研究热潮,涌现了多个开源云计算平台,这些云计算平台方便了科研人员的研究,对推动云计算技术的发展起到了重要作用。在这些开源云计算平台中,应用比较广泛的有Eucalyptus、OpenStack、Oracle VM、Abi Cloud、Open Nabula、Open QRM、Xen Server、ConVirt以及CloudStack等[4]。 OpenStack是由Rackspace和美国国家航空航天局合作发起的一个开源项目,为公有云和私有云的搭建以及管理提供一种解决方案。云平台主要由Nova、Swift、Glance、Keystone和Horizon共5个部分组成[57]:①Nova即计算服务,提供运行在主机操作系统上潜在的虚拟化机制交互的驱动,并提供基于Web的API功能;②Swift即存储服务,提供可扩展的对象存储系统,可以用来创建基于云的弹性存储;③Glance即镜像服务,提供虚拟机镜像的存储、查询和检索系统;④即Keystone:认证服务,提供认证和管理用户、账号和角色信息服务,并为OpenStack对象存储提供授权服务;⑤Horizon即UI服务,提供用户Web管理控制台,可以通过Web界面访问的方式来操作管理网络和虚拟机实例等。 OpenStack云平台的低控制性、强兼容性和高扩展性使其深受企业青睐。OpenStack开源性使其不受某个厂商的限制,任何人都可以进行开发、使用[910]。同时OpenStack具有强大的社区支持,用户可以很容易地获得开发和使用相关参考资料。但是,OpenStack发展时间较短,系统还不够完善,尤其是与之相关的监控功能。OpenStack是通过其Horizon组件来完成运行信息的查看等操作,而目前Horizon组件中仅仅可以查看一些简单的云主机运行概况,比如启动、暂停还是关闭,并无法获取云主机监控数据。云平台的运维人员和云用户无法通过其监控数据得知云主机的详细运行状态。因此,必须设计一套完善的监控系统来实现对OpenStack云主机的实时监控,然后根据监控数据,采取相应的措施处理云主机。监控系统可以最大程度地提升运维人员的工作效率,同时简化他们的工作[10]。 Libvirt是一套用来对底层各种形式的虚拟机(云主机)进行管理的编程接口,本身构建于一种抽象的概念之上。它为受支持的虚拟机监控程序实现的常用功能提供通用的API。它屏蔽了底层虚拟化层的不同,这样用户可以直接通过调用就可以实现对多种虚拟机的管理和控制,并且可以通过Libvirt接口获得各种形式的虚拟机的运行状况。Libvirt的基本架构如图1所示。 从Libvirt基本框架可以看出,Libvirt为各种虚拟机管理器提供了一套统一的调用接口。Libvirt的主要功能有以下几种:①虚拟机(云主机)管理:对虚拟机的生命周期进行管理,包括对虚拟机的启动、停止、保存、恢复和迁〖HJ〗移等;②存储管理:管理不同类型的存储,主要对虚拟机镜像的管理,如创建不同格式的镜像文件;③网络管理:管理物理和逻辑的网络接口,如管理和创建虚拟网络;④远程机器支持:控制远程机器(物理节点)上的虚拟机(见图2),当管理应用程序和域位于不同的物理节点时,该管理程序可以在远程节点上运行Libvirtd守护进程来实现对远程机器的控制。Libvirtd守护进程会随着Libvirt的安装自行启动,而且可以自动识别本地虚拟监控程序,并为其安装驱动程序。该管理应用程序通过一种通用协议从本地Libvirt连接到远程Libvirtd。 本文所设计的云主机监控系统的业务结构如图3所示。①监控系统的用户分为云平台运维人员和云主机的用户,可以通过身份认证后,登录至监控系统中,可以根据各自的身份权限,看到不同的监控和展示界面;②监控系统用户(包括云平台运维人员和云主机用户)可以通过监控管理端设置云主机监控的指标参数,监控管理端通过调用监控子系统进行设置,并写入DB系统(数据库系统)中;③监控系统用户可以直接通过查询DB系统来查看当前各云主机的监控指标参数;④实时展示端通过访问DB系统,获取云主机的各种参数,直观展示给监控系统的用户。 3云主机监控系统实现基于上述业务需求分析,本文的系统功能模块设计如图4所示。 (1)用户管理模块。主要实现用户权限分配,用户类型主要分为两大类:云平台运维人员和云用户,各类型的用户分别拥有不同级别的权限。 (2)数据库模块。用数据库存储相关数据表,比如用户身份识别数据、云主机类型参数、云主机的设置参数、云主机自动控制的参数阈值等。 (3)云主机采集器。主要是利用Libvirt接口完成云主机运行状态信息的采集工作,比如云主机CPU占用情况、内存占用情况、网络流量使用情况以及系统磁盘占用情况等。 (4)监控功能模块。这部分包括了云主机的监视展示、云主机的监控参数设置、自动控制云主机模块、监控告警模块。监视展示是在页面上直观展现当前云主机的各种运行数据指标。监控参数设置是指各云主机所需监控参数的设置。自动控制模块是监控系统根据各云主机的控制阈值、当前云平台的资源状况以及云主机的重要性等级来决定重启、关闭云主机等操作。 在OpenStack平台上,对云主机的数据采集主要包括CPU状态、内存状态、网络状况、磁盘状况,将这些数据进行处理可以获得一些更多的性能参数。对云主机周期性采集的数据描述如表1所示。 4结语 本文设计的监控系统不仅能够监测到云主机的运行数据,而且能够根据云主机的运行状态、系统突发异常状况或者其它有关云平台用户的需求等一系列状况,对云主机甚至整个云平台作出智能操作,提高系统的自律性。该系统在OpenStack云平台的实际运维过程中效果良好。 参考文献:[1]梁宇.OpenStack资源监控和计费系统的设计和实现[D].沈阳:中国科学院研究生院(沈阳计算技术研究所),2014. [2]孙香花.云计算研究现状与发展趋势[J].计算机测量与控制,2011,19(5):9981001. [3]张建勋,古志民,郑超.云计算研究进展综述[J].计算机应用研究,2010,27(2):429433. [4]陈俊汝.基于openstack的维修信息中心云平台设计与实现[D].成都:电子科技大学,2013. [5]李小宁,李磊,金连文,等.基于OpenStack构建私有云计算平台[J].电信科学,2012(9):18. [6]OpenStack[DB/OL].http://www.OpenStack.org.cn/,2016.[7]王志浩,王俊芳,高瞻.基于OpenStack的综合网络管理体系架构研究[J].计算机与网络,2015(16):5759. [8]OpenStack[EB/OL].http://hc.csdn.net/article.html?arcid=2808301,2012. [9]刘智超.基于OpenStack的虚拟机集群监控系统的设计与实现[D].北京:北京邮电大学,2014. [10]OMA AGMON BENYEHUDA,MULI BENYEHUDA,ASSAF SCHUSTER.Deconstructing amazon EC2 spot instance pricing[C].In 2011 Third IEEE International Conference on Cloud Computing Technology and Science,2011:304311.(責任编辑:孙娟) |
随便看 |
|
科学优质学术资源、百科知识分享平台,免费提供知识科普、生活经验分享、中外学术论文、各类范文、学术文献、教学资料、学术期刊、会议、报纸、杂志、工具书等各类资源检索、在线阅读和软件app下载服务。