Virtualisierung

Was ist Hypervisor?

Definition

A hypervisor is the software layer that creates and runs virtual machines, allocating physical CPU, memory and IO between them. A type-1 hypervisor runs directly on the hardware; KVM is unusual in being a type-1 hypervisor implemented as a Linux kernel module, which lets it use the whole Linux driver ecosystem.

Warum Hypervisor wichtig ist

Ein Typ-1-Hypervisor läuft direkt auf der Hardware; KVM ist ungewöhnlich, da es ein Typ-1-Hypervisor ist, der als Linux-Kernel-Modul implementiert ist, was es ermöglicht, das gesamte Linux-Treiber-Ökosystem zu nutzen.

Hypervisor in der Praxis

Wenn Sie einen Server auf einem KVM-Hypervisor betreiben, schauen Sie sich die tatsächliche Hardware-Zuteilung an: vCPUs, RAM, Datenträger-I/O. Sie passen diese über das Panel an, oft indem Sie zusätzlichen Speicher ohne Neustart hot-hinzufügen. Wenn Sie den Host überbuchen, bekommen Ihre Nachbarn laute Workloads, die die CPU oder I/O Ihrer Instanz verhungern lassen und aus einer perfekt konfigurierten Gastmaschine eine träge machen. Nested Virtualisierung bedeutet, dass Sie einen Hypervisor in Ihrem Hypervisor ausführen können, praktisch zum Testen, aber es kostet Leistung und kann Ihre eigene Ressourcenzählung verwirren.

Was Leute bei Hypervisor falsch machen

Der häufige Fehler ist, den Hypervisor als Containergrenze zu behandeln. Das ist er nicht. Ein Hypervisor liefert Ihnen eine vollwertige virtuelle Maschine, einen eigenen Kernel, ein eigenes /proc, keine gemeinsamen Namespaces. Leute nehmen an, dass die Prozesse des Nachbarn unsichtbar sind oder dass ein eigener Kernel unmöglich ist, und stoßen dann an Grenzen. Die Korrektur: Mit KVM erhalten Sie echte Isolation und Kontrolle, sodass Sie ein selbstgebautes Image booten oder verschachtelte Virtualisierung ausführen können – Dinge, die ein Container nicht kann.

Hypervisor – häufige Fragen

Was bedeutet Typ-1-Hypervisor?

Ein Typ-1-Hypervisor läuft direkt auf der Host-Hardware, nicht auf einem Betriebssystem. KVM ist besonders, weil es ein Typ-1-Hypervisor ist, der als Linux-Kernelmodul implementiert ist und die gesamte Linux-Treiber-Ökösystem für die Hardwareverwaltung nutzen kann. Das bietet die Leistung einer Bare-Metal-Virtualisierung mit der Flexibilität von Linux.

Wie unterscheidet sich KVM von Containern wie OpenVZ?

KVM bietet echte Virtualisierung: Jeder Gast erhält einen eigenen Kernel, ein eigenes /proc und keine gemeinsamen Namespaces, sodass Sie vollen Root-Zugriff haben und eigene Kernel ausführen können. Container teilen den Host-Kernel und die Namespaces, was die Möglichkeiten einschränkt. Mit KVM erhalten Sie Isolation und Kontrolle, einschließlich der Möglichkeit, verschachtelte Virtualisierung auszuführen oder ein eigenes ISO zu booten.

Mehr aus virtualisierung

KVM
KVM ist vollständige Hardware-Virtualisierung, die in den Linux-Kernel integriert ist und jedem Gast einen eigenen Kernel und hardwaregestützte Isolierung von anderen Mandanten bietet.
OpenVZ
OpenVZ ist containerbasierte Virtualisierung, bei der jede Instanz den Host-Kernel teilt, sodass Gäste keine Kernel-Module laden oder ein anderes Betriebssystem ausführen können.
LXC
LXC ist Linux-native Containerisierung, die Prozesse mit Namespaces und Cgroups isoliert, während der Host-Kernel geteilt wird.
Verschachtelte Virtualisierung
Verschachtelte Virtualisierung ermöglicht es einer virtuellen Maschine, selbst virtuelle Maschinen auszuführen, indem die Prozessor-Virtualisierungserweiterungen dem Gast exponiert werden.
vCPU
Eine vCPU ist ein virtueller Prozessor, der einem Gast präsentiert wird und durch Planungszeit auf einem physischen Kern oder Thread unterstützt wird.
cloud-init
cloud-init ist der Standardmechanismus zur Konfiguration einer virtuellen Maschine beim ersten Start unter Verwendung von Metadaten, die von der Plattform bereitgestellt werden.