什么是 CloudSim?
云计算 是镇上最热门的话题之一。它以高可扩展性和低延迟彻底改变了现代应用程序的开发和维护方式。
CloudSim是一个开源框架,用于模拟云计算基础设施和服务。它由 CLOUDS Lab 组织开发,完全用Java编写。它用于对云计算环境进行建模和模拟,作为在软件开发之前评估假设以重现测试和结果的一种手段。
例如,如果您要在云上部署应用程序或网站,并希望测试您的产品可以处理的服务和负载,并在冒险部署之前调整其性能以克服瓶颈,那么可以通过简单的编码来执行此类评估借助 CloudSim 包提供的各种灵活且可扩展的类,免费模拟该环境。
模拟相对于实际部署的优势:
CloudSim 的优势如下:
- 不涉及资本投资。使用像 CloudSim 这样的模拟工具,无需安装或维护成本。
- 易于使用和可扩展。您只需更改几行代码即可更改添加或删除资源等要求。
- 可以在早期阶段评估风险。在云计算中,真实测试平台的使用将实验限制在测试平台的规模上,并使结果的再现成为一项极其困难的工作。通过模拟,您可以根据测试用例测试您的产品并在实际部署之前解决问题,没有任何限制。
- 无需尝试错误的方法。您可以使用 CloudSim 在可重复且受控的环境中免费测试您的服务,而不是依赖可能导致低效服务性能和创收的理论和不精确的评估。
为什么要使用 CloudSim?
以下是选择 CloudSim 的几个原因:
- 开源且免费,因此它有利于在该领域工作的研究人员/开发人员。
- 易于下载和设置。
- 它更通用和可扩展,以支持建模和实验。
- 不需要任何高规格的计算机即可工作。
- 提供用于管理资源的预定义分配策略和利用模型,并允许实施用户定义的算法。
- 该文档为新开发人员提供了预编码示例,以熟悉基本类和函数。
- 在部署之前解决瓶颈,以降低风险、降低成本、提高性能并增加收入。
CloudSim 架构:
CloudSim Core Simulation Engine为虚拟化数据中心的VM、内存和带宽等资源的管理提供接口。
CloudSim层管理核心实体(如 VM、Cloudlet、主机等)的创建和执行。它还处理与网络相关的执行以及资源的供应及其执行和管理。
用户代码是用户控制的层。开发者可以根据场景在这一层编写硬件规范的要求。
模拟期间使用的一些最常见的类是:
- Datacenter :用于建模任何云环境的基础硬件设备,即Datacenter。该类提供了指定数据中心功能需求的方法以及设置虚拟机分配策略的方法等。
- Host :此类执行与管理虚拟机相关的操作。它还定义了为虚拟机配置内存和带宽以及为虚拟机分配 CPU 内核的策略。
- VM :此类通过提供定义 VM 的带宽、RAM、mips(每秒百万条指令)、大小的数据成员来表示虚拟机,同时还为这些参数提供 setter 和 getter 方法。
- Cloudlet :cloudlet 类表示在 VM 上运行的任何任务,如处理任务、内存访问任务或文件更新任务等。它存储定义任务特征的参数,例如长度、大小、mi (百万条指令)并提供类似于 VM 类的方法,同时还提供定义任务执行时间、状态、成本和历史记录的方法。
- DatacenterBroker :是代表用户/客户行事的实体。它负责虚拟机的功能,包括虚拟机的创建、管理、销毁和向虚拟机提交小云。
- CloudSim :这个类负责在定义所有必要的云实体后初始化和启动模拟环境,然后在所有实体被销毁后停止。
CloudSim的特点:
CloudSim 为以下仿真和建模提供支持:
- 大型虚拟化数据中心、服务器和主机。
- 用于将主机配置到虚拟机的可自定义策略。
- 能源感知计算资源。
- 应用容器和联合云(多个公有云的加入和管理)。
- 数据中心网络拓扑和消息传递应用程序。
- 通过停止和恢复模拟动态插入模拟实体。
- 用户定义的分配和供应策略。
安装:
先决条件:
- 了解核心Java语言功能,例如 OOP 和集合。
- 云计算基础。
- CloudSim 可在此处下载。
- 对于本教程,我们下载了 CloudSim 3.0.3 的 zip 文件。
注意:CloudSim 还使用 Apache 的 commons-math3 库的一些实用程序。从这里下载其二进制 zip 文件。
第 1 步:从 zip 文件夹中将 cloudsim-3.0.3解压缩到一个文件夹中。此外,将commons-math3-3.6.1 jar提取到同一文件夹中。
第 2 步:打开 Eclipse IDE 并转到File -> New -> Java Project。
第 3 步:为您的项目输入任何名称,然后取消选中其下方的Use default location框,然后单击Browse 。
浏览到您提取文件的文件夹,然后选择cloudsim-3.0.3文件夹。
不要点击Finish ,因为我们需要在我们的项目中添加一个jar文件。
步骤 4单击下一步并转到 库 -> 添加外部 JAR 。现在浏览到您提取commons-math3 jar 文件的同一文件夹并打开它。
第 5 步最后单击完成并等待项目构建。构建项目后,您可以在Project Explorer中单击您的项目,然后从下拉菜单中选择示例 -> org.cloudbus.cloudsim.examples ,您可以在其中找到预先编写的示例代码并尝试运行它们。
范围
凭借 CloudSim 框架的灵活性和通用性,很容易对繁重的云环境进行建模,否则需要在付费计算基础设施上进行试验。扩展基础设施和资源以适应任何场景的可扩展能力有助于快速有效地研究云计算中的多个主题。
CloudSim 已用于多个研究领域,例如:
- 任务调度
- 绿色计算
- 资源供应
- 安全日志取证。
参考:
- http://www.cloudbus.org/cloudsim/