Live migration between centos and ubuntu compute nodes

smooney at redhat.com smooney at redhat.com
Fri Aug 25 18:30:03 UTC 2023


On Fri, 2023-08-25 at 16:33 +0000, Jim Kilborn wrote:
> Openstack peers:
> 
> I am migrating our production openstack environment from centos7 to ubuntu.
> I am on the train release currently, so I can have that release on both centos7 and ubuntu 18
> The issue is that I need to live migrate the vms if it's possible.
> 
> When I try, I get an error on the source compute node (centos 7).
> 
> Live Migration failure: Cannot check QEMU binary /usr/libexec/qemu-kvm: No such file or directory: libvirtError:
> Cannot check QEMU binary /usr/libexec/qemu-kvm: No such file or directory
yep that is a know issue.

this used to work many many years ago but then centos move the location fo qemu-kvm under /usr/libexec

its not actully that had to fix btu it cant be fixed in a backporable way.

the issue is that hte xml is generated on the souce node and we do not pass back the executor path form the destination
host.

a way to work around this would be to create a simlink at  /usr/libexec/qemu-kvm to where ubuntu stores it with
and you might need to rename the file too

i.e. on ububuntu you will proably want to do something like this
    sudo mkdir  -p /usr/libexec
    sudo ln -s /usr/bin/qemu-system-x86_64 /usr/libexec/qemu-kvm

that may or may not work depending on the machine type used by your vms
centos/rhel tend to use disto specific machine types instead fo the ones from  upstream qemu by default
> 
> Any ideas how to get around this until I get my vms migrated? Maybe create a link on the ubuntu 18 host?
> I'm sure I am not the first to leave centos 7 for ubuntu
the simple way to do this is cold migrate
its been a while since i tested in a mixed env but that used to work without this issue
when doing cold migate, unshelve or evacuate the xml is generted on the destination host
so this is not a problem for thos move operations. it wonly breaks live migraiton

the reason this has never been fixed is the fix woudl not be backporable and once we tell enduser that
the loose interest because it wont fix there current cloud. the fix itsels is pretty simple
we just need to get the emulator from libvirt and add it to the LibvirtLiveMigrateData object and make the
souce node use the emulator path form that if set.

https://github.com/openstack/nova/blob/a183e0d80e639050cb5388a0cb9e2a0b979e0e7a/nova/objects/migrate_data.py#L229C7-L273
https://github.com/openstack/nova/blob/a183e0d80e639050cb5388a0cb9e2a0b979e0e7a/nova/virt/libvirt/migration.py#L56

because this requies an object change that makes it not backportable upstream or downstream
if someone actully too the time to fix this we would reivew it.

i uses to test a mixed centos/ubuntu cloud 8+ years ago when i was first working on openstack but
we have never realy test this or said it shoudl work form an upstream perspecitve.


> 
> Thanks for any help on this.
> 
> 
> 
> 
> 
> 




More information about the openstack-discuss mailing list