[libvirt] [PATCH v10 00/10] incremental backup

Eric Blake posted 10 patches 4 years, 8 months ago
Test syntax-check passed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/libvirt tags/patchew/20190822014249.8325-1-eblake@redhat.com
include/libvirt/libvirt-domain.h             |  41 +-
src/conf/backup_conf.h                       |  94 +++
src/conf/virconftypes.h                      |   3 +
src/driver-hypervisor.h                      |  14 +
src/qemu/qemu_blockjob.h                     |   1 +
src/qemu/qemu_domain.h                       |   4 +
src/qemu/qemu_monitor.h                      |   4 +
src/qemu/qemu_monitor_json.h                 |   4 +
docs/docs.html.in                            |   3 +-
docs/format.html.in                          |   1 +
docs/formatbackup.html.in                    | 184 +++++
docs/formatcheckpoint.html.in                |  12 +-
docs/index.html.in                           |   3 +-
docs/schemas/domainbackup.rng                | 219 ++++++
examples/c/misc/event-test.c                 |   3 +
libvirt.spec.in                              |   1 +
mingw-libvirt.spec.in                        |   2 +
src/conf/Makefile.inc.am                     |   2 +
src/conf/backup_conf.c                       | 546 +++++++++++++++
src/conf/domain_conf.c                       |   2 +-
src/libvirt-domain-checkpoint.c              |   7 +-
src/libvirt-domain.c                         | 219 ++++++
src/libvirt_private.syms                     |   8 +-
src/libvirt_public.syms                      |   7 +
src/qemu/qemu_blockjob.c                     |   3 +
src/qemu/qemu_domain.c                       |  35 +-
src/qemu/qemu_driver.c                       | 684 ++++++++++++++++++-
src/qemu/qemu_monitor.c                      |  11 +
src/qemu/qemu_monitor_json.c                 |  84 +++
src/qemu/qemu_process.c                      |   8 +
src/remote/remote_driver.c                   |   3 +
src/remote/remote_protocol.x                 |  54 +-
src/remote_protocol-structs                  |  28 +
tests/Makefile.am                            |   2 +
tests/domainbackupxml2xmlin/backup-pull.xml  |   9 +
tests/domainbackupxml2xmlin/backup-push.xml  |   9 +
tests/domainbackupxml2xmlin/empty.xml        |   1 +
tests/domainbackupxml2xmlout/backup-pull.xml |   9 +
tests/domainbackupxml2xmlout/backup-push.xml |   9 +
tests/domainbackupxml2xmlout/empty.xml       |   7 +
tests/virschematest.c                        |   2 +
tools/virsh-domain.c                         | 253 ++++++-
tools/virsh.pod                              |  49 ++
43 files changed, 2623 insertions(+), 21 deletions(-)
create mode 100644 src/conf/backup_conf.h
create mode 100644 docs/formatbackup.html.in
create mode 100644 docs/schemas/domainbackup.rng
create mode 100644 src/conf/backup_conf.c
create mode 100644 tests/domainbackupxml2xmlin/backup-pull.xml
create mode 100644 tests/domainbackupxml2xmlin/backup-push.xml
create mode 100644 tests/domainbackupxml2xmlin/empty.xml
create mode 100644 tests/domainbackupxml2xmlout/backup-pull.xml
create mode 100644 tests/domainbackupxml2xmlout/backup-push.xml
create mode 100644 tests/domainbackupxml2xmlout/empty.xml
[libvirt] [PATCH v10 00/10] incremental backup
Posted by Eric Blake 4 years, 8 months ago
This is not the final version of incremental backup - before we can
accept this series, it needs a lot of polish to pick up cleanups made
possible by Peter's blockdev work, and we need to settle on our Job
API addition (so that the return value of BackupBegin and the
parameter to BackupGetXMLDesc and BackupEnd use the same
representation, whether that be UUID or something else).  I also know
that Peter left quite a few comments against v9, many of which I have
not actually attempted to address yet.  But it rebases things on top
of the checkpoint work that landed in the 5.6 release, and is still
able to perform the pull-mode incremental backups that I demonstrated
at KVM Forum 2018.

There's still probably crashes in portions of the code that are not
exercised by my demo, and I know that we really want to use qemu's
blockdev image creation instead of calling out to qemu-img create for
preparing the qcow2 scratch image in pull mode.  The main point of
this posting is to allow further testing before the actual feature
lands in an upstream libvirt release.

I've pushed a tag backup-v10 to both my libvirt.git and
libvirt-python.git repos to match:
https://repo.or.cz/libvirt/ericb.git/shortlog/refs/tags/backup-v10
https://repo.or.cz/libvirt-python/ericb.git/shortlog/refs/tags/backup-v10

001/10:[0033] [FC] 'backup: qemu: Implement VIR_DOMAIN_CHECKPOINT_XML_SIZE flag'
002/10:[0002] [FC] 'backup: Document new XML for backups'
003/10:[0010] [FC] 'backup: Introduce virDomainBackup APIs'
004/10:[0031] [FC] 'backup: Implement backup APIs for remote driver'
005/10:[----] [--] 'backup: Parse and output backup XML'
006/10:[----] [--] 'backup: Implement virsh support for backup'
007/10:[0025] [FC] 'backup: qemu: Implement framework for backup job APIs'
008/10:[0002] [FC] 'backup: Wire up qemu full pull backup commands over QMP'
009/10:[----] [--] 'backup: qemu: Wire up qemu full push backup commands over QMP'
010/10:[0017] [FC] 'backup: Implement qemu incremental pull backup'

Eric Blake (10):
  backup: qemu: Implement VIR_DOMAIN_CHECKPOINT_XML_SIZE flag
  backup: Document new XML for backups
  backup: Introduce virDomainBackup APIs
  backup: Implement backup APIs for remote driver
  backup: Parse and output backup XML
  backup: Implement virsh support for backup
  backup: qemu: Implement framework for backup job APIs
  backup: Wire up qemu full pull backup commands over QMP
  backup: qemu: Wire up qemu full push backup commands over QMP
  backup: Implement qemu incremental pull backup

 include/libvirt/libvirt-domain.h             |  41 +-
 src/conf/backup_conf.h                       |  94 +++
 src/conf/virconftypes.h                      |   3 +
 src/driver-hypervisor.h                      |  14 +
 src/qemu/qemu_blockjob.h                     |   1 +
 src/qemu/qemu_domain.h                       |   4 +
 src/qemu/qemu_monitor.h                      |   4 +
 src/qemu/qemu_monitor_json.h                 |   4 +
 docs/docs.html.in                            |   3 +-
 docs/format.html.in                          |   1 +
 docs/formatbackup.html.in                    | 184 +++++
 docs/formatcheckpoint.html.in                |  12 +-
 docs/index.html.in                           |   3 +-
 docs/schemas/domainbackup.rng                | 219 ++++++
 examples/c/misc/event-test.c                 |   3 +
 libvirt.spec.in                              |   1 +
 mingw-libvirt.spec.in                        |   2 +
 src/conf/Makefile.inc.am                     |   2 +
 src/conf/backup_conf.c                       | 546 +++++++++++++++
 src/conf/domain_conf.c                       |   2 +-
 src/libvirt-domain-checkpoint.c              |   7 +-
 src/libvirt-domain.c                         | 219 ++++++
 src/libvirt_private.syms                     |   8 +-
 src/libvirt_public.syms                      |   7 +
 src/qemu/qemu_blockjob.c                     |   3 +
 src/qemu/qemu_domain.c                       |  35 +-
 src/qemu/qemu_driver.c                       | 684 ++++++++++++++++++-
 src/qemu/qemu_monitor.c                      |  11 +
 src/qemu/qemu_monitor_json.c                 |  84 +++
 src/qemu/qemu_process.c                      |   8 +
 src/remote/remote_driver.c                   |   3 +
 src/remote/remote_protocol.x                 |  54 +-
 src/remote_protocol-structs                  |  28 +
 tests/Makefile.am                            |   2 +
 tests/domainbackupxml2xmlin/backup-pull.xml  |   9 +
 tests/domainbackupxml2xmlin/backup-push.xml  |   9 +
 tests/domainbackupxml2xmlin/empty.xml        |   1 +
 tests/domainbackupxml2xmlout/backup-pull.xml |   9 +
 tests/domainbackupxml2xmlout/backup-push.xml |   9 +
 tests/domainbackupxml2xmlout/empty.xml       |   7 +
 tests/virschematest.c                        |   2 +
 tools/virsh-domain.c                         | 253 ++++++-
 tools/virsh.pod                              |  49 ++
 43 files changed, 2623 insertions(+), 21 deletions(-)
 create mode 100644 src/conf/backup_conf.h
 create mode 100644 docs/formatbackup.html.in
 create mode 100644 docs/schemas/domainbackup.rng
 create mode 100644 src/conf/backup_conf.c
 create mode 100644 tests/domainbackupxml2xmlin/backup-pull.xml
 create mode 100644 tests/domainbackupxml2xmlin/backup-push.xml
 create mode 100644 tests/domainbackupxml2xmlin/empty.xml
 create mode 100644 tests/domainbackupxml2xmlout/backup-pull.xml
 create mode 100644 tests/domainbackupxml2xmlout/backup-push.xml
 create mode 100644 tests/domainbackupxml2xmlout/empty.xml

-- 
2.21.0

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list