GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Einführung in Linux KVM (Kernel Based Virtualization) und seine Vorteile

Was ist Virtualisierung?

Einfach ausgedrückt ist Virtualisierung eine simulierte Plattform oder Umgebung auf einem Host-Knoten, was für einen Benutzer ziemlich abstrakt ist.

Diese simulierte virtuelle Umgebung kann ein Betriebssystem oder eine Entwicklungsumgebung usw. sein.

Dies gibt uns die Möglichkeit, die Hardwareressourcen des Hostknotens effizient zu nutzen.

Was ist KVM?

KVM steht für Kernel Based Virtualization.

Kernel-basierte Virtualisierung wurde implementiert, um den Vorteil der hardwareunterstützten Virtualisierungsunterstützung der neuen Generation von Intel- und AMD-CPUs zu nutzen.

In den Anfangsstadien der Entwicklung der Virtualisierungstechnologie wurden die CPUs vollständig von der Software emuliert, was schließlich an Leistung mangelte, da kein direkter Hardwarezugriff vorhanden war.

Heutzutage unterstützen die auf dem Markt befindlichen CPUs die Virtualisierung, die das Ergebnis der Änderung ihrer Architektur gegenüber früheren Phasen ist.

Dies wird auch als hardwareunterstützte Virtualisierung bezeichnet.

Wenn Sie völlig neu in der Virtualisierung sind, ist dies ein guter Anfang, wo wir die drei Bereiche der Virtualisierung und zwei Arten von Hypervisoren erklärt haben:Einführung in die Servervirtualisierungstechnologie und Hypervisor-Typen

Im Folgenden sind verschiedene Ansätze aufgeführt, die während der frühen Entwicklungsphase der Virtualisierungstechnologie verfolgt wurden.

  1. Ausführen der virtuellen Maschine auf dem Prozessor des Hostsystems, anstatt einen Prozessor mit binärer Übersetzungstechnik zu emulieren. Es funktioniert, ohne das Gastbetriebssystem zu ändern.
  2. Ändern des Betriebssystems des Gastsystems, um mit einem Hypervisor zu kommunizieren, der direkten Zugriff auf die Hardware hat. Die Xen-Hypervisor-Plattform ist ein Beispiel dafür, die Para-Virtualisierung implementiert.
  3. Modifikation des Prozessors des Hostsystems, damit er einfach mit dem Hypervisor kommunizieren kann und somit die Virtualisierung unterstützt. Es beseitigt die Notwendigkeit der binären Übersetzung und Emulation. Es führt eher zu einer vollständigen Virtualisierung als zu einer Paravirtualisierung.
  4. Ändern des Betriebssystems des Hostsystems, damit es die Virtualisierung unterstützen kann. Es führt zu nativen Hypervisoren statt gehosteten.

Die Kernel-basierte Virtualisierung nutzt die Vorteile des 3. und 4. oben erwähnten Ansatzes.

Was ist ein Hypervisor?

Ein Hypervisor ist nichts anderes als eine mittlere Programmebene zwischen dem Gastbetriebssystem und der Hardware des Hostsystems.

Es verwaltet die eigentliche Hardware für alle angeschlossenen Gastbetriebssysteme.

Es gibt zwei Arten von Hypervisoren:nativ oder gehostet. Die Hypervisoren werden auch als VMMs – [Virtual Machine Managers] bezeichnet. Bitte beachten Sie die Abbildung unten. Es stellt einen nativen Bare-Metal-Hypervisor dar.

Gute Beispiele für gehostete Hypervisoren können VMware- oder Virtual-Box-Software sein.

Wenn Sie neu bei VMWare sind, hilft Ihnen Folgendes:VMware-Virtualisierungsgrundlagen – VMware Server und VMware ESXi

Wenn Sie neu bei Virtualbox sind, ist dies ein guter Anfang:How to Install Oracle VM VirtualBox and Create a Virtual Machine

KVM-Entwicklung

Als moderne Lösung für die effektive Virtualisierung hat sich daher die Kernel-basierte virtuelle Maschine (KVM) entwickelt.

Es verwendet im Wesentlichen die CPU-Erweiterungen, die von modernen Hardware-Virtualisierungsunterstützungs-CPUs bereitgestellt werden, durch ein Modul mit dem Kernel des Host-Betriebssystems.

Durch die Verwendung dieses Kernel-basierten Virtualisierungsmoduls arbeitet der Kernel des Host-Betriebssystems als Hypervisor, der die Funktionen des Linux-Kernels und der die Virtualisierung unterstützenden Hardware nutzt.

Um also KVM mit XEN und QEMU zu vergleichen, können wir sagen, dass KVM die Prozessorerweiterung für die Virtualisierung verwendet, während QEMU mit vollständiger Emulation der CPU arbeitet, andererseits arbeitet XEN als externer Hypervisor für das Host-Betriebssystem, anstatt den Kernel dafür zu verwenden .

Mit KVM können wir mehrere virtuelle Maschinen mit jedem Betriebssystem auf einer einzigen Maschine oder sagen wir dem Hostsystem ausführen. KVM wird seit der stabilen Version 2.6.20 im Linux-Kernel eingeführt. Ein gutes Beispiel für KVM ist die Virtualisierungslösung, die mit RPM-basierten Red Hat- und Fedora-Distributionen geliefert wird.

Linux KVM-Vorteile

Wenn Linux KVM neu für Sie ist, hilft Ihnen dies beim Einstieg:So installieren Sie Linux KVM und erstellen eine Gast-VM mit Beispielen

Im Folgenden sind einige der Funktionen und Vorteile der Kernel-basierten Virtualisierung aufgeführt.

  1. Mit Hilfe des KVM-Moduls verwaltet es die leistungskritischen Teile von Interrupts und Timern durch Kernel-basierte I/O-Emulation. Es bietet die Möglichkeit, die E/A-Anforderung zwischen virtueller Maschine und Host zu begrenzen.
  2. Das KVM-Modul ermöglicht hier die Emulation für CPU-Modi, die vom physischen Prozessor und den Anweisungen nicht unterstützt werden.
  3. Das verwendete KVM-Modul ist Teil des Upstream-Linux-Kernels, da es zur Verbesserung der Virtualisierung hinzugefügt wurde.
  4. Das hier verwendete KVM-Modul bietet eine gemeinsame Schnittstelle für Intel- und AMD x86-Prozessoren, die Hardwarevirtualisierung unterstützt. Bei Intel ist es als Intel VMX-Hardwareunterstützung für Virtualisierung bekannt und bei AMD ist es als AMD SVM-Hardwareunterstützung für Virtualisierung bekannt.
  5. Er erstellt aus dem Kernel einen Bare-Metal-Hypervisor. Wir können sagen, dass es einen nativen Hypervisor erstellt.
  6. Nutzt die Fähigkeit der MMU (Memory Management Unit) in der Hardware, um den Speicher mit Leistungssteigerung zu virtualisieren.
  7. Eine von ihm erstellte virtuelle Maschine ist ein Standard-Linux-Prozess, der von seinem nativen Standard-Linux-Scheduler geplant wird.
  8. Es unterstützt die Funktionen EPT (Extended Page Table) von Intel und RVI (Rapid virtualization indexing) von AMD für die Speichervirtualisierung durch CPU-Anbieter.
  9. Es unterstützt alle Dateisysteme, die vom Mainstream-Linux-Kernel unterstützt werden.
  10. Verbesserte Nutzung von Ressourcen und Zugriff darauf durch Bereitstellung von flexiblem Speicher. Es ist sehr einfach, Speicher, vCPU, Festplatte zu Linux KVM hinzuzufügen.
  11. Unterstützt eine Vielzahl von Gastbetriebssystemen, einschließlich Windows, UNIX, Solaris und DOS.
  12. Alle Funktionen von Linux wie Sicherheitsimplementierung mit SELinux, breite Palette an Hardwareunterstützung und unterstützende Gerätetreiber werden an Kernel-basierte virtuelle Maschinen vererbt.
  13. Sichere Fernverwaltung durch die von den Virtualisierungsmodulen bereitgestellte API.
  14. Verbesserte Skalierbarkeit, da der Hauptstrom des Linux-Kernels durch Hinzufügen von Modulen erweitert werden kann, um mehr Funktionen zu nutzen.

Linux
  1. Linux – Einen benutzerdefinierten Linux-Kernel konfigurieren, kompilieren und installieren?

  2. Shebang-Zeilenbegrenzung in Bash und Linux-Kernel

  3. Was sind High Memory und Low Memory unter Linux?

  4. Git-basierter Paketmanager/Installer für Linux

  5. Warum ist Linux Unix-ähnlich, wenn sein Kernel monolithisch ist?

Linux-Kernel und seine Funktionen

Verwalten und überwachen Sie Linux-Kernel-Module mit Kmon

So aktivieren Sie die verschachtelte Virtualisierung in KVM unter Linux

Installieren Sie Linux Kernel 4.14 LTS in RPM- und DEB-basierten Systemen

Installieren Sie Linux Kernel 4.15 in RPM- und DEB-basierten Systemen

So installieren und konfigurieren Sie KVM unter Ubuntu Linux