qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] crash with -incoming and -snapshot


From: Kashyap Chamarthy
Subject: Re: [Qemu-devel] crash with -incoming and -snapshot
Date: Mon, 15 Feb 2016 12:20:54 +0100
User-agent: Mutt/1.5.23.1 (2014-03-12)

On Mon, Feb 15, 2016 at 10:26:17AM +0100, Paolo Bonzini wrote:
> 
> 
> On 15/02/2016 10:12, Kevin Wolf wrote:
> > Am 14.02.2016 um 17:12 hat Paolo Bonzini geschrieben:
> >> On 14/02/2016 16:52, Paolo Bonzini wrote:
> >>> Reproducer:
> >>>
> >>> x86_64-softmmu/qemu-system-x86_64 \
> >>>    -incoming tcp:localhost:12345 -snapshot \
> >>>    /vm/virt_test/images/jeos-21-64-base.qcow2
> >>>
> >>>
> >>> Weird as it may seem, this actually makes some sense for testing
> >>> migration with non-shared storage...
> >>
> >> In fact, migration with non-shared storage (migrate -b) is broken in
> >> general, even without -snapshot.
> > 
> > Oh cool, does this mean that we can finally remove it? :-)
> 
> I wouldn't object, but people are using it. :)

One case I know for sure: Upstream libvirt (consequently, OpenStack
Nova) falls back to 'migrate -b'/("inc:" true) approach when there's no
NBD support on the destination during live block migration:


    # From qemuMigrationRun() function in libvirt source
    $ less libvirt/src/qemu/qemu_migration.c
    [...]
    if (migrate_flags & (QEMU_MONITOR_MIGRATE_NON_SHARED_DISK |
                         QEMU_MONITOR_MIGRATE_NON_SHARED_INC)) {
        if (mig->nbd) {
            /* This will update migrate_flags on success */
            if (qemuMigrationDriveMirror(driver, vm, mig,
                                         spec->dest.host.name,
                                         migrate_speed,
                                         &migrate_flags,
                                         nmigrate_disks,
                                         migrate_disks,
                                         dconn) < 0) {
                goto cleanup;
            }
        } else {
            /* Destination doesn't support NBD server.
             * Fall back to previous implementation. */
            VIR_DEBUG("Destination doesn't support NBD server "
                      "Falling back to previous implementation.");
        }
    }
    [...]


This fallback also kicks in when people enable TUNNELLED migration (as
NBD does not have support for it in libvirt, due to valid technical
reasons documented else where).

-- 
/kashyap



reply via email to

[Prev in Thread] Current Thread [Next in Thread]