Currently, QEMU doesn't support persistent dirty bitmaps for raw format and also dirty bitmaps are for internal use only, and cannot be accessed using third-party applications. These facts are very limiting in case someone would like to develop their own backup tool becaouse without access to the dirty bitmap it would be possible to implement only full backups. And without persistent dirty bitmaps, it wouldn't be possible to keep track of changed data after QEMU is restarted. And this is exactly what I do as a part of my bachelor thesis. I've developed a tool that is able to create incremental backups of drives in raw format that are LVM volumes (ability to create snapshot is required).
Please keep in mind that this is my first submission to such a large project and also the first time when I send patch over the email. So I hope I did it correctly. Patrik Janoušek (2): block/raw: added support of persistent dirty bitmaps qapi: implementation of the block-dirty-bitmap-dump command block/meson.build | 1 + block/monitor/bitmap-qmp-cmds.c | 61 ++++++++ block/raw-format-bitmap.c | 163 ++++++++++++++++++++ block/raw-format.c | 256 ++++++++++++++++++++++++++++++-- block/raw-format.h | 50 +++++++ qapi/block-core.json | 64 +++++++- 6 files changed, 583 insertions(+), 12 deletions(-) create mode 100644 block/raw-format-bitmap.c create mode 100644 block/raw-format.h -- 2.31.0