您的位置:首页 > 大数据 > 云计算

cloudsim模拟云计算

2016-01-15 00:21 399 查看
Cloudsim是墨尔本大学开发的模拟云计算的工具,相信你在论文中已经读到不少了,这里不多说了

按照cloudSim程序中给出的例子,这里列举一下进行模拟的步骤。

1、第一步

初始化CloudSim,这一步在每次模拟之前都要被执行

直接调用Cloudsim.init()函数,是个静态方法,有三个参数,不需要考虑很多

2、第二步

创建数据中心(发现创建之后不需要调用,后续继续研究)

  1)创建一个主机列表 List<Host>

  2)创建Pe(CPU)列表,一个Host含有一个List<Pe>, Pe需要指定计算能力,用MIPS来表示

  3)创建Pe并添加到List<Pe>

  4)用List<Pe>创建一个Host,并添加到List<Host>。Host的构造函数为:

new Host(
hostId,
new RamProvisionerSimple(ram),
new BwProvisionerSimple(bw),
storage,
peList,
new VmSchedulerTimeShared(peList)
)
VmSchedulerTimeShared表示虚拟机使用时分方式共享物理机CPU。

  5)创建DatacenterCharacteristics,跟物理机架构相关,不怎么重要

  6)创建datacenter.代码为:

Datacenter datacenter = null;
try {
datacenter = new Datacenter(name, characteristics, new VmAllocationPolicySimple(hostList), storageList, 0);
} catch (Exception e) {
e.printStackTrace();
}
VmAllocationPolicySimple表示将VM分配到已经使用Pe最少的物理机中,这个是需要重点实现的类。

3、第三步

创建用户代理DatacenterBroker,DatacenterBroker代表一个用户,用来提交List<Vm>,List<CloudLet>等。

4、第四步

创建虚拟机Vm,指定计算能力(用MIPS表示)、内存、硬盘、带宽、CPU数。添加到List<Vm>,并让代理提交。

5、第五步

创建Cloudlet,Cloudlet是基于云计算的任务,可以认为是应用。需要指定length,length就是MIPS数(准确的说是指令数),添加到List<CloudLet>,并让代理提交。

Cloudlet可以设置用户ID(Broker的ID)表示拥有这个Cloudlet的用户,或者设置Vm ID,表示运行这个Cloudlet的VM.

6、第六步

开始模拟,并打印结果
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: