Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
client:qemu [2022/07/21 18:07 CEST] – [Gastsysteme] chr | client:qemu [2024/04/22 11:00 CEST] (aktuell) – [Start der VM] chr | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | ====== qemu-Unterstützung | + | ====== qemu ====== |
- | <note important> | + | QEMU im Verbund mit libvirt bietet |
- | + | ||
- | todo: Dynamische Auflösungen? | + | |
===== Software ===== | ===== Software ===== | ||
- | ==== Host ==== | + | Zur Verwaltung und Anpassung von QEMU-VMs ist ein Linux-System sehr empfehlenswert. QEMU-Betrieb unter Windows scheint inzwischen zwar einigermaßen möglich zu sein((Binaries https:// |
- | + | ||
- | Zur Verwaltung und Anpassung von QEMU-VMs ist ein Linux-System sehr empfehlenswert. QEMU-Betrieb unter Windows scheint inzwischen zwar einigermaßen möglich zu sein ((Binaries https:// | + | |
Einige Distributionen liefern noch relativ alte Versionen von QEMU über ihre Paketquellen aus. Verwenden Sie mindestens Version 5.2.x; eine aktuellere Version (6.x) schadet natürlich nicht. | Einige Distributionen liefern noch relativ alte Versionen von QEMU über ihre Paketquellen aus. Verwenden Sie mindestens Version 5.2.x; eine aktuellere Version (6.x) schadet natürlich nicht. | ||
Zeile 16: | Zeile 12: | ||
< | < | ||
- | sudo apt install qemu virt-manager | + | apt install qemu qemu-kvm |
- | zypper in qemu virt-manager | + | zypper in qemu qemu-kvm |
- | dnf install qemu virt-manager | + | dnf install qemu qemu-kvm |
- | | + | etc. |
</ | </ | ||
- | ==== Userkontext ==== | + | Prüfen Sie ggf. nach Abschluß der Installation, |
- | Der lokal zum Umgang mit qemu/ | + | <note tip>Der lokal zum Umgang mit qemu/ |
- | ==== Gastsysteme ==== | + | Operationen als normaler User ohne weitere connect-Angaben (-c, --connect) und ohne gesetzte %%LIBVIRT_DEFAULT_URI%%-Umgebungsvariable werden im Kontext %%qemu:/// |
- | Unter den jeweiligen Gastsystemen sollten ua. zur Performanzverbesserung die folgenden Gastprogramme installiert werden: | ||
- | === Linux === | + | ===== Virtuelle Maschinen |
- | * virtio Linux-Kernel-Treiber, | + | |
- | * xf86-video-qxl | + | |
- | * qemu-ga (qemu-guest-agent), | + | |
- | * spice-vdagent. | + | |
- | === Windows === | + | [{{ client:qemu: |
- | * virtio Windows-Treiber per [[https:// | + | |
- | * qemu-ga (qemu-guest-agent), | + | |
- | * spice-vdagent. | + | |
+ | ==== Download und Import ==== | ||
- | ==== Verbindung ==== | + | Nach dem Download der VM erfolgt ein Import der Konfiguration in libvirt mit dem folgenden Konsolenaufruf: |
+ | < | ||
+ | Dies führt statische Überprüfungen (Validierung des XML) aus und trägt diese ein. | ||
- | Operationen als normaler User ohne weitere connect-Angaben (-c, --connect) und ohne gesetzte %%LIBVIRT_DEFAULT_URI%% Umgebungsvariable landen im Kontext %%qemu:/// | + | Für dem Fall, daß eine VM nur einmalig gestartet werden soll, steht der „create“-Befehl zur Verfügung. Da diese wird jedoch nicht dauerhaft eingetragen wird, ist dieser Weg nur in Spezialfällen empfehlenswert: |
+ | < | ||
+ | ==== Bearbeitung der VM ==== | ||
- | ===== Virtuelle Maschinen | + | Die Konfiguration der importierten VM kann nun editiert werden, wenn nötig. Diese Bearbeitung kann grafisch mittels des „Virtual Machine Manager“ |
- | ==== Erstellen einer neuen VM ==== | + | ==== Start der VM ==== |
- | Es stehen die folgenden Möglichkeiten zur Verfügung eine neue virtuelle Maschine, bestehend aus einer Maschinenkonfiguration | + | Das Gastsystem kann nun gestartet |
- | Für ein Erstellen einer VM werden | + | Bei Problemen beim Boot à la Bluescreens usw. sollte geprüft |
- | * emulierte Hardwaregeräte wenn möglich immer auf den Typ virtio stellen | ||
- | * bevorzugt immer das QCOW2-Format als Format für das Festplattenabbild benutzen, alternativ sind auch VMDK und VDI möglich | ||
- | * optionale Komprimierung des Festplattenabbilds vor dem Upload vornehmen (siehe [[client: | ||
- | === Grafisches Erstellen | + | ==== Export |
- | Ein grafisches Erstellen einer neuen VM erfolgt mittels des Virtual | + | Die Konfiguration der erstellten virtuellen |
- | === Manuelles Erstellen der VM === | + | < |
+ | |||
+ | Folgender Befehl listet die vorhandenen VMs auf, falls Sie sich des VM-Namens nicht sicher sind: | ||
+ | < | ||
+ | |||
+ | Das Festplattenabbild der VM muss dabei nicht explizit kopiert werden, da die exportierte Konfiguration (XML-Datei) automatisch auf das vorhandene Festplattenabbild verweist. | ||
+ | |||
+ | <note important> | ||
+ | |||
+ | ==== Optimierung (optional) ==== | ||
+ | |||
+ | Vor dem Upload der VM kann optional eine Optimierung des qcow2-Festplattenabbildes der VM vorgenommen werden. Dies umfasst das Komprimieren des Festplattenabbilds. Zur besseren Komprimierung sollten zuvor im laufenden Gastsystem alle freien Speicherblöcke mit Nullen beschrieben werden ([[vm_anpassen# | ||
+ | |||
+ | Die Kompression des Festplattenabbilds erfolgt mit folgenden Konsolenaufrufen: | ||
+ | < | ||
+ | qemu-img convert -f qcow2 -O qcow2 -c -o compression_type=zstd [Datei.qcow2] [temp_Datei.qcow2] | ||
+ | mv [temp_Datei.qcow2] [Datei.qcow2] | ||
+ | </ | ||
+ | |||
+ | ==== Upload der VM ==== | ||
+ | |||
+ | Die exportierte xml-Datei kann [[bwlehrpool-suite# | ||
+ | |||
+ | |||
+ | ===== Erstellen einer neuen VM ===== | ||
+ | |||
+ | Von der allgemeinen Empfehlung abgesehen, besser Vorlagen-VMs herunterzuladen und anzupassen, können natürlich eigene VMs von Grund auf neu erstellt werden. Mitunter ist dies der einzige Weg, wenn Sie etwa ein exotischeres Betriebssystem, | ||
+ | |||
+ | Allgemein werden folgende Konfigurationsoptionen empfohlen: | ||
+ | |||
+ | * Emulierte Hardwaregeräte, | ||
+ | * Dies gilt prinzipiell auch für die grafische Ausgabe („Video“); | ||
+ | * „Anzeige Spice“ sollte auf „SPICE-Server“ gesetzt werden. | ||
+ | * Das qcow2-Format sollte als Format für das Festplattenabbild bevorzugt werden, alternativ sind auch vmdk und vdi möglich. | ||
+ | * Optional: Komprimierung des Festplattenabbilds vor dem Upload (siehe [[# | ||
+ | |||
+ | ==== Grafisches Erstellen der VM ==== | ||
+ | |||
+ | Ein grafisches Erstellen einer neuen VM erfolgt mittels virt-manager (Virtual Machine Manager), Cockpit oder dergleichen. Zur Erstellung den jeweiligen Assistenten (Wizard) starten (virt-manager: | ||
+ | |||
+ | ==== Manuelles Erstellen der VM ==== | ||
Ein manuelles Erstellen der VM kann alternativ über den folgenden Konsolenaufruf erfolgen. | Ein manuelles Erstellen der VM kann alternativ über den folgenden Konsolenaufruf erfolgen. | ||
Zeile 81: | Zeile 111: | ||
< | < | ||
virt-install --connect qemu:/// | virt-install --connect qemu:/// | ||
- | | + | |
| | ||
| | ||
- | | + | |
- | | + | |
| | ||
| | ||
- | | + | |
</ | </ | ||
- | Anmerkung: Mit „osinfo-query os“ (osinfo-query | + | Der Befehl |
- | === Export und Upload der VM === | ||
- | == Export der VM == | + | ==== Software ==== |
- | Die Konfiguration der erstellten virtuellen Maschine sollte für einen Upload via bwLehrpool-Suite in einem ersten Schritt mittels des folgenden Konsolenaufrufs exportiert werden. Das Festplattenabbild der VM muss dabei nicht explizit kopiert | + | Unter den jeweiligen Gastsystemen sollten u.a. zur Performanzverbesserung folgende Gastprogramme installiert |
- | < | + | === Linux === |
- | Hinweis: Folgender Befehl listet die vorhandenen VMs auf, falls Sie sich des VM-Namens nicht sicher sind: | + | * virtio Linux-Kernel-Treiber, |
- | < | + | * xserver-xorg-video-qxl bzw. xf86-video-qxl (bei Verwendung der paravirtualisierten 2D QXL-Grafik), |
+ | * qemu-ga (qemu-guest-agent), | ||
+ | * spice-vdagent. | ||
- | == Optionale Optimierung der VM == | + | === Windows === |
- | Bevor der Upload via bwLehrpool-Suite vorgenommen wird, kann eine optionale Optimierung des QCOW2 Festplattenabbildes der VM vorgenommen werden. Die Optimierung umfasst das Komprimieren des Festplattenabbilds vor dem Upload der VM, um spätere Bootzeiten der VM zu verringern. Dazu sollten zuvor im Gastsystem alle freien Speicherblöcke mit Nullen beschrieben werden, um die best-möglichste Kompression zu erzielen. Die Kompression des Festplattenabbilds erfolgt mit folgenden Konsolenaufrufen. | + | * virtio Windows-Treiber per [[https:// |
+ | * qemu-ga (qemu-guest-agent), | ||
+ | * spice-vdagent. | ||
- | < | + | ==== Export und Upload ==== |
- | mv [Datei.qcow2] [tmp-Datei.qcow2] | + | |
- | qemu-img convert -f qcow2 \ | + | |
- | -O qcow2 \ | + | |
- | -c -o compression_type=zstd \ | + | |
- | | + | |
- | | + | |
- | rm [tmp-Datei.qcow2] | + | |
- | </ | + | |
- | Hinweis: Als Komprimierungsalgorithmus kann zstd (Zstandard) oder zlib verwendet werden. Empfohlen wird der zstd-Algorithmus. | + | Der Export und Upload |
- | == Upload der VM == | ||
- | Die exportierte XML-Datei kann in einem nachfolgenden Schritt zum Upload via bwLehrpool-Suite verwendet werden. | + | ===== Startprobleme ===== |
- | == Export Windows Guests | + | ==== Netzwerk ==== |
- | Beim Export von Windows VMs in Infrastrukturen wie bwClouds OpenStack gilt der folgende Workflow | + | Mitunter tritt beim Start der VM die Meldung „Requested operation is not valid: network ' |
- | | + | Wenn Sie kein anderes virtuelles Netzwerk erzeugt haben oder nutzen wollen, können Sie das default-Netzwerk starten. Sie können |
- | - Es wird empfohlen, [[client:qemu# | + | |
- | - Je nach Anwendungsfall sind folgende Schritte notwendig: \\ a) [[client: | + | |
- | - VM Disk als Image ins OpenStack hochladen. (API oder mit Openstack CLI). | + | |
+ | < | ||
- | **Troubleshooting zum Export von Windows Guests:** | + | Name State Autostart |
+ | ---------------------------------------------- | ||
+ | | ||
+ | [{{ client: | ||
+ | < | ||
+ | < | ||
+ | -------------------------------------------- | ||
+ | | ||
- | Wichtig ist es auch, auf die Eigenschaften der Machine zu achten (in OpenStack sog. [[https:// | + | Das sollte das Problem beheben. |
- | Bei der Fehlersuche können die folgenden Properties eine Rolle spielen und sollten auf diese Werte überprüft werden: | + | |
- | < | + | |
- | hw_cdrom_bus | + | |
- | sata | + | |
- | hw_disk_bus | + | |
- | sata | + | |
- | hw_firmware_type | + | |
- | uefi | + | |
- | hw_machine_type | + | |
- | q35 | + | |
- | hw_video_model | + | |
- | vga | + | |
- | hw_vif_model | + | |
- | e1000 | + | |
- | </ | + | |
- | Die Optionen cd-rom und disk bus sind wichtig, denn sie erzwingen die Verwendung eines Bustyps, der mit dem von bwLehrpool kommenden vm in der Regel funktioniert. | + | |
- | Der Firmware-Typ hilft bei der Auswahl des richtigen Bootloaders. | + | ==== Laufwerke ==== |
- | Der Maschinentyp wählt einen Chipsatz (entweder i440FX oder Q35), der mit dem Virt-Manager für diese Maschinen funktioniert (in der Regel Q35). | + | [{{ client: |
- | Das Videomodell ist dazu da, um Probleme mit der Standardgrafik von Cirrus zu vermeiden. VGA wurde gewählt, da es das einfachste Anzeigeformat ist. | + | In desem Fall: |
+ | * „Konsole der virtuellen Maschine und Details anzeigen“, | ||
+ | * „Details | ||
+ | * „SATA CDROM 1" rechtsklick, | ||
+ | * „Zugehörige Dateien löschen" | ||
- | Schließlich gab es noch Probleme mit der Netzwerkkarte und dem Ethernet-Controller. | + | ==== Verzeichnisberechtigungen ==== |
- | Um dies zu vermeiden, konnten wir ein virtuelles Netzwerkschnittstellengerät (vif) vom Typ e1000 wählen, das normalerweise auch im virt-manager verwendet wird. | + | |
- | Derartige Problemen treten jedoch nur auf, wenn man VirtIO nicht vorher installiert hat. | + | |
- | ==== Bearbeiten einer existierenden VM ==== | + | === Berechtigungen |
- | === Download | + | [{{ client: |
- | Eine existierende VM kann für eine Bearbeitung via bwSuite heruntergeladen werden. Vor dem Download sollte geprüft werden, welche Busart zum Ansprechen des Massenspeichers | + | Nehmen wir beispielsweise an, wir wollten eine qcow2-/ |
+ | < | ||
+ | drwxr-xr-x | ||
+ | drwxr-x--x 132 chr users 20480 3. Apr 13:46 / | ||
+ | drwxr-xr-x 33 chr users 4096 2. Apr 17:08 / | ||
+ | drwxr-xr-x 33 chr users 4096 2. Apr 17:08 / | ||
- | < | + | … aber das nicht: |
- | < | + | < |
+ | drwxr-xr-x | ||
+ | drwxr-x--- 132 chr users 20480 3. Apr 13:46 /home/chr/ | ||
+ | drwxr-xr-- 33 chr users 4096 2. Apr 17:08 /home/chr/virtual/ | ||
+ | drwxr-xr-x 33 chr users 4096 2. Apr 17:08 / | ||
+ | … da die Verzeichnisse /home/chr und / | ||
- | * „create“: | + | === Abhilfe === |
- | * „define“: | + | |
- | === Bearbeitung der VM === | + | Zur Abhilfe bieten sich mehrere Möglichkeiten an: |
- | Die Konfiguration | + | * Am einfachsten dürfte sein, das executable-Bit für „others“ zu setzen. |
+ | * Die Verwendung eines Teils der Verzeichnishierarchie mit passend gesetzten Berechtigungen, | ||
+ | * Schließlich | ||
- | == Startprobleme == | ||
- | Mitunter tritt beim Start der VM die Meldung „Requested operation is not valid: network ' | + | ===== Export in Cloudsysteme ===== |
- | Wenn Sie kein anderes virtuelles Netzwerk erzeugt haben oder nutzen wollen, können Sie das default-Netzwerk starten. Sie können mit „virsh net-list“ bestehende Netzwerke auflisten (alle hier beschriebenen virsh-Befehle benötigen root-Rechte bzw. sudo): | + | < |
- | < | + | Zum Export von Windows-VMs in Cloud-Infrastrukturen wie bwClouds/ |
- | | + | - Plattenabbild mit „qemu-img convert“ in's raw-Format [[# |
- | ---------------------------------------------- | + | |
- | | + | |
+ | | ||
+ | | ||
+ | | ||
- | In o. a. Beispiel ist das default-Netzwerk inaktiv. Starten Sie es mit „virsh net-start default“. Wenn wie in obigem Beispiel kein Autostart des default-Netzwerks gegeben ist, können Sie dem mit „virsh net-autostart default“ abhelfen. Eine erneute Abfrage mit net-list sollte dann folgende Ausgabe liefern: | + | ==== Troubleshooting zum Export von Windows Guests ==== |
- | < | + | Es ist wichtig, auf die Eigenschaften der Machine zu achten (in OpenStack sog. [[https:// |
- | -------------------------------------------- | + | |
- | | + | |
- | Anschließend sollte Ihre VM starten. | + | < |
+ | hw_cdrom_bus sata | ||
+ | hw_disk_bus sata | ||
+ | hw_firmware_type uefi | ||
+ | hw_machine_type q35 | ||
+ | hw_video_model vga | ||
+ | hw_vif_model e1000 | ||
+ | </ | ||
- | === Export | + | Die Optionen hw_cdrom |
- | Die bearbeitete Maschine wird anschließend wieder exportiert und dann mittels bwSuite gemäß den Instruktionen im Abschnitt [[client: | + | Schließlich ergaben sich Probleme mit der Netzwerkkarte/ |
+ | „“ | ||
- | |||
- | ==== Notizen ==== | ||
- | |||
- | CDROM-Wechsel für Gast: | ||
- | * virsh -c qemu:/// | ||
- | * virsh -c qemu:/// | ||
- | * virsh -c qemu:/// | ||
- | * virsh -c qemu:/// | ||
- | |||
- | * virsh change-media [VM-Name] [blockdev] [iso-Datei] --insert --live (--> Fehler: Die Disk Einheit ' | ||
- | |||
- | „“ |