Brussels / 4 & 5 February 2017


Incremental Backups

Good things come in small packages!

Full backups of large storage devices are expensive, slow, and waste a lot of space. Incremental and differential backups are an oft-requested feature in virtualization stacks to help eliminate the redundant copying of backup data.

This presentation will cover recent developments in related delta-backup technologies, covering incremental and differential backups, image fleecing, dirty bitmap management, and different paradigms of consuming this data to produce reliable backups both through QEMU as an agent or via an external backup appliance.


This talk will cover the incremental backup functionality in QEMU and developments since its first introduction in 2015.

The talk is intended to be a fairly light-weight, quick trip through the feature; explaining the mechanics behind both the implementation and the API. I do not intend to cover in incredible detail the algorithmic minutiae of incremental backup techniques, but 'dirty bitmaps' as a fundamental technology enabling the technique will feature quite heavily. A theme of the talk will be how these features were implemented using targeted modifications to existing stable API to unlock rich functionality while maintaining backwards compatibility -- and the difficulties faced while doing so in a diverse open source environment. Current/Future developments are intended to be a highlight of the talk.


First and foremost, students who are interested in how large-scale projects tackle problems and would like some insight to how components in "the cloud" actually manage data on a technical level would find this talk interesting. At the very least, hopefully they find it entertaining.

Secondly, any developers or hobbyists who rely on virtualization in their workflow, but may not be heavily invested or well-versed in QEMU/KVM/libvirt et al specifically could benefit from an expanded knowledge of how this FOSS virtualization stack manages data. These users may be keen to gain insight into newer, more flexible storage and backup options.

Third, Upper-layer stack developers or users who script against upper-layer virtualization stack components may be interested to hear what we're cooking up -- this includes libvirt, virsh, openstack, oVirt or any projects that count these projects as dependencies.

And lastly, anyone who has a keen appreciation for bad puns on slide captions might enjoy stopping by.


Attendees can expect to leave with a basic outline of the storage management solutions as they exist in FOSS virtualization today, and how we'd like to improve on them. With a copy of the slides and footnotes, attendees will be well equipped to author power-user scripts that take advantage of some advanced functionality in QEMU-kvm today that may help them eke out more mileage from their existing FOSS virtualization stack. The talk will cover general design, usage, current caveats and expected next steps for related backup features; this will hopefully provide generally relevant information for anyone interested in or contributing to the field in general.


Photo of John Snow John Snow