[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [RFC PATCH 0/7] domain snapshot implementation
Add vm snapshot implementation. Support snapshot-create and snapshot-revert. Current Limitations: About disk snapshot create, there are many cases: - qdisk, internal, should calls qmp command to do the work. - qdisk, external, should calls qmp command to do the work, qemu will replace disk backend file after creating external snapshot. - nonqdisk, internal, should call 'qemu-img snapshot' to do the work. - nonqdisk, external, should call 'qemu-img create' to create a new file with the original disk file as backing file. And libxl should replace domain disk from original disk to the new file. To the last case, during domain snapshot, between domain suspend and resume, how to replace the disk backend file from libxl? Especially if disk file format is changed (original disk backend file is 'raw', new file is 'qcow2')? Considering this, currently I exclude the non-qdisk cases, let the API support qdisk only. About the non-qdisk and external case, any suggestion? About disk snapshot revert: Reverting from external disk snapshot is actually starting domain from a specified backing file, since backing file should be kept read-only, that will involve block copy operation. Currently this case is not supported. Only support reverting from internal disk snapshot. Design document: Latest design document is just posted. Chunyan Liu (7): libxl_types.idl: add definitions for vm snapshot qmp: add qmp handlers to create disk snapshots libxl: save disk format to xenstore libxl: add snapshot APIs xl: add domain snapshot commands qmp: add qmp handlers to delete internal/external disk snapshot libxl: add APIs to delete internal/external disk snapshots Config.mk | 2 +- config/Paths.mk.in | 1 + configure | 3 + docs/man/xl.snapshot.conf.pod.5 | 59 +++ m4/paths.m4 | 3 + tools/configure | 3 + tools/examples/snapshot.cfg.external | 4 + tools/examples/snapshot.cfg.internal | 4 + tools/libxl/Makefile | 2 + tools/libxl/libxl.c | 10 +- tools/libxl/libxl.h | 51 +++ tools/libxl/libxl_internal.h | 38 ++ tools/libxl/libxl_qmp.c | 224 ++++++++++++ tools/libxl/libxl_snapshot.c | 321 +++++++++++++++++ tools/libxl/libxl_types.idl | 31 ++ tools/libxl/libxl_types_internal.idl | 8 + tools/libxl/libxl_utils.c | 16 + tools/libxl/libxl_utils.h | 1 + tools/libxl/xl.h | 2 + tools/libxl/xl_cmdimpl.c | 677 +++++++++++++++++++++++++++++++++++ tools/libxl/xl_cmdtable.c | 16 + 21 files changed, 1474 insertions(+), 2 deletions(-) create mode 100644 docs/man/xl.snapshot.conf.pod.5 create mode 100644 tools/examples/snapshot.cfg.external create mode 100644 tools/examples/snapshot.cfg.internal create mode 100644 tools/libxl/libxl_snapshot.c -- 2.1.4 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |