Probleme bei der Virtualisierung mit Ubuntu 14.04 LTS und KVM

Nachdem Ubuntu 14.04 LTS jetzt schon über zwei Monate alt ist, habe ich die ersten Server migriert. Ich hatte gehofft, dass die meisten schlimmen Fehler inzwischen behoben sind und man das System ohne größere Probleme betreiben kann.

Als ich den ersten Server für Virtualisierung migrierte, erwies sich meine Annahme aber leider als falsch. Zunächst liefen die Gast-Betriebsysteme ohne Probleme und dank der Technik Hyper V von Microsoft auch viel schneller als vorher. Je nach Auslastung wurden sie aber zunehmend langsamer und stürzten nach 3 bis 12 Stunden ganz ab. Die Windows-Gäste standen dann im Bluescreen und die Linux-Gäste hatten eine Kernelpanik.

Wie sich zeigte gibt es im Linux-Kernel 3.13 von Ubuntu 14.04 wohl noch einige Bugs, die früher oder später für einen Absturz der Gast-Betriebssysteme sorgen:

Nach diversen erfolglosen Versuchen das Problem in den Griff zu bekommen, stieß ich auf einen Blog-Post von Peter Kieser. Dieser machte den Vorschlag, den erprobten Linux-Kenel 3.10 mit Langzeitsupport für Ubuntu 14.04 zu kompilieren. Dieser Kernel wird auch bei RedHat Enterprise Linux verwendet, ist für Virtualisierung erprobt und er löste alle meine Probleme! Und dies geht wie folgt (ggf. kann man natürlich auch einen neueren Patchlevel des 3.10er Kerbels verwenden):

apt-get -y install build-essential
cd /usr/local/src
wget https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.10.46.tar.xz
tar -Jxf linux-3.10.46.tar.xz
cd linux-3.10.46
cp /boot/config-`uname -r` .config
make olddefconfig
make -j`nproc` INSTALL_MOD_STRIP=1 deb-pkg
dpkg -i ../*.deb
apt-mark hold linux-libc-dev

Außerdem machte Peter Kieser noch einige Tuning Vorschläge, die er auch durch den Vergleich mit RedHat Enterprise Linux gefunden hatte. Ich habe mir davon die Verwendung des e1000 Netzwerkkartentreibers bei den Windows-Gästen, die Einträge für Hyper V in der Konfig der Windows-Gäste, die Anpassung von Grub und die Einträge in der /etc/sysctl.conf abgeschaut.

Einträge für Hyper V in der Konfig der Windows-Gäste

In die Konfig der Windows-Gäste müssen – sofern noch nicht vorhanden – die folgenden Zeilen in den Abschnitt “features” eingetragen werden:

In die Konfig der Windows-Gäste gelangt man am einfachsten, wenn man in der virsh

edit 

eingibt. Man landet dann mit einem vi in der Konfig und wenn man den vi beendet, wird die Konfig auch gleich richtig gespeichert.

Die Datei sollte nach den Änderungen etwa wie folgt aussehen:

WKSNUE01cce892d2-8fee-3add-f25d-6a46b1f14268419430441943041hvmdestroyrestartrestart/usr/bin/kvm
<address><address><address><address><input type="tablet"> <input type="mouse"> <input type="keyboard"><address><video width="300" height="150">
      <model type="vga" vram="9216" heads="1">
      <address type="pci" domain="0x0000" bus="0x00" slot="0x02" function="0x0">
    
    <memballoon model="virtio">
      <address type="pci" domain="0x0000" bus="0x00" slot="0x05" function="0x0">

</address></memballoon></address></model></video></address></address></address></address></address>

Anpassung von Grub

In der Datei “/etc/default/grub” sollten für den Linux-Kernel “Headline scheduler”, and “transparent hugepages” eingeschaltet werden. Dies macht macht man in der Variable “GRUB_CMDLINE_LINUX_DEFAULT”. Die Zeile mit der Variable sollte dazu wie folgt aussehen.

GRUB_CMDLINE_LINUX_DEFAULT="elevator=deadline transparent_hugepage=always"

Damit die Anpassung aktiv wird muss man noch den folgenden Befehl eingeben.

update-grub

Einträge für die Datei /etc/sysctl.conf

kernel.sched_min_granularity_ns=10000000
kernel.sched_wakeup_granularity_ns=15000000
vm.dirty_ratio=10
vm.dirty_background_ratio=5
vm.swappiness=10

Beitrag veröffentlicht

in

von

Kommentare

7 Antworten zu „Probleme bei der Virtualisierung mit Ubuntu 14.04 LTS und KVM“

  1. Avatar von Dominique
    Dominique

    I dont speak german but i just want to thank you for this help. I have same problems with Ubuntu 14.04 under 2012 hyper-v.
    Best regard
    Dominique

  2. Avatar von kristian

    You are welcome 😉

  3. Avatar von tapachgaertner
    tapachgaertner

    Jetzt, ein halbes Jahr später: Ist die Umsetzung dieses Vorschlags weiterhin erfordelich?

  4. Avatar von kristian

    Eine sehr gute Frage, die ich mir die letzten Tage auch gestellt habe. Da einige Produktivmaschinen auf dem System laufen, habe ich immer die Funktionierende Lösung verwendet. Da der Absturz der Gäste ja immer erst nach einiger Zeit passiert, ist der Test immer sehr schmerzhaft. Ich wollte voraussichtlich nächsten Wochenende aber noch mal testen. Da arbeite ich eh am Wogenden und kann eine längere Zeit in ruhe testen.

    Die Kommentare bei Launchpad sind ja leider nicht so ganz eindeutig. Es gibt zumindest einige die behaupten, dass der Fehler noch nicht gelöst ist. Verantwortlich fühlt sich aber kein Maintrainer mehr.

  5. Avatar von kristian

    Habe jetzt noch mal mit dem neusten Kernel von Ubuntu getestet und kann bestätigen, dass der Fehler immer noch auftritt. Ubuntu scheint mit schnellen AMD Prozessoren und Virtualisierung also nicht so zuverlässig zu laufen. Sehr, sehr schade ;-(

  6. Avatar von Fred
    Fred

    Hatte dieselben Probleme mit Ubuntu 14.04 LTS als Host, bei Virtualisierung mit KVM und Windows Gast-Betriebssystemen. Des Rätsels Lösung war das manuelle Upgraden des Host-Kernels von 3.13 auf 3.16 (laut eines Forums soll 3.14 das Problem auch beheben).

    Host: 2x E5-2620V2, Ubuntu 14.04 LTS
    Guest: 24 virtual cores, Windows Server 2008 R2

    Vor dem Fix:
    sudo uname -a
    Linux x.contabo.net 3.13.0-44-generic #73-Ubuntu SMP Tue Dec 16 00:22:43 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
    Bluescreen stop 0x0000005c alle paar Stunden

    Nach dem Fix:
    sudo uname -a
    Linux x.contabo.net 3.16.0-23-generic #31-Ubuntu SMP Tue Oct 21 17:56:17 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
    Keine Bluescreens oder andere Abstürze seit 7 Tagen unter Volllast.

    Bin diesem Tutorial gefolgt http://askubuntu.com/questions/541775/how-can-i-install-ubuntu-14-10s-kernel-in-ubuntu-14-04-lts

    Hoffe das hilft jemandem weiter.

  7. Avatar von kristian

    Danke für den Tipp. Aber irgendwie schon ein Ding, dass der Fehler beim LTS-Kernel nicht gefixt wird.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.

Consent Management Platform von Real Cookie Banner