I tried to migrate my KVM host from a host with AMD cpu to a host with Intel CPU but when I run virsh start guest_name I got error: unsupported configuration: CPU model ... is not supported by hypervisor.

I know that KVM supports such a migration (in the FAQ they even talk about live migration between 64 bit AMD/Intel CPUs). What should I do?

up vote 4 down vote accepted

You should edit the part of the xml definition of your guest so that it contains a subset of CPU capabilities that are found in both CPUs (Intel and AMD). You can use virsh to find this subset. Here's how:

At the 1st host

$ 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

Everything else happens at the 2nd host

$ virsh capabilities | virsh cpu-baseline /dev/stdin > /tmp/host2.xml
$ cat /tmp/host1.xml /tmp/host2.xml > /tmp/both-cpus.xml

Now edit both-cpus.xml and:

  1. keep only the <cpu>....</cpu> sections
  2. from these sections remove the lines with <vendor>....</vendor>

Finally run this:

$ virsh cpu-baseline /tmp/both-cpus.xml

If you get this error "XML error: Missing CPU architecture" add <arch>x86_64</arch> in both <cpu>...</cpu> sections. Ofcourse x86_64 is for modern AMD and Intel CPUs, if you work with some other architecture adjust appropriately (thanks to harald for this tip).

The output of the above command must be used inside the xml definitions of the guest.

References

  • 1
    To get this to work I had to add "<arch>x86_64</arch>" to both <cpu>...</cpu> sections. Otherwise, virsh cpu-baseline spat out "error: XML error: Missing CPU architecture". This is with libvirt 4.4.0 on Arch. – Harald Jul 3 at 17:52

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.