调研--仿真--CloudSim

 

 

 

  • CloudSim层提供对虚拟基于云的数据中心诸如VM,内存,存储和带宽等管理接口。
  • CloudSim层在模拟阶段管理核心实体(比如VM,客户端,数据中心,应用)的实例和执行。
  • 这一层能够并发地实例化和透明地管理大规模云基础设施包括数以千计的系统组件。

 

——————————————————————————————————————————————————————————————————

(1)Cloudlet类:构建云环境下的任务。

(2)DataCenter类:数据中心,提供虚拟化的网格资源,处理虚拟机信息的查询,包含虚拟机对资源的分配策略,云计算采用VMProvisioner处理虚拟机。

(3)DataCenterBroker类:隐藏了虚拟机的管理,如创建、任务提交、虚拟机的销毁等,实现资源发现和信息交互,是模拟调度的核心。

(4)Host类:扩展了机器对虚拟机除处理单元(PE)之外的参数分配策略,如带宽、存储空间、内存等,一台Host可对应多台虚拟机。

(5)VirtualMachine类:虚拟机类,运行在Host上,与其它虚拟机共享资源,每台虚拟机由一个拥有者所有,可提交任务,并由VMScheduler类定制该虚拟机的调度策略

(6)VMScheduler类:虚拟机的调度策略,用来管理执行任务,实现了任务接口。

(7)VMCharacteristics类:提供虚拟机描述。

(8)VMMAllocationPolicy类:虚拟机监视器策略类,描述同一Host上的多台虚拟机共享资源的策略。

(9)VMProvisioner类:实现数据中心的主机到虚拟机的映射。

 

——————————————————————————————————————————————————————————————————

CloudSim共享策略

  • CloudSim提供的虚拟化引擎可以帮助用户建立和管理数据中心节点。
  • 虚拟机对主机资源存在竞争,以及各个任务单元对虚拟机资源同样存在竞争
  • CloudSim对创建的虚拟机和提交的任务单元提供了灵活的时间和空间共享策略
  • 用户可以根据不同的共享策略组合来开发相应的调度算法,从而实现调度算法的模拟

 

——————————————————————————————————————————————————————————————————

CloudSim仿真步骤

  • 第一步:初始化CloudSim的工具包;
  • 第二步:创建数据中心DataCenter;
  • 第三步:创建代理DataCenterBroker;
  • 第四步:创建虚拟机列表VmList,然后将虚拟机列表提交到数据中心代理;
  • 第五步:创建云任务列表CloudletList,然后将云任务列表提交给数据中心代理;
  • 第六步:开始模拟StartSimulation;
  • 第七步:结束模拟StopSimulation,输出结果

 

 

 

 

 

 

 

2、当initialize()执行完成后,在initCommonVariable方法中就会创建一个CloudSimShutdown(从SimEntity派生而来)实例,然后将这个实例添加到模拟中。

3、当添加到模拟中时,它的id变为0(从前面的-1)。 两个集合 entities 和 entitiesByName 使用此SimEntity更新。此时, initCommonVariable方法执行完成。

4、现在转到init方法中,就会创建一个 CloudInformationService(它也派生自SimEntity)实例,然后这个新实体也被添加到模拟中。当被添加到模拟中时,SimEntity的id被改为1,初始化时为-1,再根据SimEntity更新entities和entitiesByName。

 

 

CloudSim应用——createDatacenter()方法补充

方法createDatacenter()用于创建云数据中心框架及其中的物理主机。该方法不是CloudSim提供的官方方法,而是需要我们根据自己的需求进行定义,下面,我们提供一个创建数据中心的实例。

 

 

 

 

CloudSim应用——主机资源分配相关策略补充

  • 主机资源主要是指处理能力、带宽和内存
  • PeProvisioner、RamProvisioner、BwProvisioner。这三个都是抽象类只提供了最基本的实现,用户可以通过继承这些类实现自定义的分配策略。
  • PeProvisionerSimple 、RamProvisionerSimple、BwProvisionerSimple分别继承了上面三个类
  • 三种资源分配策略默认都使用 a best-effort policy策略
  • 以PeProvisionerSimple为例,主要方法是allocateMipsForVm:该方法共有三种重载模式,用于将处理器能力(用mips表示)分配给虚拟机。
  • 分配策略:将处理器能力量化,每为一台虚拟机成功分配后,处理器能力就相应的减少,如果当前可用处理器能力低于要分配的值,则分配失败,同时以列表的形式记录了同一台虚拟机多次分配的结果

 

 

createBroker()方法补充

代理指的是代理模式,意味着我们不需要深入CloudSim的底层细节,只要需用通过代理即可对CloudSim进行操作。代理类DatacenterBroker继承了SimEntity类,并实现了其中的processEvent()方法。

 

  • processEvent()方法用来处理与其自身逻辑相关的事件,比如与DatacenterBroker相关的事件有:请求数据中心特征事件,虚拟机创建情况反馈事件,任务完成返回事件,仿真结束事件等。
  • 方法接受SimEvent对象,simEvent.getTag()方法返回int值

processResourceCharacteristics方法详解

 

 

 

 

 

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值