
On Tue, Jun 09, 2020 at 17:00:07 +0200, Peter Krempa wrote:
Use 'block-dirty-bitmap-populate' and change how we create bitmaps corresponding to checkpoints to simplify the code and also properly integrate with backing chain images created outside of libvirt.
This patchset changes how we approach checkpoints by keeping one bitmap per checkpoint and disk and not propagating the bitmaps into overlays on snapshots. This massively simplifies the code handling all the operations during blockjobs and backups.
While the change isn't compatible with checkpoints created previously, we didn't yet enable the support for checkpoints/backups.
Note that 'block-dirty-bitmap-populate' is _not_ in finished state in qemu yet, so I'm posting this as RFC and as reference for qemu developers of the usefulnes of it.
The changes can be fetched by:
git fetch https://gitlab.com/pipo.sk/libvirt.git checkpoint-bitmap-populate
Note that the above branch also contains a commit enabling incremental backup for simpler testing.
I've pushed the appropriate qemu patches for convenience here:
git fetch https://gitlab.com/pipo.sk/qemu.git block-dirty-bitmap-populate
I'll be posting a new version which doesn't require the 'block-dirty-bitmap-populate' blockjob at the beginning but still simplifies the internals and I'll then base the rest of this series on top of that once the qemu design is ready.