logo资料库

cloudSim编程指导.pdf

第1页 / 共4页
第2页 / 共4页
第3页 / 共4页
第4页 / 共4页
资料共4页,全文预览结束
《云计算技术》课程实验指导书 指导教师:张晓明 20141106 实验 3 CloudSim 应用编程 一、 实验目的和要求 1. 在 Eclipse 开发工具上安装和配置 CloudSim 的应用环境,提高软件系统的应用能力; 2. 通过学习 CloudSim 内置的仿真实例,掌握云计算应用设计方法,获得云计算程序设计的基本能力; 二、 实验条件 1. 操作系统:Windows XP,或 Windows 7 2. 开发工具: (1) Java 开发工具:Eclipse SDK 3.7 版本以上; (2) JDK1.6.0 版本以上。CloudSim 需运行在 jdk1.6 版本以上,本文以 1.6.0_18 版本为例。下载 地址:http://java.sun.com/ (3) CloudSim3.0 以 上 , 本 实 验 采 用 了 CloudSim3.0.3 版 本 。 最 新 版 本 的 下 载 地 址 : http://code.google.com/p/cloudsim/downloads/list (4) flanaga.jar 包。下载地址:http://www.ee.ucl.ac.uk/~mflanaga/java/ 三、 实验内容和步骤 1. CloudSim 平台的安装和配置 (1) CloudSim 介绍 2009 年 4 月 8 日,澳大利亚墨尔本大学的网格实验室和 Gridbus 项目宣布推出云计算仿真软件, 称为 CloudSim。它是在离散事件模拟包 SimJava 上开发的函数库,可在 Windows 和 Linux 系统上跨 平台运行,CloudSim 继承了 GridSim 的编程模型,支持云计算的资源管理和调度模拟,支持云计算的 研究和开发。云计算与网格计算的一个显著区别是云计算采用了成熟的虚拟化技术,将数据中心的资源 虚拟化为资源池,打包对外向用户提供服务。CloudSim 体现了此特点,扩展部分实现了一系列接口, 提供基于数据中心的虚拟化技术、虚拟化云的建模和仿真功能。通常,数据中心的一台主机的资源可以 根据用户的需求映射到多台虚拟机上,因此,虚拟机之间存在对主机资源的竞争关系。CloudSim 提供 了资源的监测、主机到虚拟机的映射功能。CloudSim 的 CIS(Cloud Information Service )和 DataCenterBroker 实现资源发现和信息交互,是模拟调度的核心。用户自行开发的调度算法可在 DataCenterBroker 的方法中实现,从而实现调度算法的模拟。 (2) JDK 安装和配置 安装 jdk1.6.0_18,默认目录为 C:\Program Files\Java\jdk1.6.0_18。 JDK 的配置具体方法如下: 1)在“我的电脑”图标上单击右键,单击“高级”选项卡,在单击“环境变量”。 2)系统变量->新建->变量名:JAVA_HOME 变量值:在路径中加入: C:\Program Files\Java\jdk1.6.0_18 3)系统变量->编辑->变量名:Path 变量值:在路径中加入:%JAVA_HOME%\bin; 4)系统变量->编辑->变量名:CLASSPATH 变量值:在路径中加入: %JAVA_HOME%\lib\dt.jar; %JAVA_HOME%\lib\tools.jar; 5)测试配置是否正确。在 DOS 窗口中输入:java –version 如果屏幕上显示了 Java 语言的版本号(如图 1),说明 JDK 配置成功,可以关闭 DOS 窗口。 (3) 将 下 载 的 CloudSim 包 解 压 到 D 盘 , 再 将 下 载 的 flanaga.jar 包 放 入 其 JAR 文 件 夹 cloudsim-3.0.3\jars 中。 为了便于操作,可以在 PATH 中添加环境变量为: 1
《云计算技术》课程实验指导书 指导教师:张晓明 20141106 D:\cloudsim-3.0.3\jars\cloudsim-3.0.3.jar; D:\cloudsim-3.0.3\jars\cloudsim-3.0.3-sources.jar; D:\cloudsim-3.0.3\jars\cloudsim-examples-3.0.3.jar; D:\cloudsim-3.0.3\jars\cloudsim-examples-3.0.3-sources.jar; (4) 在 Eclipse 下创建 java project。在创建工程时,指定其位置。 由于 java 和 Eclipse 版本问题,导入的包中会出现好多小叉叉。解决方法是:在 Eclipse 界面下 ->Window->Preferences->Compiler,将“Compiler compliance level:”5.0 改为 6.0 即可。 2. CloudSim 样例程序测试 选中其中一个样例程序,运行并查看结果。下面以样例 CloudSimExample1 为例,如图 1 和图 2 所 示。其含义是:创建 1 个含 1 台主机的数据中心,并在其上运行 1 个云任务。 图 1 选择 CloudSimExample1 图 2 CloudSimExample1 的运行情况 2
《云计算技术》课程实验指导书 指导教师:张晓明 20141106 3. 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) 创建代理 Broker DatacenterBroker broker = createBroker(); int brokerId = broker.get_id(); (3) 创建虚拟机 vmlist = new VirtualMachineList(); //创建时为虚拟机指定 Broker VirtualMachine vm1 = new VirtualMachine( new VMCharacteristics(vmid,brokerId,size,memory,bw,vcpus,priority,vmm, new TimeSharedVMScheduler())); //将虚拟机加入虚拟机列表 vmlist.add(vm1); //向相应代理 Broker 提交虚拟机列表 broker.submitVMList(vmlist); (4) 创建云任务 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); (5) 启动仿真 GridSim.startGridSimulation(); (6) 在仿真结束后统计结果 CloudletList newList = broker.getCloudletList(); GridSim.stopGridSimulation(); printCloudletList(newList); datacenter0.printDebts(); 3
4. 设计内容 《云计算技术》课程实验指导书 指导教师:张晓明 20141106 重点是 CloudSim 实例化主机的实验。 对云计算环境进行测试,评估 CloundSim 效率。首先设置一个单一的数据中心,一个数据中心代 理和一个用户。每次实验,数据中心的主机数量从 100 到 100000 个,来测试云模拟基础设施的运算能 力(不考虑用户的工作量)。这里主要测试完全实例化并加载 CloudSim 环境时实验计算机的物理内存 的使用总量。图 3 和图 4 分别显示了在一个数据中心随着主机的增加、实例化该实验需要的时间数量和 内存数量的变化情况。 图 3 模拟实例的时间消耗 图 4 模拟实例的内存消耗 图 4 可知,内存消耗的增长是线性的,100000 机器需要 75M 的内存,说明 CloudSim 模拟云计算 环境内存消耗低。而对于模拟实例化时间开销,图 3 显示时间开销随着主机数量呈指数增长,但实例 100000 个主机的时间仍然低于 5 分钟,实验规模还是比较合理。 4
分享到:
收藏