Problem while migration CPU compactibility error

asked 2015-09-04 23:26:11 -0600

NC gravatar image

I have two compute nodes deployed with a network and a controller node. I have all things in communicating state. All services are seemed to be running well. I need to experiment the migration among the two different compute nodes. I have one compute node as 64-bit xeon processor with Ubuntu OS and the other is 32-bit system Ubuntu-based. I can run my instance on 32-bit system only if I am able to set qemu as my hypervisor in libvirt otherwise it throws error of no valid host found. However I am able to run instances by setting Qemu in both compute nodes. Now I need to perform the migration among the two. As I have no storage node deployed I am performing block migration. But I fail to get why my controller node on firing migration command shows CPU compatibility error. Please anyone who had faced or worked in similar scenario guide me.


edit retag flag offensive close merge delete

1 answer

Sort by ยป oldest newest most voted

answered 2015-09-05 13:28:28 -0600

sgordon gravatar image

By default Nova tells Libvirt to use host-model as the libvirt_cpu_mode, this means that Libvirt and in turn QEMU expose to the guest CPU model based on the named CPU model of the host. This typically provides a good balance between performance, in exposing the majority of the CPU features present on the host, and migratability in not exposing features that may not be present on all CPUs of that particular model as there is some variation.

In this case however your destination CPU is not only not of the same model, but 32-bit instead of 64-bit. This will mean that it is missing many CPU features that exist on the source host and have been exposed to the guest. This is why the error is generated, because even if the guest was migrated it would likely fail to launch due to missing CPU extensions.

To work around this on both hosts you need to edit /etc/nova/nova.conf and set libvirt_cpu_mode to custom and set libvirt_cpu_model to a model that most closely represents the CPU model and feature set of the older 32-bit CPU. You can find the list of models Libvirt knows about in /usr/share/libvirt/cpu_map.xml. This will allow you to migrate guests between the two hosts but result in worse performance on the 64-bit host.

There is some more information to refer to here:

edit flag offensive delete link more

Get to know Ask OpenStack

Resources for moderators

Question Tools

1 follower


Asked: 2015-09-04 23:26:11 -0600

Seen: 257 times

Last updated: Sep 05 '15