我一直认为在任何主要的虚拟机pipe理程序中都不支持AMD和Intel服务器之间的实时迁移。 不过,今天我遇到了KVM常见问题解答 ,说KVM支持。 事实上,2008年还有一个演示 。
自2008年以来已经有3年时间了。我想知道任何主要的虚拟机pipe理程序(ESXi,Xen,Hyper-V等)现在是否支持AMD和Intel服务器之间的实时迁移?
可以对ESX / ESXi进行大量调整(使用大量的“高级设置”和VM CPU位设置),以便在AMD和Intel之间进行vmotion – 问题在于它会导致修复的更大问题。
ESX / ESXi不允许“开箱即用”的原因是,不同的CPU系列提供了不同的CPUfunction,在ESX / ESXi的情况下,这些function会传递给VM,以便正确使用它们。 现在,如果现代英特尔CPU上的虚拟机认为它可以使用实例SSE4.2命令,然后vMotioned到一个不支持该function的CPU,那么你会得到一个重大的崩溃。
解决这个问题的方法是设置一个“最高公分母”的基准线,即在一个集群中,selectfunction最差的CPU,只将其function暴露给虚拟机,忽略可用于更新,function更强大的CPU的function – 从而允许虚拟机四处走走。
如果您手动“修剪”AMD和Intel CPU之间的所有function差异以find绝对的基准CPU规格,那么您当然可以在这些芯片之间移动虚拟机而不会崩溃,我根本不知道KVM对不起,但我会认为这是如何让这个。 这样做的缺点是,你不允许你的虚拟机使用现代芯片的任何更先进的CPUfunction,所以他们可能会移动是的,但他们会更慢,function更less。
我希望这可以帮助你理解为什么这不是一个常用的,或在我看来是一个明智的道路。
OpenVZ是用于Linux的基于容器的虚拟化。 您可以在32位和64位主机之间迁移32位“虚拟机”或容器,但显然无法将64位虚拟机迁移到32位主机。 更多在这里 。
它非常快(虚拟机的本地硬件速度),但无法运行MS虚拟机。