云计算资源分配策略研究

2013-04-12 10:50方晓平陈年生
关键词:计算资源资源分配调度

方晓平,陈年生,郭 宇,李 琦,周 丽

(湖北师范学院 计算机科学与技术学院, 湖北 黄石 435002)

0 引言

自从2007年IBM公司宣布云计算计划以后[1],云计算已成为近几年研究的热点,目前已有多家企业涉足云计算领域。其中,工业界具有代表性的企业有IBM、Google、Amazon,典型的云计算实例有Google公司的云计算平台、IBM公司的“蓝云”平台以及Amazon公司的弹性计算云[1]。云计算是一种新兴的并行计算技术,它综合了分布式处理、并行处理和网格计算等多种技术,是这些计算机技术概念的商业实现,适合当今巨型的信息化处理需求。它租用分布在网络中的各个主机,以收费的形式向用户提供主机、存储器、带宽等网络中的资源,并由数据中心将数据整合,提供用户对主机、存储器、带宽等资源占有的解决方案。

云计算最基本的思想是通过网络将庞大的计算处理程序自动分拆成无数个较小的子程序,再由分散在世界各地的服务器经搜寻、计算分析之后将处理结果回传给用户。云计算通过虚拟化技术,整合使用大量的虚拟化资源,为用户提供平台即服务(Platform As A Service,PaaS),软件即服务(Software as a Service,SaaS)和基础设施即服务(Infrastructure As A Service,IaaS)三大服务。云计算的对象是超大规模的,资源与用户需求各异且数量巨大, “云”中任务数量是巨大的,所以系统每时每刻都要处理海量数据,任务调度和资源分配是云计算中的重点和难点。云计算中的资源分配和调度是云计算研究中的关键问题之一。

本文在介绍云计算相关概念的基础上,描述了目前国内外关于云计算资源分配的研究现状,分析了需要解决的关键问题,并指出了今后的发展方向。

1 云计算的基本概念

1.1 云计算的定义

云计算是一种新型的计算技术,目前还没有统一的定义。

维基百科定义[2]:云计算是一种基于互联网的计算方式,通过这种方式,共享的软硬件资源和信息可以按需求提供给计算机和其他设备。

美国国家标准与技术研究院(NIST)定义[3]:云计算是一种按使用量付费的模式,这种模式提供可用的、便捷的、按需的网络访问, 进入可配置的计算资源共享池(资源包括网络,服务器,存储,应用软件,服务),这些资源能够被快速提供,只需投入很少的管理工作,或与服务供应商进行很少的交互。

IBM的云计算定义[4]:云计算一词用来同时描述一个系统平台或者一种类型的应用程序.一个云计算的平台按需进行动态地部署(provision)、配置(configuration)、重新配置(reconfigure)以及取消服务(deprovision)等。在云计算平台中的服务器可以是物理的服务器或者虚拟的服务器.高级的计算云通常包含一些其他的计算资源,例如存储区域网络(SANs),网络设备,防火墙以及其他安全设备等.云计算在描述应用方面,它描述了一种可以通过互联网Internet进行访问的可扩展的应用程序.“云应用”使用大规模的数据中心以及功能强劲的服务器来运行网络应用程序与网络服务.任何一个用户可以通过合适的互联网接入设备以及一个标准的浏览器就能够访问一个云计算应用程序。

尽管目前云计算定义还没统一,但是从中都能反映出云计算共同的含义:

1) 建立在网络之上。云计算是以现有网络为基础,集中了分布式计算、并行计算和网格计算,为网络中的用户提供服务。

2) 付费使用。云计算是一种商业计算模式。它将计算任务分布在大量计算机构成的资源池(就像网络一样)上,使用户能够按需获取计算力、存储空间和信息服务等网络中的资源。

3) 虚拟化。云计算的核心是资源池。通过虚拟化技术,可以将分散在网络中的各种底层资源按照类型整合,构成一个巨大的资源池,实现资源的共建共享。网络中的各种任务将会从资源池中按照某种方式获取自己所需的资源。

4) 动态可伸缩性。云是一种商业计算模型,面向的应用和用户每时每刻都在变化,它的规模可以动态伸缩,满足应用和用户规模增长的需要。

总之, “云”是一些可以自我维护和管理的虚拟计算资源地,通常是一些大型的服务器集群,包括计算服务器、存储服务器和宽带资源等。云计算将计算资源集中起来,并通过专门软件实现自动管理,无需人为参与。用户可以动态申请部分资源,支持各种应用程序的运转,无需为繁琐的细节而烦恼,能够更加专注于自己的业务,有利于提高效率、降低成本和技术创新。

1.2 云计算的特点

云计算是一种新型的计算模式,它从根本上改变了传统的计算机服务的观点,将在教育、交通、商业等领域广泛应用,它具有以下特点:

1)规模大。云将分散在Internet上的云端连接起来,云端的服务器众多,向云端发出请求的用户数目也巨大,而向服务器发出的请求更是种类繁多、数目惊人。

2)虚拟化。云计算通过虚拟化技术将云端的资源整合,实现互联网上资源的共建共享。云计算支持用户在任意位置、使用各种终端获取服务。应用在“云”中某处运行,但实际上用户无需了解应用运行的具体位置,只需要一台笔记本或PDA,就可以通过网络来获取各种服务。

3)高可靠性。“云”使用了数据多副本容错、计算节点同构可互换等措施来保障服务的高可靠性。

4)高可伸缩性。云是一种商业计算模型,面向各种应用和用户,它的规模可以动态伸缩,满足应用和用户规模增长的需要。

5)按需服务,计费使用。云计算使用虚拟化技术将计算资源、存储资源和网络资源等各种资源整合,形成一个巨大的资源池。用户按照自己的需求从资源池中获取自己想要的资源,并以计费的形式向云中的资源提供商索取服务。

1.3 云计算分类

云服务提供商利用云计算强大的联网能力和安全的存储能力,向用户提供不同的服务。根据云计算平台提供服务的类型,可以将云计算任务分为三类:

1) 将基础设施作为服务IaaS(Infrastructure as a Service)

IaaS将硬件设备、处理能力、存储空间、网络组件等基础资源封装成服务供用户使用。用户可以掌控这些基础资源,但是不能掌控云基础架构。提供给消费者的服务是对所有设施的利用,包括处理、存储、网络和其它基本的计算资源,用户能够部署和运行任意软件,包括操作系统和应用程序。消费者不管理或控制任何云计算基础设施,但能控制操作系统的选择、储存空间、部署的应用,也有可能获得有限制的网络组件(例如,防火墙、负载均衡器等)的控制。

2) 将平台作为服务PaaS(Platform as a Service)

提供用户应用程序的运行环境,必须使用特定的编程环境并遵照特定的编程模型。提供给消费者的服务是把客户采用的开发语言和工具(例如Java,python, .Net等)所开发的或收购的应用程序部署到供应商的云计算基础设施上去。客户不需要管理或控制底层的云基础设施,包括网络、服务器、操作系统、存储等,但客户能控制部署的应用程序,也可能控制运行应用程序的托管环境配置。

3) 将软件作为服务SaaS(Software as a Service)

针对性更强,将某些特定应用软件功能封装成服务,提供专门用途的服务,以租赁的形式供应用调用。提供给客户的服务是运营商运行在云计算基础设施上的应用程序,用户可以在各种设备上通过客户端界面访问,如浏览器。消费者不需要管理或控制任何云计算基础设施,包括网络、服务器、操作系统、存储等等。

2 云计算资源分配的研究现状

云环境中采用虚拟化技术,将服务器整体虚拟化为一个资源池,由于资源的种类多、规模大,云计算资源调度成为云计算研究的热点之一。

云计算通过虚拟机的方式进行云计算资源管理,虚拟机是一类特殊的软件,能够完全模拟硬件的执行,因此能够在上面运行操作系统,进而保留一整套运行环境语义。这样,可以将整个执行环境通过打包的方式传输到其他物理节点上,使得执行环境与物理环境隔离,方便整个应用程序的部署。

云计算资源调度指的是在一个特定的云环境下,根据一定的资源使用规则,在不同的资源使用者之间进行资源调度过程。目前的资源调度策略大多数是通过虚拟机级别上的调度技术结合一定的调度策略来为虚拟机内部应用做资源调度,并且调度算法过于简单,降低了整个算法的性能,所以在虚拟机级别上采用什么算法实现资源调度是目前待解决的一个难题。以往的资源分配方法大都采用了预分配的静态资源调度算法,这种算法容易造成资源的浪费;而传统的优化算法又面临着复杂度增大的困难。因而目前云计算资源分配调度策略研究工作主要集中在人工智能算法、负载均衡和能耗管理等三个方面进行。

2.1 人工智能算法

云资源分配问题是一类NP问题[5~6],传统的优化算法将面临复杂度增大、计算时间增长等问题,而人工智能算法具有启发性,能够以学习的方式对解空间进行人工搜索,用人工智能算法可以解决此类NP问题。文献[7~12]用遗传算法给出了云资源的分配方案,文献[13~14]在解决云资源分配时使用粒子群优化算法找到了合理的解决方案,文献[15~18]用蚁群算法成功地解决了云资源分配问题。文献[7]将Min-Min算法与Max-Min算法融入到标准遗传算法中,通过这个改进的遗传的有效地解决了云计算环境中的任务调度和资源分配问题,文献[13]利用模拟退火算法收敛速度快和可以跳出局部最优的特性,将模拟退火的思想融入到粒子群优化算法之中,解决了云计算资源分配问题,并使得任务的平均运行时间减少,提高了资源的使用效率,文献[15]在云计算资源分配中采用蚁群优化算法,表明它与传统的算法相比具有更好的性能和更优的负载均衡。

2.2 负载均衡

用户对云环境下的计算资源、存储资源和网络资源有服务质量的要求,同时又要满足服务器对网络带宽、网络吞吐量、延迟和抖动等的负载要求,因此,在云计算中要考虑负载均衡问题是满足用户需求的必然[16~17,19~20]。文献[16]使用负载自适应改变的蚁群优化算法解决了云计算中资源动态分配的问题,提高了云计算按需服务能力;文献[17]提出了基于负载均衡的蚁群优化算法解决了资源分配问题,使得整个系统的负载都得到了均衡;文献[19]在云计算中加入了动态的负载均衡机制,解决了异构云条件下的负载均衡问题;文献[20]提出了基于横向负载均衡的云计算动态任务调度算法。

2.3 能耗管理

云计算以数据中心为中枢,数据中心的高能耗逐渐成为一个突出的问题,尤其是随着云计算时代的到来,更多的计算资源和存储资源集中在云端,给能耗的高效管理带来了更大的挑战。数据中心的高能耗问题不仅造成电能的浪费、系统运行的不稳定,同时也对环境造成不良影响[21]。因此对在云资源进行分配时考虑能耗优化问题也是研究重点[22~24]。文献[22]提出一种高效的虚拟资源分配策略,将资源分配问题建模为多目标优化问题,通过对多目标优化问题求解,成功地给出了资源分配方案,并有效地减少了数据中心所消耗的能量;文献[23]定义了高效云计算的框架,提出了能量感知的资源供应和分配算法,提高了资源的利用率,降低了能量的消耗,有效地满足了服务质量要求;文献[24]提出了考虑不同数据中心之间相互协同的云计算资源分配算法,提高了资源的使用效率,降低了能量的整体消耗。

3 云计算资源分配需解决的关键问题

尽管目前已经有很多学者给出了云计算资源分配和调度问题的解决方案,但还是存在一些关键的问题需要解决。

3.1 多目标优化问题

云资源提供者向消费者提供服务时,在既要使资源利用率最大化的同时,又要满足用户的各项需求,还要兼顾负载、能耗和任务的各项特点,因而云计算资源分配和调度问题是多目标优化问题。而目前的研究表明,很多学者往往只考虑了问题的一方面,要么站在消费者的角度使充分满足服务质量和用户需求,要么是站在资源提供者的角度,只考虑资源的利用率。同时消费者所要求的服务类型也是千差万别的,云资源提供商所提供的资源也是受各种实际情况约束的。还有就是不但要使云资源提供商所提供的资源利用率最大化,同时更要使资源的消费者所花的费用也是最小的。这些都是现在解决云计算资源分配问题时需要解决的问题。

3.2 虚拟机的互操作

云计算在异构的网络环境下,将分布在不同结构的网络中的数据资源分配给来自不同网络中的任务,需要克服在不同的网络中数据传输和数据协议中的不协同问题。在不同网络环境下的虚拟机互操作问题也将是云计算中需要克服的技术难点。还有在跨数据中心进行交互时产生的巨大消耗也是在不同的平台下进行云计算资源调度问题所要面对和解决的问题。

3.3 云计算资源调度安全问题

目前的云计算都为私有云,云计算正向公共计算网发展。而在公共计算网中进行数据传输和资源分配,如何保证在公共计算网中传输的数据安全,如何让资源调度在一个安全的环境下进行,私有云中的数据传输和调度算法在公有云中是否安全等云计算资源调度中的安全问题也是云计算资源调度中需要关注的重点。

3.4 更加开放的标准

对云计算的接口标准化并指定相关的交互协议,可以支持不同的云服务提供商之间进行交互,相互合作提供更强大和更优质的服务。

3.5 动态负载均衡

动态负载均衡对分配任务工作量、提高系统吞吐量、加强网络处理能力以及缩短任务处理时间起到了很重要的作用,然而由于工作节点资源运行信息的不断变化,现有的动态负载均衡策略难以很好地获得节点信息。目前云端用户是变址的,用户的需求也是在动态改变的,同时云资源提供商所能提供的资源同样是动态的。

3.6 降低能耗的云计算资源调度问题

云计算中数据中心的能量消耗是非常巨大的,这些能量消耗问题不但会影响云计算中的成本,还会降低系统的稳定性,而且在数据中心运行的过程中产生的高能耗将对空气质量、气候变化和电网的可靠性等问题造成严重的影响。所以,如何降低云计算中的能耗既是云计算技术发展的过程中必须面对和解决的问题,也是云计算资源分配时必须考虑的问题。

4 云计算资源分配算法的研究趋势

针对目前在解决云计算资源分配和调度中的遇到的问题,指明云计算资源分配算法下一步的研究趋势。

4.1 多目标优化的云资源调度

在云资源提供者向消费者提供服务时,提供者希望提高自己资源的利用率,而消费者则关心资源的性价比。云资源分配问题实际上是资源提供者和消费者都站在自己的角度使自己利益最大化的问题,中间有很多矛盾,是个多目标优化问题。现在很多的工作主要集中在考虑能量消耗来解决云资源分配时的多目标优化问题。

4.2 面向负载类型不同的云资源调度算法

现在很多云资源分配算法没有考虑异构的负载对资源的需求各异,因此要建立一个面向不同负载类型的云资源调度模型很有必要,网络资源分配的调度算法也是如此。当前,很多云计算资源分配算法只考虑了对计算机计算资源和存储资源的使用,而没有考虑网络资源的分配。而网络资源的分配不但会影响云服务质量问题,也会影响到不同服务的需求问题,如实时性、吞吐量和系统利用率问题。因此,在对云资源进行分配时,网络资源分配对服务质量和任务实时性要求的影响,也是解决云计算资源分配必须考虑的问题。尤其在云服务传递网络中,网络带宽是影响云服务传递质量的瓶颈,直接影响着云服务传输的性能好坏。

4.3 动态云资源优化

随着移动云计算方式正在逐步替代传统的Client-Server 方式,在移动云计算网络中,如何有效地分配云计算资源来尽量满足移动终端对云计算服务的需求,同时使得移动云计算网络的云计算资源利用率和系统收益最大,就成为当前云计算领域中一个重要的研究课题。还有一些是针对实时任务的云资源调度。在如今的网络环境中,需要处理很多实时性的任务,需要给很多有实时性要求的用户提供服务。

4.4 基于市场机制的调度算法

由于在云计算资源分配的过程中不但需要站在云资源提供商的角度使资源的利用率最大化,降低能耗,更要站在消费者的角度,使消费者支付最少的费用即可满足各种服务质量的要求。而目前在处理这类问题时已经有部分学者从市场经济中的原理出发来解决此类问题。由于经济学中的拍卖机制对全局信息的要求较少,而且具有分布式的结构并易于实现,基于拍卖的资源分配近几年引起大家的关注。在面向大众用户的网络环境中,研究基于信任关系的主观信任评价方法以保证分布式环境下的用户交易满意度已成为一个基础性的课题[25]。在云计算中将信任机制结合起来也将是必然。由于消费者和云计算的服务提供商在地理上处于不同的位置,所以,提供商需要将每个消费者的需求分配给网络上分散的合适的数据中心,以满足消费者快速的分配时间、执行时间和回复时间。

4.5 基于失效规律的云资源调度

以往的云资源分配算法很少关注资源的可靠性问题。动态提供的资源的可靠性无论对云计算基础运营商,还是对服务运营商都是很关键的。

5 结语

在了解云计算定义、特点和分类基础上,本文介绍了当前云计算资源分配策略研究现状,分析了云计算资源分配的研究趋势,为进一步研究指明方向。随着对云计算资源分配算法研究的展开,云计算技术未来将会在教育、商业、交通等更多的应用领域中发挥巨大的作用。

参考文献:

[1]陈 康, 郑纬民.云计算:系统实例与研究现状[J].软件学报,2009,20(5):1337~1348.

[2]Danielson,Krissi.Distinguishing Cloudy Computing from Utility Computing[EB/OL].http://zh.wikipedia.org/wiki/%E4%BA%91%E8%AE%A1%E7%AE%97.(2008-03-26),[2010-08-22].

[3]Peter Mell,Timothy Grance.The NIST Definition of Cloud Computing (Draft)[S].National Institute of Standards and Technology Special Publication,2011.

[4]Boss G, Malladi P, Quan D, et al.Cloud computing(IBM 2007 White Paper)[EB/OL]. http://download.boulder.ibm.com/ibmdl/pub/software/dw/wes/hipods/Cloud_computing_wp_final_8Oct.pdf.

[5]Wei G, Vasilakos AV, Zheng Y,et al.A gametheoretic method of fair resource allocation for cloud computing services[J]. The Journal of Supercomputing, 2010,54: 252~269.

[6]Hochba D S.Approximation Algorithms for NP-Hard Problems[J].ACM SIGACT News, 1997,28:40~52.

[7]Pardeep Kumar, Amandeep Verma.Independent Task Scheduling in Cloud Computing by Improved Genetic Algorithm[J]. International Journal of Advanced Research in Computer Science and Software Engineering 2012,2(5):111~114.

[8]Zhu Kai, Song Huaguang, Liu Lijing, et al. Hybrid Genetic Algorithm for Cloud Computing Applications[C].Services Computing Conference(APSCC) 2012 IEEE Asia-Pacific. Korea IEEE,2011:182~187.

[9]Zhao Chenhong, Zhang Shanshan, Liu Qingfeng,et al. Independent Tasks Scheduling Based on Genetic Algorithm in Cloud Computing[C].Wireless Communications, Networking and Mobile Computing 2009 wicom'09 5th International Conference on Beijing:IEEE,2009:1~4.

[10]Kessaci Y, Melab N, Talbi E G.A pareto-based GA for scheduling HPC applications on distributed cloud infrastructures[C].High performance computing and simulation(HPCS),2011 International conference on Istanbu:IEEE,2011:456~462.

[11]Zheng Zhongni,Wang Rui,Zhong Hai.An approach for cloud resource scheduling based on Parallel Genetic Algorithm[C].Computer research and development(ICCRD),2011 3rd international conference on Shanghai:IEEE,2011:444~447.

[12]Ge Yujia,Wei Guiyi.GA-Based Task Scheduler for the Cloud Computing Systems[C].Web Information Systems and Mining (WISM),2010 International Conference on Sanya:IEEE,2010:181~186.

[13]Zhan Shaobin, Huo Hongying.Improved PSO-based Task Scheduling Algorithm in Cloud Computing [J].Journal of Information & Computational Science , 2012,9(13): 3821~3829.

[14]Pandey S, Wu L, Guru SM, et al.A Particle Swarm Optimization-Based Heuristic for Scheduling Workflow Applications in Cloud Computing Environments[C]. 24th IEEE International Conference on Advanced Information Networking and Applications, Derth WA:IEEE,2010: 400~407.

[15]Zhu Linan, Li Qingshui,He Lingna.Study on Cloud Computing Resource Scheduling Strategy Based on the Ant Colony Optimization Algorithm[J].IJCSI International Journal of Computer Science Issues, 2012,9(5) :54~58.

[16]Lu Xin,Gu Zilong.A load-adapative cloud resource scheduling model based on ant colony algorithm[C].Cloud Computing and Intelligence Systems(CCIS),Beijing,IEEE,2011:296~300.

[17]Li Kun,Xu Gaochao,Zhao Guangyu,et al.Cloud Task Scheduling Based on Load Balancing Ant Colony Optimization[C].ChinaGrid Conference(ChinaGrid),2011 Sixth Annual,Liaoning:IEEE,2011:3~9.

[18]Song Xiangqian,Gao Lin, Wang Jieping.Job scheduling based on ant colony optimization in cloud computing[C].Computer Science and Service System(CSSS),2011 International Conference on Nanjing:IEEE,2011:3309~3312.

[19]Zhang Bo, Gao Ji, Ai Jieqing.Cloud Loading Balance algorithm[C].Information Science and Engineering(ICISE),2010 2nd International Conference on Hangzhou:IEEE,2011:5001-5004.

[20]Mousumi Paul, Debabrata Samanta, Goutam Sanyal.Dynamic job Scheduling in Cloud Computing based on horizontal load balancing[J].J Comp Tech Appl, 2 (5):1552~1556.

[21]叶可江,吴朝晖,姜晓红,等.虚拟化云计算平台的能耗管理[J].计算机学报.2012,35(6):1262~1285.

[22]许 力,曾智斌,姚 川.云计算环境下虚拟资源分配优化策略研究[J].通信学报.2012,3(z1):9~16.

[23]Anton Beloglazov , Jemal Abawajy, Rajkumar Buyya.Energy-aware resource allocation heuristics for efficient management of data centers for Cloud computing[J].Future Generation Computer Systems,2012,28,755~768.

[24]Buyya R, Beloglazov A, Abawajy J.Energy-efficient management of data center resources for cloud computing: a vision, architectural elements, and open challenges[C].Proceedings of the 2010 International Conference on Parallel and Distributed Processing Techniques and Applications, PDPTA 2010,Las Vegas, ACM,2010:1~12.

[25]王守信,张 莉,李鹤松.一种基于云模型的主观信任评价方法[J].软件学报,2010,21(6):1341~1352.

猜你喜欢
计算资源资源分配调度
基于模糊规划理论的云计算资源调度研究
新研究揭示新冠疫情对资源分配的影响 精读
《调度集中系统(CTC)/列车调度指挥系统(TDCS)维护手册》正式出版
改进快速稀疏算法的云计算资源负载均衡
一种基于负载均衡的Kubernetes调度改进算法
虚拟机实时迁移调度算法
一种基于价格竞争的D2D通信资源分配算法
基于动态规划理论的特种设备检验资源分配研究
基于动态规划理论的特种设备检验资源分配研究
基于Wi-Fi与Web的云计算资源调度算法研究