This is the current state of my incremental backup work on top of the
v9 checkpoint patches [1]. While everything compiles and my local
tests are able to perform an incremental backup, I already know that
the code needs a lot of cleanups before it can be accepted upstream;
this is more of a preview post to allow further testing against the
APIs while my more immediate focus is on getting checkpoints in. There
will be a v10 of this portion of the backup work, but now that
checkpoints are nearly ready to go, I'm still aiming to get backups in
the same 5.6 release window.
[1]
https://www.redhat.com/archives/libvir-list/2019-July/msg00236.html
I've pushed a tag backup-v9 to both my libvirt.git and
libvirt-python.git repos to match:
https://repo.or.cz/libvirt/ericb.git/shortlog/refs/tags/backup-v9
https://repo.or.cz/libvirt-python/ericb.git/shortlog/refs/tags/backup-v9
Changes since v8:
- lots of rebasing
- however, reviews from v8 on this part of the series have not been
addressed yet...
001/10:[down] 'backup: qemu: Implement VIR_DOMAIN_CHECKPOINT_XML_SIZE flag'
002/10:[0016] [FC] 'backup: Document new XML for backups'
003/10:[0112] [FC] 'backup: Introduce virDomainBackup APIs'
004/10:[0419] [FC] 'backup: Implement backup APIs for remote driver'
005/10:[0023] [FC] 'backup: Parse and output backup XML'
006/10:[0052] [FC] 'backup: Implement virsh support for backup'
007/10:[0006] [FC] 'backup: qemu: Implement framework for backup job APIs'
008/10:[0010] [FC] 'backup: Wire up qemu full pull backup commands over QMP'
009/10:[----] [-C] 'backup: qemu: Wire up qemu full push backup commands over
QMP'
010/10:[down] '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 | 3 +
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 | 3 +
src/qemu/qemu_domain.c | 37 +-
src/qemu/qemu_driver.c | 706 ++++++++++++++++++-
src/qemu/qemu_monitor.c | 11 +
src/qemu/qemu_monitor_json.c | 80 +++
src/qemu/qemu_process.c | 9 +
src/remote/remote_driver.c | 3 +
src/remote/remote_protocol.x | 53 +-
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 ++
42 files changed, 2634 insertions(+), 22 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.20.1