[libvirt] [PATCHv4 00/51] another round of snapshot patches

Eric Blake eblake at redhat.com
Fri Sep 2 04:24:37 UTC 2011


I think I've addressed most findings from round 3 - by implementing
the ability to redefine a snapshot, it becomes possible to restore
snapshot hierarchy when recreating a transient domain by the same
name.  New goodies in this round: several bug fixes, add virsh
snapshot-edit, drop undefine --snapshots-full (you can only remove
snapshot metadata on undefine).  I tested as I went, but this went
through so many rebases that there may be some nasties that snuck
in; but I wanted to get this posted now.  I also know that I'm
missing at least one major feature requested in the v3 review:
namely, transient domains _should_ auto-remove snapshot metadata
files when they halt, but right now aren't doing that.

v3 was at:
https://www.redhat.com/archives/libvir-list/2011-August/msg01132.html

Also available here:

git fetch git://repo.or.cz/libvirt/ericb.git snapshot

or browse online at:

http://repo.or.cz/w/libvirt/ericb.git/shortlog/refs/heads/snapshot

I'm also trying to group things by several bugzilla related to
various patches (looks like I still need to create a few):

Eric Blake (51):

https://bugzilla.redhat.com/show_bug.cgi?id=674537
  snapshot: fix corner case on OOM during creation

https://bugzilla.redhat.com/show_bug.cgi?id=733762
  snapshot: better events when starting paused
  snapshot: fine-tune ability to start paused
  snapshot: expose --running and --paused in virsh
  snapshot: fine-tune qemu saved images starting paused
  snapshot: improve reverting to qemu paused snapshots
  snapshot: properly revert qemu to offline snapshots
  snapshot: fine-tune qemu snapshot revert states

no bug filed yet... should be one about no stale metadata
  snapshot: allow deletion of just snapshot metadata
  snapshot: add snapshot-list --parent to virsh

https://bugzilla.redhat.com/show_bug.cgi?id=733529
  snapshot: speed up snapshot location
  snapshot: avoid crash when deleting qemu snapshots
  snapshot: track current domain across deletion of children
  snapshot: simplify acting on just children

no bug filed yet... should be one about no stale metadata
  snapshot: let qemu discard only snapshot metadata
  snapshot: identify which snapshots have metadata
  snapshot: reflect new dumpxml and list options in virsh
  snapshot: identify qemu snapshot roots
  snapshot: allow recreation of metadata
  snapshot: refactor virsh snapshot creation
  snapshot: improve virsh snapshot-create, add snapshot-edit
  snapshot: add qemu snapshot creation without metadata

no bug filed yet... should be one about snapshot migration
  snapshot: add qemu snapshot redefine support
  snapshot: prevent stranding snapshot data on domain destruction
  snapshot: teach virsh about new undefine flags
  snapshot: refactor some qemu code
  snapshot: cache qemu-img location
  snapshot: support new undefine flags in qemu
  snapshot: prevent migration from stranding snapshot data

https://bugzilla.redhat.com/show_bug.cgi?id=638510
  snapshot: refactor domain xml output
  snapshot: allow full domain xml in snapshot
  snapshot: correctly escape generated xml
  snapshot: update rng to support full domain in xml
  snapshot: store qemu domain details in xml
  snapshot: additions to domain xml for disks
  snapshot: reject transient disks where code is not ready
  snapshot: introduce new deletion flag
  snapshot: expose new delete flag in virsh
  snapshot: allow halting after snapshot
  snapshot: expose halt-after-creation in virsh
  snapshot: wire up new qemu monitor command
  snapshot: support extra state in snapshots
  snapshot: add <disks> to snapshot xml
  snapshot: also support disks by path
  snapshot: add virsh domblklist command
  snapshot: add flag for requesting disk snapshot
  snapshot: wire up disk-only flag to snapshot-create
  snapshot: reject unimplemented disk snapshot features
  snapshot: make it possible to audit external snapshot
  snapshot: wire up live qemu disk snapshots
  snapshot: use SELinux and lock manager with external snapshots

 docs/formatdomain.html.in                          |   40 +-
 docs/formatsnapshot.html.in                        |  269 ++-
 docs/schemas/Makefile.am                           |    1 +
 docs/schemas/domain.rng                            | 2555 +-------------------
 docs/schemas/{domain.rng => domaincommon.rng}      |   32 +-
 docs/schemas/domainsnapshot.rng                    |   84 +-
 examples/domain-events/events-c/event-test.c       |   37 +-
 include/libvirt/libvirt.h.in                       |   66 +-
 src/conf/domain_audit.c                            |   12 +-
 src/conf/domain_audit.h                            |    4 +-
 src/conf/domain_conf.c                             |  902 ++++++--
 src/conf/domain_conf.h                             |   76 +-
 src/esx/esx_driver.c                               |   38 +-
 src/libvirt.c                                      |  256 ++-
 src/libvirt_private.syms                           |    8 +
 src/libxl/libxl_conf.c                             |    5 +
 src/libxl/libxl_driver.c                           |   11 +-
 src/qemu/qemu_command.c                            |    5 +
 src/qemu/qemu_conf.h                               |    1 +
 src/qemu/qemu_driver.c                             | 1532 +++++++++---
 src/qemu/qemu_hotplug.c                            |   18 +-
 src/qemu/qemu_migration.c                          |   48 +-
 src/qemu/qemu_migration.h                          |    2 -
 src/qemu/qemu_monitor.c                            |   24 +
 src/qemu/qemu_monitor.h                            |    4 +
 src/qemu/qemu_monitor_json.c                       |   33 +
 src/qemu/qemu_monitor_json.h                       |    4 +
 src/qemu/qemu_monitor_text.c                       |   40 +
 src/qemu/qemu_monitor_text.h                       |    4 +
 src/qemu/qemu_process.c                            |   11 +-
 src/uml/uml_driver.c                               |   56 +-
 src/vbox/vbox_tmpl.c                               |   43 +-
 src/xen/xend_internal.c                            |   12 +-
 src/xenxs/xen_sxpr.c                               |    5 +
 src/xenxs/xen_xm.c                                 |    5 +
 tests/domainsnapshotxml2xmlin/disk_snapshot.xml    |   16 +
 tests/domainsnapshotxml2xmlout/disk_snapshot.xml   |   77 +
 tests/domainsnapshotxml2xmlout/full_domain.xml     |   35 +
 .../qemuxml2argv-disk-snapshot.args                |    7 +
 .../qemuxml2argv-disk-snapshot.xml                 |   39 +
 .../qemuxml2argv-disk-transient.xml                |   27 +
 tests/qemuxml2argvtest.c                           |    2 +
 tests/virsh-optparse                               |   20 +
 tools/virsh.c                                      |  772 +++++-
 tools/virsh.pod                                    |  214 ++-
 45 files changed, 3978 insertions(+), 3474 deletions(-)
 copy docs/schemas/{domain.rng => domaincommon.rng} (98%)
 create mode 100644 tests/domainsnapshotxml2xmlin/disk_snapshot.xml
 create mode 100644 tests/domainsnapshotxml2xmlout/disk_snapshot.xml
 create mode 100644 tests/domainsnapshotxml2xmlout/full_domain.xml
 create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-disk-snapshot.args
 create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-disk-snapshot.xml
 create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-disk-transient.xml

-- 
1.7.4.4




More information about the libvir-list mailing list