`
mintelong
  • 浏览: 392604 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

云计算仿真工具CloudSim介绍和使用

阅读更多

CloudSim介绍和使用
本文主要介绍一下CloudSim,希望能对有需要的朋友们有所帮助~
    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();
    若是根据自己研究对平台进行了扩展,平台重生成后,就可以在仿真程序中调用自己编写的类、方法、成员变量等。

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/rolinzcy12/archive/2009/07/21/4367631.aspx

分享到:
评论
1 楼 fed-russ-dyl2009 2010-11-20  
看了您的介绍,觉得CloudSim在任务调度的仿真这一块好像比较有优势,让我疑惑的是能否用CloudSim对云计算平台的存储性能进行仿真?或者是能否用于云存储平台的仿真?若有相关资料还请不吝分享,Thanks(=many thank~) U~

相关推荐

    云计算仿真工具CloudSim介绍和使用.doc

    云计算仿真工具CloudSim介绍和使用,帮助你尽快掌握CloudSim这一云计算仿真利器!

    云计算仿真工具cloudsim介绍和使用

    cloudsim的介绍和使用,大体介绍了cloudsim,是新手入门的一篇不错的文章,值得一看

    云计算仿真工具cloudsim介绍

    云计算仿真工具cloudsim介绍,环境配置,做仿真的步骤

    云计算仿真器CloudSim.doc

    云计算仿真器CloudSim 2009年4月8日,澳大利亚墨尔本大学的网格实验室和Gridbus项目宣布推出云计算仿真软 件,称为CloudSim。它是在离散事件模拟包SimJava上开发的函数库,可在Windows和Li nux系统上跨平台运行,...

    云计算仿真工具CloudSim的研究与应用.pdf

    云计算仿真工具CloudSim的研究与应用.pdf

    云计算仿真工具cloudsim 3.0.3 【无错误,带例子!】

    看看压缩包大小你就知道怎么样!完美运行后从eclipse导出来的项目...它的首要目标是在云基础设施(软件、硬件、服务)上,对不同应用和服务模型的调度和分配策略的性能进行量化和比较,达到控制使用云计算资源的目的。

    一篇关于云计算仿真器CloudSim论文的翻译稿

    2011年将是云计算年,CloudSim作为云计算仿真器,有效模拟了云计算环境,但现有资源大多数是英文论文,为方便英文水平比较弱的人,本人翻译了一篇介绍CloudSim工具的英文论文,希望对大家研究有所帮助

    examples.rar_cloudsim_cloudsim examples_云计算仿真

    Buyya领导开发的云计算,云计算仿真工具cloudsim里的实例

    云计算方面很好的资料。

    云计算仿真工具CloudSim介绍和使用 CloudSim介绍和使用 CloudSim环境配置

    cloudsim云计算仿真软件

    cloudsim-3 云计算仿真工具

    云计算仿真工具

    与云计算相关的算法有很多,使用cloudsim可以对云计算中的算法进行仿真。

    CloudSim DVFS

    澳大利亚墨尔本大学开发的云计算仿真工具CloudSim的改进版,用来模拟节点技术,适合研究云计算或绿色云计算的可研人员

    CloudSim扩展包

    CloudSim扩展包,完美运行《云计算》代码,云计算仿真工具

    CloudSim2.1

    2010年7月28日最新发布的云计算仿真工具,内含源代码和实例

    云计算第二版

    第9章 云计算仿真器CloudSim 265 9.1 CloudSim简介 265 9.2 CloudSim体系结构 265 9.2.1 CloudSim核心模拟引擎 266 9.2.2 CloudSim层 268 9.2.3 用户代码层 271 9.3 CloudSim技术实现 271 9.4 CloudSim的使用方法 ...

    CloudSim:CloudSim

    CloudSim:用于云计算基础架构和服务的建模和仿真的框架 介绍 最近,云计算成为提供可靠,安全,容错,可持续和可扩展的计算服务的领先技术,这些服务以软件,基础架构或平台即服务(SaaS,IaaS,PaaS)的形式呈现。...

    使用仿真工具分析IaaS云上的能源消耗-研究论文

    在本文中,使用该仿真工具,用户可以设置各种虚拟机和资源消耗的模拟场景,以及提供商、客户、SAN、网络性能等的模拟环境。 各个数据中心、客户的资源利用率和整体资源利用率报告也生成。 PUE 和 DCIE 也计算数据...

    基于经济学的云资源管理模型研究

    基于经济学的云资源管理模型研究 结合云计算的特点, 在...算法, 采用CloudSim模拟工具进行仿真实验和性能分析, 实验结果表明, 该模型有助于促进云环境下资源的高效管理、 优化 配置, 最大限度地满足用户QoS需求。

    matlab资源分配的代码-CloudsimWithGA_Policy:具有用户界面和遗传算法策略的Cloudsim项目

    是一种基于云计算范式模拟分布式计算环境的图形工具。 它用作其模拟引擎,并以插件方式提供易于使用的用户界面、报告生成功能和扩展创建。 该应用程序模拟具有任意数量数据中心的基础设施即服务 (IaaS) 提供商。 每...

    VirtualMachinePlacement:虚拟机分配的机器学习优化

    仿真工具: 算法:遗传算法,循环调度,紧凑遗传算法,支持向量回归 - 遗传算法 参考 云计算中具有容错的优先级调度算法。 尼米莎·辛格拉,西玛·巴瓦。 CloudSim:用于对云计算环境进行建模和仿真以及评估资源...

Global site tag (gtag.js) - Google Analytics