刘龙
摘要:云计算具有动态分配、弹性扩展和资源整合等特点,保证这些特点的关键技术是虚拟资源自动配置技术。重点研究和总结了云计算环境下资源的自动配置管理技术。研究了虚拟机的优化放置问题、虚拟资源动态调整模型等,指出了云计算环境下自动资源管理中存在的问题,对未来的研究方向作了展望。
关键词:云计算;资源配置;优化放置;弹性伸缩
中图分类号:TP301
文献标识码:A 文章编号:1672-7800(2015)003-0011-02
0 引言
近年来云计算受到广泛关注,作为一种新兴的商业模式,催生出大量的新型互联网应用服务,服务类型包括基础设施即服务(Infrastructure as a Service,IaaS)、平台即服务(Platform as a Service,PaaS)和软件即服务(Software as a Service,SaaS)。其中,基础设施即服务(IaaS)作为云计算最基础的服务模式,通过一系列虚拟化技术,使得虚拟机共享物理机资源池,用户以一种现收现付的方式动态租用云供应商提供的虚拟机资源,并部署自己的应用系统。
显然,云计算中虚拟资源配置管理技术的优劣将直接影响到基础设施整体的资源利用率、服务能力以及SLA。另外,随着数据中心规模的扩大,人工及手动管理数目庞大的资源集群非常不现实,亟需一种自动化的资源配置管理技术,来自动响应负载的动态变化,这是云计算在IaaS服务模式下需要重点解决和优化的关键技术问题[1]。
云计算环境下的自动资源管理技术是一个非常庞大、复杂的课题。目前,国内外的相关研究主要集中在两大技术领域:①虚拟机的优化放置;②虚拟资源的动态调整。本文将从上述两个技术领域出发,介绍云计算环境下自动资源配置技术的研究进展,分析当前研究领域中存在的问题,指出未来研究的方向。
1 虚拟机优化放置技术
1.1 虚拟机优化放置技术简介
虚拟化技术为企业数据中心带来了许多优势:①它使数据中心可以随负载变化动态配置虚拟机占用的资源;②通过动态迁移技术,选择一定的策略,在不同物理机之间快速移动虚拟机,从而提高企业IT基础设施的资源利用率;③整合大量分散的物理机资源,通过优化算法将众多虚拟机放置在同一物理机上。显然,这些优势也给资源配置管理技术提出了更高的要求。
虚拟机的优化放置研究是云计算环境下资源配置技术的重点之一,工业界和学术界都对虚拟机的优化放置技术进行了大量研究。虚拟机的优化放置首先要解决虚拟机和物理机之间的映射关系,研究的重点就是所选用的放置策略,优化放置的主要目的就是寻找优化的虚拟机放置方案,从而更快满足多目标的应用系统。另外,在虚拟机放置过程中,要求自动响应运行环境的不断变化,并及时作出调整。
1.2 虚拟机优化放置技术算法
目前,大量的技术研究将虚拟机的优化放置问题建模为N维装箱问题,通过虚拟机动态迁移,减少所运行的物理机资源,从而满足虚拟机的资源请求,进而提高基础设施的资源利用率。Nakada H[2]等人把虚拟机的优化放置问题建模为一个多目标优化模型,包括SLA需求、物理服务器个数、迁移次数等,采用基于遗传算法的改进方法来解决该问题。Raquel Lopes[3]等人为虚拟机与物理机之间确定了一个启发式算法:首先假设每个集群表示无容量限制的服务器,进而找到事项不相容限制的最优应用集群。其次,考虑服务器的能力限制而将应用分配到目标集群中。另有研究是建立基于分组基因算法模型,难以解决整合物理机资源问题。在虚拟机迁移过程中,设定迁移代价,尽可能使用最少的物理机以产生最大的收益,并考虑虚拟迁移代价。
当前,虽然大量的研究集中于虚拟机的优化放置技术,但却表现出扩展性差、目标单一、有效性低等共性问题,因此有很大的改进空间。虚拟机的优化放置问题涉及到虚拟机到物理机的映射,大多数算法将此看成一个NP问题,随着基础设施规模的扩张,难度很大。可以考虑把目标集中于动态环境下,将不同放置策略组合,实现基础设施资源共享,降低能耗成本。也可以把研究目标集中于自动虚拟机放置、多目标优化物理模型上,综合考虑SLA、吞吐量、虚拟机迁移代价、资源利用率、能耗等多种目标,根据负载的动态变化进行自动调整,使用简便的优化放置算法,尽快获得最优的解决方案。
2 虚拟资源动态调整技术
2.1 虚拟资源动态调整技术简介
IaaS服务模式允许云计算提供虚拟机资源,如CPU、内存、存储等,用户可以动态申请虚拟资源。云供应商可以以一种更加灵活的方式自动调整虚拟机资源的配置能力,从而满足负载的峰值变化。虚拟机资源动态调整技术可以细化为两个分支:①粗粒度调整方式,即根据系统运行状况以及负载情况,为用户动态分配不同数量的虚拟机;②细粒度调整方式,即根据系统运行状况以及用户需求情况,弹性增加或减少虚拟机的CPU、内存、存储、带宽等资源。
粗粒度的调整方式以亚马逊的EC2为代表。EC2可以按需增减运行中的虚拟机数量,及时响应负载的动态变化,即,当用户负载峰值到来,超出了现有资源的处理能力时, EC2会额外为用户开启一定数量的虚拟机进行负载均衡;反之,当负载降低时,EC2会关闭负载较低的虚拟机节点,以节省资源。粗粒度的调整方式虽然能使虚拟机资源自动伸缩,但它是以虚拟机为单位进行调整,某些情况下可能造成了资源的浪费。目前,虚拟资源动态伸缩模型研究的重点在于更加细粒度的资源调整方式,即分析用户的需求行为,动态为用户扩展计算资源或存储资源。比如用户倾向于计算型应用时,当负载增大,可以扩展虚拟机额外的CPU资源,若应用系统倾向于存储服务时,可以动态扩展虚拟机的存储资源,以快速响应负载的变化[4]。
虚拟资源的配置技术很重要且极具挑战性,尤其是在处理工作负载和性能波动的情况下。传统的控制理论和机器学习已经成功应用于物理服务器的资源分配,而且最近的研究证明了这些方法在虚拟资源自动分配问题上也是可行的。早期的工作研究只专注于CPU资源的优化,Padala[5]等人采用了一个比例控制器来分配CPU份额,这种方法假设多个虚拟机之间没有干扰。近年来的工作研究强化了传统控制理论和卡尔曼滤波器的稳定性和适应性,但是这种研究只集中于CPU的分配。
传统的内存分配研究都是基于内存利用率的动态分配机制,但是,这种机制通常应用于特定的应用程序,例如,Apache web服务器通过释放未使用的httpd进程优化内存使用。其它应用程序,如MySQL数据库程序,更倾向于积极地缓存数据。云计算中虚拟机内存利用率的计算非常困难。例如,Xen虚拟化技术使用Self-Ballooning技术来动态分配内存,它通过操作系统的资源报告来估计VM内存需求情况。这种技术在内存压力下,能够有效扩展虚拟机内存的容量,但无法适当缩小内存。现如今,可以通过监视磁盘I/O情况来更加准确地估计正在使用的内存,但是根据磁盘的使用情况更新内存信息的方法,在内存空闲时并不能及时缩减内存大小。虽然目前还未找到一个有效的方法来估计虚拟机的资源使用情况,但已有研究指出,可以依赖多种性能指标来决定内存的分配,通常是采用更多与虚拟机业务有关的信息以及trial-and-error模式的试错经验。
2.2 虚拟资源动态调整模型
多个资源的自动分配为云资源管理方案的设计提出了挑战,资源和性能之间的复杂关系使得底层系统的建模非常困难。Padala等人成功地应用ARMA(auto-regressive moving-average)模型来表示资源分配与应用程序性能的关系。他们利用MIMO控制器自动分配多个虚拟机的CPU份额和I/O带宽,但是在工作负载变化很大时,ARMA有可能失效,它的性能也会受到虚拟机的影响。
与上述设计一个自动配置管理系统的方法不同,强化学习(RL)在自主计算领域提供了巨大的潜
在优势。最近,RL已经成功地应用于自动应用系统的参数调优、最优服务器分配以及自动优化的内存控制器设计。由于动态资源需求以及频繁的虚拟机干扰,基于强化学习的云资源自动化管理系统也引入了独特的需求和挑战,比如需要保证用户预期的服务质量。因此,基于强化学习的虚拟机自动配置方法应该具有可扩展性和高适应性。Song X[6]等人研究出了一种分布式的强化学习系统,能够随负载和系统环境的变化自动配置每个虚拟机的CPU、内存、磁盘等资源,利用高效的强化学习算法,找到最优的配置策略,为128台虚拟机组成的集群动态调整虚拟资源,最终使系统负载维持在5%以下,保证了应用系统的响应时间和吞吐量。未来期望能够把虚拟机资源的自动配置和负载预测机制很好地结合起来,因为负载自适应能力不仅需要依靠当前的负载情况,还要能预测出未来一段时间工作负载的变化,以一种更准确、有前瞻性的方式,调整虚拟资源的大小。
3 结语
本文从虚拟资源的动态调整模型、虚拟机的优化配置两方面对云计算环境下资源的自动配置管理进行了阐述及分析,结合国内外研究现状,指出了当前技术中存在的一些问题,以及未来的研究方向。总之,云计算环境下的自动资源配置技术并不是独立存在的,和其它技术是相辅相成的。因此,未来的研究方向应该综合考虑不同配置技术的结合与协调。
参考文献:
[1] 王晶,方伟,陈静怡,等.云计算环境下的自适应资源管理技术综述[J].计算机工程与设计,2012,33(6):2128-2132.
[2] NAKADA H,HIROFUCHI T.Eliminating datacenter idle power with dynamic and intelligent VM relocation[C].Berlin Heidelberg:Advances in Intelligent and Soft Computing,2010:645-648.
[3] RAQUEL LOPES,FRANCISCO BRASILEIRO, PAULO DITARSO MACIEL JR. Business-driven capacity planning of a cloud-based IT infrastructure for the execution of Web applications[C].Atlanta,Georgia: IEEE International Symposium on Parallel & Distributed Processing, Workshops and Phd Forum, 2010:1-8.
[4] 王伟兵. 一种基于云计算的动态可扩展应用模型[J].计算机工程与应用, 2011,47(15):15-18.
[5] 王鹏.云计算的关键技术与应用实例[M].北京:人民邮电出版社,2010.
[6] SONG X, ZHANG Q, SEKIMOTO Y, et al. Modeling and probabilistic resoning of population evacuation during large-scale disaster[C].Proceedings of the 19th ACM SIGKDD international congferrence on knowledge discovery and data mining. ACM,2013:1231-1239.
(责任编辑:杜能钢)