
On Mon, Apr 26, 2021 at 01:34:17PM -0400, John Snow wrote:
On 4/23/21 8:59 AM, Vladimir Sementsov-Ogievskiy wrote:
Modern way is using blockdev-add + blockdev-backup, which provides a lot more control on how target is opened.
[...]
1) Let's add a sphinx reference to https://qemu-project.gitlab.io/qemu/interop/live-block-operations.html#live-...
2) Just a thought, not a request: We also may wish to update https://qemu-project.gitlab.io/qemu/interop/bitmaps.html to use the new, preferred method. However, this doc is a bit old and is in need of an overhaul anyway (Especially to add the NBD pull workflow.) Since the doc is in need of an overhaul anyway, can we ask Kashyap to help us here, if he has time?
Yes, I should be able to make time and help here; been putting it off on the back burner. Thanks for the reminder. :) I'd like to update both these: https://qemu-project.gitlab.io/qemu/interop/bitmaps.html https://qemu-project.gitlab.io/qemu/interop/live-block-operations.html Both of them, as you know, refer to 'drive-backup'. They also need other adjustments / additions. Also perhaps break the larger doc into a couple of smaller ones. I'll start working on it the end of this week. First I need to tinker with some of the recent improvements to refresh my memory and get a sense of the modifications involved. So please bear with me.
3) Let's add a small explanation here that outlines the differences in using these two commands. Here's a suggestion:
This change primarily separates the creation/opening process of the backup target with explicit, separate steps. BlockdevBackup uses mostly the same arguments as DriveBackup, except the "format" and "mode" options are removed in favor of using explicit "blockdev-create" and "blockdev-add" calls.
The "target" argument changes semantics. It no longer accepts filenames, and will now additionally accept arbitrary node names in addition to device names.
Yeah; this is something I had figure out by some trial-and-error when I was playing with it in the past.
4) Also not a request: If we want to go above and beyond, it might be nice to spell out the exact steps required to transition from the old interface to the new one. Here's a (hasty) suggestion for how that might look:
- The MODE argument is deprecated. - "existing" is replaced by using "blockdev-add" commands. - "absolute-paths" is replaced by using "blockdev-add" and "blockdev-create" commands.
- The FORMAT argument is deprecated. - Format information is given to "blockdev-add"/"blockdev-create".
- The TARGET argument has new semantics: - Filenames are no longer supported, use blockdev-add/blockdev-create as necessary instead. - Device targets remain supported.
Agreed; docs like these can be useful for management tools that rely on the old behaviour and are not as up-to-date as libvirt in keeping track of QEMU developments. [...] -- /kashyap