Disk Backup Tool
Summary: Write a tool that performs both full and incremental disk backups
QEMU has added command primitives that can be combined to perform both full and incremental disk backups while the virtual machine is running. A full backup copies the entire contents of the disk. An incremental backup copies only regions that have been modified. Orchestrating a multi-disk backup to local or remote storage is non-trivial and there is no example code showing how to do it from start to finish.
It would be helpful to have a "reference implementation" that performs backups using QEMU's QMP commands. Backup software and management stack developers wishing to add QEMU backup support could look at this tool's code as an example. Users who run QEMU directly could us this tool as their backup software.
You need to be able to read C since that's what most of QEMU is written in. This project will expose you to backup and data recovery, as well as developing command-line tools in Python.
See the links to familiarize yourself with disk image files, backups, and snapshots.
- Backups (and snapshots) with QEMU, KVM Forum 2016 (PDF)
- Incremental Backups, KVM Forum 2015 presentation (PDF)
- Skill level: intermediate
- Language: Python
- Mentors: John Snow <email@example.com> (jsnow on IRC), Stefan Hajnoczi <firstname.lastname@example.org> (stefanha on IRC)