KVM Grundlagen
Zur Navigation springen
Zur Suche springen
Name
- Kernel-based Virtual Machine
Webseiten
Läuft auf
- Intel (VT)
- AMD (AMD-V)
- System-z-Architektur
- PowerPC
- ARM
Veröffentlicht
- Oktober 2006
- Kernel 2.6.20
Entwickelt
- Israel
- Avi Kivity
- Qumranet
- 2008 Red Hat
Portierungen
- FreeBSD
- Illumos
Besteht aus
- kvm.ko
- kvm_intel.ko
- kvm_amd.ko
Open Virtualization Alliance (OVA)
- Gegründet Mai 2011
- Virtualisierung und cloudbasierte Lösungen
- um dies auf dem Markt zu etablieren
- Mitglieder
- BMC Software
- Eucalyptus Systems
- HP
- IBM
- Intel
- Red Hat
- SUSE
KVM
- keine Emulation
- nur Infrasruktur
Qemu
- virtualisierte Gastsysteme
- Festplatten
- Netzwerk
- Sound
- Grafikkarten
Übersicht
- Von Shmuel Csaba Otto Traian, CC BY-SA 3.0, https://commons.wikimedia.org/w/index.php?curid=29448779
Gastsysteme
- Linux (32 und 64 Bit),
- Windows (32 und 64 Bit)
- Haiku
- AROS
- ReactOS
- FreeDOS
- Solaris
- BSD-Derivate.
Paravirtualisierungsschnittstelle Virtio
- Festplatten
- Netzwerkgerätetreiber
Verwaltungswerkzeuge
- qemu/kvm
- virsh
- Virtual Machine Manager (VMM)
- AQemu
- UCS Virtual Machine Manager
- Proxmox
- Ovirt
- Kimchi
Einordnung
VT Modell
Erklärung
- KVM ist ein Linux-Kernel, der in Kombination mit dem kvm-Kernelmodul den üblichen Linux-Kernel in einen Bare-Metal-Hypervisor verwandelt.
- Sobald KVM im Kernel installiert ist, können wir virtuelle Maschinen darin erstellen und steuern.
- CPU-Virtualisierung: Um die CPU zu virtualisieren, nutzt KVM die Hardwarelösung, d. h. CPUs, in die Virtualisierungsanweisungen integriert sind.
- Intel nennt dies VT-X und AMD nennt es AMD-V.
- Die traditionelle Architektur von CPUs hatte den standardmäßigen ringbasierten Betrieb.
- Das Betriebssystem würde die privilegierten Befehle im Ring 0 ausführen und die Benutzerraumanwendungen würden im Ring 3 ausgeführt.
- Die Einführung der Virtualisierung erforderte das Vorhandensein einer neuen Schicht zwischen der Hardware und dem Betriebssystem.
- Dies hätte auf zwei Arten erreicht werden können:
- 0/1/3-Modell, bei dem das Betriebssystem in Ring 1 verschoben und der Hypervisor in Ring 0 ausgeführt wird
- 0/3/3-Modell, bei dem das Betriebssystem und die Anwendungen beide im Ring3 ausgeführt werden und der Hypervisor im Ring 0 ausgeführt wird.
- Beide Modelle, die das Betriebssystem von Ring 0 wegbewegen, führen zu mehreren Problemen, da das Betriebssystem so konzipiert ist, dass es immer in Ring 0 ausgeführt wird.
- Die Softwarelösungen wie binäre Übersetzung und Paravirtualisierung versuchen, die Probleme aufgrund dieser Änderung des Betriebsrings anzugehen das Betriebssystem.
- Die von Intel und AMD-V eingeführte Hardwarelösung löst dies, indem sie neue Betriebsmodi in der CPU einführt.
- Die für die Intel-Virtualisierung aktivierte Hardware verfügt über die neuen Betriebsmodi VMX Root und VMX Non Root.
- Die VMX-Root-Operation wird verwendet, um den Hypervisor auszuführen
- VMX-Non-Root-Operation wird verwendet, um die VM selbst auszuführen
- Jeder dieser CPU-Modi hat Ring 0,1,2,3.
- Somit kann das Betriebssystem weiterhin in ring0 im VMX-Non-Root-Modus arbeiten
- Es hat weiterhin Kontrolle über die Hardware wie bei einem herkömmlichen Betriebssystem behalten.
- Der Hypervisor hingegen wird im VMX-Root-Modus in Ring 0 ausgeführt.
- Somit erhält sogar der Hypervisor die vollständige Kontrolle über die Hardware, indem er im ring0 vorhanden ist.
- Aber zu jedem beliebigen Zeitpunkt würde entweder die andere VM oder der Hypervisor im Ring-0-Modus arbeiten.
- Dies löst eine Reihe von Problemen, die in den Softwarelösungen der Virtualisierung bestehen, und macht die Virtualisierung viel schneller,
- Die VM während des normalen Betriebs ohne Eingriff des Hypervisors direkt auf der Hardware arbeiten kann.
- Die Steuerung verlagert sich aus der VM nur bei einer E/A, die von der im Host-Kernel laufenden Userspace-Anwendung gehandhabt wird, und bei Interrupts oder anderen Signalen, die vom Hypervisor gehandhabt werden.
- KVM nutzt diese Hardwarefunktion, während die virtuellen Maschinen ausgeführt werden.
- Somit gibt es neben dem traditionellen Kernel-Space und User-Space einen neuen Modus, der als Gast-Betriebsmodus im Kernel bezeichnet wird.
- Die VM arbeitet in diesem Gastmodus, der den VMX-Nicht-Root-Modus nutzt.
- Das Gastbetriebssystem arbeitet im Ring 0 des VMX-Non-Root-Modus und die Anwendungen im Gastbetriebssystem im Ring 3 des VMX-Non-Root-Modus.
- Der KVM-Kernel hingegen arbeitet im Ring 0 des VMX-Root-Modus.
- Der Kernel, der als Hypervisor fungiert, wird im Kernelraum des vmx-Root-Modus ausgeführt.
Libvirt supports
VM lifecycle
Folien
Quellen
- https://de.wikipedia.org/wiki/Kernel-based_Virtual_Machine
- https://de.wikipedia.org/wiki/Hypervisor
- https://www.computerwoche.de/a/virtualisierung-ist-kvm-das-bessere-xen,1937585
- https://mrpointy.wordpress.com/2009/05/12/is-kvm-a-type-1-or-a-type-2/
- http://tuxthink.blogspot.de/2011/12/kvm-introduction.html