δΊ 2012-12-7 18:12, Dietmar Maurer ει:
We already have a full functional implementation to create live snapshots
including VM state.
The interface allows you to create internal snapshots, or use external tools to
create the blockdev snapshots
directly on the underlying storage (we use that with nexenta). VM state is
stored directly on a block device.
https://git.proxmox.com/?p=pve-qemu-kvm.git;a=blob;f=debian/patches/internal-snapshot-async.patch;h=6c86de3a6160c58d77baa41a7774c4a80e63639e;hb=HEAD
Unfortunately I had no time to cleanup those patches.
- Dietmar
have that patch been sent to mail-list? I'll rebase that patch
and take it as part of the API's implemention, if you agree.
This patch is a scratch which enables a full live backup of VM, actually it
is
equal to savevm lively. As a test it uses hmp command migrate to trigger the
action.
The ultimate goal is providing another command to user as:
snapshotvm [with_state] [internal] [live] which then create vm backups with
a screen image(I am not sure if a screen snapshot is supported in qemu
now). This function is enabled in VMWARE which can automatically create
full vm snapshots lively with a screen image which seems cool, so I want to
introduce it to qemu.
Limitations:
currently only implemented "snapshotvm with_state internal live" case.
no screen captured in the time of creating snapshots.
no good integration with existing savevm, migration, snapshot_blkdev code.
no test case yet.
hmp/qmp API not added.
Although there are so many gaps, but I want to send these patch first to
make sure I am in the right direction, esp the implemention of savevm lively
with vmstate, to see if there is potentional problem, such as creating
snapshots takes too long? Other cases would be simpler if this case have no
major problem found.
Wenchao Xia (2):
live backup vm, export functions
live backup vm, snapshots all lively
block.c | 21 ++++++
block.h | 2 +
buffered_file.c | 106 +++++++++++++++++++++++++++
buffered_file.h | 1 +
migration.c | 215
+++++++++++++++++++++++++++++++++++++++++++++++++++++++
migration.h | 13 ++++
savevm.c | 37 +++-------
sysemu.h | 2 +
8 files changed, 371 insertions(+), 26 deletions(-)
--
Best Regards
Wenchao Xia