CloudSim介绍和使用

本文介绍了CloudSim的基本概念及其在云计算仿真中的应用。主要内容包括CloudSim的特点、环境配置、扩展方法及仿真实例步骤。
本文主要介绍一下我在使用CloudSim时翻译、整理和理解的一些信息,以及我的使用经验,希望能对有需要的朋友们有所帮助~
1、我翻译和理解的一些信息:
2009年4月8日,澳大利亚墨尔本大学的网格实验室和Gridbus项目宣布推出云计算仿真软件,称为CloudSim。它是在离散事件模拟包SimJava上开发的函数库,可在Windows和Linux系统上跨平台运行,CloudSim继承了GridSim的编程模型,支持云计算的研究和开发,并提供了以下新的特点: (1)支持大型云计算的基础设施的建模与仿真;(2)一个自足的支持数据中心、服务代理人、调度和分配策略的平台。其中CloudSim 独特功能有:一是提供虚拟化引擎,旨在数据中心节点上帮助建立和管理多重的、独立的、协同的的虚拟化服务;二是在对虚拟化服务分配处理核心时能够在时间共享和空间共享之间灵活切换。CloudSim平台有助于加快云计算的算法、方法和规范的发展。CloudSim的组件工具均为开源的。CloudSim的软件结构框架和体系结构组件包括SimJava、GridSim、CloudSim、UserCode四个层次。
CloudSim是在GridSim模型基础上发展而来,提供了云计算的特性,支持云计算的资源管理和调度模拟。云计算与网格计算的一个显著区别是云计算采用了成熟的虚拟化技术,将数据中心的资源虚拟化为资源池,打包对外向用户提供服务,CloudSim体现了此特点,扩展部分实现了一系列接口,提供基于数据中心的虚拟化技术、虚拟化云的建模和仿真功能。通常,数据中心的一台主机的资源可以根据用户的需求映射到多台虚拟机上,因此,虚拟机之间存在对主机资源的竞争关系。CloudSim提供了资源的监测、主机到虚拟机的映射功能。CloudSim的CIS(Cloud Information Service)和DataCenterBroker实现资源发现和信息交互,是模拟调度的核心。用户自行开发的调度算法可在DataCenterBroker的方法中实现,从而实现调度算法的模拟。
依据CloudSim源代码介绍几个核心类:
(1)Cloudlet类:构建云环境下的任务。
(2)DataCenter类:数据中心,提供虚拟化的网格资源,处理虚拟机信息的查询,包含虚拟机对资源的分配策略,云计算采用VMProvisioner处理虚拟机。
(3)DataCenterBroker类:隐藏了虚拟机的管理,如创建、任务提交、虚拟机的销毁等。
(4)Host类:扩展了机器对虚拟机除处理单元(PE)之外的参数分配策略,如带宽、存储空间、内存等,一台Host可对应多台虚拟机。
(5)VirtualMachine类:虚拟机类,运行在Host上,与其它虚拟机共享资源,每台虚拟机由一个拥有者所有,可提交任务,并由VMScheduler类定制该虚拟机的调度策略。
(6)VMScheduler类:虚拟机的调度策略,用来管理执行任务,实现了任务接口。
(7)VMCharacteristics类:提供虚拟机描述。
(8)VMMAllocationPolicy类:虚拟机监视器策略类,描述同一Host上的多台虚拟机共享资源的策略。
(9)VMProvisioner类:实现数据中心的主机到虚拟机的映射。

2、CloudSim环境配置
(1)JDK安装和配置
从http://java.sun.com/ 下载JDK最新版本jdk1.6.0_13,CloudSim需要运行在JDK1.6版本以上。安装下载的JDK,设置环境变量。在Path中加入路径:C:\Program Files\Java\jdk1.6.0_13\bin; ClassPath中加入路径:C:\Program Files\Java\jdk1.6.0_13\lib\dt.jar; C:\Program Files\Java\jdk1.6.0_13\lib\tools.jar; 。
(2)CloudSim配置
从http://www.gridbus.org/cloudsim/ 下载CloudSim 1.0 beta版,下载的是一个Zip包,解压压缩包即可。设置环境变量,在ClassPath中加入路径:C:\CLOUDSIM\jars\cloudsim.jar; C:\CLOUDSIM\jars\gridsim.jar; C:\CLOUDSIM\jars\simjava2.jar; 。

3、CloudSim的扩展
CloudSim是开源的,可以在windows Xp和linux上运行,用户可以根据自己的研究内容自行扩展CloudSim,加入自己的代码后,需要重新编译并发布平台。下面给出编译和生成平台的方法:
从http://ant.apache.org/ 下载Ant工具,解压到目录D:\apache-ant-1.7.1,设置环境变量,在PATH中加入:D:\apache-ant-1.7.1\bin;。将命令行切换到扩展的CloudSim路径(build.xml所在目录),在命令行下键入命令D:\CloudSim>ant,批量编译CloudSim源文件,生成的文件按照build.xml的设置存储到指定位置,编译成功后在命令行下键入D:\CloudSim>ant makejar命令打包生成new_cloudsim.jar。扩展的CloudSim平台生成成功。重设环境变量,在ClassPath中增加路径:D:\CloudSim\jars\new_cloudsim.jar;D:\CloudSim\jars\cloudsim.jar;D:\CloudSim\jars\g-ridsim.jar; D:\CloudSim\jars\simjava2.jar;,下一步在新的平台下编写自己的仿真验证程序。

4、使用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();
(4) 创建虚拟机
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);
(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();
若是根据自己研究对平台进行了扩展,平台重生成后,就可以在仿真程序中调用自己编写的类、方法、成员变量等。

转自:http://bbs.chinacloud.cn/showtopic-188.aspx
<think>嗯,用户问的是CloudSim平台如何使用。首先,我需要确定用户对CloudSim的了解程度。可能他们刚开始接触云计算仿真,或者有相关研究需要。CloudSim是一个用于模拟云计算环境的工具,主要用于资源调度、任务分配等方面的研究。 接下来,我应该从基础开始介绍。首先说明CloudSim的基本概念,比如它是基于Java的,需要安装JDK配置环境。然后分步骤讲解如何使用,可能包括下载安装、创建数据中心、配置虚拟机、提交云任务等。 用户可能需要具体的例子来理解,所以添加一个示例代码会有帮助。同时,要提醒他们注意版本兼容性,比如Java版本CloudSim的依赖。另外,常见问题如初始化错误或依赖缺失,也需要给出解决方案。 可能用户还会关心如何扩展自定义,比如实现自己的调度策略。这时候需要引导他们查看官方文档示例,参与社区讨论。最后,总结使用步骤,并鼓励动手实践。确保回答结构清晰,逐步引导,同时保持语言简洁明了。</think>以下是CloudSim平台的使用介绍,按步骤说明核心功能及操作流程: --- ### **一、CloudSim简介** CloudSim是由墨尔本大学开发的**云计算仿真工具**,用于模拟数据中心、虚拟机(VM)、资源调度等场景,支持算法测试(如任务调度、能耗优化)无需真实硬件环境。 --- ### **二、环境准备** 1. **安装Java** CloudSim基于Java开发,需安装JDK 8+ ```bash sudo apt install openjdk-11-jdk # Ubuntu示例 ``` 2. **下载CloudSim** 官网或GitHub获取最新版本(推荐CloudSim 5.0+): ```bash git clone https://github.com/Cloudslab/cloudsim ``` 3. **导入项目** 使用Eclipse/IntelliJ导入Maven项目,自动解决依赖。 --- ### **三、核心使用步骤** #### **1. 创建数据中心** ```java Datacenter datacenter = createDatacenter("Datacenter_1"); // 定义主机(Host)、CPU/RAM/存储资源配置 List<Host> hostList = new ArrayList<>(); hostList.add(new Host(CPU_CORES, RAM, STORAGE, BANDWIDTH)); ``` #### **2. 配置虚拟机(VM)** ```java List<Vm> vmList = new ArrayList<>(); vmList.add(new Vm(VM_ID, MIPS, CPU_CORES, RAM, BANDWIDTH)); ``` #### **3. 提交云任务(Cloudlet)** ```java List<Cloudlet> cloudletList = new ArrayList<>(); cloudletList.add(new Cloudlet(LENGTH, FILE_SIZE, OUTPUT_SIZE, UTILIZATION_MODEL)); ``` #### **4. 绑定调度策略** ```java DatacenterBroker broker = new DatacenterBroker("Broker"); broker.submitVmList(vmList); broker.submitCloudletList(cloudletList); ``` #### **5. 启动仿真** ```java CloudSim.startSimulation(); CloudSim.stopSimulation(); printResults(broker.getCloudletReceivedList()); // 输出任务执行结果 ``` --- ### **四、示例:模拟任务调度** ```java public class BasicExample { public static void main(String[] args) { CloudSim.init(1, Calendar.getInstance(), false); Datacenter datacenter = createDatacenter(); DatacenterBroker broker = new DatacenterBroker("Broker"); broker.submitVmList(createVms()); broker.submitCloudletList(createCloudlets()); CloudSim.startSimulation(); List<Cloudlet> results = broker.getCloudletReceivedList(); new CloudletsTableBuilder(results).build(); // 生成任务耗时统计表 } } ``` --- ### **五、关键注意事项** 1. **时间单位** 仿真时间单位为抽象值(非真实秒),需通过`CloudSim.startSimulation()`控制步长。 2. **扩展功能** - 自定义调度器:继承`VmAllocationPolicy`或`CloudletScheduler` - 能耗模型:集成`PowerModel`计算服务器功耗 3. **调试技巧** - 启用日志:`Log.enable()` - 使用CloudReports工具可视化结果 --- ### **六、学习资源** 1. 官方文档:`cloudsim.org/documentation` 2. 示例代码:GitHub仓库`/examples`目录 3. 论文参考: - *"CloudSim: A Toolkit for Modeling and Simulation of Cloud Computing Environments"* --- 通过上述步骤,您可快速搭建仿真环境并验证算法。建议从基础示例开始,逐步增加复杂度。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值