1、南开大学硕士学位论文云平台监控系统的研究与实现姓名:孙杰申请学位级别:硕士专业:计算机软件与理论指导教师:邵秀丽2012-05中文摘要中文摘要随着云计算技术的推广,涌现了许多优秀的云计算平台,其聚合了大量硬件资源和软件资源,并采用虚拟化技术实现动态伸缩服务量,按需提供服务。为确保云平台正常运转,必须对整个云架构实施多方位监控,而普通和网格监控软件都有着自身的局限性和适用范围,不适用于云平台,所以本文研究并实现云平台下的监控系统,解决云平台资源运行和用户使用的监控,并改进增强了系统自配置和容错性,具有重要意义。本文首先进行了云平台监控的需求分析,给出总体功能设计和各模块设计,并基于Ganglia
2、设计了包含监控资源层、监控采集层、监控汇集层、数据持久层、用户交互层的五层架构模型,并具体分析了每层的实现技术和设计过程,对不同监控对象采取不同传输策略,以保证低干扰、实时、准确传输,同时设计实时展示库和监控分析库,以保证监控数据实时展示和深度分析。之后对云平台中物理资源、虚拟资源、服务资源提供多维度的监控和资源利用率分析进行研究,并根据分析实现监控预警和故障统计,实现数据稀释,以达到监控和证明云平台的正常运行,检测出云平台瓶颈和故障,为运营者均衡负载提供信息依据的目的;同时基于Hadoop运行机制设计了用户存储监控及分析组件和用户计算监控和分析组件用于监控用户对云存储服务和计算服务的使用,以
3、增强云端透明度,提高用户对云服务商信任度,并根据监控结果进行计费管理。本文还针对使用的层级监控结构研究实现了监控系统的自注册机制和节点动态发现机制,以实现云端节点接入自配置以及采集参数和频率的配置,降低系统部署难度,支撑云平台动态伸缩的特性,并基于此改进了系统容错机制,使系统具有一定的故障自恢复能力。最后应用以上的研究实现了一个云平台监控系统,其运行效果表明本文的策略是有效可行的。关键字:云平台;监控系统;用户监控;白配置;故障自恢复;Abstract一一一AbstractWith the promotion of cloud computing technologies,a lot of g
4、ood cloudcomputing platforms are springing up,which aggregating a large number of hardwareand software resources,and using virtualization technology to achieve dynamicscalable service volume and supplying services on-demandIn order to ensure thecloud platform running tightly,it is necessary to monit
5、or the entire cloud architecturecomprehensively,but general and酊d monitoring software has its own limitationsand sCOpe of application,SO they dont suit to the cloud platformThe study toachieve cloud platform monitoring system has an important significanceFirst,the paper gives the overall functional
6、design and module design base on theneeds analysis of the cloud platform monitoting system,then the five。storya】rc尬tocture model COntaining the monitoring resource layer,the monitoring poolinglayer,the monitoring collecting layer,the data persistence layer,the USer interactionlayer is proposed which
7、 based on Ganglia and specifically analyze each of thetechn0109ies and design processDifferent monitoring strategy is used in differentmonitoring object to ensure low noise,realtime,accurate transmissionRealtimedisplay database,monitoring analysis database are designed in order to ensuredisplaying d
8、ata real-time and analyzing data deeplyAt me s锄e time,monitoring and data analysis multidimensionally for thephysical resources,virtual resources,service resources in the cloud platform areresearched in order to achieve monitoring and certificating the normal running of thecloud platform,detecting b
9、ottlenecks and failures of the cloud platform,providinginfo锄ation to the operator to balance load basisAnd based on Hadoop runningmechanism some related components used to monitor the use of storage services,computing services and other services are designed,which enhance transparency tothe cloud pl
10、atform and improve the trust to the cloud service providers,and helpbilling management according the monitoring resultsThis paper also discusses self-registration and node dynamic discoverymechaIlism flor tlle tree control structure of the monitoring system to achieveIIAbstractself-configuration and
11、 reducing the difficulty of system deployment,supporting thedynamic stretching characteristics of the cloud platformBased on theself-configuration,the system fault tolerance mechanism is improved,SO the systemhas a certain fault self-recovery capabilityFinally applying the research all above,the clo
12、ud platform monitoring system isimplemented,and its running results show that this strategy is feasible and effectiveKey Word:cloud platform;monitoring system;user monitoring;monitorself-configuration;Fault self-recoveryIII第一章绪论第一章绪论本章主要介绍云平台监控系统的研究背景和意义,并分析了国内外对云平台监控的研究现状,最后给出全文的组织结构。第一节研究背景和意义随着We
13、b应用和信息化技术的蓬勃发展,以及商业智能、科学计算等各领域大规模数据存储和计算需求,单机性能的改善已无法满足,应运而生的网格计算结合分布式计算和并行计算的特点,将一群松散耦合的计算机组成的超级虚拟计算机,在实现过程中研究中间件、标准协议等以屏蔽异构资源,但过于理想化,应用性能单一,并没有得到大规模的实际运用。而云计算结合网格计算的优点,通过虚拟化技术组织基础设施提供统一资源层,使得存储资源、计算资源、各种平台和软件相互协作,并抽象提供LaaS、PaaS、SaaS三层服务【l】,对用户按需收费,相较而言更偏向商业模式,即云计算服务商管理云计算平台,向用户提供计算、存储、网络资源等底层基础设施服
14、务和部署其上的多种云服务,并收取一定费用。而普通用户不需要关注云平台内部的实现机制,只需要把自己的存储和计算任务放入云平台中处理,并获取结果。目前,云计算平台研究和应用在学术和商业共同推动作用下,逐步显现迅猛增长的势头,Amazon、Google、IBM、MicroSoft、Yahoo、Sun、盛大云计算等国内外公司纷纷推出了自己云计算平台和解决方案,云计算的时代已经到来,逐步向面向服务、动态伸缩、按需收费的公有云或私有云发展【2J。而云平台的用户范围也逐步扩大,例如企业可以在云计算平台上按需选择适合自己的云服务,快速构建具有本企业特色的业务流程管理系统和数据库,这种快速架构系统的新模式,能够
15、合理充分地利用资源,降低成本,从而提升企业的核心竞争力;而政府则通过云计算加强部门间的信息交流,促进部门的协同办公,并将获得的大量信息利用云计算数据挖掘、并行处理等技术进行分布式存储和科学分析,最终让数据得到使得数据能够得到统一有效的管理。而中国自2008年云计算经历引初期步骤后,开始步入快速发展通道,预测第一章绪论结果如图11所示【3】:图11中国云计算服务市场规模和预测云平台聚合了大量物理资源、虚拟资源,并采用虚拟化技术实现动态伸缩服务量,按需提供服务。而监控在提高云计算提供服务质量方面扮演着重要的角色,为使得云平台可以顺利提供服务且正确运转,需要多方位监控云平台运转的架构,确保云平台运营
16、者可以了解和把握总体运行情况,从而可以及时优化资源性能和可用性。监控往往由监控软件来实现,通过对重要系统资源的监控,检查系统瓶颈和隐藏的缺陷,并在严重故障时执行故障的自处理或手动处理,以满足云平台的灵活及高可用的特点【3】。同时,用户在云服务使用过程中,对于云服务的运行监控要求将会时刻存在着,以确保机密数据安全和开展的计算作业正确完成,同时云服务提供商也需要知道用户对云服务使用情况,以进行收费,并核算在什么样的成本下提供相应服务。由于云平台底层资源异构,并采用虚拟化技术封装,而且提供多种服务,所以监控云平台面临许多挑战,而现有成熟的监控系统往往存在很多缺陷,而不适用于云平台监控,比如功能单一的
17、缺陷,体现在很多监控软件仅提供对机器性能单项指标的监控和展示,且没有提供监控数据的保存和分析,即造成历史数据不可查,且对未来不可分析和预测【4】;专用的缺陷则体现在监控系统仅管理员进行操作和查看,不符合云平台下多租户的特性,并且不能提供对云服务的监控,标准统一的接口更无从谈起,不具备较好的系统移植性;并且云平台节点众多,而现有监控软件受监控规模的约束,常常无法适应云平台的大规模集群的需求f51;容错性差的缺陷则体现在数据采集、传输过程不适应云平台大规模集群的并发要求,容易造成局部瘫痪甚至完全停滞,更没有提出相应的数据2第一章绪论恢复策略,同时很多监控系统初始部署配置复杂,且不适合云平台动态伸缩
18、按需提供服务的特点。本文设计的云平台监控系统则克服现有监控系统的缺陷,实现自动配置、自主发现监控节点,改进了系统容错机制,对云平台的物理资源层、虚拟资源层、服务提供层实现多维度的监控以及数据分析,同时从用户使用云平台存储、计算服务角度进行监控,并提供清晰明了的监控结果展示,以达到监控和证明云的物理资源和虚拟资源的正常运行,监控服务资源的按需供给并进行计费管理,并增强云端的透明度,降低云平台运营者维护云平台的难度,提高用户对云平台服务商的信任程度的目的,这也为云平台快速部署、资源动态配置以及负载均衡等提供信息依据。第二节国内外研究现状针对监控系统,网格监控方面研究较多,其中有RGMA【6J、Gr
19、idIm【7J、MDS【8】等优秀的监控模型,开源工具包含NWS91、OVIS1 01、Ganglia、Nagiostll】等,可综合运用几种开源建设监控系统,但是配置复杂且资源占用率大,下面详细介绍云计算平台监控研究现状。随着云计算平台的风起云涌,大多数知名云计算公司也都在研发相应的监控工具,但其侧重点不同。例如盛大云监控产品于2011年12月15日开放,其侧重于实时监测网站响应速度和网站服务器性能数据的变化,及时发现网站故障。GooSe公司针对GooSe APP Engine的监控工具System status DashBoard则侧重于让服务提供者了解平台中云服务的运行情况【l引。亚马逊
20、的CloudWatch从其EC2开始提供了针对Anlazon Web Service云资源的Web的监控服务,用户可无偿使用自动缩放(Auto Scaling)功能,动态增加或迁移EC2实例【I引。而开源Chukwa14】贝0是侧重于Hadoop日志分析,其虽然利用了Hadoop的分布式监控数据处理,但实时性差,且目前具有一定的局限性。此外一些监控研发公司也在着力开发第三方监控产品,用以监控云平台,例如Hyperic公司研发的云监I!III务CloudStatus,提供服务可用性、响应时间、延迟和吞吐量的报告,可监测Amazon Web Services和Googie npp Engine,其
21、Hyperic HQ商业版可监测Anlazon Web Services,使企业可兼顾监控云平台的基础设施和服务运行情况,但是其由于后台数据处理,有一定的滞后性。Quest公司的vFogLight提供监控第一章绪论从物理机到虚拟机应用,并根据监控数据进行云端容量规划和计费,但其配置流程繁琐且收取费用较高。Gomez提供云环境的评估、测试和监测服务,使得使用者可以监控应用服务的可用性和性能表现,并判定云服务提供商有无遵循SLAtl 51。与此同时云平台监控的相关理论研究却相对较少。论文161采用RESTful对云平台基础设施进行监控和管理,即云平台中的计算资源、存储资源以及网络资源等以REST方
22、式构建在树形结构中,具有较好的可扩展性,但是云平台的服务层很难被监控,且没有考虑云平台用户使用云服务的监控;论文【17】提出了基于OVF的云平台交互接口的设计,以解决云平台接口多资源异构的难题,获取监控数据,但是没有考虑接口性能开销问题,不能BI徊I-K好满足云平台存储和计算资源量大、监控系统低开销的特点。论文【18】通过SALSA对Hadoop集群产生的系统日志进行分析获得控制流、数据流和相关统计数据,并进行了相关的可视化和故障诊断工作,但是日志分析延迟性较大,不符合监控系统实时性特点。论文【J9】偏向于研究云计算LaaS提供的服务的监控。论文20贝jj偏向监控云平台下的应用。论文【2I】提
23、出了云平台下的资源监控的模型,但是其没有进行相关的分析,且没有加入用户的元素。论文【22】提出了运行时云监控模型(RMCM)旨在构建轻量运行且又包含大容量数据的灵活可用的模型,但是只停留的理论阶段,没有真正实现。综上可知,已有的监控对云平台资源情况监控并进行多维度的分析以及用户使用云平台基础设施及服务的监控研究较少,且存在配置复杂、费用高、开销大的问题。因此,本文对监控云平台资源运行和监控用户使用云服务方面进行了研究,并进行了多维度资源利用率分析,同时设计自配置策略,降低部署配置复杂度,改进其容错机制,实现自动化、安全云平台监控。第三节本文组织结构论文的组织结构如图12所示。4第一章绪论。第三
24、章云平毛滥控第三章资源监控+数据持久层设计数据抽取组件 数据稀释监控预警和故障统计云平台多维度资源利用率分析第西章云平台蓝控系统关键用户监控+数据持久层设计用户存储监控和分析组件用户计算监控和分析组件用户计费管理云端节点接入自配置改进自注册机制节点动态发现机制故障白恢复策略I容错机制改进单指数平滑预测算法实现匝至巫I!II;言丢磊嘉r二二一二二二二二二图12论文组织结构图第一章:绪论。主要介绍了云平台监控系统的研究背景和意义,并分析总结了相关的国内外研究现状,最后给出了本文的组织结构第二章:总结了一般云平台架构,并重点分析了Hadoop云平台架构和作业第一章绪论执行监控信息的获取;然后分析了监
25、控系统中常见的集中式和阶梯式两种体系结构和推模式和拉模式两种数据传输模式的使用场景和优缺点;最后对本文用到的开源软件Ganglia的实现原理和缺陷做出分析,为云平台监控系统实现做好铺垫。第三章:是本文的核心工作,首先对云平台监控系统进行用户、监控对象、数据处理做出需求分析,并分析云环境的监控所应满足的特性,在此基础上给出了系统功能设计、五层架构设计、以及监控信息流分析。之后详细介绍了云平台资源监控和用户使用云服务监控并计费的设计实现过程。第四章:针对降低系统配置复杂度、增强系统容错性的问题,对云端节点接入白配置和容错机制进行了研究和改进,并对改进做出评价,提出了进一步的改进方法。第五章:根据三
26、四章的研究,设计实现了云平台监控系统。第六章:对本文进行总结与展望。6第二章云平台监控架构研究第二章云平台监控架构研究本文主要研究和实现云平台的监控系统,所以本章学习分析了已有的云计算平台,总结了一般云平台架构,详细介绍了Hadoop云平台守护进程的相互协作运行过程以及对存储和作业运行中监控。由于一般监控系统体系结构存在监控节点少或配置复杂的缺点,数据传输的推拉模式单一应用具有资源消耗大的缺点,最终确定了本文采用开源Ganglia实现资源运行情况数据的采集与汇集,并对及缺点进行改进,为此本部分先剖析Ganglia的实现原理、功能和不足之处。211云平台架构第一节云平台架构研究本文根据云计算所具
27、有的服务资源池化、可扩展性、可度量性、宽带网络调用、可靠性等特点【23,结合当下典型云计算平台的一些设计,给出了如图21所示的云平台总体架构,架构分为四层,物理设备层、虚拟资源层、资源管理层、资源服务层。厂 、0aas剀幽幽jG。丛f开发平台I服务组件1分布式数据库f标准接口f)集中式体系结构在集中式体系结构中,每个监控节点安装监控代理(Agent),收集节点监控信息,监控服务器负责汇集以及分析展示监控信息。监控代理以推送方式向监控服务器发送信息参数,或监控服务器以拉方式向监控节点索要信息。体系结构如图24所示:心)分i旷堕蕉堇盛鉴蕉堇皇图24集中式体系结构比如Hadoop自带监控系统中则采用
28、集中式结构,监控服务器即NameNode节点,监控节点即DataNode, NameNode和DataNode之间通过心跳机制发送HDFS信息,数据块存放信息,以及任务运行情况。阶梯式体系结构阶梯式体系结构中,每个监控节点安装监控代理(Agent),并选定汇集节点,安装资源汇集代理(Collect),汇集节点相当于局部监控服务器。 _一一一 、一一 1、,。,。2;一f Collect Collect一 、t*,l, -r件0。一一一 一一? 、 _、,?II。j!;i;至一jjjj;i:jI;:ir。j7jIjj;蚕一jIIjji;西?0垒墅! 鬯唑竺篓弋塑竺岁 毯鲤jj笾一型 剐兰塑 j!
29、i;二盟, 兰笪芏生 ,-+:蟹芏皇,图25阶梯式体系结构相比较而言,1)安装部署:集中式体系结构,安装部署容易,仅需在监控节点统一安装Agent即可,而阶梯式结构则还需确定监控节点所属组域,并在汇集节点安装Collect,阶梯结构若有多级,则还需确定汇集节点的上层汇集节点;2)可扩展性:集中式结构中监控服务器负责收集所有监控节点数据并进行数据分析,在网络流量和计算能力限制下,只能适用于数目较小规模监控,而阶梯式结构中汇集节点承担了一部分信息收集整理和计算任务,减轻了监控服务器的负担,所以节点数目较多时可以采取多级阶梯结构,具有较强的扩展性;3)容错性:集中式体系结构监控服务器负载重,容易造成
30、灾难性错误,而阶梯式堕第二章云平台监控架构研究结构则减轻了监控服务器负担,若汇集节点出错,可见错误限制于此所属组域;4)延时性:集中式结构延时较小,阶梯式结构监控信息需通过若干层汇集节点的整合分析,延时性较大。本文采用Ganglia的层级结构,并在监控系统自配置性和容错性做了改进,使其具有安装部署容易、可扩展性强、容错性高等优点。222推拉模式监控系统中监控数据在监控节点和监控服务器之间的传输,主要有推模式和拉模式这两种模式【28。推模式(PUSH):由监控节点上的监控代理发起,即监控代理将采集到的本节点的监控数据在通知消息来临时,主动将其发送到监控服务器。拉模式(PULL):由监控服务器发起
31、,需要监控服务器主动询问监控代理而获取数据,即需要相应组件主动去采集每个监控节点的性能参数,可以调用驻留在各个监控节点上的代理对象的性能参数获取方法而实现。数据传输具体选哪种模式,需综合比较实时性、准确性、易用性、可扩展性、开销等,其中实时性指监测的数据和系统实际运行数据的一致程度以及变化时能否及时反映。开销则指完成一次监测信息的交互所需要的消息数据的多少。两种模式对比如下表所示【28】:表21推拉模式比较实时性 准确性 易用性 可扩展性 开销推模式 好 好 好 一般 多拉模式 差 差 差 好 少推模式由于其实时性高、开销大的特点,适合监控代理中预先设置触发事件或阈值,监控运行中基于事件或阈值
32、触发告警的场景。拉模式由于其实时性差、开销小的特点,适合监控服务器对监控代理周期性进行轮询的场景。在设定触发阈值和周期之类参数时,应考虑要获取的数据的敏感度以及对用户的重要性,力求将资源占用分配到更重要的地方。云平台监控系统提供对云平台的LAAS、PAAS、SAAS三层服务的监控,监控数据类型众多,本文对不同要求的数据采用不同的数据采集模式,例如在监控节点的性能参数采集中采用周期轮询的拉模式,并对不同监控指标设定不同的周期;而在用户存储监控中采用事件和阈值相结合的推模式,尽可能降低12第二章云平台监控架构研究采集开销并提高数据采集准确性。第三节Gangfia监控研究Gall西ia是由UC Be
33、rkeley组织研发的跨平台可扩展的开源监控项目【291,主要监视资源运行性能变化情况。它综合简单设计原则和健全工程思想,实现高层次的鲁棒性和易管理性,目前己被移植到一系列的操作系统和处理器架构,且被应用于500多个集群中。本文改进Gall西ia不足之处,实现了具有实时监测、分析和控制等功能的云平台监控系统,在该系统中用到Gan哲ia的数据采集和汇集模块,因此,有必要先分析其实现原理、功能及不足。231 Ganglia实现原理Gan百ia主要采用层级设计架构,点对点连接,其架构图如图26所示:刚!一 mmr,i图26Gan誊ia架构图Gan对ia实现中包含Gmond和Gmetad两个守护进程,
34、还包含一个命令行程序Grne仃ic和一个客户端库。其中:(1)Gmond为数据采集器,运行于每个被监控的节点上,基于速度和低开销考虑,它采用细粒度读写锁和高并发技术解决了侦听线程和XML导出线程对监控采集的度量记录访问的竞争,并允许侦听线程使用哈希表同时保存从多个监控节点传入的监测数据。监测数据以XDR形式传输【30】并以二进制形式快速存-g广ll ,唾窝第二章云平台监控架构研究储存在哈希表中,以减少物理内存使用率。Gmond通过设置软时限和硬时限来实现数据传输超时机制,并使用精确的带时间阈值的心跳消息,每个心跳包含一个时间戳,代表Gmond实例的启动时间。时间戳改变即代表Gmond所在节点被
35、重启。一个Gmond在几个时间阈值内没有响应则被认为关闭。(2)Gmetad为数据汇集器,通过定期轮询配置文件中指定数据源的监控子节点来完成数据汇集。每个子数据源用特定字符串标记,并包括若干IP和TCP端口对。收集的XML数据通过SAX XML解析器和GNU gperf产生的哈希表有效组合实现解析,使用SAX解析器而不是DOM解析器,可以降低CPU开销和物理内存占用,使用哈希表而非原始字符串比较,可以避免大量字符串比较,提高效率和速度。所有实时数据通过RRDHelp类保存到RRD数据库中。(3)Gmetric为命令行程序,可用来采集特定应用程序的监测指标,以扩展监控功能,如采集mysql运行情
36、况。(4)RRDl31】是一种环形数据库,其格式紧凑、长度固定,便于存储和图形展示时间序列数据,对于不同时间粒度的数据,RRDTool可以绘制随时问的度量变化趋势。(5)Apache Web Frontend是基于PHP开发的显示监控数据的前台程序,它接收来自客户端的关于监控节点运行情况的查询和访问。由上可知多个Gmond节点形成簇,UDP组播【32】使得每个Gmond节点包含了簇内监测数据的完整副本,Gmetad则通过TCP连接采用拉模式定期从叶节点和汇集节点获取监测数据,对于一个簇只需查询一次;Gmetad拉数据失败时,才查询其他节点,这样每个叶节点在逻辑上代表一个簇,而每个非叶节点在逻辑
37、上代表了一系列簇。232 Ganglia采集分析Ganglia监控系统的底层实现了监控对象运行数据的实时采集、汇集,其上层功能则提供监控指标实时变化情况展示的功能,下面详细介绍。Ganglia可以采集物理节点、虚拟节点性能参数的实时运行数据的采集,包括28。37个度量,其中基础度量有CPU个数、速度、CPU(user,nice,system,idle)以及load平均负载(1,5,1 5 min)、内存(flee,shared,buffered,cached,total)、 进程(running,total)、交换(free,total)、系统启动时间、操作系统(name,version,第二
38、章云平台监控架构研究architecture)和MTU等。采集中监控信息在节点之间通过多播机制实现信息共享,资源汇集节点可直接向集群的头节点查询即可获取该组内所有物理节点监控信息,这样的话仅仅使用了一次IO通信,大大减少了云中的带宽资源消耗;还可以通过带内插件或带外欺骗来采集特定应用程序占用资源的相关参数。此外Ganglia还可以采集hadoop云平台参数,Hadoop对Ganglia提供了接口,只需要修改配置文件SHADOOP HOMEconfhadoop-metricsproperties中的dfsclass、mapredclass、vmclass属性,即可监控HDFS文件创建、删除、修改
39、次数,数据块创建、删除、迁移、读、写、数据块报告次数变化情况等,以及作业完成、失败、杀死、等待的个数变化,和map、reduce完成、失败、杀死、等待的个数变化等。233 Ganglia缺点总结经过对Ganglia监控原理和数据采集的分析,虽然Ganglia在跨平台数据采集及展示方面有着优异的性能表现,但是从云平台监控角度考虑,Ganglia在数据采集、数据汇集、数据存储、控制、容错等方面存在不同程度的缺陷,需要对其改进以适用于云平台的监控系统。l、数据采集方面:Ganglia虽然可以采集计算机的CPU、内存、磁盘、网络等多维度参数信息,但是对集群系统整体负载利用率没有考虑,且没有从用户使用云
40、服务角度进行监控数据采集;并且其数据在采集中只提供拉模式定期轮询监控节点,不完全适用于云平台多种类型数据的采集,造成资源传输及处理的浪费。2、数据汇集方面:Ganglia采取层次设计,类似上文介绍监控系统的阶梯结构,虽可以监控较多节点,具有较好可扩展性,但是其部署复杂且不能自动发现资源(41节详细介绍并进行改进),不适用于云平台节点的自动部署特性。3、数据存储方面:Ganglia采取RRD数据库存储实时监控数据,RRD可以快速数据展示,但其格式特殊,导致在数据在统计和分析方面扩展性不足;且RRD为定量存储的数据库,超出数据存储的限制的监控数据则采用先进先出的原则淘汰,对历史数据的查看及分析造成
41、不便。4、控制方面:Ganglia虽然在采集及展示不同维度的数据方面比较强大,但没有处理及恢复故障的策略。第二章云平台监控架构研冗5、容错性方面:Ganglia采取多播形式在监控节点保存簇的监控数据副本,较其他监控系统数据传输的容错性有较大改进,但是汇集节点(Gmetad所在节点)存在单点故障问题,即此节点出错则会造成不能监控Gmetad节点下所有监控节点。6、用户管理方面:Ganglia只设置了管理员权限和普通用户权限,并无对云平台的计费管理功能。16第三章云平台监控系统设计第三章云平台监控系统设计本章将首先针对云平台监控系统进行需求分析,抽象出系统中的用户、监控对象等,根据需求分析给出系统
42、的功能模块设计,并基于Ganglia设计了包含监控资源层、监控采集层、监控数据汇集层、数据持久层、用户交互层的五层架构,同时介绍了每一层实现技术,并对监控数据流进行了详细分析:之后重点介绍了资源监控和用户监控的详细实现,给出云平台多维度的资源利用率分析,并将用户计费科学化。第一节需求分析云平台监控系统需要对云平台提供多维度、实时、准确的云资源运行状况和用户使用云服务情况的监控,以及对故障的统计、过负载的报警和用户使用云服务的计费。本节从系统的用户、监控对象以及对监控对象所需要的处理方面进行需求分析。311云平台监控系统用例分析云平台监控系统有监控系统管理员、云平台运营者、云平台服务商、云平台普
43、通用户四种用户,应对不同的用户需提供不同的功能,并进行相应的权限控制。用例分析如图31所示。(1)云平台监控系统管理员:负责部署云平台监控系统、配置监控节点及监控对象、进行用户管理和权限分配,进行监控数据备份和监控系统异常检测。(2)云平台运营者:需要通过云平台监控系统了解云平台实时运行情况,硬件、软件异常状态和故障,资源的消耗情况和资源提供能力,已达到识别并制止恶意攻击云平台行为,及时处理异常和故障,以及综合考量云平台负载能力并制定相应的改进策略。云平台监控系统应为运营者提供管理权限内的监控节点调整,定制监控内容,并为其展示和分析监控结果。(3)云平台服务商:需要通过云平台监控系统了解在什么
44、样的成本下能够提供什么样的服务,这就意味着需要一个工具去分析收集系统集群或单个用户17第三章云平台监控系统设计过去的使用情况,并利用分析出的信息预测将来的需求,同时需要强大的计费功能对提供的不同程度不同功能的服务合理收取费用。(4)云平台普通用户:普通用户则需要从云平台监控系统中了解自己在云平台运行的数据的放置处所变化情况,并对数据设置访问权限以保证数据安全;如果是计算任务,用户也需了解任务的运行情况。312监控对象分析图31监控系统用例图一般云计算平台往往提供L蛆S、PAAS、SAAS三个层次的服务,云平台监控系统则应针对这三个层次提供监控,而这三层上的监控对象主要包括云计算环境下的硬件资源
45、、软件资源、网络情况以及用户使用服务情况,其中包括:(1)云平台物理设施和虚拟设施的监控,监控参数包括衡量计算速度的系统CPU个数、CPU速度、CPU利用率、内存总量、空限量等,衡量存储能力的硬盘总量、空限量等,以及IO吞吐量以及网络流量带宽情况;(2)云平台服务的监控,服务包括存储服务、计算服务以及其他服务,其他服务即云平台部署的特定软件所提供的服务,例如工作流服务。监控参数包第三章云平台监控系统设计括服务总体运行情况的监控,比如计算服务中的云平台等待作业数、读写数据量等,存储服务中的存储总量和空限量,工作流服务中活动例程数、占用系统资源量等。(3)云平台中用户使用服务及付费,付费依据的监控
46、参数主要包括用户存储量的变化情况、计算资源占用量、其他服务使用情况以及收费情况。云平台监控系统确定了监控对象后,对这些对象的行为进行监控,即对它们的行为数据进行采集,监控系统将基于监控对象采集的数据进行性能等分析,以达到指导运营者均衡系统资源,服务商按需提供服务的目的。这部分采集数据的处理工作主要有:(1)针对不同监控对象,采取不同的数据采集方式,以满足低干扰、实时性、准确性的特性。(2)云监控采集的数据可以永久存储,可以基于大量历史运行信息进行资源利用率分析并应保证监控轻量化运行,以保证数据实时展示(3)云监控数据应以直观、友好的界面形式展示给相应的云监控系统用户,让用户了解自己所定制关心的
47、数据变化情况。(4)根据所得的云监控数据,为系统负载、用户使用情况等提供相应的分析和计算,为云平台部署和提供稳定的服务提供指导。比如系统负载有逐步变大的趋势,则增加部署服务器。(5)根据云监控数据,对监测的异常行为或故障提出警告,便于监控系统设置相应的策略以自动或人工解决问题。第二节云平台监控系统总体设计321云平台监控系统功能设计通过研究,本文的云平台监控系统设计了图32所示的五个功能模块:资源监控模块、用户监控模块、故障监控模块、节点管理模块、系统管理模块。19第三章云平台监控系统设计云平台监控系统资源监控物理资源监控虚拟资源监控服务资源监控负载分析故障监控监控警告故障统计故障处理图32系
48、统功能图下面给出每个功能块的功能设计:1、资源监控模块此模块实现对云平台中软硬件资源的使用情况的监控。本文系统设置的资源监控模块主要包括以下四个方面的功能:(1)对物理资源的监控:本文系统对该部分设置的功能是对监控云平台中所有接入的物理机CPU的系统利用率、用户利用率、空闲率等,内存、硬盘的总量和未使用量等,运行和等待的进程数以及每个物理机的网络带宽负载情况数据进行采集,从而监控这些资源的使用情况和分析云平台的性能;(2)对虚拟资源的监控:本文系统对该部分设置的功能是对监控云平台中所有接入的虚拟机CPU的系统利用率、用户利用率、空闲率等,内存、硬盘的总量和未使用量,运行和等待的进程数以及每个虚
49、拟机的网络带宽负载情况数据进行采集,从而监控这些资源的使用情况和分析云平台的性能;(3)对服务资源的监控:本文系统对该部分设置的功能是对云平台所提供的云服务进行监控,这里设定监控云存储服务、云计算服务以及云平台所部署的特定应用软件提供的服务,应用软件如云平台中的Tomcat以及mysql。其中云存储服务和云计算服务通过部署在物理节点和虚拟节点上的云平台管理软件(例如Hadoop)接121来获取云平台文件系统中的文件的创建、删除、读、写、复制、迁移等数据块操作次数随时间变化情况等以及作业任务运行和等待情况;应用软件则监控其内存、CPU使用率等。(4)负载情况统计:包括对云平台整体的负载分析,对云平台中某个服务器多个虚拟机负载情况的分析,以及对单个节点负载情况的分析。20啬熏三垂一蠡一一一一耋|一一一一一第三章云平台监控系统设计2、用户监控模块此模块实现对用户使用云平台存储服务和计算服务情况的监控,并