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、第六步

开始模拟,并打印结果

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐