CloudSim

  • CloudSim是墨尔本大学云计算和分布式系统实验室推出的云计算模拟软件。它可以使研究者规避实际部署的诸多不便(比如说资金缺乏等因素),在单机上即可实现对大规模云集群的模拟和相应算法的测试。好了,闲话少说。下面,我将分节对CloudSim的使用和学习心得进行一个简单的介绍。

CloudSim入门

1. 重点介绍的几个基础类:
  • Cloudlet


    对应的是云端的应用
  • Vm


    对应的是虚拟机,封装了虚拟机的属性和行为
  • Broker


    对应的是用户代理,是云端用户的代表.包括虚拟机和云应用在内的资源都要绑定到Broker.
  • Host


    对应的是物理主机
  • Datacenter


    对应的是数据中心,所有的物理主机资源必须绑定到数据中心.数据中心至少要创建1个.
2. 进行模拟编程的基本步骤:
  • 初始化CloudSim
  • 创建数据中心Datacenter
  • 创建用户代理Broker
  • 创建虚拟机Vm
  • 创建应用Cloudlet
  • 将云端应用绑定到指定的虚拟机
  • 开启模拟仿真
  • 结束模拟仿真
  • 打印输出
3. 物理主机的创建

需要的参数 @parameter :

  1. 主机编号;

  2. 内存;

  3. 网络带宽;

  4. 外存容量;

  5. cpu列表;

  6. 虚拟机调度策略(主机上的)

     new Host(
    hostId,
    new RamProvisionerSimple(ram),
    new BwProvisionerSimple(bw),
    storage,
    peList,
    new VmSchedulerTimeShared(peList)
    );
4. 数据中心的创建

首先创建数据中心特性:

需要的参数 @parameter :

  1. 主机架构

  2. 操作系统

  3. 虚拟机监视器种类

  4. 时区

  5. cpu的使用费用

  6. 内存的使用费用

  7. 外存的使用费用

  8. 带宽的使用费用

     new DatacenterCharacteristics(
    arch, os, vmm, hostList, time_zone, cost, costPerMem,
    costPerStorage, costPerBw);

创建数据中心:

  1. 数据中心的名字

  2. 数据中心特性

  3. 虚拟机的创建策略

  4. 存储设备列表

     new Datacenter(name, characteristics, new VmAllocationPolicySimple(hostList), storageList, 0);
5. 虚拟机的创建

需要的参数 @parameter:

  1. 虚拟机编号

  2. 用户

  3. MIPS(Tips:CPU是由MIPS来标定其计算能力的)

  4. 镜像大小(MB)

  5. 内存大小(MB)

  6. 网络带宽

  7. cpu数量

  8. 虚拟机监视器类型

  9. 应用调度策略(虚拟机上的)

     new Vm(vmid, brokerId, mips, pesNumber, ram, bw, size, vmm, new CloudletSchedulerTimeShared());
6. 应用的创建

需要的参数 @parameter :

  1. 应用编号

  2. 执行时的应用长度(MI)

  3. 要使用到的处理器数量

  4. 提交应用前的文件大小(byte)

  5. 应用执行完成后的文件大小(byte)

  6. cpu的使用模型/策略

  7. ram的使用模型/策略

  8. 网络带宽的使用模型/策略

     new Cloudlet(id, length, pesNumber, fileSize, outputSize, utilizationModel, utilizationModel, utilizationModel);
7. 用户的创建

一般情况下,Broker的创建需要自定义以适应不同的用户策略.

05-11 20:37