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/a183e0d80e639050cb5388a0cb9e2a0b979e0... https://github.com/openstack/nova/blob/a183e0d80e639050cb5388a0cb9e2a0b979e0... 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.