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

John Snow jsnow at redhat.com
Tue Jun 19 13:51:34 UTC 2018


CC: Daniel Erez <derez at redhat.com>
CC: Yaniv Dary <ydary at redhat.com>
CC: Allon Mureinik <amureini at redhat.com>

full thread:
https://www.redhat.com/archives/libvir-list/2018-June/msg01066.html

On 06/13/2018 12:42 PM, Eric Blake wrote:
> 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
> 




More information about the libvir-list mailing list