(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