CloudSim
- CloudSim是墨尔本大学云计算和分布式系统实验室推出的云计算模拟软件。它可以使研究者规避实际部署的诸多不便(比如说资金缺乏等因素),在单机上即可实现对大规模云集群的模拟和相应算法的测试。好了,闲话少说。下面,我将分节对CloudSim的使用和学习心得进行一个简单的介绍。
CloudSim入门
下面介绍的例子以cloudSim中的示例程序为主,cloudSim版本为3.0.3.
1. 重点介绍的几个基础类:
- Cloudlet对应的是云端的应用
- Vm对应的是虚拟机,封装了虚拟机的属性和行为
- Broker对应的是用户代理,是云端用户的代表.包括虚拟机和云应用在内的资源都要绑定到Broker.
- Host对应的是物理主机
- Datacenter对应的是数据中心,所有的物理主机资源必须绑定到数据中心.数据中心至少要创建1个.
2. 进行模拟编程的基本步骤:
- 初始化CloudSim
- 创建数据中心Datacenter
- 创建用户代理Broker
- 创建虚拟机Vm
- 创建应用Cloudlet
- 将云端应用绑定到指定的虚拟机
- 开启模拟仿真
- 结束模拟仿真
- 打印输出
3. 物理主机的创建
需要的参数 @parameter :
- 主机编号;
- 内存;
- 网络带宽;
- 外存容量;
- cpu列表;
虚拟机调度策略(主机上的)
new Host( hostId, new RamProvisionerSimple(ram), new BwProvisionerSimple(bw), storage, peList, new VmSchedulerTimeShared(peList) );
4. 数据中心的创建
首先创建数据中心特性:
需要的参数 @parameter :- 主机架构
- 操作系统
- 虚拟机监视器种类
- 时区
- cpu的使用费用
- 内存的使用费用
- 外存的使用费用
带宽的使用费用
new DatacenterCharacteristics( arch, os, vmm, hostList, time_zone, cost, costPerMem, costPerStorage, costPerBw);
创建数据中心:
- 数据中心的名字
- 数据中心特性
- 虚拟机的创建策略
存储设备列表
new Datacenter(name, characteristics, new VmAllocationPolicySimple(hostList), storageList, 0);
5. 虚拟机的创建
需要的参数 @parameter:
- 虚拟机编号
- 用户
- MIPS(Tips:CPU是由MIPS来标定其计算能力的)
- 镜像大小(MB)
- 内存大小(MB)
- 网络带宽
- cpu数量
- 虚拟机监视器类型
应用调度策略(虚拟机上的)
new Vm(vmid, brokerId, mips, pesNumber, ram, bw, size, vmm, new CloudletSchedulerTimeShared());
6. 应用的创建
需要的参数 @parameter :
- 应用编号
- 执行时的应用长度(MI)
- 要使用到的处理器数量
- 提交应用前的文件大小(byte)
- 应用执行完成后的文件大小(byte)
- cpu的使用模型/策略
- ram的使用模型/策略
网络带宽的使用模型/策略
new Cloudlet(id, length, pesNumber, fileSize, outputSize, utilizationModel, utilizationModel, utilizationModel);
7. 用户的创建
一般情况下,Broker的创建需要自定义以适应不同的用户策略.