[libvirt] [PATCH v3 00/14] Implement post-copy migration

Jiri Denemark jdenemar at redhat.com
Wed Mar 2 11:42:21 UTC 2016


(See "Add public APIs for post-copy migration" patch for more details
about post-copy migration.)

Post-copy support was originally written by Cristian Klein in 2014, but
no one touched the series since then. Some patches in this series are
modified versions of the old patches from Cristian, some patches had to
be rewritten from scratch since libvirt code changed a lot (we started
using migration events), and some patches are completely new.

While post-copy migration is included in QEMU 2.5.0, it didn't support
everything libvirt needs. Thus you need QEMU from git to use post-copy.
Luckily, the QEMU migration capability we need to enable to use
post-copy is still prefixed with "x-", which means it's still considered
experimental. We are pretty sure the interface QEMU provides is OK, but
we'd like to wait until seamless SPICE migration is fixed for post-copy
before removing the experimental prefix. This should hopefully happen in
time for QEMU 2.6.0.

This series applies on top of "Fix and enhance statistics of a completed
job" series I sent yesterday. Both series on top of current master can
be fetched from the "post-copy-migration" branch of my staging
repository at https://gitlab.com/jirkade/libvirt

Version 3:
- VIR_DOMAIN_EVENT_SUSPENDED_POSTCOPY_FAILED will only be emitted on the
  destination host
- discard completed stats of an incoming post-copy migration

Version 2:
- VIR_MIGRATE_POSTCOPY_AFTER_PRECOPY flag dropped
- --postcopy-after-precopy implemented entirely in virsh

Cristian Klein (6):
  Add public APIs for post-copy migration
  qemu: Add QMP functions for post-copy migration
  qemu: Add support for VIR_MIGRATE_POSTCOPY flag
  qemu: Implement virDomainMigrateStartPostCopy
  virsh: Add support for post-copy migration
  virsh: Add --postcopy-after-precopy option to migrate

Jiri Denemark (8):
  Add event and state details for post-copy
  qemu: Handle postcopy-active migration state
  virsh: Configurable migrate --timeout action
  qemu: Don't kill running migrated domain on daemon restart
  qemu: Refactor qemuProcessRecoverMigration
  qemu: Handle post-copy migration failures
  qemu: Refuse to abort migration in post-copy mode
  qemu: Add flags to qemuMigrationWaitForCompletion

 examples/object-events/event-test.c |   9 ++
 include/libvirt/libvirt-domain.h    |  11 ++
 src/conf/domain_conf.c              |   7 +-
 src/driver-hypervisor.h             |   5 +
 src/libvirt-domain.c                | 141 ++++++++++++++++-
 src/libvirt_public.syms             |   4 +
 src/qemu/qemu_domain.c              |   1 +
 src/qemu/qemu_domain.h              |   1 +
 src/qemu/qemu_driver.c              |  72 ++++++++-
 src/qemu/qemu_migration.c           | 291 +++++++++++++++++++++++++++++++-----
 src/qemu/qemu_migration.h           |   6 +-
 src/qemu/qemu_monitor.c             |  16 +-
 src/qemu/qemu_monitor.h             |   4 +
 src/qemu/qemu_monitor_json.c        |  23 +++
 src/qemu/qemu_monitor_json.h        |   3 +
 src/qemu/qemu_process.c             | 233 ++++++++++++++++++-----------
 src/remote/remote_driver.c          |   1 +
 src/remote/remote_protocol.x        |  13 +-
 src/remote_protocol-structs         |   5 +
 tools/virsh-domain-monitor.c        |   7 +-
 tools/virsh-domain.c                | 157 +++++++++++++++++--
 tools/virsh.pod                     |  31 +++-
 22 files changed, 880 insertions(+), 161 deletions(-)

-- 
2.7.2




More information about the libvir-list mailing list