cherezoff - stock.adobe.com
KVM: Antworten auf häufig gestellte Fragen
KVM (Kernel based Virtual Machine) ist ein beliebter Hypervisor für Linux-Distributionen. In diesem Artikel beantworten wir vier häufige Fragen, die beim Management auftreten.
KVM ist ein beliebter und bekannter kostenloser Hypervisor für Linux-Distributionen. Er erlaubt Administratoren Fernzugriff auf Software und virtuelle Maschinen (VM) sowie eine hohe Skalierbarkeit und Flexibilität bei Netzwerken.
Wissen zu KVM (Kernel-bades Virtual Machine) ist recht weit verbreitet – doch es kommt gelegentlich zu Problemen mit der Leistung. Dahinter können zum Beispiel inkompatible Workloads, mangelnder Festplattenspeicher oder sogar eine inaktive Virtuelle Maschinen stecken.
Im Folgenden haben wir Antworten auf vier häufig gestellte Fragen zusammengestellt, die im Zusammenhang mit den genannten Problemen immer wieder auftreten, um Administratoren dabei zu helfen, ihre KVM optimal zu verwalten.
In welche Umgebungen passt KVM?
Ob KVM mit dem vorliegenden System kompatibel ist, hängt davon ab, welche Sorte Workload darauf läuft. So können beispielsweise Produktionsumgebungen, anspruchsvolle Geschäftsanwendungen, Systeme mit gemischten Workloads und Private Clouds auf jeweils verschiedene Weise von einem KVM-Modul profitieren. Zu den am häufigsten verwendeten Distributionen von KVM gehören die Varianten von Red Hat Enterprise Linux und SUSE Linux Enterprise Server.
Sie verlassen sich häufig auf Intel VT-x und AMD-V x86, um den VMs Ressourcen zuzuweisen. Administratoren, die hauptsächlich Linux verwenden, können dabei die Vorteile des Memory Ballooning nutzen, um mehreren VMs innerhalb eines Systems Arbeitsspeicher zuzuweisen. Darüber hinaus kann das KVM-Modul Offline- oder Live-Migrationen ermöglichen, so dass die VMs von KVM-Gästen auf ein anderes Host-System verschoben und dort ausgeführt werden können, zum Beispiel bei einer Migration zwischen AMD- und Intel-Systemen.
Insgesamt unterstützt KVM eine Vielzahl von Gastbetriebssystemen, wie zum Beispiel Windows, Red Hat-, Ubuntu- und Debian-Varianten, BSD, Solaris und OpenSolaris sowie weitere Linux-Betriebssysteme, einschließlich Android, Gentoo Linux und Mandriva Linux.
Was sind wichtige Best Practices für KVM?
KVM gilt als zugängliche Technologie für Admins, besonders in Umgebungen mit einer geringen Dichte. Doch in aufwändigeren Strukturen sollten Admins die Installation und Konfiguration genau planen. Andernfalls riskieren sie ein unkontrolliertes Wachstum, das die Qualität ihrer KVM-Bereitstellung beeinträchtigen kann.
Die grafische Benutzeroberfläche (GUI, Graphic User Interface) und die CLI (Command Line Interface, Kommandozeile) sind gleichermaßen akzeptable Werkzeuge zur Verwaltung einer kleinen Anzahl von KVMs. Eine groß angelegte KVM-Bereitstellung verlangt jedoch das Verwalten Hunderter oder gar Tausender Rechner. In diesem Fall gibt es mehrere bewährte Methoden, um den Arbeitsaufwand in einem zu bewältigenden Rahmen zu halten:
- Für die Verwaltung von KVM-Installationen sollten Administratoren VirtIO-Treiber verwenden, um KVM-Images zu erstellen. Die meisten Linux-Distributionen unterstützen KVM und haben VirtIO-Treiber bereits in den Kernel integriert. Admins unter Windows müssen den VirtIO-Treiber jedoch zuvor installieren.
- Für die langfristige Verwaltung und Pflege von KVMs können Admins zusätzliche Tools verwenden. Anbieter wie Red Hat bieten umfangreiche Verwaltungsdienste mit GUIs an. Admins sollten genau abwägen, welche Plattform ihren Ansprüchen am besten gerecht wird.
- Administratoren sollten darauf vorbereitet sein, in ihrer jeweiligen Umgebung mit verschiedenen Best Practices zu experimentieren. Bei der Installation von KVM auf Windows beispielsweise verwendet das System standardmäßig integrierte IDE (Integrated Drive Electronics). Das funktioniert mit einigen Ausnahmen. In diesen ist dann aber Kreativität gefragt. Admins sollten ihre Basis-Images inkrementell entwerfen und ihren KVM-Einsatz sorgfältig dokumentieren, damit sie ihre Taktik leichter anpassen können.
Wie erweitern und konfigurieren Admins den Speicher von KVMs?
Zur vollen Entfaltung kommen die Flexibilität und Performance von KVM, wenn Admins die Möglichkeiten zum Erweitern und Anpassen von Speicher nutzen. Administratoren können virsh-Befehle verwenden, um Speicher zu einer vorhandenen virtuellen Maschine hinzuzufügen oder diese zu verwalten.
Dafür erstellt man zunächst eine Festplattendatei und legt fest, ob es sich um eine Sparse-Datei oder um eine Datei mit fester Größe handeln soll. Das Anlegen von Sparse-Dateien bietet zusätzlichen Speicherplatz, ist aber nicht ideal, da neue Datenblöcke verlangen, dass man ihnen Ressourcen auf dem zugrunde liegenden physischen Gerät zuweist. Admins können mit dem folgenden Befehl eine Festplattendatei erstellen, die 10 GB enthält:
dd if=/dev/zero of=/var/lib/libvirt/images/vm1-disk2.img bs=1G count=10.
Anschließend stellt man mit XML-Code (Extensible Markup Language) eine Verbindung zu KVM her, um sicherzustellen, dass KVM das erstellte Speichergerät erkennt. Admins können die Spezifikation in einer separaten Datei ablegen, um das spätere Aktualisieren der Einstellungen zu erleichtern. Die Datei sollte folgendermaßen aussehen:
<disk type='file' device='disk'>
<driver name='qemu' type='raw' cache='none'/>
<source file='/var/lib/libvirt/images/vm1-disk2.img'/
<target dev='vdc'/>
</disk>
Admins sollten dann den Plattentyp als dateibasierten Speicher angeben, der als Speicher-Backend dienen soll, und die Datei anschließend als Festplatte innerhalb der VM deklarieren. Als nächstes müssen die Administratoren mit einem Raw-File-Typ den Treiber als QEMU-Festplattentreiber identifizieren.
Jetzt können Admins die Festplatte mit dem Befehl virsh attach-device an das Gerät anschließen und die Datei vm1 vm1-dik2.xml konfigurieren, um das KVM Volume zu erweitern. Dabei gilt es jedoch zu beachten, dass der Befehl virsh attach-device manchmal die Verwendung einer XML-Konfigurationsdatei erfordert, um die Eigenschaften des neuen Datenträgers zu definieren.
Was sind Strategien für die Fehlerbehebung bei KVM?
Wenn die KVM-Verwaltung nicht wie geplant verläuft, ist es wichtig, dass die Administratoren wissen, wie sie häufige Probleme beheben können. Zum Beispiel gibt es Hypervisor-Protokolle und VM-Protokolle, anhand derer sie Probleme innerhalb eines KVM-Moduls identifizieren können. Wir haben hier sechs Schritte für die grundlegende Fehlerbehebung zusammengestellt:
1. Problem isolieren
Der erste Schritt ist das Isolieren des Problems. Admins sollten überprüfen, welche KVM-Rechner vom Problem betroffen sind. Tritt es bei allen auf, ist es sehr wahrscheinlich, dass die Ursache bei KVM und nicht bei den VMs selbst zu finden ist. Admins können den KVM-Dienst überprüfen, indem sie root initiieren und den Befehl systemctl status libvirtd verwenden. Dies zeigt den Admins die Betriebszeit an und ob der KVM-Dienst aktiv ist. Er lässt sich mit dem Befehl systemctl start libvirtd neu starten.
2. VM-Status überprüfen
Läuft der KVM-Dienst, sollte man als nächstes die VMs überprüfen. Mit dem Befehl list können Admins feststellen, ob Probleme zwischen der VM und dem externen Host vorliegen. Ist dies der Fall, lässt sich die virsh-Befehlskonsole mit dem VM-Namen einsetzen. Voraussetzung dafür ist jedoch, dass sie eine virtuelle serielle Konsole in ihrem Betriebssystem konfiguriert haben.
3. Platz auf der Festplatte sicherstellen
Ohne ausreichenden Platz auf der Festplatte kann die CPU-Leistung leiden und das wiederum KVM beeinträchtigen. Administratoren können den Befehl virsh cpu-stats centos7 verwenden, um CPU-Leistungsdaten zu extrahieren. Der Befehl gibt die Auslastungswerte der VMs aus, anhand derer Admins beurteilen können, ob sie zusätzliche virtuelle CPUs hinzufügen sollten.
4. Arbeitsspeicher prüfen
Ähnlich wie beim Datenspeicher ist es wichtig, dass das System über genug Arbeitsspeicher verfügt, damit KVM funktionieren kann. Der entscheidende Faktor ist dabei der Swap-Wert. Steht dieser auf etwas anderem als Null, lagert das System Speicher auf physische Platten aus. Das drosselt die Leistung. Der Befehl virsh shutdown <machine name> fährt die VM herunter. Weitere Befehle sind start, suspend, resume und reboot (Starten, Anhalten, Weiter und Neustarten).
5. Netzwerk prüfen
Obwohl das Netzwerk per se selten Probleme für KVM verursacht, kann das häufig verwendete NAT (Network Address Translation) sich in einigen Produktionsumgebungen negativ auf KVM auswirken. Alternative VM-Netzwerkkonfiguration auf der libvirt-Site verschaffen hier Abhilfe. Admins müssen jedoch vorsichtig sein, wenn sie die VM-Netzwerkkonfiguration ändern, und verstehen, wie sich diese Änderungen auf ihr System auswirken.
6. Grafische Oberfläche statt virsh benutzen
Administratoren, die es vorziehen, GUIs statt der virsh-Befehlszeile zu verwenden, können den Virtual Machine Manager (virt-manager) verwenden, um die KVM-Konsole anzuzeigen, Maschinen zu erstellen, grundlegende Verwaltungsaufgaben durchzuführen sowie die Leistung zu messen. Das funktioniert mit jeder Linux-Version, auf der die GUI vorab installiert wurde.