Hi! Thanks Sascha for the pointer. I have tested it on bullseye and it really works, great.
I don't know if we could add this patch for the next .release or something. All I did was patch all the nodes, a ganeti force-reload and I was migrating without problems (no need to reboot the guests or anything). I'm attaching the patch as github's web seems to put it difficult (or even imposible, at least I didn't find it) to download the raw patch. Regards. -- Manty/BestiaTester -> http://manty.net
--- a/usr/share/ganeti/3.0/ganeti/hypervisor/hv_kvm/__init__.py 2021-03-02 14:13:17.000000000 +0100 +++ b/usr/share/ganeti/3.0/ganeti/hypervisor/hv_kvm/__init__.py 2021-09-09 12:15:30.634811616 +0200 @@ -629,6 +629,10 @@ # different than -drive is starting) _BOOT_RE = re.compile(r"^-drive\s([^-]|(?<!^)-)*,boot=on\|off", re.M | re.S) _UUID_RE = re.compile(r"^-uuid\s", re.M) + # The auto-read-only option is on the -blockdev, Ganeti uses this at -drive + _AUTO_RO_RE = \ + re.compile(r"^-blockdev\s([^-]|(?<!^)-)*,auto-read-only=on\|off", + re.M | re.S) _INFO_VERSION_RE = \ re.compile(r'^QEMU (\d+)\.(\d+)(\.(\d+))?.*monitor.*', re.M) @@ -1246,6 +1250,14 @@ dev_val += ",drive=%s" % kvm_devid dev_opts.extend(["-device", dev_val]) + # QEMU 4.0 introduced dynamic auto-read-only for file-backed drives. This + # is unhandled in Ganeti and breaks live migration with + # security_model=user|pool, disable it here. See also + # HotAddDevice/drive_add_fn which solves a similar problem for hotpluged + # disks + if self._AUTO_RO_RE.search(kvmhelp): + drive_val += ",auto-read-only=off" + dev_opts.extend(["-drive", drive_val]) return dev_opts