您现在的位置是:首页电子技术论文

研究生论文发表基于清华云监控平台的云迁移性能

发布时间:2015-11-25 16:31:45更新时间:2015-11-25 16:34:16 1

  云计算是近年来兴起的一中技术,在数据管理中也是非常游泳的。现如今,社会各界企业的数据量也越来越大,传统的数据管理方式已经满足不了需求了。本文是一篇研究生论文发表范文,主要论述了基于清华云监控平台的云迁移性能。
  摘要:当云计算技术兴起后,很多企业已经或计划将业务和应用迁移到云上,而这面临着应用性能可能降低,关键业务和应用安全性受到威胁等问题,因此是否云迁移还是部署到独立服务器上,是一个需要深入研究的问题。以清华云平台为基础,搭建了基于Nagios的清华云监控平台,先对清华云平台和架构进行介绍,再对Nagios和清华云监控平台架构进行了论述,在云迁移性能评估中,以Ubuntu和Windows为操作系统平台,以CPU负载和内存使用为评估指标,分别在云服务器和独立服务器上运行CPU运算类和服务器负载类两类应用,最后对实验结果进行了分析和比较。实验表明,部分应用在独立服务器上性能更好,并不适合云迁移。

  关键词:云计算,性能监控,云迁移,OpenStack,Nagios

  0引言

  传统的企业数据管理方式是选择专用服务器来管理企业数据,或建立自己的机房,或租用独立服务器。而近年来,企业的数据量呈爆发式增长,云计算和大数据技术应运而生。云计算因具有使用更便利、节约大量软件和硬件成本、节省物理空间等优点,使得应用愈加广泛。各大公司纷纷推出自己云计算平台和云平台服务,国外典型的云平台服务有Google 云平台、IBM“蓝云”、Amazon弹性计算云EC2等;国内典型的云平台服务有百度云平台、阿里云平台、盛大云平台和腾讯云平台,许多机构和中小公司也建立自己的云计算平台,这些云计算服务平台提供云计算的3个领域基础设施即服务(Infrastructure as a Service, IaaS)、平台即服务(Platform as a Service, PaaS)、软件即服务(Software as a Service, SaaS)的一种或多种服务。目前的云服务市场已经有一定的成熟度,全球大约90%的互联网用户均属于“云端用户”的范畴。

  当云计算技术兴起后,很多企业迫切希望能将重要工作负载迁移到云计算――公共云、私有云或混合云中,部分企业已经或计划将业务和应用迁移到云上。而云迁移面临着应用性能和可用性可能降低、关键业务安全性受到威胁等问题,因此是迁移到云上还是部署到独立服务器上,是企业需要深入考虑的问题。而基于云平台上的云监控技术提供了进行性能评估手段,可为云迁移提供重要参考。

  国内外有较多文献对云平台和云监控平台进行了论述,但应用是否适合云迁移的相关文献较少。文献[1]对云平台监控进行了较详细的分析,讨论了云监控系统存在的问题及研究者提出的处理方法,并对商用和开源的监控平台都进行了分析比较;文献[2]对主流监控平台进行了较全面的分析和分类,并讨论了云监控在云安全等领域的应用;文献[3]以从内部数据中心迁移到Amazon EC2云为例,探讨了应用迁移到云上的优点和问题;文献[4]对云迁移的现状进行了探讨,并对业务平台向云迁移进行了分析;文献[5]基于Nagios[6]平台部署了一种服务器集群监控管理机制;文献[7]基于Nagios对集群上的物理机和虚拟机的CPU、内存和网络等资源情况以及各服务的运行情况进行监控;文献[8]对各种开源云平台进行了比较分析,并讨论了OpenStack[9]的部署和应用。

  本文即从性能角度分析,以OpenStack搭建的清华云平台作为基础平台,Nagios作为监控平台,基于Ubuntu和Windows对不同应用进行性能比较和分析,分析哪些应用更适合迁移到云上,为企业云迁移提供参考。

  1清华云平台和架构

  实验基于OpenStack搭建的清华云平台作为基础实验平台,基于Nagios搭建云监控平台。

  1.1清华云平台的选用

  为了构建合理的清华云平台架构,保证云平台中各种应用的顺利实施,最根本的是需要建立一个稳定的基础架构即服务(IaaS) 层。IaaS 通过互联网提供给消费者的服务是对所有设施的利用,包括处理、存储、网络和其他基本的计算资源,用户能够部署和运行任意软件。目前有多种搭建 IaaS云服务的平台,较知名的有OpenNebula、Eucalyptus和OpenStack[9]。清华云选用 OpenStack 作为云计算设计的平台工具,主要原因是由于其开源的特质,并具有良好的控制性、兼容性、可扩展性和灵活性。

  OpenStack是采用 Smarty MVC 框架[10],综合使用 PHP、Shell、Java、Python、HTML 等编程语言实现的一个构架于服务器、存储、网络等基础硬件资源和单机操作系统、中间件、数据库等基础软件之上的云平台综合管理系统,同时也是一个云计算后台数据中心的整体管理运营系统。

  OpenStack 的主要组件及其相互关系包括: OpenStack Compute(Nova)、OpenStack Object Storage(Swift)、OpenStack Image Service(Glance)、Identity(Keystone)、Dashboard(Horizon)以及Network Connectivity(Quantum)等。其中,Dashboard(Horizon) 提供了一个 Web 前端到 OpenStack 其他的界面; Compute(Nova) 组件主要负责管理虚拟机,存储检索虚拟磁盘(Image)和Image上相关的元数据(Glance),并提供管理和维护系统镜像的服务; 网络组件 Network(Quantum) 提供构建与管理虚拟网络的功能,它将网络连接作为服务提供; 块存储服务组件BlockStorage(Cinder) 提供存储功能; Image(Glance) 在对象存储组件(Swift) 上能够完成虚拟磁盘文件的存储,该组件提供 petabytes 级别的、安全可靠的对象存储服务; 所有的服务均需要利用 Keystone 进行身份验证。   OpenStack的前台主要分为基础设施层、应用服务层和访问控制层等3个层面: 基础设施层为云平台的正常运行提供必要的设备级支持; 应用服务层主要基于 OpenStack 的 Keystone、Nova Glance、Swift 组件进行开发,实现对租户、云主机等的相应应用; 访问控制层主要用于不同身份用户的注册、登录与安全认证等。OpenStack的后台主要负责对整个平台进行运行管理和控制,实现对服务器的统一管理,并将存储、网络等硬件设备抽象为资源池进行集中管理; 提供用户租户管理、权限控制、余额查询、订单统计等; 根据需要分配、调度和回收资源; 负责接收和处理用户的资源申请,进行自动化的环境配置; 进行性能监控和故障管理等。

  1.2清华云平台架构

  在选定好云平台后,基于Ubuntu构建基于OpenStack的清华云平台,构建稳定的 IaaS 层应用,清华云平台的系统架构如图1所示。该云平台由主体由Dell服务器构成(Intel Xeon 3430 2.4GHz CPU,8GB 内存,2个500GB硬盘),清华云的控制中心及 Web 服务部署在第一台服务器上,Glance 镜像服务单独部署在一台服务器上,网络服务(Novanetwork) 部署在每个计算节点上,存储服务(Novavolume) 在物理层面挂载在两台服务器上,被所有设备通过网络共享。

  在启动云服务后,在每台物理机创建的虚拟机可以通过内网互相通信,并通过外网和云外设备通信。现已能对外部客户提供存储服务。

  2清华云监控平台和架构

  2.1清华云监控平台的选用

  云监控工具也有很多种,主流的有Ganglia[7]和Nagios。Ganglia是UC Berkeley发起的一个开源的分布式监视项目,设计用于测量集群内数以千计的计算节点。Nagios是一个可运行在Linux/Unix平台之上的开源监视系统,可以用来监视系统运行状态和网络信息,Nagios可以监视所指定的本地或远程主机以及服务,同时提供异常通知功能。清华云监控平台选择Nagios作为监控平台,因其监控功能应强大,可跨操作系统监控物理主机和虚拟的云主机,也可监控应用的实时运行状况。

  Nagios 的监控系统可以分为5大部分[11],各个模块及作用如下:

  1) Nagios core。核心守护进程,负责协调各个模块的运行,以及日志记录。

  2) NRPE 守护进程。NRPE部署在远程的被监控Linux/Unix(Ubuntu)主机上,通过执行插件的方式来对远程主机上的资源进行监控。

  3) NSCA 守护进程。NSCA同样部署在远程的被监控Linux/Unix(Ubuntu)主机上,但是是通过用户自定义的脚本来向远程的Nagios服务器发送本机的监控信息,这是被动监控的主要模式。

  4) NSClient++守护进程。NSClient++部署在以Windows为操作系统的主机上,用来监控使用该系统主机的情况。

  5) NDO2DB 守护进程。负责把 Nagios core 守护进程的运行日志、配置信息、事件信息等入库。

  Nagios主要监测指标有被监控主机的CPU利用率、内存利用率、磁盘利用率、进程以及ping等。

  2.2基于Nagios的清华云监控平台架构

  基于Nagios的清华云监控平台架构如图2所示,有2台Nagios服务器对4台主机进行监控(需要可随时增加),Nagios1监控的是由OpenStack建立的两台云主机(cloud host1, cloud host2),Nagios2监控的是两台独立主机(host1, host2)。两台Nagios server上安装了Nagios core、NRPE、Nagiosplugin、PNP4Nagios等模块。被监控的Ubuntu主机上安装NRPE模块,Windows主机上安装了NSClient++模块。

  3性能评估

  3.1实验参数和说明

  CPU利用率和内存利用率是评价系统性能的重要指标,本实验即以这两项作为实验的性能检测指标,以Ubuntu和Windows两种操作系统作为测试程序平台,选2台相同配置主机作为独立主机(即独立服务器),2台云主机在dashboard下建立,重要参数均与独立主机相同,4台被监控主机部分信息如表1所示。

  实验测试应用分为两类:CPU运算类应用和服务器负载类应用,前者选择的为圆周率测试程序和LinX、后者选择的是http_load、WebBench和FTP。

  3.2Ubuntu下云主机和独立主机性能评估

  3.2.1浮点运算能力评估

  浮点能力测试基于Ubuntu下编写的圆周率运算程序。此应用测试目标是评估Ubuntu环境下云主机和独立主机提供计算服务时的系统性能。选择的圆周率测试程序对CPU有较高的持续使用率,即应用典型有效,能很好地完成测试目标。

  在云主机和独立主机分别运行此程序,执行时间为20min,得到的结果如图3所示。由图3比较云主机1(cloud host1)和独立主机1(host1)的CPU负载可知,取load1的CPU 平均负载(下同),云主机1为0.76,独立主机1为0.91,云主机1相比独立主机1有16.5%的性能提升,即浮点运算程序在云主机1上CPU开销更低。

  由图4,比较云主机1和独立主机1的内存使用可知,云主机1的平均内存使用为725MB,独立主机1的平均内存使用为493MB,独立主机1的内存开销与云主机1相比低32%,即浮点运算程序在独立主机1上内存开销更低。

  综上,对浮点运算程序,在云主机上的CPU开销较小,但独立主机的内存性能更好,因此用户要权衡此类应用CPU和内存性能哪个更为重要,来决定在是否将其迁移到云上。   3.2.2http_load性能评估

  测试工具基于http_load,测试目标是评估Ubuntu环境下云主机和独立主机在不同负载时的系统性能。http_load是基于linux平台的一种性能测工具,用以测试Web服务器的吞吐量与负载,及Web页面的性能。它能模拟服务器各种负载的情况,即应用典型有效,能很好地完成测试目标。

  在云主机和独立主机分别运行此程序,测试的URL为20个常用网站地址,测试时间为20min。实验结果如图5和图6所示。由图5比较云主机1和独立主机1的CPU负载可知, 云主机1的平均负载为0.22,独立主机1的平均负载为0.27,云主机1相比独立主机1有18.5%的性能提升,即http_load在云主机1上CPU开销更低。

  由图6比较云主机1和独立主机1的内存使用可知,云主机1的平均内存使用为734MB,独立主机1的平均内存使用为781MB,云主机1的内存开销与独立主机1相比低6%,相差较小,考虑到实验误差,浮点运算程序在云主机和独立主机1上和内存开销大致相同。

  综上,对HTTP应用,因在云主机上CPU开销较低,内存性能大致相同,因此适合迁移到云主机上运行。

  3.2.3WebBench性能评估

  测试工具基于WebBench。此应用测试目标是评估Ubuntu环境下云主机和独立主机作为服务器在处理高强度用户服务时的系统性能。WebBench是Ubuntu环境下的网站压力测试工具,能测试处在相同硬件上不同服务的性能以及不同硬件上同一个服务的运行状况。它能模拟Web服务器在大量用户并发访问的情况,即应用典型有效,能很好地完成测试目标。

  在云主机和独立主机分别运行此程序,以本机为Web server,向本机模拟5000个并发连接,测试时间为10min,实验结果如图7和图8所示。由图7可知,云主机1和独立主机1的CPU的负载都很高,因为处理并发请求CPU消耗较高。云主机的平均负载为5.76,独立主机1的平均负载为4.36,独立主机相比云主机有24.3%的性能提升,即WebBench在独立主机1上CPU开销更低。

  由图8可知,云主机1和独立主机1的内存使用都较多,因为大量并发请求占用了大量内存;云主机1的平均内存使用为1.97GB,独立主机1的平均内存使用为1.6GB,独立主机1的内存开销与云主机1相比低18.8%,即WebBench在独立主机1上内存开销更低。

  综上,对WebBench应用,在独立主机上运行开销和内存开销都更低,因此更适合在独立主机上运行。

  3.3 Windows下云主机和独立主机性能评估
研究生论文发表

  3.3.1FTP性能评估

  在Windows 环境下先评估FTP文件传输性能(以文件下载为例)。此应用测试目标是评估Windows环境下云主机和独立主机作为Web服务器提供网络服务时的系统性能。FTP是最常用、最典型的网络服务,即应用典型有效,能很好地完成测试目标。

  云主机和独立主机分别从清华FTP上下载镜像文件,测试时间为10min,实验结果如图9和图10所示。由图9可知,云主机2(cloud host2)和独立主机2(host2)的CPU的负载相对都较低,因为FTP服务不需要CPU过多的参与。云主机2的平均负载为12.5%,独立主机2的平均负载为1.2%,即FTP应用在独立主机2上CPU开销更低。

  由图10可知,云主机2的平均内存使用为282MB,独立主机2的平均内存使用为781MB,云主机2的内存开销,与云主机2相比低63.9%,即FTP应用在云主机2的内存开销明显更低。

  综上,对FTP应用,独立主机的CPU开销更低,但云主机内存开销更低,用户要权衡CPU和内存哪个更为重要,以决定是否进行云迁移。

  3.3.2浮点运算性能评估

  测试工具基于LinX,此应用测试目标是评估Windows环境下云主机和独立主机在提供计算类服务时的系统性能。LinX是基于Intel Linpack数学核心库的浮点运算性能测试软件,对CPU有较高的持续使用率,即应用典型有效,能很好地完成测试目标。

  问题规模为10000,在云主机和独立主机上按3轮次执行,运行约10min,测试结果如图11和图12所示。由图11可知,云主机2的平均负载为26.6%,独立主机2的平均负载为15.2%,独立主机2相比云主机2比低11.4%,即浮点计算在独立主机2上CPU开销更低。

  由图12可知,云主机2的云主机和独立主机的内存使用都较多,因为浮点计算占用了大量内存;云主机2的平均内存使用为1.34GB,独立主机2的平均内存使用为0.84GB,独立主机2的内存开销与云主机2相比降低37.3%,即浮点计算在独立主机2上内存开销明显更低。

  综上,对浮点计算程序,在独立主机上CPU开销和内存开销都明显更低,因此更适合在独立主机上运行。

  4结语

  本文从系统性能角度,对不同操作系统平台的不同类型应用是否适合迁移到云上,基于OpenStack的清华云云平台和Nagios清华云监控平台进行了实验测试和分析。由于实验设备、网络差异和测试集应用等各因素的限制,实验结果难免会有一定的误差,但实验结果在一定程度上可以说明:对于Linux平台,在运行CPU运算类应用时,如更重视CPU性能,适合迁移到云上,如更重视内存性能,则适合独立主机;在运行http类服务时,适合迁移到云上;在运行WebBench类应用时,适合在独立主机上运行。
  研究生论文发表期刊推荐《计算机工程与设计》创刊于1980年,是中国航天科工集团主管、中国航天科工集团二院706所主办的国内外公开发行的计算机专业技术类刊物。该刊是中国计算机学会会刊、北京计算机学会会刊、中国宇航学会会刊,是全国中文核心期刊、中国科技核心期刊。


转载请注明来自:http://www.yueqikan.com/dianzijishulw/55434.html