virsh migrate with flags --live and --copy-storage-(all|inc) fails on CentOS 7 with error<br />
"error: internal error: unable to execute QEMU command 'migrate': this feature or command is not currently supported"<br />
<br />
Background:<br />
<br />
Based on <a href="https://bugzilla.redhat.com/show_bug.cgi?id=1022392">https://bugzilla.redhat.com/show_bug.cgi?id=1022392</a> [<a href="https://bugzilla.redhat.com/show_bug.cgi?id=1022392" target="_blank">^</a>] qemu native storage migration has been disabled in favor to nbd storage migration. This seems sane. However, current spec file and source for qemu-kvm disables drive-mirror feature of qemu-monitor unles the build is marked for rhev. (See qapi-schema.json from line 1845 (#_rhev-only CONFIG_LIVE_BLOCK_OPS) to line 1956.<br />
Combination of these two changes efectively disables any possibilito to live-migrate KVM Guests with non-shared storage.<br />
<br />
I can understand the decission to limit live migration of guests only to RHEV (some sales reasons I suppose). In CentOS however I'd expect this to work since there is no RHEV equivalent build which would have this feature enabled.<br />
<br />
What happens in libvirt:<br />
1. Libvirt performs cookie exchange<br />
2. Finds that drive-mirror feature is not available on either side<br />
3. Decides to fall-back to old-style storage migration<br />
4. Upon this request qemu returns "this feature or command is not currently supported" due to previously mentined patch.<br />
<br />
Proposed solution:<br />
IMHO there are two possible solutions (or combination of both)<br />
1. (My preference) Update qemu-kvm.spec file for CentOS builds to include CONFIG_LIVE_BLOCK_OPS features.<br />
2. Update qemu-kvm.spec to include "--enable-live-block-migration" in config parameters. (This makes the migration process backward compatible with CentOS 6, provided that machine type and other params of the guest are supported on CentOS 6 too. However, this falls back to the supposedly buggy old method)
↧