来源:计算机工程与设计杂志 更新时间:2013-08-14
云环境下的自适应资源管理是当前云计算研究领域的热点问题,是云计算具备弹性扩展、动态分配和资源共享等特点的关键技术支撑,具有重要的理论意义和实用价值。其主要研究点包括:虚拟机放置优化算法,虚拟资源动态伸缩模型、多IDC间的全局云计算资源调度、全局资源配置及能力规划模型等。对云环境下自适应资源管理研究现状进行分析研究,并指出当前研究中存在的一些主要问题,同时进一步展望本领域未来的研究方向。
0 引言
“云计算”是近年来IT产业发展的新热点,受到各方的广泛关注。其作为一种新兴技术和商业模式。将加速信息产业和信息基础设施的服务化进程,催生大量新型互联网信息服务,带动信息产业格局的整体变革。根据提供服务类型的不同,云计算通常分为基础设施即服务(infra—structure as a service,IaaS)、平台即服务(platform as aservice。PaaS)和软件即服务(software as a service,SaaS)。其中,基础设施即服务(IaaS)作为最基础及支撑性的服务模式,通过虚拟化技术使得虚拟机共享物理机资源池,使运营商可以通过向用户提供虚拟机资源来承载他们的应用。显然,云计算应用的开展必将导致云IDC中的基础设施资源(如服务器、网络设备、存储设备等)大量聚集。于是.虚拟资源调度管理技术的优劣将直接影响到IDC整体的资源利用率、服务能力以及SLA。另外,随着IDC规模的扩增,手动及人工管理数目庞大的物理资源集群已经变的非常不现实。如今,更需要一种自适应的资源管理技术,以自动响应IDC运行情况变化,并减轻管理人员的负担。因此,这也成为云计算在IaaS模式下需要重点优化和突破的关键技术问题。
云计算环境下的自适应资源管理问题是一个非常复杂、庞大的课题。目前,国内外的相关研究主要集中在如下4个技术领域:①虚拟机放置优化算法;②虚拟资源动态伸缩模型;③多IDC间的全局云计算资源调度;④全局资源配置及能力规划模型。本文将从以上4个研究领域出发,对云计算环境下自适应资源管理技术的现有研究成果进行阐述及分析,并指出当前研究中存在的一些亟待解决问题,进而进一步指出未来的研究发展趋势。
1 虚拟机放置优化算法
虚拟化技术为当今的IDC带来了许多优势:一方面,它能够有效的帮助IDC提高整体IT资源的利用率,通过集成、整合分散的物理资源、将众多虚拟机放置在同一台物理机上;另一方面,它也为IDC提供了更大的灵活性,可以动态的随需配置各台虚拟机占用资源的大小,同时,也可以通过动态迁移技术、根据不同策略使虚拟机在不同物理机之间快速移动。但是,显然,这也对资源管理技术提出了更高的要求。
虚拟机放置问题是云环境下资源管理技术的一个最重要的研究点,也是目前受到关注最多的一个领域,学术界和工业界都对优化的虚拟机放置技术进行了大量研究。虚拟机放置需要决定虚拟机与物理机之间的映射关系,其重点即是根据所设定的放置策略。寻找优化的虚拟机放置方案,以更好的满足多重系统目标。除此之外,还要求虚拟机的放置过程能够自适应的响应整体运行环境的动态变化,及时做出改变。
大量的文献如文献[1-2]等把虚拟机放置问题建模成装箱问题或N维装箱问题文献[3-41,通过虚拟机迁移,使得开启尽可能少的物理机以满足所有虚拟机的资源请求,从而提高整体的IT资源利用率。文献[1-2]把虚拟机放置问题定义为一个多目标优化的问题,包括避免违反SLA、减少服务器数量、以及减少迁移次数等;他们提出了一个基于基因算法的方法来解决该问题。文献Is]为虚拟机与虚拟机之间和虚拟机与物理机之间存在不相容约束的服务器整合问题制定了一个两阶段的启发式算法:在第一个阶段,通过假设每个集群代表一个没有容量限制的服务器,来找到满足事项之间和事项仓不相容限制的应用集群;在第二个阶段,考虑服务器的能力限制来把每个集群中的应用分配到目标集群中。文献[6]建立了一种基于分组遗传基因算法的方法来解决服务器整合的问题。文献[7]认为虚拟机的迁移是有代价的,在尽量使用最少物理机产生最大的收益的同时,需要考虑虚拟机迁移所产生的代价。
除了提高IDC的资源利用率外,一些文献还提出了虚拟机放置的其他优化目标。对于口叱运营商来说,其最为关注的是运营成本,所以,随着服务规模的扩张。降低能耗逐渐成为一个越来越重要的趋势,这也成为很多当前研究的一个重点优化目标。文献[8一11]都各自提出了降IDC能耗的解决方法,文献[12]将能耗问题建模为约束混合整数规划问题(constrained mix-integer programming),将其转化为最小费用流问题(minimum cost flow)问题,用快速多项式时间算法求得最优解;相比其它文献,该文献的解决方案具有较大的优势及可扩展性。另外,文献[13]把虚拟机迁移产生的代价、虚拟机迁移带来的收益、迁移后能保持当前状态的时间都纳入考虑,并用改良后的A*算法来得到一个尽可能优的解,在能耗、利用率和性能三者之间尽量平衡。文献[14]考虑了IDC中的各个虚拟机之间的网络流量,希望把通信量大的虚拟机尽量放置到一台或邻近物理机上,以此来最大限度的减少全局的网络流量。文献[15]把用户提出的一些要求作为输入,例如某个虚拟机要独占一台物理机、某两个虚拟机不能放置到同一台物理机上等,由此产生的虚拟机放置算法,尽量满足用户的SLA。
所有上述的文献都是基于确定的工作负载来研究虚拟机放置问题的,为了使上述这些模型能够提供与应用SLA相符合的解决方案,模型中的负载参数通常采用的是各应用负载的高峰时期(如最大或是99%),这就会导致1DC在很长时间内,都处于低资源利用率、高能耗的状态中。为解决这一问题,文献[16]研发了一个自动控制的框架,该框架能够根据用户特定的策略并遵从某些限制(如兼容的软件、合适的CPU类型、相似的网络连接性、共享存储的使用等),来动态的对虚拟机进行迁移。为了解决服务水平目标,文献[17-1提出了一个在负载动态变化的环境中,能够自动迁移虚拟机的资源控制系统。他们提出的方法分为两部分:①一个能够动态判定应用等级性能和通过虚拟机的反馈来分配资源的网上模型评估器;②一个自适应的控制端.它能够动态地计算和分配资源。文献[18]通过预测云承载的应用的负载,动态的改变虚拟机的大小,尽量减少违反应用的SLA,同时尽量使用少的物理机来满足所有的虚拟机资源要求。
目前,对虚拟机放置模型和算法的研究虽然数目众多,但是大部分都存在可扩展性差、实际有效性低、目标单一化等问题,依然存在很大的优化空间。虚拟机放置问题涉及到虚拟机到物理机的映射,对于绝大多数现有算法而言是一个NP难问题,复杂度过高,随着IIX;规模的扩张,求得可行的解几乎是不可能完成的任务。在动态环境下,如何实现多种不同放置策略的平衡,实现lT资源的集约共享,降低能源消耗,同时探索低复杂度、高效率、近似优化的虚拟机放置算法,是一个亟待解决的问题。在未来,期望探索出一种多目标优化的、自适应的虚拟机放置模型,综合考虑并权衡取舍资源利用率、能耗、sLA、网络流量、虚拟机迁移代价、用户自定义策略等多方面情况,根据虚拟机的动态变化情况自适应的调整放置方案;并且,需要提出一种快速、简便的放置算法,在尽可能短的时间内获得一个尽量优的解决方案。
2 虚拟资源动态伸缩模型
在虚拟机被创建前,使用者需要首先向云资源提供商申请其所需的资源情况,如CPU个数、内存大小等。早期的资源分配方式通常是固定预分配,即完全按照使用者的请求情况分配给虚拟机相应资源,运行后,不沦其真实使用情况如何,都不做任何调整。这样的做法固然简单。但是,往往不能很好的适应应用的动态工作负载的变化。如果资源请求者按照应用的峰值负载申请资源,则将在绝大多数负载偏低的时刻造成资源的大量浪费;反之,若按照平均负载申请,则会发生负载超越资源承载能力的情况,造成请求延时。
随着技术的发展。以亚马逊EC2为代表的弹性云服务采用了以虚拟机为单位的粗粒度的方法。按需增减开启运行的虚拟机数量。从而面达到及时响应应用负载变化的目的。也就是说,当应用负载增加至即将超越资源承受能力时。EC2会再为云服务使用者开启一台同样配置的虚拟机以缓解负载压力,做到负载均衡;而当应用负载降低时,则可以关闭不必要的虚拟机以节省资源。亚马逊EC2的做法虽然具备负载自适应的虚拟资源伸缩能力,但是,以虚拟机为最小伸缩单位的变化方式。仍在一定程度上造成了资源的浪费。
目前,虚拟资源动态伸缩模型的研究重点在于更加细粒度的资源调整方式,以及时、快速的响应应用负载的变化情况。另外,其负载自适应能力不仅需要依靠当前的负载情况,还希望能够预测出未来一段时间的工作负载变化,以更准确的、有前瞻性的调整虚拟资源大小。
近期,一些关注于更精细的动态虚拟资源伸缩模式的学术研究开始涌现,但是,其出发点及所用方法大多仍相对简单、处于研究初期。文献[19-20]仅考虑了单一资源的分配方式。其中,前者关注于计算资源的分配,它提出了一种随虚拟机工作负载变化而根据CPU优先级或CPU份额
动态调整计算资源分配的方法;后者则通过预估每台虚拟机的内存使用量、并据此自动的调整内存分配大小,来提高内存资源的使用率。文献[21-22]实现了一个多层次的、应用相关的资源调度机制,能够优化单一物理机内部及全局的CPU和内存资源流动。文献[Z3一Z4]都多方面考虑了CPU、内存和网络带宽3种资源的综合优化分配方式。其中,前者提出了一种应用无关的负载均衡机制,通过实时监控物理机及虚拟机的各项资源使用情况,及时调整资源分配;后者则提出了一个自治系统。利用自动资源监测及热点检测,确定物理资源到虚拟资源的重新分配。
所有上述研究工作都是针对云环境中当前负载的状况做出的响应情况。除此之外,一些研究还将虚拟机资源的伸缩问题归结于控制论文献[25-26]问题,通过对未来工作负载进行预测来更好、更准确的优化资源分配。文献[27]提出了一个由基于控制论的在线模型预估器和多输多输出(MIM0)资源控制器构成的资源控制系统,它能够自动的适应应用负载动态变化。通过捕捉应用程序性能和资源分配值之间的复杂关系,按需调整分配资源量,从而满足云计算应用提供者的SLA。文献[283研究了预测技术对于虚拟机动态资源分配的影响,它通过实验比较了基于控制论的预测控制器与自适应反馈控制器的有效性,其中前者使用了3种分别基于AR,ANOVA-AR和MP模型预测算法。
当前,IDC管理者正面临着多方面的挑战,包括满足复杂的云计算应用提供者的SLA、及时响应随时间变化的资源需求以及解决资源的相互依赖性等。上述众多研究工作有许多可借鉴之处,但仍不够完善,存在进一步优化的可能性。本领域的研究难点将集中在如何更准确、可靠的预测未来一段时间内的工作负载变化情况。以及如何精确、定量的根据预测负载及当前现状调整各项虚拟机资源的分配问题等。因此,更加有效的、细粒度的虚拟资源自适应动态伸缩模型与算法将是未来的发展方向。
3 多IDC间的全局云计算资源调度
随着云计算应用的快速发展,地域分布的多IDC逐渐成为一种趋势。目前,学术界与工业界对多刀DC间的全局云计算资源调度的研究尚处于早期阶段,并且存在多个不同的考虑角度。前期的相关研究主要集中在混合云之间的资源调度以及某个具体应用在多个IDC的云环境内的全局调度这两个方面。
针对混合云的情况,多IDC间的全局云计算资源调度主要关注于使用者的众多应用在企业私有云和商业共有云之间的分布方案的决策,其通常综合考虑了租用成本、性能、安全性等多个目标。文献[29]研究了借用外部云计算资源来扩充企业IDC自身计算能力的方法:通过一个全局的资源分配系统向云计算提供商借用资源以扩充IDC自身的容量;提供了多种调度机制衡量把哪些应用迁移到借用的资源上以达到费用最少同时利用率最高;提出了衡量这些机制的方法,从响应时间、最后期限违反率、租用贤源费用等多个性能指标来衡量一个调度策略。文献[30]也提出了把企业IDC的一部分应用迁移到云中可能得到的好处,提供了一个衡量迁移策略的方法,同时提出了迁移可能遇到的一些安全和策略上的问题。
针对多个IDC的云环境内的调度,一些文献针对某些具体的应用在云环境中如何做全局调度做了研究。相比以上考虑混合云的情况而言,本类研究具有更广泛的应用范围及更大的实用价值。云环境下,地域分布的多IDC能同时为不同地域的终端用户提供服务。根据终端用户对云上应用的请求情况,将资源合理调度到合适的IDC。既能提升终端用户的体验,又能提高整体云环境的资源利用率,降低运营成本。文献[31]在多个IDC之上添加了一个分布式的调度机制,调度计算型的应用,但是,尽管其考虑到了多IDC环境下的虚拟机优化分布.却忽略了IDC之间的交互成本,在需要多个虚拟机协同服务时性能会受到较大限制,并且其只注重于计算型应用,适用情况单一。文献[32]针对如何降低数据访问的时延,提出了名为Volley的解决方案。Volley的主要思想是将数据副本放置在访问用户或者对其有依赖的数据附近.以减少用户访问时延;但是,其没有综合考虑各IDC的资源成本的差异,而仅将研究重点放在数据上。文献[33]基于典型的分布式企业应用SAP商业软件,将用户托管服务划分为不同的类型。根据不同的放置策略和安全设置,将服务放置在不同的云环境(IDC)中。其基本思想是根据用户需求将相关组件放置在对该组件有较大需求的云环境中。
由于应用规模的限制以及牵扯的细节较多(如互操作性、网络传输成本、资源成本差异等),当前针对跨IDC的云计算资源调度的研究仍相对较少。但是,随着云计算技术的进一步发展以及IDC规模的扩增,基于地域分布的IDC之间的交互与协作将成为一个必然的趋势。现有的多IDC间的全局云计算资源调度研究往往只考虑了少数IDC问、特定应用、单一调度目标的较单纯情况。未来,对于混合云之间的调度,将会依赖于不同云平台之间互操作性的进一步发展;而对于多IDC的云环境,该领域需要建立一个全局的云计算资源调度模型,综合考虑地域分布的虚拟资源与终端用户应用模式的适配,以达到保证云计算应用提供者的SLA、降低云计算资源提供商的成本以及提高终端用户QoS的目的。
4 全局资源配置与能力规划模型
云环境下,云计算资源提供商、云计算应用提供商和应用终端用户是云计算的参与主体,同时也是云计算产业链和价值链的主体文献[34],其中云计算资源提供商需要面对动态变化、地域分布的应用终端用户的访问模式。
全局优化的资源配置与能力规划研究为资源提供商的关键商业决策提供支持。一方面,云计算资源提供商的投资成本主要包括硬件设备成本等资源成本,以及场地费用、维护费用、能耗成本等运营成本;云计算应用提供商(云资源使用者)需要对其使用的资源付费,同时得到根SLA规定的服务。另一方面,数据中心的投资建设和云计算应用终端用户的访问都具有多地域分布的属性。因此。不同的数据中心资源配置与能力规划方案将具有不同的经济效益,其旨在协助资源提供商决定在各地域分布IDC置备多少资源,以达到高性价比、有效保证服务质量的目的。
现有的资源配置与能力规划模型的研究,大多集中在配置和规划云计算应用提供商所需资源方面文献[35-37],而不是考虑如何配置和规划资源提供商拥有的IDC资源。文献[38]根据云计算应用提供商所提供应用服务的不同类型,采用不同的资源配置和能力规划策略。向云计算资源提供商租用资源,从而有效配置和规划从云计算资源提供商那里所获得的资源,最终使得应用提供商的收益最大。
另外,目前学术界和工业界对资源提供商的资源配置和能力规划研究,也主要集中于单个IDC的能力规划。文献[39]研究基于效用计算的资源投资优化模型,优先考虑资源的经济利用,根据资源过低利用和过高利用出现的情况,结合经济模型,确定资源容量的大小,最终为资源提供商提供容量投资决策,以期达到最大化利润。
目前,对地域分布的IDC的资源配置与能力规划的研究还很少,并且缺乏综合考虑云计算终端用户的访问模式、访问质量、IDC资源成本等因素的研究模型。本领域期望通过对云上各类应用及它们的访问特征、资源需求特征进行分析,在此基础上研究终端用户访问质量与数据中心的单位建设运营成本以及资源供给能力之间的关系模型,并对不同数据中心建立投入产出效用模型,最终得到全局优化的资源配置与能力规划方案。
5 结束语
由于云计算技术的发展时间尚短,学术界针对大规模云计算资源调度、管理和优化的有关理论与技术的研究仍处于初期阶段;工业界以亚马逊EC2为代表的传统弹性云服务虽然已经实现了商业应用,并取得了一定程度上的成功。但是。在复杂云计算环境下的资源调度和管理的优化问题远未得到解决。
本文从虚拟机放置优化算法,虚拟资源动态伸缩模型、多IDC问的全局云计算资源调度、全局资源配置及能力规划模型等4个方面对国内外当前云计算环境下的自适应资源管理技术研究现状进行了阐述及分析。总体而言,这4个领域的研究都已经取得了或多或少的进展,但是,仍旧存在一些关键问题有待进一步深入研究与改进。值得注意的是,这4个方面并不是完全独立的4个领域,相反,它们是相互影响、相互依存的。因此,在未来的研究中,即要针对各个领域的现存问题提出更有效的解决方案,也应关注它们之间的结合与协作方式。