[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


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.