本人辛苦翻译的由Rajiv Ranjan等发表的关于CloudSim的一篇英文论文.docx
《本人辛苦翻译的由Rajiv Ranjan等发表的关于CloudSim的一篇英文论文.docx》由会员分享,可在线阅读,更多相关《本人辛苦翻译的由Rajiv Ranjan等发表的关于CloudSim的一篇英文论文.docx(36页珍藏版)》请在冰豆网上搜索。
本人辛苦翻译的由RajivRanjan等发表的关于CloudSim的一篇英文论文
CloudSim:
一个模拟与仿真云计算环境和
评估资源调度算法的工具集
RodrigoN.Calheiros1,3,RajivRanjan2,AntonBeloglazov1,CésarA.F.DeRose3,andRajkumarBuyya1
1CloudComputingandDistributedSystems(CLOUDS)Laboratory
DepartmentofComputerScienceandSoftwareEngineering
TheUniversityofMelbourne,Australia
2SchoolofComputerScienceandEngineering
TheUniversityofNewSouthWales,Sydney,Australia
3DepartmentofComputerScience
PontificalCatholicUniversityofRioGrandedoSul
PortoAlegre,Brazil
Email:
rncalheiros@ieee.org,rajiv@unsw.edu.au,cesar.derose@pucrs.br,{abe,raj}@csse.unimelb.edu.au
摘要:
近两年来,云计算技术取得很大进步,它是一种基于使用付款模式将计算机基础设施和应用作为服务提供给终端用户。
云计算可以根据时间变化权衡虚拟服务即使处于多条件需求(工作负载模式和QoS)。
云计算模式下的应用服务有复杂的供应、组成、配置和部署条件。
当系统和用户配置和需求处于动态变化的条件下,评估云供应政策、应用工作负载模式和资源性能模式的性能是很难实现的。
为了克服这一挑战,我们提出了云仿真平台cloudsim:
一个可伸缩的仿真工具集可实现云计算系统和应用供应环境的模拟与仿真。
Cloudsim都支持云计算系统组件的系统和行为建模,例如数据中心,虚拟机和资源调度策略等。
它可以快速简易的实现一般的应用调度技术。
目前,cloudsim都支持单一网络和交互网络组成的云计算环境的建模与仿真。
此外,还实现了为基于交互网络云计算场景分配虚拟资源的政策和调度提供了通用接口。
许多诸如来自USA的HPLab组织的研究者都使用cloudsim用于对云资源调度和数据中心节能管理的研究。
通过一个案例研究基于Cloudsim平台证明了基于混杂云环境下应用服务的动态调用的有效性。
案例研究结果表明联合云计算模型大大改善了动态资源和服务需求模型下的应用QoS需求。
1介绍
云计算将可用的、可扩展的、按需付款模式的IaaS、PaaS、SaaS提供给用户。
近期来自伯克利大学的报告阐述了这些服务的重要性,报告中说道:
“云计算,计算作为工具的长期战略很有可能改变大多数的IT产业,使得软件作为服务更具有吸引力。
”
云计算作为下一代数据中心,目的是希望实现动态、灵活的应用供应。
通过作为虚拟网络服务(硬件、数据库、用户接口和应用逻辑)来提高数据中心处理能力从而使用户可以根据需求和服务质量要求在互联网的任何地方访问和部署应用。
同时,一些拥有创新想法的应用服务的IT公司也不再需要在硬件和软件设施上给予大规模的资金投入。
仅仅通过云中应用租用平台,他们就可以免费获得所需的基本的硬件和软件设施。
从而可以将全部精力投入到他们应用服务的业务价值的创新和创造。
一些传统和基于云的新兴应用服务包括了社交网络、web租用、内容交付和实时基础数据处理。
这些应用都有不同的组件、配置和部署条件。
根据现有条件在异构真实的云计算环境(比如EC2,Azure,GAE)下对不同应用模式来量化(评价)供应(调度和分配)策略的性能是非常困难的。
因为⑴云计算需要满足多变需求、供应模式、系统大小、资源(软件,硬件,网络等)⑵用户处于一个复杂、动态、满足QoS要求的环境⑶应用要求多变性能,工作负载,动态可伸缩条件。
而对于真实的基础设施诸如EC2和Azure的使用在多变条件下确定应用的性能则常常受到特定严格的基础设施的限制。
因此,这导致试验结果难以得到保证。
此外在大规模的云计算基础设施下重复配置参数运行多次测试也是乏味和耗费时间的。
由于这些限制的缘故,导致了基于云环境试验的流行,它不受开发者应用服务的限制,这样使得没必要基于真实云计算环境下做重复、可信赖、可伸缩试验来评测其性能。
一个更可行、可代替的方法是使用仿真工具。
这些工具展示了在异构可控制的环境下方便地重复产生结果用来评估提出的假设的可能性。
基于仿真的方法为IT公司(或者任何想通过云提供应用服务的人)提供了巨大的便利,因为这样可以允许他们:
⑴可在重复和可控制的环境下测试他们的服务⑵在部署到真实云中前调整系统瓶颈点⑶为开发和测试适合的应用供应技术,基于仿真基础设施在不同混合工作负载和资源性能场景下做实验。
考虑到目前没有一个分布式系统仿真平台(如Grid和Network)提供了用于直接模拟云计算环境的环境。
我们提出了CloudSim:
一个新的,普遍的合可扩展的仿真框架,该平台实现了无缝的对新兴云计算基础设施和应用服务的模拟、仿真、试验。
通过使用CloudSim,研究者和企业开发者可以在异构可控和简单安装的环境下测试新开发出来的应用服务的性能。
根据CloudSim结果的评估,可以对服务性能做进一步更好的改进。
使用CloudSim为初始化性能测试的主要好处有:
⑴时间效率:
仅仅需要很少的经历和时间搭建基于云应用供应测试环境⑵灵活性和适用性:
开发者可以用很少的编程和部署经历在负责的云环境(EC2,Azure)去模拟和测试他们应用服务的性能。
CloudSim提供了以下新的特性:
⑴支持大规模的云计算环境的模拟与仿真,包括数据中心,单一物理计算节点⑵为模拟云、服务代理、供应、分配策略提供独立的平台⑶支持在模拟系统元素间仿真网络连接⑷具有在联合的云环境下仿真的功能,私有和公共领域的混合网络资源,对有关Cloud-Bursts和自动应用伸缩的关键功能的研究。
CloudSim一些独特功能有:
⑴使用虚拟化引擎帮助在数据中心节点的多样的、独立的、租用的虚拟服务的创建和管理⑵实现空间共享和时间共享下对处理单元分配给虚拟服务的灵活转换。
CloudSim的这些新特性将促进云计算下应用调度算法的发展。
本论文的主要贡献有:
⑴给出了模拟云计算环境和测试应用服务性能的整体框架⑵建立了端到端的云网络体系,利用BRITE拓扑模拟链接带宽和相关潜在因素。
对应CloudSim框架,我们有如下发现:
⑴支持大规模仿真环境,而在初始化和内存消耗上花费的很少或不需要考虑⑵对模拟定制化云计算环境(联合/非联合)和应用供应技术(CloudBursts,energyconscious/non-energyconscious)可实现轻易扩展。
论文剩余部分由以下组成:
首先,对云计算进行大概描述,以及现有模式和他们的层次结构设计,该部分结尾对已存在的流行的分布式系统仿真和模拟做了简单总结。
然后对CloudSim框架的体系结构做了详细描述。
Section4描述了CloudSim组件的整体设计。
Section5描述了一系列在成功仿真云计算环境下对CloudSim性能的检测试验。
Section6对正在使用或已使用CloudSim做研究和开发的项目做一个简单描述。
最后论文对未来研究发展方向做了简单的总结和讨论。
2.背景
这部分从多方面阐述了形成云计算系统体系的基础背景信息。
同时也阐述了需要通过拥有一个或多个云服务提供商的多种的、跨地区分布式数据中心扩展所需的条件。
CloudSim框架目的是为了简化和加快实验云计算作为应用供应环境来组成实验研究的过程。
因为由于其大规模和复杂性来使用真实的云基础设施搭建实验平台是非常的耗时的。
2.1云计算
云计算可以地定义为“一类由一系列内部连接和虚拟化计算机组成的并行分布式系统,可提供动态供应和通过服务提供者和使用者的协商建立起来的基于SLA的作为一个或多个统一计算资源来阐述”[13],一些新兴的云计算基础设施/平台有MicrosoftAzure[1],AmazonEC2,GoogleAppEngine,andAneka[2].
云平台必需具备的一个特性是为了满足多变的需求可以动态的增加或减少对应用的资源提供,可以是可预见的、日夜可访问观察到的;也可以是不可预见的,如当某个应用服务的流行而导致要求资源供应的增长。
云的这种能力对可伸缩应用(如web租用,内容传递,社交网络等)对此行为敏感的非常有用。
这些应用通常表现为瞬时行为和因为时间因素和用户交互模式而有不同的QoS条件。
因此,动态供应技术的发展保证了这些应用在满足瞬时条件的前提下达到QoS。
尽管云计算被认为支持弹性应用的平台,它仍然面临相关核心问题的限制,例如所有权、规模和本地化。
例如,一个云仅仅在给定的时间内提供有限的租用能力(虚拟机和计算服务)给应用服务,因此在某个时间段伸缩应用容量变得十分复杂。
所以,在那些需要过高云容量的情况下,云中应用租用需对用户在QoS上进行妥协。
解决这个问题的一个办法是在网络之间将多云作为一个联合组织并开发出下一代动态供应技术,这样可以从该体系结构中获得利润。
这些跨地域的分布式云的联合可以基于他们中已满足条件的基础上组成,来有效应对服务需求的多样性。
通过应用服务的透明整合到云联合中将进一步有效实现用户SLAs,更加接近于原始请求。
混合云是私有云和公共云的组合。
私有云和公共云的主要区别在于所有权类型和他们所支持的访问权限的不同。
访问私有云资源仅仅局限于属于用户云服务组织的那些用户,而公共云资源对互联网中任何感兴趣的用户都可用,根据按需付费模式使用。
因此,中小企业和政府都以探索公共云需求驱动供应开始,与此同时,利用已有的计算基础设施(私有云)来解决暂时多变的服务需求。
这种模式尤其适用于那些仅仅在特殊时期需要超大计算能力(如后台作业处理和事务分析)的中小企业(SMEs)和银行。
然而,针对任何云部署模式(私有、公共、混合等)编写和开发应用软件是非常复杂和艰难的。
基于云的应用供应还有一些相关关键挑战:
服务传递、监测,虚拟机、应用和负载均衡的部署。
在整个云操作过程中,每个元素的影响对运行隔离,评估和复制都不是很重要的。
Cloudsim通过提供每种元素在可控制和可重复执行的行为下进行数据测试的平台,以此减轻了这些困难。
所以上,诸如cloudsim这些仿真框架是很重要的,因为它们允许在不同的使用和基础设施可用场景下评估资源管理和应用调度技术的性能。
2.2层次设计(Layereddesign)
图1显示了云计算体系结构的层次设计。
实际物理资源与核心中间件共同构成了IaaS和PaaS的基础。
而用户层中间件主要提供SaaS功能。
最上层则集中于应用服务SaaS,其充分利用更低层提供的服务。
Paas/SaaS通常以第三方服务提供商开发和提供,与IaaS不同。
CloudApplication:
该层的应用直接对终端用户可用。
这里我们定义终端用户指通过网络使用SaaS应用的群体。
这些应用可以是云提供商提供,终端用户通过订阅模式或按需付费形式进行访问;用户也可以在这层部署自己的应用。
诸如S在云中提供业务流程模式(即CRM)和社交网络的应用就属于前者形式。
而后者形式的有e-Science、e-Research和Content-DeliveryNetworks。
User-LevelMiddleware:
该层包括了如Web2.0接口(Ajax,IBMWorkplace)的软件构架用来帮助开发者创建基于浏览器模式的丰富、低成本的用户接口的应用。
该层也提供了一些编程环境和组件用于减轻在云中创建、部署和执行应用的难度。
最后,这层的一些框架也支持多层应用开发,如Spring和Hibernate,使能够支持应用运行在更上层。
CoreMiddleware:
该层实现了平台等级服务,提供了租用和管理用户等级应用服务的运行环境。
该层的核心服务包括动态SLA管理,Accounting、Billing、执行监督和管理、费用。
运行在该层比较有名的服务有AmazonEC2、GAE和Aneka。
该层的功能即可被SaaS(图1中的最高层的服务)访问,也可被IaaS(图1中最底层的服务)访问。
该层关键的功能包括消息传递,服务发现和负载均衡。
这些功能通常由云提供商实现和应用开发者额外提供。
例如,Amazon为AmazonEC2的开发者和用户提供了一个负载均衡器和监测服务(Cloudwatch)。
类似的,开发者在Azure云搭建应用时也可使用.Net服务总线用来实现消息传递机制。
SystemLevel:
云环境中的计算能力是由一组数据中心提供的,这些数据中心是由成百上千的主机组合而成的。
在该层,存在大量物理资源(存储服务和应用服务)为数据中心供应。
这些服务由上层虚拟化服务和工具进行透明管理,使允许通过虚拟服务共享他们的容量。
这些VMs相互之间也是独立的,因此使容错技术和独立文本的安全性有保障。
2.3云联合(Federation(Inter-Networkingofclouds))
目前云计算提供商在全球不同的地区都有一些数据中心,目的是为了通过互联网满足来自全世界的消费者需求。
然而,已有系统在不支持在不同的数据中心之间为租用应用服务在达到可接受的QoS水平选择最优方案上实现动态协同负载平衡的机制和政策。
甚至,云服务提供商业不能够预测分布在多地区的终端用户使用他们的服务,因此负载协调必须是自动发生的,以及服务的分配必须是根据负载行为动态响应的。
图2描述了一个云计算体系结构,该结构由服务消费者代理和提供者协调器组成,可以支持云在交互网络中进行效用驱动:
应用供应和工作负载转移。
在交互网络中对分布云进行联合管理具有非常高的性能和财政利润,例如:
(ⅰ)通过寻找最优的服务配置和规模改善SaaS提供商满足用户QoS等级的能力和服务完善(ⅱ)通过允许用户从联合网络中动态获得额外资源来增强峰值负荷处理能力和每个云用户动态系统伸展能力。
这也免除了云提供商必须在每处都要建立一个新的数据中心的麻烦(ⅲ)由于云提供商可以无缝的整合他们的服务到联合网络中的其他地方,使得更能适应当自然灾害和常规的系统维护,这样可以避免违反SLA和导致赔偿。
因此,联合云不仅保证了业务的连续性,也增强了参与云的提供商的可靠性。
图2描述了体系结构的一个关键组件,就是云协调器(cloudcoordinator)。
这个组件是当系统中每个云的职责是进行以下重要活动时才实例化的:
⑴输出云服务给联合网络,包括基础设施层和平台层⑵记录云资源(VMs,计算服务)的负载和在联合云中与其他云提供商进行协调以解决在本地云对资源突然增长的需求⑶监测应用执行的生命周期和审查是否满足SLAs。
云代理代表SaaS提供商来确定在云交易中是否有匹配的云服务提供商。
还有,云代理也能够商议来分配资源的各云协调器是否满足租用的QoS需求或者是否被SaaS应用租用。
云交易(CEx)扮演了一个市场制造商将云服务(IaaS)和SaaS提供商聚集在一起。
云交易负责从云代理器聚集对基础设施的需求和通过云协调器评估当前可用供应是否满足它们的需求。
诸如社交网络Facebook、MySpace和ContentDeliveryNetworks(CDNs)这些应用都可以从上述的联合云计算基础设施受益。
社交网站服务于数百万用户,而且他们访问网站时间和交互模式都很难预测。
一般而言,社交网络的网站是使用多层web应用如WebSphere和持久层如MySql关系数据库建立起来的。
通常,每个组件都运行在不同的虚拟机下,这些虚拟机可以租用不同的云计算提供商。
此外,每个插件开发商可以自由的选择更适合运行其插件的云计算提供商提供的服务。
总而言之,一个典型的社交网络web应用可以由数百个不同的服务组成,也就是说可以租用世界上许多面向云结构的数据中心。
无论何时有变化,当工作负载暂时或本地空间收限制,每个应用组件都必须动态扩展为用户提供好的体验。
领域专家和科学家也可以充分利用这些机制,通过使用云为他们高吞吐量的e-Science应用获得资源,例如Monte-Carlo仿真和医学图像注册。
在这些场景下,云能够在已有的集群和基于资源池的网格下加快研究预期进度时间。
2.4相关工作
在过去的十几年,网格一直作为为计算和数据敏感的科学应用提供高性能服务的基础设施发展而来。
为支持网格组件、政策和中间件的研究、开发和测试,提出了如GridSim、SimGrid、OptorSim和GangSim等网格仿真平台。
SimGrid是一类基于网格平台模拟分布式应用的框架。
类似地,GangSim是一个网格仿真工具,用于提供基于网格虚拟组织和资源的建模的支持。
另一方面,GridSim是一个用于复杂网格资源的事件驱动的仿真工具,它支持对网格实体、用户、设备、网络包括网络阻塞的复杂建模。
尽管以上所述的工具都能够多网格应用管理行为(执行,供应,发现,监测)进行模拟与仿真,但没有一款能够满足云计算环境条件,能够清楚地隔离多层服务抽象(SaaS,PaaS,IaaS)。
尤其是,在已有的网格仿真平台很少甚至几乎没有支持对虚拟可用资源和应用管理环境的建模。
而云是以按需付费模式基于订阅的形式提供服务给SaaS提供商。
因此,云环境模拟与仿真工具必须提供像云代理和云交易等经济实体,以实现在消费者和提供商进行实时服务交易。
在本文提及的当前可用的仿真器中,只有GridSim提供了经济取得资源管理和应用供应模拟的支持。
还有,已有的仿真平台没有一个提供对虚拟设施模拟的支持,它们都没有提供模拟由成百上千的计算服务组成的数据中心环境的工具。
近两年,Yahoo和HP建立了一个叫OpenCirrus的全球云计算测试平台,支持在10个组织中的数据中心的整合。
建立此实验环境即耗费大量金钱又由于其共享特性很难因为资源条件的变化进行时不时重复实验。
而且它们也仅仅局限于合作成员才能访问。
因此,仿真环境起了很重要的作用。
由于云计算R&D仍处于不成熟阶段,根据云计算分层体系结构还有一系列重要的问题仍需进行详细的调查研究。
比较关注的方面包括根据终端用户请求、云合作商和联合云对虚拟资源供应提出经济、节能策略。
为支持和加快对相关云计算系统、应用和服务的研究,设计和开发一些必须的软件工具来帮助研究者和企业开发者是很重要的。
3.CloudSimArchitecture
图3显示了CloudSim软件框架的多层设计以及其体系结构组件。
Cloudsim初始版本使用SimJava作为离散时间仿真引擎,可支持一些核心函数如事件队列和处理,云系统实体的创建(服务、主机、数据中心、代理器、虚拟机),组件间消息传递、仿真时钟的管理。
然而目前版本中,SimJava层已经被去除,因为为了允许更高级的操作但它不支持。
我们将在下一部分对这些高级操作进行深入讨论。
Cloudsim仿真层提供了对基于云的虚拟数据中心环境的建模与仿真的支持,包括对虚拟机、内存、容量、带宽的专用接口管理。
这层要处理的基本问题包括虚拟机租用主机的供应,管理应用执行和监测动态系统状态。
一个云提供商如果想要研究在分配其主机到虚拟机上不同策略的有效性,就必须在这层来实现他们的策略。
这些实现策略可以通过扩展编写核心VM供应函数来实现。
在这层对相关主机分配到虚拟机有明显的差别。
一个云主机可以同时分配给多个虚拟机用来执行基于SaaS提供商定义的QoS级别的应用。
这层也提供了对云应用开发商对执行复杂工作负载和应用性能研究的扩展的函数。
在Cloudsim结构中最上层是用户代码层,该层提供了基本的主机实体类(机器数量、特性等)、应用(任务数和条件)
、VMs、用户数和应用类型、代理调度策略。
在此次通过扩展给定的基本实体,一个云应用开发商可以执行以下功能:
⑴生成一个混合的工作负载请求分配和应用配置⑵建立基于云的可用场景和根据自定义配置执行鲁棒性测试⑶为云和联合云实现自定义应用供应技术。
因为云计算仍然是一个新兴的分布式计算模式,在有效处理基础设施和应用水平复杂性上还是缺乏给定的标准、工具和方法。
因此,在未来几年无论是学术界还是企业界都将进行努力研究,基于执行环境给出核心算法、政策和应用标准。
通过扩展cloudsim已有的基本函数,研究者将能够基于特殊场景和配置环境下进行测试,允许对相关云计算的所有关键因素做最好的实践开发。
3.1ModelingtheCloud
IaaS可以通过扩展cloudsim的数据中心实体进行模拟。
而数据中心实体又管理许多主机实体。
这些主机根据由云服务提供商定义的虚拟分配策略分配给一个或多个虚拟机。
这里,虚拟策略代表了相关VM生命周期对操作控制的策略,如将一个主机host供应给一个VM,VM的创建,VM的销毁和VM转移。
类似的,根据云计算环境的应用供应条件,一个或多个应用服务可以在单一VM中供应。
对于cloudsim,一个实体就是一个组件的实例化。
一个Cloudsim组件可以是一个类,也可以是多个类来代表一个Cloudsim模型(数据中心,主机)。
一个数据中心能够管理多个主机,即在他们的生命周期内管理虚拟机VMs。
主机在一个Cloudsim组件中代表了在云环境中的一个实际物理计算机。
它分配好了预计处理能力(按MIPS计算)、内存、容量和分配给虚拟机的处理器的供应政策。
主机组件实现了支持对单一节点和多节点的支持的接口。
虚拟机分配策略是在已有主机上创建VM实例的过程,主要是匹配重要特性(容量,内存)、配置(软件环境)和SaaS提供商的请求(实用区域)。
Cloudsim支持自定义应用服务建模的开发,可以在一个VM实例和要求扩展核心任务集的用户的部署以此来实现他们的应用服务。
此外,cloudsim对服务模型或供应技术没有过度的限制,并不是说开发者必须用此来实现和执行测试。
一旦一个应用服务定义好合建立好模型后,将根据一个服务特殊分配策略将服务分配到一个或多个预先实例化的VMs上。
在基于云的数据中心中,为主机host分配特殊应用的VMs由VmAllocationPolicy类服装。
这个组件为研究者和开发者提供了自定义方法,用于帮助实现新的政策来达到最优目标(用户为中心,系统为中心或两者都是)。
默认情况下,VmAllocationPolicy直接使用了FCFS策略实现为主机分配虚拟机。
硬件条件(例如处理器个数,内存,容量)构成了这些供应的基础。
关于其他政策(很可能由云提供商提出的)均可以在cloudsim下轻易地仿真与建模。
但是,由公共云提供商(如AmazonEC2,Azure)提出的策略为被公开,因此这些算法在CloudSim未提供。
对每个主机host主件,分配多少处理器个数给VMs是根据主机分配策略来实现的。
这些策略在实例化VM需考虑一些硬件特性,如CPU数,CPU共享和内存数。
因此,CloudSim支持多个仿真场景,可以分配特殊的CPU核给特殊的VMs(空间共享)或者在VMs间(时间共享)动态分配CPU核数目。
每个主机组件都实例化了一个VM调度器组件,这样在为VMs分配CPU核数时或者实现空间共享或者实现时间共享。
云系统/应用开发者和研究者可以根据自定义的分配政策通过实验进一步扩展VM调度器组件。
在下一部分,将详细描述时间共享和空间共享。
与VMs有关的基本的硬件和软件配置均在VM类中定义了。
目前支持对如AmazonEC2类似的云提供商提供多个VM配置的建模。
3.2ModelingtheVMAllocation
区分云计算基础设施与网格计算基础设施的一个关键因素是大规模虚拟工具和技术的部署。
因此,与网格计算不同的是,云计算包括了额外层(虚拟层)来对应用服务的执行、管理和租用环