我一直认为,主流虚拟机管理程序都不支持 AMD 和 Intel 服务器之间的实时迁移。然而,今天我遇到了KVM 常见问题解答这表明 KVM 支持该功能。事实上,有一个演示2008 年就这么做过。
从 2008 年到现在已经 3 年了。我想知道现在主要的虚拟机管理程序(ESXi、Xen、Hyper-V 等)是否支持 AMD 和 Intel 服务器之间的实时迁移?
答案1
ESX/ESXi能进行了大量调整(使用大量“高级设置”和 VM CPU 位设置)以允许 AMD 和 Intel 之间的 vmotion - 问题是它导致了比它修复的更大的问题。
ESX/ESXi 不允许“开箱即用”的原因是不同的 CPU 系列提供不同的 CPU 功能,在 ESX/ESXi 的情况下,这些功能会传递给虚拟机,以允许它们正确使用。现在,如果现代英特尔 CPU 上的虚拟机认为它可以使用例如 SSE4.2 命令,然后通过 vMotion 迁移到不支持该功能的 CPU,那么您将遇到严重崩溃。
解决这个问题的方法是设置一个“最高公约数”基线,即在集群中,选择功能最差的 CPU 并且只向虚拟机公开其功能,而忽略更新、功能更强大的 CPU 所提供的功能 - 从而允许虚拟机四处移动。
如果你手动“修剪”全部AMD 和 Intel CPU 之间的功能差异,以找到绝对的基准 CPU 规格,那么您当然可以在这些芯片之间移动虚拟机而不会出现崩溃的风险,我完全不了解 KVM,抱歉,但我会假设这就是它允许这样做的方式。这样做的缺点是您不允许虚拟机使用现代芯片可用的任何更高级的 CPU 功能,因此它们可能会移动,但速度会更慢,功能也会更少。
我希望这能帮助你理解为什么这不是一条常用的路,或者在我看来不是一条明智的路。
答案2
OpenVZ 是 Linux 的基于容器的虚拟化。您可以在 32 位和 64 位主机之间迁移 32 位“虚拟机”或容器,但显然您无法将 64 位虚拟机迁移到 32 位主机。更多详情。
它非常快(虚拟机的原生硬件速度)但不能运行 MS VM。