Virtualisierung Emulation Computer Literatur Schulungsmaterial
(Link zu dieser Seite als [[QEMU-KVM-Buch/ Allgemeines/ Einleitung]])
Einleitung
Virtuelle Maschinen stellen definierte Systemumgebungen zur Verfügung. Aus Templates mit einer bestimmten Version eines Betriebssystems und einem gewünschten Patch-Level werden virtuelle Maschinen generiert. Snapshots speichern Zustände einer virtuellen Maschine. Später, zum Beispiel nach einem fehlgeschlagenen Patch, wird dieser Zustand wiederhergestellt. Snapshots sind vorteilhaft für Entwicklungsumgebungen, Software-Tests, Support und Schulung. Virtualisierung und Emulation ermöglichen die Unabhängigkeit von der Hardware. So lassen sich zum Beispiel alte Versionen einer Anwendung auf neuer Hardware betreiben oder auch Software für nicht vorhandene Hardware entwickeln. Dies sind die Stärken von QEMU. QEMU ist kostenlos und läuft auf vielen Systemen (Linux, BSD, Mac OS X, Microsoft Windows, eComstation und DOS).
Virtualisierung bringt eine Reihe von Vorteilen, die je nach Art unterschiedlich gewichtet sind. Dadurch, dass mehrere Gast-Systeme parallel auf einem Rechner laufen, ist eine bessere Hardware-Auslastung möglich. Früher wurden für wichtige Anwendungen jeweils ein physikalischer Computer verwendet. Das Resultat ist ein größerer Rechnerpark mit entsprechend hohem Aufwand (Wartung, Stromversorgung, Klimaanlage). Betreibt man dagegen einzelne Anwendungen jeweils in einer virtuellen Maschine, sind die Anwendungen auch voneinander entkoppelt und die Hardware wird besser ausgenutzt. Neben der Sicherheit wird auch die Verfügbarkeit erhöht, denn virtuelle Maschinen können bei Hardware-Problemen auf eine andere Hardware übertragen werden. Sie lassen sich komplett sichern und wiederherstellen. Diese Optimierung der Data Center durch Virtualisierungslösungen nennt man Server-Konsolidierung. Die Kernel-based Virtual Machine (KVM) ist eine geeignete Virtualisierungslösung dafür. KVM ist auch Open Source und läuft unter Linux.
Die Verwaltung von virtuellen Maschinen erfolgt unter verschiedenen Virtualisierungslösungen sehr unterschiedlich. In einem heterogenen Data Center ist es oft nicht möglich mit einem Tool mehrere Virtualisierungslösungen zu steuern. Zur Lösung dieses Problems wird die C-Bibliothek libvirt entwickelt. Sie stellt einheitliche Schnittstellen zum Managen von unterschiedlichen Virtualisierungslösungen zur Verfügung.
Die Print-Ausgabe
QEMU, die Kernel-based Virtual Machine (KVM) und die C-Bibliothek libvirt werden im Wiki http://qemu-buch.de ausführlich beschrieben. Der Inhalt steht unter der GNU Free Documentation License. Die Texte dieses Wikis wurden für dieses Buch angepasst. Dieses Buch ist zugleich ein Arbeitsbuch und ein Nachschlagewerk. Es richtet sich an (Linux-)System-Administratoren, Software-Entwickler, Software-Tester und technisch Interessierte. Durch die vielen Anwendungsbeispiele und die verwendete Lizenz eignet es sich besonders als Schulungsmaterial.
Es werden die folgenden Schreibweisen verwendet.
Courierschrift
Für Konsolen-Befehle und Quellcode.
~# Befehl
Für Unix-Konsolen-Befehle als Systemadministrator (root).
~$ Befehl
Für Unix-Konsolen-Befehle als normaler Benutzer.
Host ~# Befehl
Für Unix-Konsolen-Befehle als Systemadministrator (root) auf dem Host-Rechner.
Host ~$ Befehl
Für Unix-Konsolen-Befehle als normaler Benutzer auf dem Host-Rechner.
Host C:\> Befehl
Für DOS/Windows-Konsolen-Befehle auf dem Host-Rechner. Da die Optionen unabhängig vom Betriebssystem sind, wird hier meist die Schreibweise für die Unix-Konsole verwendet.
Gast ~# Befehl
Für Unix-Konsolen-Befehle als Systemadministrator (root) auf dem Gast-System.
Gast ~$ Befehl
Für Unix-Konsolen-Befehle als normaler Benutzer auf dem Gast-System.
Gast C:\> Befehl
Für DOS/Windows-Konsolen-Befehle auf dem Gast-Rechner.
(qemu) Befehl
Für Befehle des QEMU-Monitors.
virsh # Befehl
Für Befehle des Programms virsh (Bibliothek libvirt).
Host ~$ Ein langer Befehl, \
der nicht in einer Zeile aufgelistet werden kann.
Wenn ein Befehl nicht in einer Zeile dargestellt werden kann, wird der Zeilenumbruch durch einen Backslash dargestellt. Der Befehl ist aber in einer Zeile einzugeben.
Unter http://qemu-buch.de/d/Anhang/_Nützliche_Tools werden einige nützliche Tools für die Arbeit mit QEMU und KVM erläutert. Dieser Überblick dient auch dazu, um sich bei weniger bekannten Gast-Systemen zurechtzufinden. Die meisten der dort beschriebenen Tools sind als Kommandozeilen-Befehle zu bedienen und kommen aus dem Unix-Umfeld. Sie sind aber auch auf anderen Plattformen, wie Microsoft Windows, verfügbar.