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