首页 > 解决方案 > 如何在 CloudSim Plus 中迁移 Cloudlets?

问题描述

我想知道 CloudSim Plus 中是否有允许迁移 Cloudlets 的功能。这意味着 Cloudlet 可以在 VM 上执行或等待在 VM 上执行,并且可以发送到另一个 VM(可能位于另一个数据中心)以代替执行。在 CloudSim Plus API 中,我只看到迁移的 VM 分配策略,而没有看到 Cloudlet 迁移。

标签: javaclouddata-migrationcloudsim

解决方案


CloudSim Plus 没有任何方法可以迁移 Cloudlets。在真正的云计算环境中,我们不迁移 Cloudlets,而是迁移虚拟机。此 VM/容器可以托管当前正在执行的 Cloudlet,并且可以迁移到另一个数据中心以继续执行。通过这种方式(使用虚拟机/容器)迁移 Cloudlets 是有意义的。需要虚拟机/容器来封装应用程序的依赖项和配置。Cloudlet 迁移是一项复杂的任务,无法自动完成。很难确定必须迁移以允许应用程序 (Cloudlet) 执行的依赖项和配置。

据 CloudSim 和 CloudSim Plus 的主要开发者介绍:

但是,CloudSim Plus 不支持容器抽象,也不打算在短期或中期提供支持。CloudSim 4 包含容器支持,但实现此功能的方式(实际上是通过复制和粘贴整个类包)使我们将 CloudSim Plus 创建为一个独立的分支。

了解 Cloudlet 在运行时何时映射到 Vm 也很重要,它不能更改,因为这将允许 Cloudlet 迁移到 CloudSim 不允许的不同 Vm。作为替代方案,您可以尝试定义自己的策略以在运行时/动态地将传入的 Cloudlet 映射到 Vms(选择 Vms 来执行 Cloudlet)。

您可以通过扩展DatacenterBrokerSimple类和更改defaultVmMapper()方法来做到这一点。如果您的策略未能将 Cloudlet 映射到 Vm,它将调用defaultVmMapperin DatacenterBrokerSimple.

中的setVmMapper()方法DatacenterBrokerSimple允许您定义一个策略以在运行时将 Cloudlets 映射到 Vm(它设置适当的映射器方法)。此方法可用于在运行时更改策略。

要了解有关此的更多信息,请参阅 2 个 CloudSim Plus Google 群组 论坛1、2


推荐阅读