On Mon, Aug 17, 2020 at 3:24 AM Peter Krempa <pkrempa(a)redhat.com> wrote:
On Sat, Aug 15, 2020 at 15:38:19 -0700, Vjaceslavs Klimovs wrote:
> Hey all,
> With libvirt 6.5.0 and qemu 5.1.0 migration of non shared disks in
> tunneled mode does not work for me:
>
> virsh # migrate alpinelinux3.8 qemu+tls://ratchet.lan/system --live
> --persistent --undefinesource --copy-storage-all --tunneled --p2p
> error: internal error: qemu unexpectedly closed the monitor: Receiving
> block device images
> Error unknown block device
> 2020-08-15T21:21:48.995016Z qemu-system-x86_64: error while loading
> state section id 1(block)
> 2020-08-15T21:21:48.995193Z qemu-system-x86_64: load of migration
> failed: Invalid argument
>
> This is both with UEFI and BIOS guests.
The migration of storage using the qemu migration stream is not
supported by qemu when -blockdev is used. Since we can only transport
one stream when migrating with '-tunelled', it's no longer possible to
combine those two. Unfortunately automagic block migration was deemed a
legacy feature.
> I understand that newer ways of migrating non shared disks is via NBD
> directly with QEMU, however I am certain
> that this used to work before libvirt 6.0. There is a series of
> commits to /src/qemu/qemu_migration.c on Dec 8, 2019,
> could they have something to do with this?
I presume those are my commits which fix the NBD migration though.
Unfortunately they can't fix the old one.
> Is migration of non shared disks supported and supposed to work in
> tunneled mode or is it not a supported configuration
> and native NBD directly with QEMU should be used in all cases?
NBD should be used nowadays. The old style storage migration was
neglected for a very long time now.
Thank you for the clarification, very helpful.
Local libvirtd of course knows about --tunneled and -blockdev being
used - would it be possible for it to provide a clear error message
that this combination is not supported when such migration is
attempted?