20.3 Servervirtualisierung
Neben dem Bereich der Virtualisierung in Desktop-Umgebungen ist die Servervirtualisierung das Kernaufgabengebiet des Sysadmins. Die Servervirtualisierung findet hauptsächlich im Bereich von Rechenzentren und Cloud Computing statt.
Die Virtualisierungssoftware selbst stellt dabei nur eine Schnittstelle zum Betrieb bereit. Die Verwaltung der virtuellen Maschinen erfolgt über separate Software. Der große Funktionsumfang der Virtualisierungslösungen wird durch die Vielzahl der Parameter deutlich, die die jeweiligen Lösungen verarbeiten können. Für einzelne Systeme können Sie das Anlegen, Starten, Stoppen und Verwalten der Systeme ohne Probleme mit den Lösungen selbst regeln. In großen Umgebungen ist eine Managementsoftware aber unverzichtbar.
Zurzeit ist die Virtualisierungswelt im Umbruch. Die einstigen Verfechter von Xen wandern nach und nach in Richtung KVM ab. Es bleibt abzuwarten, wie weit sich dieser Trend fortsetzt oder ob Xen vielleicht doch noch eine Renaissance erleben wird.
In diesem Abschnitt erfahren Sie alles zur Virtualisierungslösung KVM, und Sie erhalten einen Einstieg in Xen. Die vorgestellte Managementsoftware libvirt mit virt-install, virsh und Co. kann sowohl mit KVM als auch mit Xen betrieben werden.
20.3.1 KVM
Die Kernel-based Virtual Machine (KVM) läuft, wie der Name bereits angibt, im Kernel und stellt eine Hardwareschnittstelle zur Virtualisierung bereit. Diese Virtualisierungslösung basiert auf x86-Hardware. KVM benötigt für den Betrieb spezielle Prozessoren, die mit einem speziellen Hardware-Hypervisor ausgestattet sind. Diese Prozessoren des Typs AMD-V (Pacifica) oder Intel VT (Vanderpool) sind für KVM zwingend erforderlich. Durch die Unterstützung des Hardware-Hypervisors verfügt KVM über eine gute Performance und ermöglicht den nativen (unangepassten) Betrieb von virtuellen Maschinen. Das im Jahre 2008 von Red Hat gekaufte israelische Unternehmen Qumranet entwickelte KVM. Seit 2007 ist KVM Bestandteil des Linux-Kernels und kann somit auf fast allen Distributionen betrieben werden.
Durch den Betrieb im Kernel stellt sich die Virtualisierung mit KVM wie in Abbildung 20.4 gezeigt dar.
Abbildung 20.4 Betriebskonzept von KVM
Überprüfen Sie vorab, ob Ihr System einen Hardware-Hypervisor besitzt. Lesen Sie dafür die Datei /proc/cpuinfo aus, und prüfen Sie, ob die Statusindikatoren (Flags) vmx oder svm vorhanden sind. Dies können Sie mit einem einfachen regulären Ausdruck erreichen. Erhalten Sie bei dem in Listing 20.1 aufgeführten Befehl keine Ausgabe, ist der Prozessor nicht in der Lage, mit KVM zu virtualisieren.
root@example:/# grep -E '^flags.*\b(vmx|svm)\b' /proc/cpuinfo
Listing 20.1 Prozessoranforderung prüfen
Wenn Ihr Test bestätigt, dass Ihr System KVM nutzen kann, installieren Sie als Nächstes das Metapaket qemu-kvm aus den Paketquellen. Die benötigten abhängigen Pakete werden direkt mit installiert. Zusätzlich sollten Sie unter Debian/Ubuntu die Pakete libvirt-bin (unter CentOS/openSUSE libvirt), virtinst (unter CentOS/openSUSE virt-install) und bridge-utils installieren. Diese Tools werden im weiteren Verlauf zum Installieren und Administrieren der virtuellen Maschinen benötigt.
Bei entsprechenden Prozessoren werden die benötigten Module meist automatisch geladen. Dies sollten Sie ebenfalls vorab wie folgt prüfen:
root@example:/# lsmod | grep kvm
kvm_intel 212992 0
kvm 593920 1 kvm_intel
irqbypass 16384 1 kvm
Listing 20.2 »KVM«-Module: Intel-CPU
Bei AMD-Prozessoren würde entsprechend das Modul kvm_amd geladen sein.
[+] Hardwarevirtualisierung im BIOS aktivieren
Die Hardwarevirtualisierung kann im BIOS deaktiviert sein. In diesem Zustand startet der KVM-Dienst nicht. Die Ausgabe von dmesg enthält dann die Meldung kvm: disabled by bios.
Eine Übersicht darüber, welche Gast-Systeme KVM unterstützt, finden Sie auf der KVMProjektseite unter der URL www.linux-kvm.org/page/Guest_Support_Status.
Wie bereits erläutert wurde, stellt KVM nur die Linux-Kernelschnittstelle zur Verfügung. Die Virtualisierungsumgebung wird durch QEMU realisiert. Bei QEMU handelt es sich um eine Emulationssoftware, deren Quellcode auch zur Grundlage der Emulierung von virtuellen Maschinen in VirtualBox dient.
»virtio«
Aufgrund der Vollvirtualisierung von KVM sind gerade die I/O[ 28 ]-Verarbeitungen kritisch, da diese äußerst rechenintensiv sind. Seit der KVM-Version 60 und dem Linux-Kernel 2.6.25 gibt es eine weitere Möglichkeit, I/O-Zugriffe durch KVM verarbeiten zu lassen. Das von Rusty Russell entwickelte Tool virtio stellt eine Möglichkeit bereit, I/O-Zugriffe paravirtualisiert zu betreiben.
Durch eine weitere Abstraktionsebene werden Zugriffe einer VM paravirtualisiert auf der physischen Hardware verarbeitet. Dadurch ist ein enormer Geschwindigkeitszuwachs entstanden.
20.3.2 Xen
Die an der britischen Universität Cambridge entstandene und heute vom Unternehmen Citrix weiterentwickelte Virtualisierungslösung Xen ist ein reiner Software-Hypervisor, auch Virtual Machine Monitor (VMM) genannt. Im Gegensatz zu KVM läuft Xen direkt auf der Hardware und verfolgt das Konzept der Paravirtualisierung.
[+] Diesem Konzept liegt das Xen-Domänenkonzept zugrunde. Dabei stellt Xen selbst die Dom0 dar. Virtuelle Maschinen werden in unprivilegierten Domänen betrieben, die man als DomU bezeichnet.
Für die Paravirtualisierung setzt Xen, äquivalent zu KVM, auf die Hardware-Hypervisoren der Prozessortypen AMD-V (Pacifica) oder Intel VT (Vanderpool). Sind diese nicht vorhanden, wird lediglich eine Vollvirtualisierung durch Xen geboten. Abbildung 20.5 verdeutlicht das Betriebskonzept der Xen-Virtualisierung.
Abbildung 20.5 Betriebskonzept von Xen
Durch den Betrieb im Kernel müssen die Xen-Anpassungen für den jeweiligen Kernel vorgenommen werden. Dies ist nicht nur beschwerlich, sondern auch teilweise nicht möglich, da entsprechende Optionen nicht mehr vorhanden sind.
Dies führt dazu, dass Xen-Systeme auf veralteten Kernel-Versionen betrieben werden müssen. Darüber hinaus muss jedes Gast-System angepasst werden, damit die Vorteile der Paravirtualisierung auch genutzt werden können.
Wie schon erwähnt wurde, ist die Virtualisierungswelt im Umbruch: Einstige Unterstützer von Xen wandern in Richtung KVM ab. Es bleibt ungewiss, wie weit Xen noch entwickelt wird.