I was originally going to send this as two rounds, one for the XML additions of adding mirrors, and one for the flag addition to virDomainSnapshotDelete for mapping to drive-reopen; but it turned out that testing is easier if I finish the series. Note that this is minimally tested at the moment; I'm posting it to get review started, but I plan on hammering it tomorrow, and possibly coming up with slight alterations for a v2. This assumes that rounds 1-3 (ending here) have been applied: https://www.redhat.com/archives/libvir-list/2012-March/msg00846.html This should finish out my RFC here: https://www.redhat.com/archives/libvir-list/2012-March/msg00578.html but with one major caveat: https://lists.gnu.org/archive/html/qemu-devel/2012-03/msg01524.html Upstream qemu has not yet committed the 'drive-mirror' or 'drive-reopen' monitor commands, which this series (rounds 4-5) depends on. There are still bugs being worked out under the hood on the qemu side, and there is a slight possibility that fixing those bugs may change the public interface. Therefore, part of the review of this series should be to determine whether we take the risk of applying the patch now, or waiting for qemu to stabilize a bit further. I will probably push rounds 1-3 tomorrow, since they have been ACK'd (well, round 3 is still awaiting review), and since qemu has committed to the 'transaction' monitor command for qemu 1.1. For reference, it is likely that RHEL 6.3 will not wait for qemu 1.1, but will instead provide RHEL-specific monitor commands named __com.redhat_drive-mirror and __com.redhat_drive-reopen; I have hopefully structured things well enough that it will be a couple lines of patching to qemu_monitor_json.c to recognize that alternate command name. Eric Blake (6): snapshot: allow for creation of mirrored snapshots snapshot: add new snapshot delete flags snapshot: make it possible to check for mirrored snapshot snapshot: expose qemu commands for mirrored storage migration snapshot: implement new snapshot delete flags in qemu snapshot: enable mirrored snapshots on transient vm docs/formatsnapshot.html.in | 31 +++ docs/schemas/domainsnapshot.rng | 8 + include/libvirt/libvirt.h.in | 6 + src/conf/domain_conf.c | 58 +++++- src/conf/domain_conf.h | 4 + src/libvirt.c | 37 +++- src/libvirt_private.syms | 2 + src/qemu/qemu_capabilities.c | 3 + src/qemu/qemu_capabilities.h | 2 + src/qemu/qemu_driver.c | 242 +++++++++++++++++++- src/qemu/qemu_monitor.c | 50 ++++ src/qemu/qemu_monitor.h | 14 ++ src/qemu/qemu_monitor_json.c | 70 ++++++- src/qemu/qemu_monitor_json.h | 21 ++- .../disk_snapshot_mirror.xml | 13 + .../disk_snapshot_mirror.xml | 49 ++++ tests/domainsnapshotxml2xmltest.c | 4 +- tools/virsh.c | 13 + tools/virsh.pod | 21 ++- 19 files changed, 622 insertions(+), 26 deletions(-) create mode 100644 tests/domainsnapshotxml2xmlin/disk_snapshot_mirror.xml create mode 100644 tests/domainsnapshotxml2xmlout/disk_snapshot_mirror.xml -- 1.7.7.6 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list