如何在CloudSim Plus中迁移Cloudlets?

2020年11月27日 35点热度 0条评论

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

解决方案如下:

无论如何,CloudSim Plus都无法迁移Cloudlets。在实际的云计算环境中,我们不迁移Cloudlets,而是迁移容器。该容器可以是一个Vm,可以托管当前正在执行的Cloudlets,并且可以迁移到另一个数据中心以继续执行。通过这种方式(使用容器),可以迁移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,它将默认为defaultVmMapper中的DatacenterBrokerSimple

setVmMapper()中的DatacenterBrokerSimple方法使您可以定义策略,以便在运行时将Cloudlets映射到Vm(它设置了适当的mapper方法)。此方法可用于在运行时更改策略。

要了解更多信息,请参阅2个CloudSim Plus Google网上论坛:
1
2