我尝试将我的 KVM 主机从具有 AMD CPU 的主机迁移到具有 Intel CPU 的主机,但是当我运行时,virsh start guest_name
我得到了error: unsupported configuration: CPU model ... is not supported by hypervisor
。
我知道 KVM 支持这样的迁移(在常见问题解答中,他们甚至谈到了 64 位 AMD/Intel CPU 之间的实时迁移)。我应该怎么做?
答案1
您应该编辑客户机的 xml 定义部分,使其包含两个 CPU(Intel 和 AMD)中都存在的 CPU 功能子集。您可以使用 来virsh
查找此子集。方法如下:
在第一主机
$ virsh capabilities | virsh cpu-baseline /dev/stdin > /tmp/host1.xml
# copy this file to Host#2 -- e.g.:
$ scp /tmp/host1.xml $HOST2:/tmp/host1.xml
其余一切都发生在第二台主机上
$ virsh capabilities | virsh cpu-baseline /dev/stdin > /tmp/host2.xml
$ cat /tmp/host1.xml /tmp/host2.xml > /tmp/both-cpus.xml
现在编辑both-cpus.xml
并:
- 仅保留
<cpu>....</cpu>
部分 - 从这些部分中删除
<vendor>....</vendor>
最后运行这个:
$ virsh cpu-baseline /tmp/both-cpus.xml
如果您收到此错误“XML 错误:缺少 CPU 架构”添加<arch>x86_64</arch>
两个<cpu>...</cpu>
部分。当然,x86_64
这是针对现代 AMD 和 Intel CPU 的,如果你使用其他架构,请适当调整(感谢哈拉尔德请参阅此提示)。
上述命令的输出必须在客户的 xml 定义中使用。