Package: ganeti-2.15 Severity: normal Tags: upstream patch Dear Maintainer,
Starting with version 2.6, QEMU will fail to start with an error when aio=native and no cache=none is present. This is documented in http://wiki.qemu.org/ChangeLog/2.6. QEMU has been complaining about this since 2.3. Attached is a patch that detects this in the hypervisor setup and force the disk_cache setting, logging it at the same time. The patch verbatim taken from https://github.com/ganeti/ganeti/commit/1e510ccd092f472919a9f8b34ede838476ab7e2e.patch -- System Information: Debian Release: 9.1 APT prefers stable APT policy: (500, 'stable') Architecture: amd64 (x86_64) Kernel: Linux 4.9.0-4-amd64 (SMP w/4 CPU cores) Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE=en_US.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Init: systemd (via /run/systemd/system) Versions of packages ganeti-2.15 depends on: ii adduser 3.115 ii bridge-utils 1.5-13+deb9u1 ii debconf [debconf-2.0] 1.5.61 pn fping <none> ii iproute 1:4.9.0-1 ii iproute2 4.9.0-1 ii iputils-arping 3:20161105-1 ii lvm2 2.02.168-2 ii openssh-client 1:7.4p1-10+deb9u1 pn openssh-server <none> ii openssl 1.1.0f-3 ii python 2.7.13-2 pn python-bitarray <none> pn python-fdsend <none> pn python-ipaddr <none> ii python-openssl 16.2.0-1 ii python-paramiko 2.0.0-1 pn python-psutil <none> ii python-pycurl 7.43.0-2 pn python-pyinotify <none> ii python-pyparsing 2.1.10+dfsg1-1 ii python-simplejson 3.10.0-1 ii socat 1.7.3.1-2+deb9u1 ganeti-2.15 recommends no packages. ganeti-2.15 suggests no packages.
>From 1e510ccd092f472919a9f8b34ede838476ab7e2e Mon Sep 17 00:00:00 2001 From: Alexandros Kosiaris <[email protected]> Date: Thu, 1 Jun 2017 12:53:05 +0300 Subject: [PATCH] Force cache=none for KVM when aio=native (#43) Starting with version 2.6, QEMU will fail to start with an error when aio=native and no cache=none is present. This is documented in http://wiki.qemu.org/ChangeLog/2.6. QEMU has been complaining about this since 2.3. Detect this in the hypervisor setup and force the disk_cache setting, logging it at the same time. Signed-off-by: Alexandros Kosiaris <[email protected]> Reviewed-by: Federico Morg Pareschi <[email protected]> --- lib/hypervisor/hv_kvm/__init__.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/lib/hypervisor/hv_kvm/__init__.py b/lib/hypervisor/hv_kvm/__init__.py index 15f75ef48..d483808d6 100644 --- a/lib/hypervisor/hv_kvm/__init__.py +++ b/lib/hypervisor/hv_kvm/__init__.py @@ -1123,6 +1123,12 @@ def _GenerateKVMBlockDevicesOptions(self, up_hvp, kvm_disks, " to prevent shared storage corruption on migration", disk_cache) cache_val = ",cache=none" + elif aio_mode == constants.HT_KVM_AIO_NATIVE and disk_cache != "none": + # TODO: make this a hard error, instead of a silent overwrite + logging.warning("KVM: overriding disk_cache setting '%s' with 'none'" + " to prevent QEMU failures in version 2.6+", + disk_cache) + cache_val = ",cache=none" elif disk_cache != constants.HT_CACHE_DEFAULT: cache_val = ",cache=%s" % disk_cache else:

