Kernel-based Virtual Machine (KVM)
Infrastruktur / VirtualisierungDie Kernel-based Virtual Machine (KVM) ist eine Linux-Kernel-Infrastruktur für Virtualisierung und läuft auf x86-Hardware mit den Hardware-Virtualisierungstechniken von Intel (VT) oder AMD (AMD-V) und auf der System-z-Architektur. KVM wurde im Oktober 2006 veröffentlicht und ist ab Version 2.6.20 des Linux-Kernels in diesem enthalten. Entwickelt wurde es von dem israelischen Unternehmen Qumranet und stand dort unter Beaufsichtigung von Avi Kivity. Qumranet wurde im September 2008 von Red Hat gekauft.
Überblick
KVM wurde zunächst für die x86-Plattform entwickelt und besteht für diese aus dem Kernel-Modul kvm.ko sowie aus den hardwarespezifischen Modulen kvm-intel.ko (für Intel-Prozessoren) oder kvm-amd.ko (für AMD-Prozessoren). Inzwischen gibt es KVM auch für weitere Plattformen wie PowerPC, System z und ARM. KVM selbst nimmt keine Emulation vor, sondern stellt nur die Infrastruktur dazu bereit; QEMU ist derzeit die einzige Möglichkeit, diese zu nutzen. Dazu stellt QEMU für virtualisierte Gastsysteme die notwendigen Geräte wie Festplatten, Netzwerk-, Sound- und Grafikkarten zur Verfügung. Nach dem Laden des Moduls arbeitet der Linux-Kernel selbst als Hypervisor für virtuelle Maschinen. Als Gastsysteme unterstützt KVM Linux (32 und 64 Bit), Windows (32 und 64 Bit), Haiku, AROS, ReactOS, FreeDOS, Solaris und diverse BSD-Derivate. KVM läuft auch auf SMP-Hostsystemen, SMP-Gastsysteme sind ebenfalls möglich. Die Unterstützung für Paravirtualisierung ist mittlerweile in KVM vorhanden und wird unter Linux mittels der Paravirtualisierungsschnittstelle Virtio (seit Kernel 2.6.25 im Kernel enthalten) für Festplatten- und Netzwerkgerätetreiber zur Verfügung gestellt. Für Windows existieren ebenfalls paravirtualisierte Gerätetreiber. Vorteile sind ein geringerer Overhead sowie erhöhte Performance, da das Gastsystem "weiß", dass es auf virtualisierter Hardware läuft und mit dem Hypervisor zusammenarbeitet. Seit Kernel 3.1 unterstützt KVM nested Virtualization auf Intel-CPUs. Für AMD-CPUs ist dies bereits seit Version 2.6.30 verfügbar. Nested Virtualization ermöglicht es Hostsystemen, die Virtualisierungsunterstützung der CPU für die Gastsysteme verfügbar zu machen, welche so weitere Gäste virtualisieren können.
Bestandteile
Die Bestandteile von KVM sind Open-Source-Software und stehen unter verschiedenen Varianten der GPL-Lizenz zur Verfügung:
- KVM-Kernel-Modul: GPL v2
- KVM-Benutzer-Modul: LGPL v2
- QEMU Systememulation (für x86: PC-Emulator): GPL v2
- Linux-Usermode von QEMU: GPL v2
- BIOS-Dateien (bios.bin, vgabios.bin und vgabios-cirrus.bin): LGPL v2 oder neuer
Kategorie : Hypervisor
Webseite : Linux KVM
Erstellt: 14.01.2014