《cloudsim介绍、安装与仿真步骤》由会员分享,可在线阅读,更多相关《cloudsim介绍、安装与仿真步骤(4页珍藏版)》请在金锄头文库上搜索。
1、1.CLOUDSIM 介绍 2009 年 4 月 8 日,澳大利亚墨尔本大学的网格实验室和 Gridbus 项目宣布推出云计算仿真软件,称为 CloudSim。它是在离散事件模拟包 SimJava 上开发的函数库,可在Windows 和 Linux 系统上跨平台运行, CloudSim 继承了 GridSim 的编程模型,支持云计算的研究和开发。CloudSim 是在 GridSim 模型基础上发展而来,提供了云计算的特性,支持云计算的资源管理和调度模拟。云计算与网格计算的一个显著区别是云计算采用了成熟的虚拟化技术,将数据中心的资源虚拟化为资源池,打包对外向用户提供服务,CloudSim 体现
2、了此特点,扩展部分实现了一系列接口,提供基于数据中心的虚拟化技术、虚拟化云的建模和仿真功能。通常,数据中心的一台主机的资源可以根据用户的需求映射到多台虚拟机上,因此,虚拟机之间存在对主机资源的竞争关系。CloudSim 提供了资源的监测、主机到虚拟机的映射功能。CloudSim 的 CIS( Cloud Information Service)和DataCenterBroker 实现资源发现和信息交互,是模拟调度的核心。用户自行开发的调度算法可在 DataCenterBroker 的方法中实现,从而实现调度算法的模拟。2.安装(1)JDK 安装和配置(2)从 http:/ 下载 JDK 最新版
3、本 jdk1.6.0_13,CloudSim 需要运行在JDK1.6版本以上。安装下载的 JDK,设置环境变量。在 Path 中加入路径:C:Program FilesJavajdk1.6.0_13bin; ClassPath 中加入路径:C:Program FilesJavajdk1.6.0_13libdt.jar; C:Program FilesJavajdk1.6.0_13libtools.jar; 。(2)下载 cloudsim :http:/ flanaga.jar 包放入 C:cloudsim-3.1.1cloudsim-3.1.1jars在 PATH 中添加环境变量为:C:clo
4、udsim-3.1.1cloudsim-3.1.1jarscloudsim-3.1.1.jar;C:cloudsim-3.1.1cloudsim-3.1.1jarscloudsim-3.1.1-sources.jar;C:cloudsim-3.1.1cloudsim-3.1.1jarscloudsim-examples-3.1.1.jar;C:cloudsim-3.1.1cloudsim-3.1.1jarscloudsim-examples-3.1.1-sources.jar;(3)在 Myclipse 下创建 java project在创建工程时,指定其位置点击完成即可至此安装完成3、使用
5、CloudSim 仿真的一般步骤(1) 初始化 GridSim 库GridSim.init(num_user, calendar, trace_flag, exclude_from_file,exclude_from_processing, report_name);(2) 创建数据中心,在 CloudSim 仿真平台中,一个数据中心由一个或多个 Machine 组成,一个 Machine 是由一个或多个 PEs 或 CPUs 组成。DataCenter datacenter0 = createDatacenter(Datacenter_0);(3) 创建代理 BrokerDatacenter
6、Broker broker = createBroker();int brokerId = broker.get_id();(4) 创建虚拟机vmlist = new VirtualMachineList();/创建时为虚拟机指定 BrokerVirtualMachine vm1 = new VirtualMachine(new VMCharacteristics(vmid,brokerId,size,memory,bw,vcpus,priority,vmm,new TimeSharedVMScheduler();/将虚拟机加入虚拟机列表vmlist.add(vm1);/向相应代理 Broke
7、r 提交虚拟机列表broker.submitVMList(vmlist);(5) 创建云任务cloudletList = new CloudletList();/创建时指定任务的用户 ID,BrokerID Cloudlet cloudlet1 = new Cloudlet(id, length, file_size, output_size);cloudlet1.setUserID(brokerId);/将任务加入任务列表cloudletList.add(cloudlet1);/向代理 Broker 提交任务列表broker.submitCloudletList(cloudletList);(6) 启动仿真GridSim.startGridSimulation();(7) 在仿真结束后统计结果CloudletList newList = broker.getCloudletList();GridSim.stopGridSimulation();printCloudletList(newList);datacenter0.printDebts();