On Wed, Jan 22, 2025 at 12:50:37PM +0100, Kevin Wolf wrote:
> This series adds a mechanism that allows the user or management tool to
> manually activate and inactivate block nodes instead of fully relying on
> the automatic management in the migration code.
>
> One case where this is needed is for migration with shared storage and
> devices backed by qemu-storage-daemon, which as an external process is
> not involved in the VM migration. Management tools can manually
> orchestrate the handover in this scenario. The new qemu-iotests case
> qsd-migrate demonstrates this.
>
> There are other cases without qemu-storage-daemon where manual
> management is necessary. For example, after migration, the destination
> VM only activates images on 'cont', but after migrating a paused VM, the
> user may want to perform operations on a block node while the VM is
> still paused.
>
> This series adds support for block exports on an inactive node (needed
> for shared storage migration with qemu-storage-daemon) only to NBD.
> Adding it to other export types will be done in a future series.
>
> Kevin Wolf (9):
> block: Allow inactivating already inactive nodes
> block: Add option to create inactive nodes
> block: Support inactive nodes in blk_insert_bs()
> block/export: Don't ignore image activation error in blk_exp_add()
> block/export: Add option to allow export of inactive nodes
> nbd/server: Support inactive nodes
> block: Add blockdev-set-active QMP command
> iotests: Add filter_qtest()
> iotests: Add qsd-migrate case
I started reviewing this, but see v2 now, so I'll resume my review there.
--
Eric Blake, Principal Software Engineer
Red Hat, Inc.
Virtualization: qemu.org | libguestfs.org