[PATCH 0/9] Introduce instant memory snapshots

Nikolay Shirokovskiy posted 9 patches 2 years, 5 months ago
Test syntax-check failed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/libvirt tags/patchew/20211111085554.14685-1-nshirokovskiy@virtuozzo.com
docs/manpages/virsh.rst                   |   8 +-
include/libvirt/libvirt-domain-snapshot.h |   2 +
src/qemu/qemu_driver.c                    |   4 +-
src/qemu/qemu_migration.c                 |  20 ++-
src/qemu/qemu_migration.h                 |   1 +
src/qemu/qemu_migration_params.c          |  13 ++
src/qemu/qemu_migration_params.h          |   5 +
src/qemu/qemu_saveimage.c                 |   4 +-
src/qemu/qemu_saveimage.h                 |   2 +
src/qemu/qemu_snapshot.c                  | 158 +++++++++++++++-------
tools/virsh-snapshot.c                    |   6 +
11 files changed, 162 insertions(+), 61 deletions(-)
[PATCH 0/9] Introduce instant memory snapshots
Posted by Nikolay Shirokovskiy 2 years, 5 months ago
Hi, everyone.

The details for instant snapshot are given in main patch "qemu: support
instant snapshots". Here I only want to mention two moments.

First as instant snapshot API is synchronous we need to add an event
that snapshot moment in time is passed so that client is free to make
changes to guest. This way client can make use of instant snapshot while
memory is still being written to disk. 

Second there is work in progress on adding asynchronous revert to
snapshot [1]. The idea is to write memory during snapshot in such a way
that it is possible to do a revert to snapshot in background. Namely
start guest on revert with only minimal amount of memory restored from
disk and then restore memory in background in postcopy migration
fashion. In order to make it possible snapshot memory should be written to
disk not just as plain migration stream. Thus the [1] patch adds
a special tool to write the migration stream during snapshot.

So if/when patch [1] will be merged I plan to add 'instant revert' mode 
to snapshot too.

[1] [RFC PATCH v2 0/7] migration/snapshot: External snapshot utility
https://lists.nongnu.org/archive/html/qemu-devel/2021-05/msg03619.html


Nikolay Shirokovskiy (9):
  qemu: make snap possibility check before pausing CPUS
  qemu: snapshot: remove redundant flag setting
  qemu: don't bother saving ret code from qemuDomainSaveMemory
  qemu: move virQEMUSaveDataFree auto decl to header
  qemu: factor out qemuDomainSnapshotSaveMemory
  qemu: introduce qemuMigrationParamsSetCapability
  qemu: support instant mode in qemuMigrationSrcToFile
  qemu: support instant snapshots
  virsh: add --instant flag to snapshot-create

 docs/manpages/virsh.rst                   |   8 +-
 include/libvirt/libvirt-domain-snapshot.h |   2 +
 src/qemu/qemu_driver.c                    |   4 +-
 src/qemu/qemu_migration.c                 |  20 ++-
 src/qemu/qemu_migration.h                 |   1 +
 src/qemu/qemu_migration_params.c          |  13 ++
 src/qemu/qemu_migration_params.h          |   5 +
 src/qemu/qemu_saveimage.c                 |   4 +-
 src/qemu/qemu_saveimage.h                 |   2 +
 src/qemu/qemu_snapshot.c                  | 158 +++++++++++++++-------
 tools/virsh-snapshot.c                    |   6 +
 11 files changed, 162 insertions(+), 61 deletions(-)

-- 
2.27.0