[libvirt] [PATCH 00/16] Implement post-copy migration

Jiri Denemark jdenemar at redhat.com
Tue Jan 19 09:50:05 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. Once we are sure QEMU gives us all we need, the "x-"
prefix will be removed.

Seamless SPICE migration doesn't work with post-copy now, but I'll look
at that.

This series (VIR_MIGRATE_POSTCOPY_AFTER_PRECOPY support) depends on
"Introduce migration iteration event" series I sent yesterday.

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 (10):
  Add event and state details for post-copy
  qemu: Don't explicitly stop CPUs after migration
  qemu: Handle postcopy-active migration state
  qemu: Add flags to qemuMigrationWaitForCompletion
  qemu: Add support for VIR_MIGRATE_POSTCOPY_AFTER_PRECOPY flag
  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

 examples/object-events/event-test.c |   9 ++
 include/libvirt/libvirt-domain.h    |  12 ++
 src/conf/domain_conf.c              |   7 +-
 src/driver-hypervisor.h             |   5 +
 src/libvirt-domain.c                | 140 +++++++++++++++++
 src/libvirt_public.syms             |   4 +
 src/qemu/qemu_domain.c              |   1 +
 src/qemu/qemu_domain.h              |   3 +
 src/qemu/qemu_driver.c              |  72 ++++++++-
 src/qemu/qemu_migration.c           | 299 +++++++++++++++++++++++++++++++-----
 src/qemu/qemu_migration.h           |   7 +-
 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             | 252 +++++++++++++++++++-----------
 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                | 131 ++++++++++++++--
 tools/virsh.pod                     |  31 +++-
 22 files changed, 884 insertions(+), 161 deletions(-)

-- 
2.7.0




More information about the libvir-list mailing list