资源描述
One Column Text Page,电子工业出版社,云计算,(,第二版,),配套课件,解放军理工大学 刘鹏 教授主编,华东交通大学 刘鹏 制作,第,9,章 云计算仿真器,CloudSim,云计算(第二版),购买网址:,当当网,京东商城,姊妹力作,实战,Hadoop,购买网址:,当当网,京东商城,提 纲,CloudSim,简介,CloudSim,体系结构,CloudSim,技术实现,CloudSim,的使用方法,CloudSim,的扩展,CloudSim,简介,CloudSim,-,澳大利亚墨尔本大学,Rajkumar Buyya,教授领导团队开发的云计算仿真器,它的首要目标是在,云基础设施(软件、硬件、服务)上,对不同应用和服务模型的调度和分配策略的性能进行量化和比较,达到控制使用云计算资源的目的,仿真框架有特性,(,1,)支持在单个物理计算节点上进行大规模云计算基础设施的仿真和实例化,(,2,)提供一个独立的平台,供数据中心、服务代理、调度和分配策略进行建模,(,3,)提供虚拟化引擎,可在一个数据中心节点创建和管理多个独立、协同的虚拟化服务,(,4,)可以在共享空间和共享时间的处理核心分配策略之间灵活地切换虚拟化服务,提 纲,CloudSim,简介,CloudSim,体系结构,CloudSim,技术实现,CloudSim,的使用方法,CloudSim,的扩展,CloudSim,体系结构,CloudSim,核心模拟引擎,1,),CloudSim,主类,负责管理事件队列和控制仿真事件的顺序执行。这些事件按照它们的时间参数构成有序队列,(,1,)支持实体失活操作,(,2,)支持不同状态实体的上下文切换,暂停或继续仿真流程,(,3,)支持运行中创建新实体,(,4,)支持运行中终止或重启仿真流程,CloudSim,核心模拟引擎,2,),DeferredQueue,实现,CloudSim,使用的延时事件队列,3,),FutureQueue,实现,CloudSim,使用的未来事件队列,4,),CloudInformationService,(,CIS,),提供资源注册、索引和发现能力的实体。支持两个基本操作:,publish(),允许实体使用,CIS,进行注册;,search(),允许类似于,CloudCoordinator,和,Brokers,的实体发现其他实体的状态和位置,该实体也会在仿真结束时通知其他实体,5,),SimEntity,代表一个仿真实体,该实体既能向其他实体发送消息,也能处理接收到的消息。所有的实体必须扩展该类并重写其中的三个核心方法:,startEntity(),、,processEvent(),和,shutdownEntity(),,它们分别定义了实体初始化、事件处理和实体销毁的行为,CloudSim,核心模拟引擎,6,),CloudSimTags,包含多个静态的时间或命令标签,,CloudSim,实体在接收和发送事件时使用这些标签决定要采取的操作类型,7,),SimEvent,给出了在两个或多个实体间传递仿真事件的过程。,SimEvent,存储了关于事件的信息,包括事件的类型、初始化时间、事件发生的时间、结束时间、事件转发到目标实体的时间、资源标识、目标实体、事件标签及需要传输到目标实体的数据,8,),CloudSimShutdown,用于结束所有终端用户和代理实体,然后向,CIS,发送仿真结束信号,9,),Predicate,抽象类且必须被扩展,用于从延时队列中选择事件,CloudSim,核心模拟引擎,10,),PredicateAny,表示匹配延时队列中任何一个事件。在,CloudSim,的类中有个可以公开访问的实例,CloudSim.SIM_ANY,,因此不需要为该类创建新的实例,11,),PredicateFrom,表示选择被特定实体放弃的事件,12,),PredicateNone,表示不匹配延时队列中的任何事件。在,CloudSim,中有个可以公开访问的静态实体,CloudSim.SIM_NONE,,因此用户不需要为该类创建任何新的实体,13,),PredicateNotFrom,选择已经被特定对象发送的事件,14,),PredicateType,根据特定标签选择事件,15,),PredicateNotType,选择不满足特定标签的事件,CloudSim,层,CloudSim,仿真层,-,为云数据中心环境的建模和仿真提供支持,包括虚拟机、内存、存储器和带宽的专用管理接口。该层主要负责处理一些基本问题,如主机到虚拟机的调度、管理应用程序的执行、监控动态变化的系统状态,网络层,-,模拟真实网络拓扑,,延时矩阵,中存储的信息模拟一个消息从一个,CloudSim,实体(如主机)到另一个实体(如云代理)过程中产生的网络延时,CloudSim,层,2.,云资源层,-,与云相关的核心硬件基础设施均由该层数据中心组件来模拟。数据中心实体由一系列主机组成,主机负责管理虚拟机在其生命周期内的一系列操作。每个主机都代表云中的一个物理计算节点,它会被预先配置一些参数,如处理器能力(用,MIPS,表示)、内存、存储器及为虚拟机分配处理核的策略等,-,为了整合多朵云,需要对云协调器(,CloudCoordinator,)实体进行建模。该实体不仅负责和其他数据中心及终端用户的通信,还负责监控和管理数据中心实体的内部状态。在监控过程中收到的信息将会活跃于整个仿真过程中,并被作为云交互时进行调度决策的依据,CloudSim,层,3.,云服务层,-,虚拟机分配是主机创建虚拟机实例的一个过程,在云数据中心,将特定应用的虚拟机分配给主机是由,虚拟机分配控制器,(,VmAllocationPolicy,)完成,-,考虑情况,:一台拥有两个,CPU,内核的主机要运行两个虚拟机,每个虚拟机需要两个内核并要运行,4,个任务单元。更具体来说,,VM1,上将运行任务,t1,、,t2,、,t3,、,t4,,而,VM2,上将运行任务,t5,、,t6,、,t7,、,t8,(,a,)中虚拟机和任务单元均采用空间共享策略。由于采用空间共享模式,且每个虚拟机需要两个内核,所以在特定时间段内只能运行一个虚拟机。因此,,VM2,只能在,VM1,执行完任务单元才会被分配内核。,VM1,中的任务调度也是一样的,由于每个任务单元只需要一个内核,所以,t1,和,t2,可以同时执行,,t3,、,t4,则在执行队列中等待,t1,、,t2,完成后再执行,(,b,)虚拟机采用空间共享策略,任务单元采用时间共享策略。因此,在虚拟机的生命周期内,所有分配给虚拟机的任务单元在其生命周期内动态地切换上下文环境,(,c,)虚拟机采用时间共享策略,任务单元使用空间共享策略。这种情况下,每个虚拟机都会收到内核分配的时间片,然后这些时间片以空间共享的方式分配给任务单元。由于任务单元基于空间共享策略,这就意味着对于一台虚拟机,在任何一个时间段内,内核只会执行一个任务,(,d,)虚拟机和任务单元均采用时间共享策略。所有虚拟机共享处理器能力,且每个虚拟机同时将共享的能力分给其任务单元。这种情况下,任务单元不存在排队延时,CloudSim,层,4.,虚拟机服务层,-,提供了对虚拟机生命周期的管理,如将主机分配给虚拟机、虚拟机创建、虚拟机销毁以及虚拟机的迁移等,以及对任务单元的操作,5.,用户接口结构层,-,提供了任务单元和虚拟机实体的创建接口,用户代码层,CloudSim,的最高层是用户代码层,该层提供了一些基本的实体,如主机(机器的数量、特征等)、应用(任务数和需求)、虚拟机,还有用户数量和应用类型,以及代理调度策略等。通过扩展这一层提供的基本实体,云应用开发人员能够进行以下活动,(,1,)生成工作负载分配请求和应用配置请求,(,2,)模拟云可用性场景,并基于自定义配置进行稳健性测试,(,3,)为云及联合云实现了自定义的应用调度技术,提 纲,CloudSim,简介,CloudSim,体系结构,CloudSim,技术实现,CloudSim,的使用方法,CloudSim,的扩展,CloudSim,云模拟器的类设计图,CloudSim,技术实现,1,),BwProvisioner,用于模拟虚拟机的带宽分配策略。可以通过扩展这个类反映其应用需求的变化,实现自己的策略(基于优先级或服务质量),2,),CloudCoordinator,整合了云数据中心,负责周期性地监控数据中心资源的内部状态和执行动态负载均衡的决策,3,),Cloudlet,模拟了云应用服务(如内容分发、社区网络和业务工作流等)。每一个应用服务都会拥有一个预分配的指令长度和其生命周期内所需的数据传输开销,4,),CloudletScheduler,扩展实现了多种策略,用于决定虚拟机内的应用服务如何共享处理器能力。支持两种调度策略:,空间共享,(,CloudletSchedulerSpaceShared,)和,时间共享,(,CloudletSchedulerTimeShared,)策略,CloudSim,技术实现,5,),Datacenter,模拟了云提供商提供的核心基础设施级服务(硬件)。它封装了一系列的主机,且这些主机都支持同构和异构的资源(内存、内核、容量和存储)配置,6,),DatacenterBroker,模拟了一个代理,负责根据服务质量需求协调,SaaS,提供商和云提供商。该代理代表,SaaS,提供商,它通过查询云信息服务(,Cloud Information Service,)找到合适的云服务提供者,并根据服务质量的需求在线协商资源和服务的分配策略,CloudSim,技术实现,7,),DatacenterCharacteristics,包含了数据中心资源的配置信息,8,),Host,模拟如计算机、存储服务器等物理资源。它封装了一些重要信息,如内存,/,存储器的容量、处理器内核列表及类型(多核机器)、虚拟机之间共享处理能力的分配策略、为虚拟机分配内存和带宽的策略等,9,),NetworkTopology,包含模拟网络行为(延时)的信息。它里面保存了网络拓扑信息,该信息由,BRITE,拓扑生成器生成,10,),RamProvisioner,代表为虚拟机分配主存的策略,11,),SanStorage,模拟了云数据中心的存储区域网,主要用于存储大量数据,类似于,Amazon S3,、,Azure blob storage,等,CloudSim,技术实现,12,),Sensor,该接口的实现必须通过实例化一个能够被云协调器使用的传感器组件,用于监控特定的性能参数(能量消耗、资源利用)。该接口定义了如下方法:,(,1,)为性能参数设置最小值和最大值。,(,2,)周期性地更新测量值。,(,3,)该类能够用于模拟由主流云提供商提供的真实服务,13,),Vm,模拟由主机组件托管和管理的虚拟机,14,),VmAllocationPolicy,代表虚拟机监视器使用的调度策略,该策略用于将虚拟机分配给主机,15,),VmSheduler,由一个主机组件实现,模拟为虚拟机分配处理核所用的策略(空间共享和时间共享),提 纲,CloudSim,简介,CloudSim,体系结构,CloudSim,技术实现,CloudSim,的使用方法,CloudSim,的扩展,环境配置,1,),JDK,安装和配置,http:/ FilesJavajdk1.6.0_24,。设置环境变量:新建系统变量,JAVA_HOME,,变量值设为,JDK,安装目录,即,C:Program FilesJavajdk1.6.0_24,;在,Path,中加入路径,%JAVA_HOME%bin,;,在,ClassPath,中加入路径,%JAVA_HOME%libdt.jar;%JAVA_HOME%libtools.jar,2,),CloudSim,安装和配置,从,http:/www.cloudbus.org/cloudsim/,下载,CloudSim,,本书以,CloudSim2.1.1
展开阅读全文