Hello, Also here is a related issue to create an additional hook during migration in order to deal with volume preparation on the source node.
https://gitlab.com/libvirt/libvirt/-/issues/37 2 août 2023 14:18:42 Peter Krempa <pkre...@redhat.com>: > On Tue, Aug 01, 2023 at 12:28:56 +0200, e...@mailbox.org wrote: >> Hi, >> >> I have a block storage which I only want to be mounted on a single node. I >> know that there are many possibilities for shared storage usage but I want >> to know if the following is possible (using the API). >> - Have a domain running on node-A >> - Initialize a migration for that domain to node-B >> - Run a hook or something just before the domain starts on node-B to: >> - unmount storage on node-A >> - mount/prepare storage on node-B > > This is not possible with qemu, because during migration the process > running the VM exists both on node-A and node-B, and has the storage > open (although not accessing it) from both sides. > > At the time the migration is switching over, the source flushes buffers > and the destination starts writing into the image. > > This means that the storage must be mounted on both nodes during the > migration. > > What you can do though is, to save the VM state into a file and restore > it on the other node. (virsh save, virsh restore). Which uses basically > the same approach as migration, but the VM state is dumped to a file and > preserved, thus you can umount the storage for the necessary time until > it's moved to the next node.