Kernel-based Virtual Machine (kurz KVM) ist eine Open-Source- und De-facto-Standard-Virtualisierungslösung, die eng in Linux integriert ist. Es handelt sich um ein ladbares Kernelmodul, das Linux in einen Hypervisor vom Typ 1 (Bare-Metal) verwandelt, der eine virtuelle Betriebsplattform für die Ausführung virtueller Maschinen (VMs) schafft.
Unter KVM ist jede VM ein Linux-Prozess, der vom Kernel geplant und verwaltet wird und über private virtualisierte Hardware verfügt (d.h. CPU, Netzwerkkarte, Festplatte usw.). Es unterstützt auch verschachtelte Virtualisierung, die es Ihnen ermöglicht, eine VM innerhalb einer anderen VM laufen zu lassen.
Zu den wichtigsten Funktionen gehören die Unterstützung einer breiten Palette von Linux-unterstützten Hardware-Plattformen (x86-Hardware mit Virtualisierungserweiterungen (Intel VT oder AMD-V)), es bietet verbesserte VM-Sicherheit und Isolierung mit SELinux und sicherer Virtualisierung (sVirt), es erbt Kernel-Speicherverwaltungsfunktionen und es unterstützt sowohl Offline- als auch Echtzeit-Migration (Migration einer laufenden VM zwischen physischen Hosts).
In diesem Artikel erfahren Sie, wie Sie die KVM-Virtualisierung installieren und virtuelle Maschinen in CentOS 8 und RHEL 8 Linux erstellen und verwalten.
Voraussetzungen
- Eine frische Installation von CentOS 8 Server
- Eine frische Installation von RHEL 8 Server
- Ein aktiviertes RedHat-Abonnement auf RHEL 8 Server
Stellen Sie außerdem sicher, dass Ihre Hardwareplattform Virtualisierung unterstützt, indem Sie den folgenden Befehl ausführen.
# grep -e 'vmx' /proc/cpuinfo#Intel systems# grep -e 'svm' /proc/cpuinfo#AMD systems
Stellen Sie außerdem sicher, dass KVM-Module im Kernel geladen sind (das sollten sie standardmäßig sein).
# lsmod | grep kvm
Hier ist eine Beispielausgabe auf dem Testsystem, das Intel-basiert ist:
In einer früheren Serie von KVM-Anleitungen haben wir gezeigt, wie man virtuelle Maschinen in Linux mit KVM (Kernel-based Virtual Machine) erstellt, wobei wir demonstriert haben, wie man VMs mit dem GUI-Tool virt-manager erstellt und verwaltet (das jetzt laut der RHEL 8-Dokumentation veraltet ist). Für diese Anleitung werden wir einen anderen Ansatz wählen, wir werden die Cockpit Web-Konsole verwenden.
Schritt 1: Einrichten der Cockpit Web-Konsole auf CentOS 8
1. Das Cockpit ist eine einfach zu bedienende, integrierte und erweiterbare webbasierte Schnittstelle zur Verwaltung eines Linux-Servers in einem Webbrowser. Es ermöglicht Ihnen, Systemaufgaben wie die Konfiguration von Netzwerken, die Verwaltung von Speicher, die Erstellung von VMs und die Überprüfung von Protokollen mit einer Maus durchzuführen. Es verwendet die normalen Benutzeranmeldungen und -rechte Ihres Systems, es werden aber auch andere Authentifizierungsmethoden unterstützt.
Es ist auf frisch installierten CentOS 8- und RHEL 8-Systemen vorinstalliert und aktiviert; wenn Sie es nicht installiert haben, installieren Sie es mit dem folgenden dnf-Befehl. Die cockpit-machines-Erweiterung sollte installiert werden, um VMs auf der Basis von Libvirt zu verwalten.
# dnf install cockpit cockpit-machines
2. Wenn die Paketinstallation abgeschlossen ist, starten Sie den Cockpit-Socket, aktivieren Sie den automatischen Start beim Systemstart und überprüfen Sie seinen Status, um zu bestätigen, dass er läuft.
# systemctl start cockpit.socket# systemctl enable cockpit.socket# systemctl status cockpit.socket
3. Als nächstes fügen Sie den Cockpit-Dienst in der System-Firewall hinzu, die standardmäßig aktiviert ist, indem Sie den Befehl firewall-cmd verwenden und die Firewall-Konfiguration neu laden, um die neuen Änderungen zu übernehmen.
# firewall-cmd --add-service=cockpit --permanent# firewall-cmd --reload
4. Um auf die Cockpit-Webkonsole zuzugreifen, öffnen Sie einen Webbrowser und verwenden Sie die folgende URL zum Navigieren.
https://FQDN:9090/ORhttps://SERVER_IP:9090/
Das Cockpit verwendet ein selbstsigniertes Zertifikat, um HTTPS zu aktivieren, fahren Sie einfach mit der Verbindung fort, wenn Sie eine Warnung vom Browser erhalten. Auf der Anmeldeseite verwenden Sie die Anmeldedaten Ihres Server-Benutzerkontos.
Schritt 2: Installieren der KVM-Virtualisierung CentOS 8
5. Als nächstes installieren Sie das Virtualisierungsmodul und andere Virtualisierungspakete wie folgt. Das virt-install-Paket bietet ein Tool zur Installation virtueller Maschinen über die Befehlszeilenschnittstelle, und ein virt-viewer wird verwendet, um virtuelle Maschinen anzuzeigen.
# dnf module install virt # dnf install virt-install virt-viewer
6. Führen Sie als nächstes den Befehl virt-host-validate aus, um zu überprüfen, ob der Host-Rechner für die Ausführung von libvirt-Hypervisortreibern eingerichtet ist.
# virt-host-validate
7. Starten Sie als nächstes den libvirtd-Daemon (libvirtd) und aktivieren Sie ihn so, dass er bei jedem Systemstart automatisch gestartet wird. Überprüfen Sie dann seinen Status, um sicherzustellen, dass er läuft.
# systemctl start libvirtd.service# systemctl enable libvirtd.service# systemctl status libvirtd.service
Schritt 3: Einrichten einer Netzwerkbrücke (virtueller Netzwerk-Switch) über das Cockpit
8. Erstellen Sie nun eine Netzwerkbrücke (virtueller Netzwerk-Switch), um virtuelle Maschinen in dasselbe Netzwerk wie den Host zu integrieren. Sobald der libvirtd-Daemon gestartet wird, aktiviert er standardmäßig die Netzwerkschnittstelle virbr0, die den virtuellen Netzwerk-Switch darstellt, der im NAT-Modus arbeitet.
Für diese Anleitung werden wir eine Netzwerkschnittstelle in einem überbrückten Modus namens br0 erstellen. Dadurch können virtuelle Maschinen über die Host-Netzwerke erreicht werden.
Klicken Sie in der Hauptschnittstelle des Cockpits auf Networking und dann auf Add Bridge, wie im folgenden Screenshot dargestellt.
9. Geben Sie im Pop-up-Fenster den Bridge-Namen ein und wählen Sie die Bridge-Slaves oder Port-Geräte aus (z. B. enp2s0 für die Ethernet-Schnittstelle), wie im folgenden Screenshot dargestellt. Klicken Sie dann auf Übernehmen.
10. Wenn Sie nun die Liste der Schnittstellen betrachten, sollte die neue Bridge dort erscheinen und nach ein paar Sekunden sollte die Ethernet-Schnittstelle deaktiviert (heruntergefahren) werden.
Schritt 4: Virtuelle Maschinen über die Cockpit Web Console erstellen und verwalten
11. Klicken Sie in der Hauptschnittstelle des Cockpits auf die Option Virtuelle Maschinen, wie im folgenden Screenshot hervorgehoben. Klicken Sie auf der Seite Virtuelle Maschinen auf VM erstellen.
12. Ein Fenster mit Optionen zum Erstellen einer neuen VM wird angezeigt. Geben Sie die Verbindung, den Namen (z. B. ubuntu18.04), den Typ der Installationsquelle (auf dem Testsystem haben wir ISO-Images unter dem Speicherpool /var/lib/libvirt/images/ gespeichert), die Installationsquelle, den Speicherplatz, die Größe und den Speicherplatz ein, wie im folgenden Bild gezeigt. Der Betriebssystemhersteller und das Betriebssystem sollten nach der Eingabe der Installationsquelle automatisch ausgewählt werden.
Auch die Option zum sofortigen Starten der VM ist anzukreuzen, dann klicken Sie auf Create.
13. Nachdem Sie im vorherigen Schritt auf Erstellen geklickt haben, sollte die VM automatisch gestartet werden und mit dem bereitgestellten ISO-Image booten. Fahren Sie mit der Installation des Gastbetriebssystems (in unserem Fall Ubuntu 18.04) fort.
Wenn Sie auf Netzwerkschnittstellen der VM klicken, sollte die Netzwerkquelle die neu erstellte Bridge-Netzwerkschnittstelle anzeigen.
Und während der Installation, beim Schritt der Konfiguration einer Netzwerkschnittstelle, sollten Sie feststellen können, dass die Ethernet-Schnittstelle der VM eine IP-Adresse vom DHCP-Server des Host-Netzwerks erhält.
Beachten Sie, dass Sie das OpenSSH-Paket installieren müssen, um auf das Gastbetriebssystem über SSH von einem beliebigen Rechner im Host-Netzwerk zuzugreifen, wie im letzten Abschnitt beschrieben.
14. Wenn die Installation des Gastbetriebssystems abgeschlossen ist, starten Sie die VM neu, gehen Sie dann zu Laufwerke und trennen/entfernen Sie das CD-ROM-Gerät unter den VM-Laufwerken. Klicken Sie dann auf Ausführen, um die VM zu starten.
15. Unter Konsolen können Sie sich nun mit einem Benutzerkonto, das Sie bei der Installation des Betriebssystems angelegt haben, in das Gastbetriebssystem einloggen.
Schritt 5: Zugriff auf das Gastbetriebssystem einer virtuellen Maschine über SSH
16. Um auf das neu installierte Gastbetriebssystem vom Host-Netzwerk aus über SSH zuzugreifen, führen Sie den folgenden Befehl aus (ersetzen Sie 10.42.0.197 durch die IP-Adresse Ihres Gastes).
$ ssh [email protected]
17. Um eine VM herunterzufahren, neu zu starten oder zu löschen, klicken Sie sie in der Liste der VMs an und verwenden Sie dann die im folgenden Screenshot hervorgehobenen Schaltflächen.
Das war’s fürs Erste! In dieser Anleitung haben wir gezeigt, wie man KVM-Virtualisierungspakete installiert und VMs über die Cockpit-Webkonsole erstellt und verwaltet. Für weitere Details siehe: Erste Schritte mit der Virtualisierung in RHEL 8.