I've filed
https://gitlab.com/libvirt/libvirt/-/issues/65 for this
issue, thanks again for your help.
On Mon, Aug 17, 2020 at 7:38 PM Vjaceslavs Klimovs <vklimovs(a)gmail.com> wrote:
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?