哪种算法最合适呢?

时间:2016-08-25 09:01:30

标签: algorithm vmware

这与VMware中VM的位置有关。以下是一些重要事实:

  • 有多个数据存储区,每个数据存储区的大小各不相同
  • 每个数据存储区包含零个或多个任意大小的虚拟机,但不超过其所在的数据存储区的大小
  • 数据存储区中所有虚拟机的总和不会超过数据存储区的总大小
  • 有80%'完整'适用于每个数据存储区的阈值,这只是我们不想超过的容量阈值

现在问题。

有时我们需要因任何原因摆脱特定的数据存储。我们的第一种方法是尝试将给定数据存储上的所有VM重新定位到其他数据存储区,但有时这并不像看起来那么简单。

一个简单的例子:

  • 3x 1TB数据存储
  • DS1拥有1x 1TB VM
  • DS2拥有2x 500GB VM
  • DS3有2x 500GB VM

突然需要删除DS1。将其VM直接撤出到任何其他数据存储区都会违反阈值。然后解决方案是移动500GB虚拟机中的一个,导致:

  • DS1拥有1x 1TB VM
  • DS2拥有3x 500GB VM
  • DS3拥有1x 500GB VM

然后在这种情况下将1TB VM迁移到DS3,最后得到:

  • DS1为空
  • DS2拥有3x 500GB VM
  • DS3具有1x 500GB VM和1x 1TB VM

在执行此操作时,您已撤离DS1,而没有超过您的阈值。

此示例很简单,但是可以存在更复杂的情况,例如,必须将VM移动到数据存储区然后再移回。

我想知道如何编写这种逻辑。我对算法知之甚少,但我相信这可以通过相对简单的方式完成。

0 个答案:

没有答案