Virtualisierung – Erste Schritte
Fedora nutzt die libvirt-Werkzeugfamilie als Virtualisierungslösung.
Unterstützung für Hardware-Virtualisierung aktivieren
Dieser Abschnitt beschreibt die Einrichtung von libvirt auf Ihrem System. Nach der Einrichtung von libvirt können Sie virtualisierte Gastbetriebssysteme, auch virtuelle Maschinen genannt, erstellen.
Systemvoraussetzungen
Um Virtualisierung unter Fedora auszuführen, benötigen Sie:
-
Pro Gastsystem werden mindestens 600 MB Festplattenspeicher benötigt. Ein minimales Fedora-System mit Befehlszeile benötigt 600 MB Speicherplatz. Standardmäßige Fedora-Desktop-Gastsysteme benötigen mindestens 3 GB Speicherplatz.
-
Mindestens 256 MB RAM pro Gastsystem, zuzüglich 256 MB für das Basisbetriebssystem. Für jedes Gastsystem eines modernen Betriebssystems werden mindestens 756 MB empfohlen. Eine gute Methode zur Abschätzung ist, den üblichen Speicherbedarf des Betriebssystems zu ermitteln und diese Menge dem virtualisierten Gastsystem zuzuweisen.
KVM benötigt eine CPU mit Virtualisierungserweiterungen, die in den meisten Consumer-CPUs vorhanden sind. Diese Erweiterungen heißen Intel VT oder AMD-V. Um zu überprüfen, ob Ihre CPU diese unterstützt, führen Sie folgenden Befehl aus:
$ grep -E '^flags.*(vmx|svm)' /proc/cpuinfo
Wenn dieser Befehl keine Ausgabe erzeugt, unterstützt Ihr System die entsprechenden Virtualisierungserweiterungen nicht. Sie können QEMU/KVM weiterhin verwenden, der Emulator greift dann jedoch auf Softwarevirtualisierung zurück, die deutlich langsamer ist.
Virtualisierungssoftware installieren
Bei der Installation von Fedora können Sie die Virtualisierungspakete installieren, indem Sie im Installationsprogramm unter Basisgruppe (Base Group) die Option Virtualisierung (Virtualization) auswählen.
Bei bestehenden Fedora-Installationen können Sie die Virtualisierungswerkzeuge über die Befehlszeile mithilfe der Virtualisierungs-Paketgruppe installieren. Um die Pakete anzuzeigen, führen Sie folgenden Befehl aus:
$ dnf group info virtualization
Group: Virtualization
Description: These packages provide a graphical virtualization environment.
Mandatory Packages:
virt-install
Default Packages:
libvirt-daemon-config-network
libvirt-daemon-kvm
qemu-kvm
virt-manager
virt-viewer
Optional Packages:
libguestfs-tools
python3-libguestfs
virt-top
-
Führen Sie den folgenden Befehl aus, um die obligatorischen und Standardpakete aus der Virtualisierungs-Gruppe zu installieren:
$ sudo dnf install @virtualizationAlternativ können Sie die obligatorischen, Standard- und optionalen Pakete mit folgendem Befehl installieren:
$ sudo dnf group install --with-optional virtualization -
Nach der Installation der Pakete starten Sie den
libvirtd-Dienst:$ sudo systemctl start libvirtdUm den Dienst beim Systemstart zu starten, führen Sie Folgendes aus:
$ sudo systemctl enable libvirtd -
So überprüfen Sie, ob die KVM-Kernelmodule ordnungsgemäß geladen sind:
$ lsmod | grep kvm kvm_amd 114688 0 kvm 831488 1 kvm_amdWenn dieser Befehl
kvm_inteloderkvm_amdausgibt, ist KVM ordnungsgemäß konfiguriert.
Netzwerkunterstützung
Standardmäßig erstellt libvirt ein privates Netzwerk für Ihre Gastsysteme auf dem Host-Rechner. Dieses private Netzwerk verwendet ein Subnetz aus dem Bereich 192.168.x.x und ist nicht direkt aus dem Netzwerk erreichbar, in dem sich der Host-Rechner befindet. Die Gastsysteme können jedoch den Host-Rechner als Gateway nutzen und darüber Verbindungen nach außen herstellen. Wenn Sie auf den Gastsystemen Dienste bereitstellen möchten, die von anderen Rechnern im Host-Netzwerk aus erreichbar sein sollen, können Sie entweder iptables-DNAT-Regeln zur Weiterleitung bestimmter Ports verwenden oder eine Bridge-Konfiguration einrichten.
Weitere Informationen zur Einrichtung eines Bridge-Netzwerks finden Sie auf der Seite libvirt-Netzwerkkonfiguration.
Virtuelle Maschinen erstellen
Die Installation von Fedora-Gastsystemen mit Anaconda wird unterstützt. Die Installation kann über die Befehlszeile mit dem Programm virt-install oder über die Benutzeroberfläche mit dem Programm virt-manager gestartet werden.
Einen Gast mit virt-install erstellen
virt-install ist ein Befehlszeilenwerkzeug zum Erstellen virtualisierter Gastsysteme. Führen Sie virt-install --help aus, um Hilfe zur Befehlszeile zu erhalten, oder rufen Sie die Handbuchseite unter man 1 virt-install auf.
Um den Befehl virt-install zu verwenden, sollten Sie zunächst ein ISO-Abbild der Fedora-Version herunterladen, die Sie installieren möchten. Die aktuellen Fedora-Abbilder finden Sie unter https://fedoraproject.org. Dieses ISO-Abbild wird nur während der Fedora-Installation benötigt und kann anschließend gelöscht werden, um Speicherplatz freizugeben.
In diesem Beispiel verwenden wir Fedora Workstation.
Planung von VM-Ressourcen
Passen Sie die Parameter für RAM, vCPUs und Festplattengröße an die Ihnen zur Verfügung stehenden Ressourcen an.
-
Speicherplatz: Eine einfache Möglichkeit, die Größe Ihres Datenträgers über eine Bash-Shell zu überprüfen, ist die Verwendung des Dienstprogramms
df(1):$ df -h -
Speicher: Sie können Ihren verfügbaren Speicher über die Shell mit free(1) überprüfen:
$ free -m -
VCPU: Sie können Ihre Prozessorinformationen mit
lscpu(1)überprüfen:$ lscpu
Berücksichtigen Sie bei der Zuweisung von Ressourcen für Ihre VM sowohl die Mindestsystemanforderungen der zu installierenden Fedora-Version als auch die Anforderungen Ihres Anwendungsfalls. Für Fedora 44 finden Sie diese Informationen in den Versionshinweisen.
Speicher für die VM erstellen
Der Standard-Speicherpool von libvirt befindet sich unter /var/lib/libvirt/images – dies ist der Pfad, den wir in diesem Beispiel verwenden. Falls an diesem Speicherort nicht genügend Platz vorhanden ist, können Sie einfach eine neue Festplatte oder Partition in dieses Verzeichnis einbinden (geben Sie in der BASH-Shell man 1 mount ein) oder einen anderen Pfad wählen. Bei dem unten aufgeführten virt-install-Beispielbefehl existierte die Festplatte vor der Ausführung von virt-install noch nicht. Wenn die angegebene Festplatte noch nicht vorhanden ist, müssen Sie die Größe angeben, damit virt-install die Festplatte für Sie erstellen kann. Sollte die Festplatte bereits existieren, können Sie den Parameter ,size=20 bedenkenlos aus dem Festplattenargument entfernen.
Für Ihre VM stehen verschiedene Optionen für den Festplattenspeicher zur Verfügung. Auch wenn eine detaillierte Erörterung dieser Möglichkeiten den Rahmen dieses Artikels sprengen würde, werden im Folgenden einige gängige Optionen aufgeführt. Bei diesen Beispielen dient eine Größe von 20 GB als Obergrenze, doch Sie können diesen Wert an Ihre Anforderungen anpassen.
|
Auch hier gilt: Sie müssen den Speicherplatz nicht manuell zuweisen, wenn Sie im unten gezeigten Beispiel virt-install den Parameter „size“ angeben. |
Rohdatei (keine Lücken)
So erstellen Sie eine vollständig zugewiesene Rohdatei (ohne Lücken):
$ sudo dd if=/dev/zero of=/var/lib/libvirt/images/guest.img bs=1M count=20480
Sie können auch fallocate(1) verwenden:
$ sudo fallocate -l 20480M /var/lib/libvirt/images/guest.img
Rohdatei (mit Lücken)
So erstellen Sie eine dynamisch zugewiesene Rohdatei (mit Lücken):
$ sudo rm -f /var/lib/libvirt/images/guest.img
$ sudo truncate --size=20480M /var/lib/libvirt/images/guest.img
QCOW2 Um separat einen neuen Datenträger im qcow2-Format zu erstellen, können Sie qemu-img verwenden (das folgende Beispiel gibt eine Datenträgergröße von 20 GB an):
$ sudo qemu-img create -f qcow2 /var/lib/libvirt/images/guest.qcow2 20480
Weitere Informationen zu den Speicheroptionen von libvirt finden Sie unter https://libvirt.org/storage.html.
Führen Sie schließlich den Befehl virt-install im folgenden Format aus (und passen Sie die Parameter bei Bedarf an):
$ sudo virt-install --name Fedora44 \
--description 'Fedora 44 Workstation' \
--ram 4096 \
--vcpus 2 \
--disk path=/var/lib/libvirt/images/Fedora-Workstation-44/Fedora-Workstation-44-20180518.0.x86_64.qcow2,size=20 \
--os-variant fedora44 \
--network bridge=virbr0 \
--graphics vnc,listen=127.0.0.1,port=5901 \
--cdrom /var/lib/libvirt/images/Fedora-Workstation-44/Fedora-Workstation-Live-x86-64-44-1.1.iso \
--noautoconsole
|
Hinweis: Für den Grafikparameter setzen wir den VNC-Listener auf „localhost“, da es sicherer ist, die VNC-Verbindung per SSH zu tunneln, anstatt VNC für jeden mit Netzwerkzugriff zugänglich zu machen. |
virt-install kann Kickstart-Dateien verwenden, zum Beispiel virt-install -x ks=kickstart-file-name.ks.
Wenn die grafische Darstellung aktiviert war, öffnet sich ein VNC-Fenster und zeigt das grafische Installationsprogramm an. War die grafische Darstellung nicht aktiviert, erscheint ein textbasiertes Installationsprogramm. Fahren Sie mit der Fedora-Installation fort.
Mit virt-manager einen Gast erstellen
-
Starten Sie den Virtual Machine Manager, indem Sie zu navigieren oder den folgenden Befehl ausführen:
$ sudo virt-manager -
Öffnen Sie eine Verbindung zu einem Hypervisor, indem Sie zu navigieren.
-
Wählen Sie qemu für KVM oder Xen für Xen.
-
Wählen Sie Lokal oder eine Methode zur Verbindung mit einem Remote-Hypervisor aus.
-
Klicken Sie nach dem Herstellen der Verbindung auf das neue Symbol neben dem Hypervisor oder klicken Sie mit der rechten Maustaste auf den aktiven Hypervisor und wählen Sie Neu.
-
Konfigurieren Sie die virtuelle Maschine anhand der Schritte im Assistenten Neue VM.
-
Klicken Sie am Ende des Assistenten auf Fertigstellen, um das Gastbetriebssystem bereitzustellen. Nach wenigen Augenblicken erscheint ein VNC-Fenster. Fahren Sie mit der Fedora-Installation fort.
Virtuelle Maschinen verwalten
Sobald die Installation des Gastbetriebssystems abgeschlossen ist, kann es mit dem Programm virt-manager oder über die Befehlszeile mit virsh verwaltet werden.
Gastsysteme mit virt-manager verwalten
-
Starten Sie den Virtual Machine Manager, indem Sie zu menu:[Anwendungen]System Werkzeuge navigieren oder folgenden Befehl ausführen:
$ virt-managerWenn Sie nicht der Root-Benutzer sind, werden Sie zur Eingabe des Root-Passworts aufgefordert.
-
Wählen Sie den Host aus, den Sie verwalten möchten, und klicken Sie im Dialogfenster Verbindung öffnen auf Verbinden.
-
Die Liste der virtuellen Maschinen wird im Hauptfenster angezeigt. Laufende virtuelle Maschinen werden mit dem Symbol „>“ gekennzeichnet. Nicht laufende virtuelle Maschinen werden ausgegraut dargestellt.
-
Um ein bestimmtes Gastsystem zu verwalten, doppelklicken Sie darauf oder klicken Sie mit der rechten Maustaste und wählen Sie Öffnen.
-
Es öffnet sich ein neues Fenster für das Gastsystem, über das Sie dessen Konsole nutzen, Informationen über dessen virtuelle Hardware einsehen und den Prozess starten, stoppen und pausieren können.
Weitere Informationen zu virt-manager finden Sie im RedHat-Leitfaden zu virt-manager.
Fehler im Werkzeug virt-manager sollten in Bugzilla für die Komponente virt-manager gemeldet werden.
Verwaltung von Gastsystemen mit virsh
Das Befehlszeilen-Dienstprogramm virsh ermöglicht es Ihnen, virtuelle Maschinen über die Befehlszeile zu verwalten. virsh basiert auf der libvirt-Verwaltungs-API:
-
virshverfügt über einen stabilen Satz von Befehlen, deren Syntax und Semantik auch bei Aktualisierungen der zugrunde liegenden Virtualisierungsplattform erhalten bleiben. -
virshkann als Benutzer ohne Administratorrechte für Leseoperationen verwendet werden (z.B. zum Auflisten von Domains, Auflisten von Domainstatistiken). -
virshkann Domains verwalten, die unter Xen, QEMU/KVM, ESX oder anderen Back-ends laufen – ohne für den Benutzer wahrnehmbaren Unterschied.
Eine virtuelle Maschine starten:
$ virsh create <Name der virtuellen Maschine>
So listen Sie die aktuell laufenden virtuellen Maschinen auf:
$ virsh list
Um alle virtuellen Maschinen aufzulisten, egal ob sie laufen oder nicht:
$ virsh list --all
So fahren Sie einen Gast kontrolliert herunter:
$ virsh shutdown <virtuelle_Maschine (Name | ID | UUID)>
So fahren Sie einen Gast nicht kontrolliert herunter:
$ virsh destroy <virtuelle_Maschine (Name | ID | UUID)>
So sichern Sie einen Schnappschuss der Maschine in eine Datei:
$ virsh save <virtuelle_Maschine (Name | ID | UUID)> <Dateiname>
So stellen Sie einen zuvor gesicherten Schnappschuss wieder her:
$ virsh restore <Dateiname>
So exportieren Sie die Konfigurationsdatei einer virtuellen Maschine:
$ virsh dumpxml <virtuelle_Maschine (Name | ID | UUID)>
So zeigen Sie eine vollständige Liste der mit virsh verwendbaren Befehle an:
$ virsh help
Oder lesen Sie die Handbuchseite: man virsh.
Fehler im Werkzeug virsh sollten in Bugzilla für die Komponente libvirt gemeldet werden.
Fernverwaltung
Folgende Optionen für die Fernverwaltung stehen zur Verfügung:
-
Wenn Sie Nicht-Root-Benutzer über SSH verwenden, beachten Sie die Einrichtungsanweisungen unter https://wiki.libvirt.org/page/SSHSetup
-
Wenn Sie für den SSH-Zugriff den Benutzer „root“ verwenden, erstellen Sie SSH-Schlüssel für „root“ und nutzen Sie
ssh-agentsowiessh-add, bevor Sievirt-managerstarten. -
Um TLS zu verwenden, richten Sie eine lokale Zertifizierungsstelle ein und stellen Sie X.509-Zertifikate für alle Server und Clients aus. Informationen zur Konfiguration dieser Option finden Sie unter https://wiki.libvirt.org/page/TLSSetup.
Weitere Virtualisierungsoptionen
QEMU/KVM ohne libvirt
QEMU/KVM kann direkt ohne libvirt aufgerufen werden, allerdings können dann keine Werkzeuge wie virt-manager, virt-install oder virsh verwendet werden. Reines QEMU (ohne KVM) kann auch andere Prozessorarchitekturen wie ARM oder PowerPC virtualisieren.
Xen
Fedora kann als Xen-Gastbetriebssystem und auch als Xen-Host verwendet werden (letzteres gilt ab Fedora 16; für die Verwendung einer älteren Fedora-Version als Xen-Host siehe die experimentelle Paketquelle unter https://myoung.fedorapeople.org/dom0). Eine Anleitung zur Installation und Einrichtung eines Fedora-Xen-Hosts finden Sie auf der Seite Fedora Host Installation im Xen-Projekt-Wiki.
OpenStack
OpenStack besteht aus einer Reihe von Diensten zum Betrieb von Infrastructure-as-a-Service (IaaS)-Clouds. Dies sind die Dienste Object Store (Swift), Compute (Nova) und Image (Glance).
oVirt
Das oVirt-Projekt ist ein Open-Source-Virtualisierungsprojekt, das ein umfassendes Verwaltungssystem für Servervirtualisierung mit erweiterten Funktionen für Hosts und Gäste bereitstellt – darunter Hochverfügbarkeit, Live-Migration, Speicherverwaltung, System-Scheduler und mehr.
Fehlerbehebung und bekannte Probleme
Schauen Sie sich zunächst die bekannten häufigen Probleme an. Ersetzen Sie die Versionsnummer durch die Version, die Sie tatsächlich verwenden.
Tipps zur Fehlerbehebung finden Sie unter Virtualisierung – Wie man Probleme behebt.
Want to help? Learn how to contribute to Fedora Docs ›