英语原文共 11 页,剩余内容已隐藏,支付完成后下载完整资料
可扩展云计算环境和CloudSim工具包的建模和模拟:挑战和机遇
云计算旨在为下一代数据中心提供动力,并使应用服务提供商能够根据用户QoS(服务质量)要求租赁数据中心能力,以部署应用程序。云应用程序具有不同的组成,配置和部署要求。在不同负载,能量性能(功耗,散热)和系统大小下,针对不同应用和服务模型,在云计算环境中以更详细的细节量化资源分配策略和应用调度算法的性能是一个难以解决的问题。为了简化这个过程,在本文中,我们建议CloudSim:一个可扩展的模拟工具包,使云计算环境的建模和模拟。 CloudSim工具包支持在数据中心的仿真节点上创建和创建一个或多个虚拟机(VM),作业及其到适当VM的映射。它还允许对多个数据中心进行仿真,以实现关于VM的迁移的联合和相关策略的研究,以实现应用的可靠性和自动扩展。
1.介绍
云计算将基础设施,平台和软件作为服务提供,这些服务作为基于订阅的服务以即付即用模式提供给消费者。工业中的这些服务分别被称为基础设施即服务(IaaS),平台即服务(PaaS)和软件即服务(SaaS)。这些服务的重要性在来自伯克利的最近的报告中被强调:“云计算作为一种实用的计算机的长期梦想,有可能改变大部分IT行业,使得软件更具吸引力服务”[11]。
云[10]的目标是通过将它们展示为虚拟服务(硬件,数据库,用户界面,应用程序逻辑)的网络,为下一代数据中心提供动力,使用户能够根据需要从世界任何地方访问和部署应用程序在竞争成本取决于用户的QoS(服务质量)要求[1]。对于新的互联网服务的创新想法的开发者不再需要在硬件和软件基础设施中投入大量的资本支出来部署他们的服务或人力费用来操作它[11]。它为IT公司提供了显着的优势,使他们免于建立基本硬件和软件基础设施的低级任务,从而更加专注于创新和创造业务价值。
一些传统和新兴的基于云的应用程序包括社交网络,网络托管,内容交付和实时仪表化数据处理。这些应用程序类型中的每一种都有不同的组成,配置和部署要求。在不同条件下为不同应用和服务模型在真实云环境中量化调度和分配策略的性能是非常具有挑战性的,因为:(i)云显示不同的需求,供应模式和系统大小;和(ii)用户具有异质和竞争的QoS要求。使用真正的基础设施,如Amazon EC2,将实验限制在基础架构的规模,并使结果的复制是一个非常困难的事情。这种情况的主要原因是基于互联网的环境中普遍存在的条件超出了资源分配和应用调度算法的开发者的控制。
另一种方法是利用仿真工具,在可以重现测试的环境中开发在软件开发之前评估假设的可能性。特别是在云计算的情况下,基础设施的访问导致实际货币支付,基于模拟的方法通过允许云客户获得显着的收益
他们:(i)在可重复和可控的环境中免费测试他们的服务;和(ii)调整性能瓶颈,然后在真正的云上部署。在提供商端,模拟环境允许在变化的负载和定价分布下评估不同种类的资源租赁场景。这些研究可以帮助提供者优化资源获取成本,重点是提高利润。在没有这样的仿真平台的情况下,云客户和提供商必须依赖于理论和不精确的评估,或者依赖于导致低效的服务性能和收入产生的尝试和错误方法。
考虑到目前的分布式系统模拟器[4] [7] [9]没有一个提供可以被云计算社区直接使用的环境,我们建议CloudSim:一个新的,通用的和可扩展的仿真框架,模拟和实验新兴的云计算基础设施和应用服务。通过使用CloudSim,研究人员和基于行业的开发人员可以专注于他们想要调查的特定系统设计问题,而不必担心与基于云的基础架构和服务相关的低级细节。
CloudSim提供以下新颖的特性:(i)支持大规模云计算基础设施的建模和模拟,包括单个物理计算节点上的数据中心; 和(ii)用于建模数据中心,服务代理,调度和分配策略的自包含平台。 CloudSim的独特功能包括:(i)虚拟化引擎的可用性,它有助于在数据中心节点上创建和管理多个独立的共同托管的虚拟化服务; 和(ii)灵活地在虚拟化服务的处理核心的空间共享和时间共享分配之间切换。 CloudSim的这些引人注目的特性将加快开发用于云计算的新资源分配策略和调度算法。
2.关键概念和术语
本节介绍构成云计算基础的各种架构元素的背景信息。它还提出了需要扩展到由一个或多个服务提供商拥有的多个地理上分布的数据中心的各种应用的需求。由于在真实云环境中的各种操作情景下的资源分配和应用程序缩放技术及其性能评估的开发是困难和难以重复;我们建议使用模拟作为实现相同的替代方法。
2.1云计算
云计算可以被定义为“一种并行和分布式系统,包括互连和虚拟化计算机的集合,其基于通过服务提供商和服务提供商之间的协商而建立的服务等级协议被动态提供和呈现为一个或多个统一计算资源;消费者“[1]。新兴的云计算基础设施的一些示例是Microsoft Azure [2],Amazon EC2,Google App Engine和Aneka [3]。诸如社交网络,游戏门户,商业应用,内容交付和科学工作流等新兴云应用在架构的最高层运行。许多现实应用程序的实际使用模式随时间变化,大多数时间以不可预测的方式。这些应用程序根据时间关键性和用户的交互模式(在线/离线)具有不同的服务质量(QoS)要求。
2.2分层设计
物理云资源以及核心中间件功能构成了提供IaaS的基础。用户级中间件旨在提供PaaS功能。顶层通过利用由较低层服务提供的服务集中于应用服务(SaaS)。 PaaS / SaaS服务通常由与IaaS提供商不同的第三方服务提供商开发和提供[13]。
用户级中间件:此层包括诸如Web 2.0接口(Ajax,IBM Workplace)之类的软件框架,可帮助开发人员为基于浏览器的应用程序创建丰富的,具有成本效益的用户界面。该层还提供了编程环境和组合工具,以便于在云中创建,部署和执行应用程序。
核心中间件:此层实施平台级服务,提供运行时环境,为使用用户级中间件构建的应用程序服务提供云计算能力。该层的核心服务包括动态SLA管理,会计,计费,执行监控和管理以及定价。在该层操作的服务的众所周知的示例是Amazon EC2,Google App Engine和Aneka [3]。
系统级:云计算环境中的计算能力由一组数据中心提供,这些数据中心通常安装有数百到数千台服务器[9]。在系统级层,存在为数据中心供电的大量物理资源(存储服务器和应用程序服务器)。这些服务器由更高级别的虚拟化[8]服务和工具包透明地管理,允许在服务器的虚拟实例之间共享它们的容量。这些VM彼此隔离,这有助于实现容错行为和隔离的安全上下文。
2.3云的联合(互联)
当前的云计算提供商在因特网上的不同地理位置处具有多个数据中心,以便最佳地满足世界各地的客户需求。然而,现有系统不支持用于动态协调不同数据中心之间的负载分解的机制和策略,以便确定托管应用服务的最佳位置以实现合理的服务满意度。此外,云服务提供商不能预测消费他们的服务的用户的地理分布,因此负载协调必须自动发生,并且服务的分布必须响应于负载行为的变化而改变。图2描述了这样一种面向服务的云计算架构,包括服务消费者代理和提供商的协调器服务,支持云的实用驱动的互联网[12]:应用调度,资源分配,工作负载迁移
云协调器组件由每个数据中心实例化:(i)将基础架构和平台级的云服务导出到联合体; (ii)跟踪数据中心的负载,并与其他云提供商进行协商,以便跨多个数据中心动态扩展服务,以处理需求高峰;和(iii)监视应用程序执行情况,并监督已交付的协议SLA。代理服务消费者(用户)的云代理通过Cloud Exchange识别合适的云服务提供商,并与云协调员协商,以分配满足托管应用程序的QoS需求的资源。云交换(CEx)充当了将服务提供商和消费者聚集在一起的做市商。它聚合来自云代理的基础架构需求,并根据云协调器当前发布的可用供应进行评估。
将从上述联合云计算系统中受益的应用包括诸如Facebook和MySpace之类的社交网络,内容传递网络(CDN)。社交网站向数百万用户提供动态内容,其访问和交互模式难以预测。一般来说,社交网络网站是使用多层Web应用程序(如WebSphere)和持久层(如MySQL关系数据库)构建的。通常,每个组件将运行在不同的虚拟机中,可以托管在由不同的云计算提供商拥有的数据中心。此外,每个插件开发人员可以自由选择哪个云计算提供商提供更适合运行他/她的插件的服务。因此,典型的社交网络web应用由数百种不同的服务形成,这些服务可以由世界各地的数十个面向云的数据中心托管。每当工作负载的时间和空间局部性存在变化时,每个应用组件必须动态扩展以向用户提供良好的体验质量。
2.4模拟和相关工作的案例
在过去十年中,Grids [5]已经演变为为计算和数据密集型科学应用提供高性能服务的基础设施。支持新的网格组件,策略和中间件的研究和开发;已经提出了几个Grid模拟器,例如GridSim [9],SimGrid [7]和GangSim [4]。 SimGrid是用于在Grid平台上仿真分布式应用程序的通用框架。同样,GangSim是一个网格仿真工具包,为基于网格的虚拟组织和资源的建模提供支持。另一方面,GridSim是用于异构网格资源的事件驱动仿真工具包。它支持网格实体,用户,机器和网络的建模,包括网络流量。
尽管上述工具包能够在由多个网格组织组成的分布式环境中建模和模拟网格应用程序行为(执行,调度,分配和监视),但这些都不能支持基础结构和应用程序级别的要求云计算模式。特别地,在现有的网格仿真工具包中对支持按需虚拟化的资源和应用管理的建模非常少或没有支持。此外,云承诺以按需付费模式向云客户提供基于订阅的服务。因此,云基础架构建模和仿真工具包必须为经济实体(如云代理和云交换)提供支持,以实现客户和提供商之间的服务的实时交易。在本文讨论的当前可用的模拟器中,只有GridSim支持经济驱动的资源管理和应用调度模拟。
与云相关的另一个应该考虑的方面是云计算系统,应用程序和服务的研究和开发处于起步阶段。 有一些重要的问题,需要详细调查沿着云软件堆栈。 云开发人员感兴趣的主题包括为进入用户的请求提供虚拟化资源,应用程序调度,资源发现,云间协商和云联合的经济策略。 支持和加速与云计算系统,应用和服务相关的研究; 重要的是设计和开发必要的软件工具来帮助研究人员。
3.CloudSim架构
图3显示了CloudSim软件框架和架构组件的分层实现。在最底层是SimJava离散事件仿真引擎[6],它实现了更高级仿真框架所需的核心功能,例如事件的排队和处理,创建系统组件(服务,主机,数据中心,代理,虚拟机),组件之间的通信以及模拟时钟的管理。接下来是实现GridSim工具包[9]的库,它支持:(i)用于建模多个网格基础设施的高级软件组件,包括网络和相关的流量简档;和(ii)基本网格组件,例如资源,数据集,工作负载跟踪和信息服务。
通过编程扩展GridSim层暴露的核心功能,CloudSim在下一级实现。 CloudSim为虚拟化基于云的数据中心环境(如针对虚拟机,内存,存储和带宽的专用管理接口)的建模和模拟提供了新的支持。 CloudSim层在模拟期间管理核心实体(VM,主机,数据中心,应用程序)的实例化和执行。该层能够同时实例化和透明地管理由数千个系统组件组成的大规模云基础设施。基本的问题,如根据用户请求向虚拟机配置主机,管理应用程序执行和动态监视由该层处理。云提供商想要研究不同策略在分配主机方面的效果,需要通过编程扩展核心虚拟机配置功能在这一层实施他的策略。在这一层上有一个明显的区别,即如何将主机分配给云中的不同竞争VM。云主机可以在基于用户定义的QoS规范执行应用的多个VM之间并发地共享。
模拟堆栈中的最上层是用户代码,暴露主机的配置相关功能(机器数量,其规格等),应用程序(任务数量及其要求),VM,用户数量及其应用程序类型和代理调度策略。云应用开发者可以生成:(i)用户请求分布,应用配置的混合;和(ii)该层的云可用性方案,并根据CloudSim中已经支持的自定义配置执行可靠的测试。由于云计算是一个快速发展的研究领域,严重缺乏可以有效解决基础设施和应用程序级复杂性的定义标准,工具和方法。 因此,在不久的将来,在学术界和工业界将有许多研究努力来定义核心算法,策略,基于执行上下文的应用程序基准化。 通过扩展CloudSim已经暴露的基本功能,研究人员将能够根据特定的场景和配置执行测试,从而允许在与云计算相关的所有关键方面开发最佳实践。我们在开发CloudSim时必须做出的一个设计决策是,是否广泛地重用现有的仿真库和框架。我们决定利用已经实现并且经过验证的库,如GridSim和SimJava来处理系统的低级需求。例如,通过使用SimJava,我们避免了在组件之间重新实现事件处理和消息传递。这节省了我们软件工程和测试的时间和成本。同样,使用GridSim框架允许我们重用其网络,信息服务,文件,用户和资源的实现。因为SimJava和GridSim已经被几个研究者广泛用于在网格资源管理中进行前沿研究。因此,可能损害模拟的有效性的错误已经被检测和修复。通过重用这些经过长期验证的框架,我们能够专注于与云计算相关的系统的关键方面。同时利用与云不直接相关的组件的可靠性。
3.1。建模云
与云相关的核心硬件基础设施服务在仿真器中由用于处理服务请求的数据中心组件建模。这些请求是虚拟机内沙盒中的应用程序元素,需要在数据中心主机组件上分配一定的处理能力。通过VM处理,我们意味着与VM生命周期相关的一组操作:主机到VM的配置,VM创建,VM销毁和VM迁移。
数据中心由一组主机组成,负责在其生命周期中管理VM。主机是表示云中的物理计算节点的组件:其被分配预配置的处理能力(以每秒指令数(MIPS)为单位的百万),内存,存储和用于将处理核心分配给虚拟机的调度策略。主机组件实现支持单核和多核节点的建模和仿真的接口。
在基于云的数据中心
剩余内容已隐藏,支付完成后下载完整资料
资料编号:[140859],资料为PDF文档或Word文档,PDF文档可免费转换为Word
课题毕业论文、外文翻译、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。