我试图将我的 KVM 主机从带有 AMD cpu 的主机迁移到带有 Intel CPU 的主机,但是当我运行时virsh start guest_name
我得到了error: unsupported configuration: CPU model ... is not supported by hypervisor
.
我知道 KVM 支持这样的迁移(在常见问题解答中,他们甚至谈到了 64 位 AMD/Intel CPU 之间的实时迁移)。我应该怎么办?
我试图将我的 KVM 主机从带有 AMD cpu 的主机迁移到带有 Intel CPU 的主机,但是当我运行时virsh start guest_name
我得到了error: unsupported configuration: CPU model ... is not supported by hypervisor
.
我知道 KVM 支持这样的迁移(在常见问题解答中,他们甚至谈到了 64 位 AMD/Intel CPU 之间的实时迁移)。我应该怎么办?
您应该编辑来宾的 xml 定义部分,使其包含在两个 CPU(Intel 和 AMD)中都可以找到的 CPU 功能的子集。您可以使用
virsh
来查找此子集。就是这样:在第一个主机
其他一切都发生在第二台主机上
现在编辑
both-cpus.xml
并:<cpu>....</cpu>
部分<vendor>....</vendor>
最后运行这个:
如果您收到此错误“XML 错误:缺少 CPU 架构”
<arch>x86_64</arch>
,请在两个<cpu>...</cpu>
部分中添加。当然x86_64
适用于现代 AMD 和 Intel CPU,如果您使用其他架构进行适当调整(感谢harald提供的这个技巧)。上述命令的输出必须在来宾的 xml 定义中使用。
参考
https://www.berrange.com/posts/2010/02/15/guest-cpu-model-configuration-in-libvirt-with-qemukvm/
https://www.redhat.com/archives/libvir-list/2011-March/msg01022.html