CloudSim 支持在单一物理节点仿真和大规模云计算数据中心的实例化,提供虚拟化引擎以完成虚拟机服务的创建与管理,支持云计算的资源管理和调度模拟。CloudSim 封装了内部的模拟过程,开发人员可以只关注策略、算法等内容的开发。开发人员可依靠一定的规范自行开发调度算法添加在 DataCen-terBroker 中,并在不同的模拟云环境中调用此方法进行任务调 度,测试调度算法的性能。
CloudSim 结构自底向上由 SimJava, GridSim,CloudSim,用户代码四个层次组成,下图为cloudsim的体系结构图:
最底层为核心模拟引擎,中间为Cloudsim仿真层,仿真层主要是对云数据中心的环境进行建模,比如虚拟机,内存,磁盘等专有的接口管理。该层主要任务为分配虚拟机,管理执行的任务,检测资源使用情况。
Cloudsim 中的最接近用户的一层是用户代码层。这一层包括了主机的基本信息(包括主机数,主机的参数信息)、虚拟机数、用户信息(包括用户数、用户类型等)、调度策略等。通过这些信息,用户可以完成:1.**按需求分配负载以及应用的配置**;2、**模拟云环境、测试相关配置**;3、**实现自定义的应用供应服务,例如虚拟机迁移策略**。
Cloudsim基础类是Cloudsim仿真器的重要组成部分:
源码较长,不在此贴出
1.BwProvisioner:这是一个抽象类,它是用来实现虚拟机带宽分配策略,为数据中心中所有存在网络带宽资源竞争的虚拟机集合分配带宽。云提供商或者学者可以根据需求增加带宽的分配策略来拓展该类。Bw ProvisonerSimple 是 Cloudsim 中最简单的带宽