]> git.proxmox.com Git - qemu-server.git/commit
fix #4525: clone disk: disallow mirror if it might cause problems with io_uring
authorFiona Ebner <f.ebner@proxmox.com>
Fri, 10 Feb 2023 14:19:12 +0000 (15:19 +0100)
committerThomas Lamprecht <t.lamprecht@proxmox.com>
Tue, 14 Feb 2023 09:09:04 +0000 (10:09 +0100)
commit8fbae1dc8f9041aaa1a1a021740a06d80e8415ed
treecd6df97b612826e3bb03c69a84f20802ca925479
parentb7071d6c00d8aeb10be087589ae844414329d106
fix #4525: clone disk: disallow mirror if it might cause problems with io_uring

The target of the drive-mirror operation is opened with (essentially)
the same flags as the source in QEMU, in particular whether io_uring
should be used is inherited.

But io_uring currently causes problems in combination with certain
storage types, sometimes even leading to crashes (LVM with Linux 6.1).
Just disallow live cloning of drives when the source uses io_uring and
the target storage is not ready for it. There is one exception, namely
when source and target storage are the same. In that case, just assume
it will keep working for the target.

Migration does not seem to be affected, because there, the target VM
opens the images with the checked aio setting and then NBD exports of
those are used as the targets for mirroring.

It can be that the default determined for the source is not what's
actually used, because after a drive-mirror to a storage with a
different default, it will still use the default from the old storage.
Unfortunately, aio doesn't seem to be part of the 'query-block' QMP
command's result, so just tolerate this edge case.

The check can be removed if either
1. drive-mirror learns to open the target with a different aio setting
or more ideally
2. there are no more bad storages for io_uring.

Signed-off-by: Fiona Ebner <f.ebner@proxmox.com>
PVE/QemuServer.pm