[libvirt] [PATCH 0/8] Work-in-progress: Incremental Backup API additions

Eric Blake eblake at redhat.com
Wed Jun 13 16:42:21 UTC 2018


I'm offline the rest of this week, but wanted to post the
progress I've made on patches towards the Incremental Backup RFC:
https://www.redhat.com/archives/libvir-list/2018-May/msg01403.html

Comments welcome, including any naming suggestions

Still to go:
- Add .rng file for validating the XML format used in virDomainBackupBegin()
- Add flags for validating XML
- Add src/conf/checkpoint_conf.c mirroring src/conf/snapshot_conf.c for
tracking tree of checkpoints
- Add virsh wrappers for calling everything
- Add qemu implementation - my first addition will probably just be for
push model full backups, then additional patches to expand into
pull model (on the qemu list, I still need to review and incorporate
Vladimir's patches for exporting a bitmap over NBD)
- Bug fixes (but why would there be any bugs in the first place? :)

I've got portions of the qemu code working locally, but not polished
enough to post as a patch yet; my end goal is to have a working demo
against current qemu.git showing the use of virDomainBackupBegin()
for incremental backups with the push model prior to the code freeze
for 4.5.0 this month, even if that code doesn't get checked into
libvirt until later when the qemu code is changed to drop x- prefixes.
(That is, I'm hoping to demo that my API is sound, and thus we can
include the entrypoints in the libvirt.so for this release, even if
the libvirt code for driving pull mode over qemu waits until after a
qemu release where the pieces are promoted to a stable form.)

Eric Blake (8):
  snapshots: Avoid term 'checkpoint' for full system snapshot
  backup: Document nuances between different state capture APIs
  backup: Introduce virDomainCheckpointPtr
  backup: Document new XML for backups
  backup: Introduce virDomainCheckpoint APIs
  backup: Introduce virDomainBackup APIs
  backup: Add new domain:checkpoint access control
  backup: Implement backup APIs for remote driver

 docs/Makefile.am                            |   3 +
 docs/apibuild.py                            |   2 +
 docs/docs.html.in                           |   9 +-
 docs/domainstatecapture.html.in             | 190 ++++++
 docs/formatcheckpoint.html.in               | 273 +++++++++
 docs/formatsnapshot.html.in                 |  16 +-
 docs/schemas/domaincheckpoint.rng           |  89 +++
 include/libvirt/libvirt-domain-checkpoint.h | 158 +++++
 include/libvirt/libvirt-domain-snapshot.h   |  10 +-
 include/libvirt/libvirt-domain.h            |  14 +-
 include/libvirt/libvirt.h                   |   3 +-
 include/libvirt/virterror.h                 |   5 +-
 libvirt.spec.in                             |   2 +
 mingw-libvirt.spec.in                       |   4 +
 po/POTFILES                                 |   1 +
 src/Makefile.am                             |   2 +
 src/access/viraccessperm.c                  |   5 +-
 src/access/viraccessperm.h                  |   8 +-
 src/conf/snapshot_conf.c                    |   2 +-
 src/datatypes.c                             |  62 +-
 src/datatypes.h                             |  31 +-
 src/driver-hypervisor.h                     |  74 ++-
 src/libvirt-domain-checkpoint.c             | 908 ++++++++++++++++++++++++++++
 src/libvirt-domain-snapshot.c               |   4 +-
 src/libvirt-domain.c                        |   8 +-
 src/libvirt_private.syms                    |   2 +
 src/libvirt_public.syms                     |  19 +
 src/qemu/qemu_driver.c                      |  12 +-
 src/remote/remote_daemon_dispatch.c         |  15 +
 src/remote/remote_driver.c                  |  31 +-
 src/remote/remote_protocol.x                | 237 +++++++-
 src/remote_protocol-structs                 | 129 ++++
 src/rpc/gendispatch.pl                      |  32 +-
 src/util/virerror.c                         |  15 +-
 tests/domaincheckpointxml2xmlin/empty.xml   |   1 +
 tests/domaincheckpointxml2xmlout/empty.xml  |  10 +
 tests/virschematest.c                       |   2 +
 tools/virsh-domain.c                        |   3 +-
 tools/virsh-snapshot.c                      |   2 +-
 tools/virsh.pod                             |  14 +-
 40 files changed, 2347 insertions(+), 60 deletions(-)
 create mode 100644 docs/domainstatecapture.html.in
 create mode 100644 docs/formatcheckpoint.html.in
 create mode 100644 docs/schemas/domaincheckpoint.rng
 create mode 100644 include/libvirt/libvirt-domain-checkpoint.h
 create mode 100644 src/libvirt-domain-checkpoint.c
 create mode 100644 tests/domaincheckpointxml2xmlin/empty.xml
 create mode 100644 tests/domaincheckpointxml2xmlout/empty.xml

-- 
2.14.4




More information about the libvir-list mailing list