Backups can already be done for multiple drives in a transaction. However, these jobs will start all at once, potentially hogging a lot of disk IO all at once. This problem is made worse, since IO throttling is only available on a per-job basis.
Add a flag to QMP to support sequential transactions for backups. This way, every job will be executed one after the other, while still providing the benefit of transactions (i.e. once one fails, all remaining ones will be cancelled). We've internally (in Proxmox VE) been doing sequential backups for a long time with great success, albeit in a different fashion. This series is the result of aligning our internal changes closer to upstream, and might be useful for other people as well. Stefan Reiter (3): job: add sequential transaction support blockdev: add sequential mode to *-backup transactions backup: initialize bcs bitmap on job create, not start block/backup.c | 4 ++-- blockdev.c | 25 ++++++++++++++++++++++--- include/qemu/job.h | 12 ++++++++++++ job.c | 24 ++++++++++++++++++++++++ qapi/transaction.json | 6 +++++- 5 files changed, 65 insertions(+), 6 deletions(-) -- 2.20.1