[libvirt] [RFC PATCH 00/10] introduce push backups

Nikolay Shirokovskiy nshirokovskiy at virtuozzo.com
Mon Nov 14 07:14:52 UTC 2016


Push backup is a backup when hypervisor itself copy backup
data to destination in contrast to pull backup when hypervisor
exports backup data thru some interface and mgmt itself make
a copy.

This patch series basically adds API and remote/qemu implementation
 of backup creation and correspondent backup xml description definition.

Just like other blockjobs backup creation is asynchronous. That
is creation is merely a backup start and client should track
backup error/completion thru blockjob events. Another option
is to make backup synchronus operation. AFAIU on this way we
have to make backup asynchronus job and thus make all modifying
commands unavailable during backup. This makes backup rather 
obtrusive operation which is not convinient.

Backup xml desription follows closely snapshot one and
is described in more details in definition patch [1].

Nikolay Shirokovskiy (10):
  api: add API to create backup
  add driver based implementation of backup API
  remote: add backup API
  qemu: monitor: add backup command
  misc: add backup block job type
  conf: add backup definition                           [1]
  qemu: add qemuDomainBackupCreateXML implementation
  qemu: check backup destination before start
  qemu: prepare backup destination
  virsh: add create backup command

 daemon/remote.c                         |   8 +
 examples/object-events/event-test.c     |   3 +
 include/libvirt/libvirt-domain-backup.h |  59 +++++++
 include/libvirt/libvirt-domain.h        |   3 +
 include/libvirt/libvirt.h               |   1 +
 include/libvirt/virterror.h             |   2 +
 po/POTFILES.in                          |   2 +
 src/Makefile.am                         |   3 +
 src/access/viraccessperm.c              |   3 +-
 src/access/viraccessperm.h              |   6 +
 src/conf/backup_conf.c                  | 294 ++++++++++++++++++++++++++++++++
 src/conf/backup_conf.h                  |  69 ++++++++
 src/conf/domain_conf.c                  |   2 +-
 src/datatypes.c                         |  60 +++++++
 src/datatypes.h                         |  29 ++++
 src/driver-hypervisor.h                 |   6 +
 src/libvirt-domain-backup.c             | 203 ++++++++++++++++++++++
 src/libvirt_private.syms                |   9 +
 src/libvirt_public.syms                 |  10 ++
 src/qemu/qemu_conf.h                    |   1 +
 src/qemu/qemu_domain.c                  |  14 ++
 src/qemu/qemu_domain.h                  |   2 +
 src/qemu/qemu_driver.c                  | 249 +++++++++++++++++++++++++++
 src/qemu/qemu_monitor.c                 |  13 ++
 src/qemu/qemu_monitor.h                 |   5 +
 src/qemu/qemu_monitor_json.c            |  36 ++++
 src/qemu/qemu_monitor_json.h            |   6 +
 src/remote/remote_driver.c              |   7 +
 src/remote/remote_protocol.x            |  24 ++-
 src/rpc/gendispatch.pl                  |  29 +++-
 src/util/virerror.c                     |   6 +
 tools/Makefile.am                       |   1 +
 tools/virsh-backup.c                    | 101 +++++++++++
 tools/virsh-backup.h                    |  29 ++++
 tools/virsh-domain.c                    |   3 +-
 tools/virsh.c                           |   2 +
 tools/virsh.h                           |   1 +
 37 files changed, 1290 insertions(+), 11 deletions(-)
 create mode 100644 include/libvirt/libvirt-domain-backup.h
 create mode 100644 src/conf/backup_conf.c
 create mode 100644 src/conf/backup_conf.h
 create mode 100644 src/libvirt-domain-backup.c
 create mode 100644 tools/virsh-backup.c
 create mode 100644 tools/virsh-backup.h

-- 
1.8.3.1




More information about the libvir-list mailing list