[libvirt] [PATCH v4 00/20] Incremental Backup API additions

Kashyap Chamarthy kchamart at redhat.com
Mon Feb 18 16:16:41 UTC 2019


On Wed, Feb 06, 2019 at 01:17:58PM -0600, Eric Blake wrote:
> The following is the latest version of my API proposal for
> incremental backups, and follows along from the demo I presented
> as part of my KVM Forum 2018 talk:
> https://kvmforum2018.sched.com/event/FzuB/facilitating-incremental-backup-eric-blake-red-hat
> 
> The patches are also available via https://repo.or.cz/libvirt/ericb.git
> at the tag backup-v4.
> 
> Integration with external snapshots is still not included in these
> patches, although I have been playing more with that locally, and
> I still haven't gotten a working demonstration of a push-mode
> incremental backup.
> 
> At this point, I'm posting mainly because there have been enough
> changes in qemu (the backup APIs are now stable! and in qemu.git
> in time for 4.0) and libvirt (several releases and code cleanups
> in between, such that the v3 no longer applies easily), while I
> continue to work locally on more features, addressing the review
> comments I got on v3, and remove the 'wip' tag on several of the
> later patches.
> 
> Among other things, I still haven't determined how we want to
> integrate checkpoints with external snapshots; we could either have:
> 
> virDomainSnapshotCreateXML("<domainsnapshot>...") # existing
> virDomainBackupBegin("<domainbackup>...", "<domaincheckpoint>...") # this series
> virDomainSnapshotCheckpointCreateXML("<domainsnapshot>...", "<domaincheckpoint>...") # new

A slightly related question: when these new APIs (thanks for working on
them!) are merged, am I right in assuming that they should be able to
"replace" the existing (and provide additional):

    virDomainBlockRebase(); and 
    virDomainBlockCopy()

... _provided_ that an application is adjusted to using libvirt that is
new enough to drive QEMU's '-blockdev', QMP `blockdev-add` et al?

Or is that (the new APIs being backward-compatible with blockRebase()
and blockCopy()) an explicit non-goal?

I'm only this out of curiosity.

> or to make checkpoint creation part of the snapshot and backup XML, as in:
> 
> virDomainSnapshotCreateXML("<domainsnapshot><domaincheckpoint>...</domainsnapshot>") # extension of existing
> virDomainBackupBegin("<domainbackup><domaincheckpoint>...</domainbackup>") # tweak to this series
> 
> I'm also planning to add an API to query which job ids are currently
> running (right now, the code only supports one job at a time, and
> always calls it job 1, but that is not future-friendly) and an update
> to the redefine XML command to make it easier to redefine multiple
> checkpoints in one API call.

[...]


-- 
/kashyap




More information about the libvir-list mailing list