On Thu, Jan 30, 2025 at 06:12:39PM +0100, Kevin Wolf wrote: > The system emulator tries to automatically activate and inactivate block > nodes at the right point during migration. However, there are still > cases where it's necessary that the user can do this manually. > > Images are only activated on the destination VM of a migration when the > VM is actually resumed. If the VM was paused, this doesn't happen > automatically. The user may want to perform some operation on a block > device (e.g. taking a snapshot or starting a block job) without also > resuming the VM yet. This is an example where a manual command is > necessary. > > Another example is VM migration when the image files are opened by an > external qemu-storage-daemon instance on each side. In this case, the > process that needs to hand over the images isn't even part of the > migration and can't know when the migration completes. Management tools > need a way to explicitly inactivate images on the source and activate > them on the destination. > > This adds a new blockdev-set-active QMP command that lets the user > change the status of individual nodes (this is necessary in > qemu-storage-daemon because it could be serving multiple VMs and only > one of them migrates at a time). For convenience, operating on all > devices (like QEMU does automatically during migration) is offered as an > option, too, and can be used in the context of single VM. > > Signed-off-by: Kevin Wolf <kw...@redhat.com> > --- > qapi/block-core.json | 32 ++++++++++++++++++++++++++++++ > include/block/block-global-state.h | 3 +++ > block.c | 21 ++++++++++++++++++++ > blockdev.c | 32 ++++++++++++++++++++++++++++++ > 4 files changed, 88 insertions(+)
Reviewed-by: Stefan Hajnoczi <stefa...@redhat.com>
signature.asc
Description: PGP signature