摘 要: 基于因特网平台研究云计算受到地理位置、网络环境等因素的诸多限制,因此采用云计算模拟器研究云计算具有重要意义。主要介绍了3种现有的云计算数据中心资源调度模拟器CloudSim、CloudAnalyst和CloudSched以及基于这3种模拟器的资源调度算法,最后介绍了云计算模拟器的研究热点。
关键词: 云计算;云计算模拟器;资源调度
随着云计算的飞速发展,云数据中心的规模和密度日益增大,这给云数据中心的管理带来了诸多值得研究的问题,例如如何集中管理和动态使用数据中心里的虚拟机,以提高云计算的弹性和灵活性,从而降低运营成本,改善服务质量并降低管理风险;如何帮助用户构建动态、灵活、高效、适应业务增长的云计算基础架构,使企业在不增加运营成本的同时,保障业务的可持续发展。如果在真实的因特网平台上对这些问题展开研究会极其困难,也不现实,因为它需要考虑应用程序的开发者无法控制和处理的网络基础设施和环境。由于开发者无法对网络条件进行准确地预测或控制,这将最终影响策略的评价质量。
基于上述原因,如果想要对云数据中心资源调度等问题进行研究,可以通过建立模拟器的方式来解决。现有的云计算模拟器主要有CloudSim、CloudAnalyst和CloudSched 3种。通过这3种模拟器,可以进行一些资源调度算法的研究,从而可以找到降低云数据中心的运营成本的有效解决方案。
1 云计算模拟器介绍
1.1 CloudSim模拟器
1.1.1 CloudSim简介
CloudSim是Buyya云计算研究小组研制的云计算仿真软件,由澳大利亚墨尔本大学的网格实验室和Gridbus项目在2009年正式宣布推出。它是通用的和可扩展的云计算模拟框架,支持模拟云计算基础设施和管理服务。CloudSim具有以下功能[1]。
(1)支持大规模云计算环境的建模和仿真,包括在单一物理计算节点上的数据中心。
(2)独立的云模拟平台,可以对数据中心、服务代理、部署和分配策略进行建模。
(3)支持多个模拟系统之间的网络连接的仿真。
(4)可用的虚拟引擎,有助于在一个数据中心节点上创建和管理多个、独立和协同的虚拟服务。
(5)可以在时间共享和空间共享的处理虚拟服务的CPU核心之间灵活的切换。
1.1.2 CloudSim体系结构
CloudSim体系结构如图1所示。共分为4层,从下到上分别是SimJava层、GridSim层、CloudSim层和UserCode层。
SimJava是离散事件仿真引擎[2],通过更高级的仿真框架才能实现其功能。GridSim工具包支持高层次软件组件用于多重网格基础设施和网格的资源、数据集、工作量跟踪及信息服务等组件的建模。CloudSim通过扩展GridSim来支持以虚拟云为基础的数据中心环境。云供应商想要研究其主机分配不同策略的效果,就需要在该层通过编程扩展核心虚拟机的配置功能实现分配策略。UserCode层提供了关于主机、虚拟机、应用、用户及应用类型和代理调度策略的配置相关功能的代码。云程序开发人员可以在该层开发用户需求分布、应用的配置和云可用性场景,并执行CloudSim支持的以定义云配置的Robust测试。
CloudSim有Cloudlet、DataCenter、DataCenterBroker、Host、VM和VMScheduler等几个重要的类[3],了解各个类的参数和作用,对研究云计算调度算法具有重要意义。例如,DataCenterBroker实现了用户任务到虚拟机的映射;VMScheduler类实现虚拟机的调度策略,主机是采用时间共享策略还是空间共享策略把CPU分配给虚拟机。用户也可以使用自己的策略来覆写该类,从而完成主机对虚拟机的CPU分配。
1.2 CloudAnalyst模拟器
1.2.1 CloudAnalyst简介
CloudAnalyst[4]是基于CloudSim开发的可视化模拟器。同样是由Buyya云计算研究小组开发的云计算仿真软件。开发CloudAnalyst的主要目的是在当前配置下,实现各个用户群和数据中心之间的最优调度。CloudAnalyst具有如下特性。
(1)简单易用的用户接口。
(2)仿真中使用到的属性的高可配置性和高可扩展性。
(3)实验可重复测试。
(4)实验结果的可图形化输出。
CloudAnalyst用户界面如图2所示。
1.2.2 CloudAnalyst主要模型及组件
(1)Region。该组件将全球划分为6个区域,分别代表世界的各大洲。Data Centers和User Base等模型都位于这6个区域中。
(2)Internet。CloudAnalyst中的网络属性模拟了真实世界的网络属性,包括了网络数据传输时延和带宽等重要属性。
(3)Cloud Application Service Broker。该组件主要实现把用户的请求分配到某个具体的数据中心,具体分配算法有最小时延算法、最佳性能算法和动态路由算法3种。
(4)User Base。该组件是单个用户的集合,用来一起提交用户任务,从而提高系统性能。
(5)InternetCloudlet。用户任务组:一组用户任务的集合。
(6)Data Center Controller。该组件主要管理数据中心,例如虚拟机的创建和撤销等。
(7)VmLoadBalancer。虚拟机负载均衡器决定了采用何种调度算法将虚拟机分配给用户任务。主要有轮转算法、动态监控算法和节流分配算法。
(8)GUI。该组件主要是实现模拟器的图形界面。采用CloudAnalyst模拟器可以模拟云计算的复杂环境,例如用户群的分布、用户群的动态属性以及各个区域的网络设施状况。使用CloudAnalyst可以方便地研究云计算模拟实验并节约成本。
1.3 CloudSched模拟器
1.3.1 CloudSched简介
CloudSched是由电子科技大学的田文洪云计算研究小组基于CloudSim开发的轻量型云计算模拟器[5]。该模拟器支持可视化建模和模拟在云基础设施上配置的大规模应用程序。使用该模拟器可以生成用户信息、用户和数据中心数量、数据中心位置以及资源数量等信息。使用这些信息,CloudSched产生用户请求,并将用户请求分配到云中的虚拟机去处理。
CloudSched支持多种调度算法,云计算资源调度研究者通过仿真,可以找到合理分配虚拟机资源、满足用户需求、减少业务成本等较优的资源调度策略和算法。CloudSched的模拟框架如图3所示。
1.3.2 CloudSched主要模型及组件
(1)ScheduleDomain。该类为调度算法主函数所在的类,包括调度域中物理节点的初始化,调用其他类完成对任务队列中用户任务的处理,如生成任务请求、分配调度任务、删除调度任务等。
(2)CreateRandVM。该类主要是产生需要的任务请求,把任务请求以VmTaskInfo类的形式记录在文本文件中。任务请求包括的属性主要有任务编号、任务到达时间、任务开始时间、任务结束时间等。
(3)VmTaskInfo。该类是产生任务请求和接受任务请求交互的一个类。包括任务编号、任务选择的调度域类型、任务请求的虚拟机编号等。
(4)Server。该类为虚拟机和物理机的父类,包括的属性主要有CPU大小、内存大小、网络带宽大小、CPU利用率、内存利用率、网络带宽利用率以及平均利用率等。
(5)PhysicalMachine。该类为物理机类,继承了Server类,增加了虚拟机列表属性。
(6)VirtualMachine。该类为虚拟机类,继承了Server类,增加了一个判断虚拟机类别的方法。虚拟机类型1、2、3为CPU型,类型4、5、6为内存型,类型7、8为网络型。
(7)Allocate_Alg。该类主要是分配虚拟机到物理机上,可以设计分配算法来研究虚拟机调度。
(8)Migrate。该类依据不均衡的属性(CPU、内存、网络),判断虚拟机是否需要迁移。
(9)Sort。该类主要实现CPU利用率、内存利用率、网络带宽利用率等硬件资源的排序。
(10)Balancelevel。该类的主要实现计算数据中心的不均衡度和物理机的不均衡度。
(11)Record。该类主要是把虚拟机分配的过程以及结果记录到文本文件中,方便查看。
(12)PrintPM。该类主要把虚拟机分配过程以及结果打印到控制台,方便查看结果。
利用CloudSched模拟器同样可以很好地实现大规模分布式环境下的资源调度算法研究。
表1给出了CloudSim、CloudAnalyst以及CloudSched这3种云计算模拟器的比较。
2 基于模拟器的资源调度算法
下面介绍几种基于CloudSim、CloudAnalyst和CloudSched的资源调度算法。
2.1 基于CloudSim的资源调度算法
为了尽量减小云数据中心电能的消耗和二氧化碳的排放量,BELOGLAZOV A等人基于CloudSim提出了云数据中心节能的虚拟机调度算法[6-7]。参考文献[6]提出了有效的虚拟化数据中心资源管理策略。该策略在保证服务质量SQL的同时,利用虚拟机迁移技术不断把虚拟机整合到少量服务器上,并关闭多余的服务器,从而降低电能消耗。参考文献[7]建立了CPU电能消耗模型,根据当前CPU的利用率、虚拟机网络拓扑以及主机节点的热状态,通过整合虚拟机减少主机节点的电能消耗。
2.2 基于CloudAnalyst的资源调度算法
CloudAnalyst模拟器自带的有3种调度算法,分别是轮转算法、动态监控算法和节流分配算法[8]。
(1)轮转算法:采用Round-robin算法分配虚拟机。
(2)动态监控算法:监控每个虚拟机上的任务数,分配用户请求使每个虚拟机负载平衡。
(3)节流分配算法:预先为虚拟机设置一个最大用户任务请求数值,当用户任务超过该数值时,不再接受用户请求。
2.3 基于CloudSched资源调度算法
为了使云数据中心的物理服务器的CPU、内存和网络带宽等资源均衡使用,田文洪提出了一种基于CloudSched的满足需求特性的调度算法[9]。该算法分别计算了物理服务器上的CPU利用率、内存利用率和网络带宽利用率的方差,得到每个物理服务器的负载均衡值,然后将虚拟机分配到负载均衡值最小的物理服务器上。如果负载最小的物理服务器不能分配,则换次小的进行分配,直到能分配为止。
表2给出了上述几种资源调度算法的比较。
3 云计算模拟器及资源调度算法的研究热点及发展趋势
3.1 云计算模拟器研究热点及发展趋势
当前云计算模拟器的研究热点主要集中到模拟器的功能扩展上。例如,当前随着当前云计算数据中心规模的逐渐扩大,二氧化碳的排放量越来越大,数据中心的电能消耗也越来越多。由于节能减排的要求,需要研究更加节能的资源调度算法,这就需要所采用的模拟器能够模拟出云计算数据中心的电能消耗量。有些云计算模拟器还不能达到这些要求,例如CloudAnalyst的模拟结果只包含了所有数据中心的平均响应时间、最小(大)响应时间、用户群以及数据中心处理请求的平均响应时间、最小(大)响应时间等。因此可以在CloudAnalyst上进行扩展,扩展出想要的功能,例如能够模拟数据中心的电能消耗等。
随着云计算的发展,云计算模拟器会集成更多的功能。例如,现有模拟器还无法模拟出数据中心二氧化碳的排放量。可以在模拟器中添加二氧化碳排放量模块,从而计算出云数据中心在提供云计算服务时具体的二氧化碳排放量大小。同时,现有模拟器还不能仿真联合云,可以研究如何在模拟器中添加支持联合云的功能,从而仿真出联合云环境下云计算服务的响应时间等一些性能指标。总之,模拟器会朝着更加符合真实、实用的云计算环境添加所需要的功能。
3.2 资源调度算法研究热点及发展趋势
对于云计算模拟器的另一项研究就是基于云计算模拟器研究出更多有效的资源调度算法,从而能够降低云数据中心和企业的运营成本。现在已经出现了一些比较有效的资源调度算法,它们大多以保证数据中心的负载均衡[9-12]、最大效益[13-15]、云服务质量[16-18]为优化目标。随着政府对节能减排的迫切要求,将来会出现更多围绕降低能耗的资源调度算法。BELOGLAZOV A等人已经在以节能减排为优化目标的资源调度算法方面走在了前列,研究出了一些比较优秀的资源调度算法[6-7,20-21],云计算资源调度研究者可以在其研究的基础上进行更深入的研究。同时,仿真云计算市场的资源调度算法也很重要。可以基于云计算市场,在云计算模拟器中内置新的云计算资源定价和部署策略来仿真云计算服务。
本文介绍了当前云计算的CloudSim、CloudAnalyst和CloudSched 3种模拟器,并对基于这3种模拟器的资源调度算法进行了分析和比较。当前云计算模拟器还存在很多研究热点,例如需要对模拟器的节能功能进行扩展、所设计的资源调度算法需要考虑节能减排、云计算市场定价等。随着研究的深入,现阶段的研究者越来越关注数据中心的能耗问题以及市场定价问题。将来会涌现出更多的节能减排资源调度算法以及云计算市场的资源调度算法,从而更好地提高云数据中心的性能。
参考文献
[1] CALHEIROS R N, RANJAN R,BUYYA R, et al. CloudSim: a toolkit for modeling and simulation of cloud computing environments and evaluation of resource provision-ing algorithms[J]. Software: Practice and Experience, 2011,41(1):23-50.
[2] BUYYA R, RANJAN R, CALHEIROS R. Modeling and simulation of scalable cloud computing environment and the cloudSim toolkit: challenges and opportunities[A]. Proceedings of the 7th High Performance Computing and Simulation Conference[C]. Germany:IEEE,2009:21-24.
[3] CALHEIROS R N, RANJAN R. CloudSim:A novel framework for mode ling and simulation of cloud computing infrastructures and services[R/OL]. [2014-2-20]http://www.buyya.com/gridbus/reports/CloudSim-ICPP2009.pdf.
[4] WICKREMASINGHE B, PROF A, BUYYA R. CloudAnalyst: A cloudSim-based tool for modelling and analysis of large scale cloud computing environments[J]. IEEE Computer Society, 2010,AINA:446-452.
[5] TIAN W, ZHAO Y, XU M, et al. A Toolkit for modeling and simulation of real-time virtual machine allocation in a cloud data center[J]. Automation Science and Engineering, 2013,1(99):1545-5955.
[6] BELOGLAZOV A, BUYYA R. Energy efficient allocation of virtual machine in cloud data centers[C]. 2010 10th IEEE/ACM International Conference on Cluster, Cloud and Grid Computing.. Washington DC: IEEE Computer Society, 2010:577-
578.
[7] BELOGLAZOV A, BUYYA R. Energy efficient resource management in virtualized cloud data centers [C].Proceedings of the 10th IEEE/ACM International Conference on Cluster, Cloud and Grid Computing. Melbourne: IEEE, 2010:826-831.
[8] WICKREMASINGHE B, CALHEIROS R N, BUYYA R. CloudAnalyst: A cloudSim-based visual modeller for analysing cloud computing environments and applications[A]. Proceedings of the 24th IEEE International Conference on Advanced Information Networking and Applications. Perth: IEEE,2010:446-452.
[9] TIAN W H, LU G. Analysis of integrated scheduling algorithms for resources in cloud datacenters[C]. Technical Report, University of Electronics and Science Technology of China,2010:9.
[10] 郑洪源,周良,吴家祺.Web服务器集群系统中负载平衡的设计与实现[J].南京航空航天大学学报,2006,38(3):347-351.
[11] 李文娟,张启飞,平玲娣,等.基于模糊聚类的云任务调度算法[J].通信学报,2012,33(3):146-154.
[12] TIAN W H, LI U X R, JIN C, et al. LIF: A dynamic scheduling algorithm for cloud data centers considering multi-dimensional resources[J]. Journal of Information and Computing Science, 2013,10(12):3925-3937.
[13] TANG Q. Energy-efficient, thermal-aware task scheduling for homogeneous, high performance computing data genters: A Cyber-Physical Approach[J]. IEEE Transaction on Paralleland Distributed Systems,2008,19(11):1458-1472.
[14] BUYYA R, YEO C S, VENUGOPAL S. Market-oriented cloud computing: vision, hype, and reality for delivering it services as computing utilities[C]. Proceedings of the 10th IEEE International Conference on High Performance Computing and Communications. 2008:5-13.
[15] DE ASSUNCAO M D, DI COSTANZO A, BUYYA R. Evaluating the cost-benefit of using cloud computing to extend the capacity of clusters[C]. Proceedings of the 18th ACM International Symposium on High Performance Distributed Computing. New York: ACM Press, 2009:141-150.
[16] 师学霖,徐恪.云虚拟机资源分配的效用最大化模型[J].计算机学报,2013,36(2):252-262.
[17] 孙大为,常桂然,李凤云,等.一种基于免疫克隆的偏好多维QoS云资源调度优化算法[J].电子学报,2011,39(8):1824-1831.
[18] HAO FANG, LAKSHMAN T V, MUKHERJEE S, et al. Enhancing dynamic cloud-based services using network virtualization[J]. Computer Communication Review, 2010,40(1):67-74.
[19] CHANHAN S S, JOSHI R C. A heuristic for QoS based independent task scheduling in grid environment[A]. Proceed-ings of International Conference on Industrial and Informa-tion Systems. 2010:102-106.
[20] BELOGLAZOV A, BUYYA R. Adaptive threshold-based approach for energy-efficient consolidation of virtual machines in cloud data centers[C]. Proceedings of the 8th International Workshop on Middleware for Grids, Clouds and e-Science. New York: ACM,2010.
[21] BELOGLAZOV A, ABAWAJY J, BUYYA R. Energy-aware resource allocation heuristics for ecient management of data centers for cloud computing[J]. Future Generation Computer Systems, 2011, DOI: 10.1016/j.future.