Was ist KVM?
Bei der Kernel-based Virtual Machine (KVM) handelt es sich um eine Virtualisierungs-Infrastruktur des Linux-Kernels. Diese ist mit den Hardwarevirtualisierungs-Techniken von AMD (AMD-V) oder Intel (VT) und den entsprechenden X86-Prozessoren sowie mit der System-Z-Architektur kompatibel. Die Kernel-based Virtual Machine wurde im Oktober 2006 erstmals in einer Betaversion veröffentlicht und ist seit der Version 2.6.2 des Linux-Kernels in diesem enthalten. Das System wurde unter der Führung des israelischen Software-Entwicklers Avi Kivity in seinem Unternehmen Qumranet entwickelt. Die Software-Schmiede Qumranet wurde im September 2008 von Red Hat übernommen.
Allgemeine Informationen
Die Kernel-based Virtual Machine wurde in erster Linie für den Einsatz in Kombination mit x86-Plattformen entwickelt und setzt sich für diese aus den folgenden beiden Komponenten zusammen:
– aus dem Kernel-Modul „kvm.ko“, und
– aus den hardwarespezifischen Modulen kvm-amd.ko (für AMD-Plattformen) oder kvm-intel.ko (für Intel-Plattformen)
Inzwischen ist KVM auch für weitere Plattformen, wie beispielsweise System Z, ARM und PowerPC erhältlich. Die Kernel-based Virtual Machine realisiert selbst keine Emulation, sondern stellt lediglich die dafür nötige Infrastruktur bereit. Die freie Virtualisierungs-Software QEMU stellt eine der Möglichkeiten dar, um KVM zu nutzen. QEMU stellt für virtualisierte Gastsysteme die erforderlichen Geräte wie Grafik-, Sound-, Netzwerkkarten und Festplatten bereit. Nachdem das Modul geladen ist, fungiert der Linux-Kernel selbst als Hypervisor für VMs (virtuelle Maschinen). Als Gastsystem bietet KVM Unterstützung für eine Vielzahl moderner Betriebssysteme, wie zum Beispiel:
– Linux (32 und 64 Bit), etwa CentOS, Rocky Linux, Ubuntu, Fedora, Debian , Redhat und ebenso Desktop Linux Systeme wie Linux-Mint oder Kali Linux.
– FreeDOS
– Solaris
– Hauku
– AROS
– ReactOS
– diverse BSD-Derivate
Mittlerweile lässt sich auch Paravirtualisierung in KVM realisieren und wird unter Linux mittels der Paravirtualisierungsschnittstelle Virtio für Hardware-Komponenten bereitgestellt. Auch für Windows-Systeme sind mittlerweile paravirtualisierte Gerätetreiber erhältlich.
Das Paravirtualisierungs-Verfahren bietet einige Vorteile im Vergleich zu traditionellen Virtualisierungs-Methoden, wie zum Beispiel ein geringerer Overhead sowie eine bessere Performance, da sich das Gastsystem der Tatsache „bewusst“ ist, dass es auf virtualisierter Hardware betrieben wird und mit dem Hypervisor zusammenarbeitet.
KVM Funktionen und Features
KVM stellt einen festen Bestandteil von Linux dar. Alles was Linux bietet, ist auch in KVM zu finden. Es gibt jedoch einige Besonderheiten, welche die Kernel-based Virtual Machine zum bevorzugten Hypervisor für Unternehmen machen. Im Folgenden stellen wir Ihnen einige der Besonderheiten von KVM vor:
Sicherheit: Die Kernel-based Virtual Machine nutzt eine Kombination von Linux mit sicherer Virtualisierung (sVirt) und erweiterter Sicherheit (SELinux), um eine optimale VM-Sicherheit und Isolierung zu gewährleisten. SELinux legt dabei die Sicherheitsgrenzen der virtuellen Maschine fest, während sVirt die Funktionalitäten von SELinux erweitert. So ermöglicht sVirt beispielsweise den Einsatz von Mandatory Access Control für Gast-VMs und verhindert, dass manuelle Kennzeichnungsfehler zu den höheren System-Ebenen propagiert werden.
Storage: KVM ist in der Lage, jedes Speichermedium zu verwenden, das von Linux unterstützt wird, einschließlich komplexer NAS-Systeme (Network Attached Storage)oder Software Defined Storage wie etwaCeph. Sogenannte „Mehrpfad-I/O“ können eingesetzt werden, um das Storage-System zu optimieren und Redundanz zu bieten. Die Kernel-based Virtual Machine bietet außerdem Unterstützung für gemeinsam genutzte Dateisysteme, sodass sich VM-Abbilder von unterschiedlichen Hosts gemeinsam nutzen lassen. Darüber hinaus unterstützen Festplattenabbilder sogenanntes „Thin-Provisioning“ und sind in der Lage, Storage nach Bedarf zuzuweisen, anstatt im Voraus wie es bei vielen ähnlichen Systemen der Fall ist.
Hardware-Unterstützung: KVM kann auf diversen Plattformen eingesetzt werden, die von Linux unterstützt werden. Viele Hardware-Produzenten tragen regelmäßig zur Kernel-Entwicklung bei, sodass die neuen Hardware-Funktionen und -Features in vielen Fällen sehr schnell in den Kernel integriert werden.
Speicherverwaltung: Die Kernel-based Virtual Machine nutzt die Speicherverwaltung-Infrastruktur von Linux inklusive des Non-Uniform Memory Access und des Kernel Same Page Merging. Der Speicher einer virtuellen Maschine lässt sich nach persönlichen Anforderungen gestalten und durch größere Kapazitäten oder bessere Leistung verstärken.
Echtzeit-Migration: KVM bietet native Unterstützung für die Live-Migration. Dabei handelt es sich um die Möglichkeit, eine laufende virtuelle Maschine zwischen physischen Hosts zu verschieben, ohne dass dabei der Betrieb der VM unterbrochen wird. Die virtuelle Maschine kann in Betrieb bleiben, Anwendungen laufen weiter und Netzwerkverbindungen bleiben aktiv, während die VM schnell und einfach auf einen anderen Host verschoben wird. KVM sichert außerdem den aktuellen Stand (State) einer virtuellen Maschine, sodass diese lokal oder in der Cloud gespeichert und später wieder fortgesetzt werden kann.
Skalierbarkeit und Performance: KVM baut auf der Leistung von Linux auf und lässt sich automatisch an den Lastbedarf skalieren, sobald die Anzahl der Anfragen an die VMs steigt. Mit der Kernel-based Virtual Machine lassen sich große Anwendungen-Workloads schnell und einfach virtualisieren. Darüber stellt KVM die Basis für viele Setups der Unternehmens-Virtualisierung dar, wie beispielsweise für private Clouds und Rechenzentren.
Verwaltungs-Tools
Für die Kernel-based Virtual Machine sind mehrere Werkzeuge zur Steuerung erhältlich. So ist es beispielsweise möglich VMs mittels Kommandozeilenprogrammen wie QEMU oder VIRSH zu erstellen und zu verwalten. Eine angenehmere und übersichtlichere Option stellen Tools mit grafischen Benutzeroberflächen dar, wie mit dem Virtual Machine Manager (VMM) oder dem UCS VM Manager. Es sind auch Lösungen erhältlich, welche die Verwaltung von VMs über Weboberflächen gestattet. In diesem Zusammenhand ist das oVirt-Projekt, Proxmox oder die FOSS-Cloud zu nennen, die als kostenlose Open Source-Lösungen bereitgestellt werden.
- Über den Autor
- Aktuelle Beiträge
Daniel Faust ist Redakteur im Content-Team der Biteno und betreut den Blog der Biteno GmbH.