Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
client:qemu [2024/03/08 16:47 CET] – [Bearbeiten einer existierenden VM] 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:// | ||
Zeile 22: | Zeile 18: | ||
</ | </ | ||
- | Prüfen Sie ggf. nach Abschluß der Installation, | + | Prüfen Sie ggf. nach Abschluß der Installation, |
- | ==== Userkontext ==== | + | |
- | 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 folgende Gastprogramme installiert werden: | ||
- | === Linux === | + | ===== Virtuelle Maschinen (VMs) ===== |
- | * virtio Linux-Kernel-Treiber, | + | [{{ client: |
- | * xf86-video-qxl (bei Verwendung der paravirtualisierten 2D QXL-Grafik), | + | |
- | * qemu-ga (qemu-guest-agent), | + | |
- | * spice-vdagent. | + | |
- | === Windows | + | ==== Download und Import ==== |
- | * virtio Windows-Treiber per [[https://fedorapeople.org/groups/ | + | Nach dem Download der VM erfolgt ein Import der Konfiguration in libvirt mit dem folgenden Konsolenaufruf: |
- | * qemu-ga | + | < |
- | * spice-vdagent. | + | Dies führt statische Überprüfungen |
+ | 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 ==== | ||
- | ==== Verbindung ==== | + | Die Konfiguration der importierten VM kann nun editiert werden, wenn nötig. Diese Bearbeitung kann grafisch mittels des „Virtual Machine Manager“ (virt-manager), |
- | Operationen als normaler User ohne weitere connect-Angaben | + | ==== Start der VM ==== |
+ | |||
+ | Das Gastsystem kann nun gestartet und natürlich bearbeitet werden. Beim ersten Start einer VM allgemein können gewisse Probleme auftreten; mehr dazu unter [[# | ||
+ | |||
+ | Bei Problemen beim Boot à la Bluescreens usw. sollte geprüft werden, welche Busart zum Ansprechen des Massenspeichers im auf dem Image befindlichen Gastbetriebssystem verwendet wurde (scsi, sata, ata). Bei Linuxgastsystemen („a start job is running… for dev/ | ||
+ | |||
+ | |||
+ | ==== Export der Konfiguration | ||
+ | |||
+ | Die Konfiguration der erstellten virtuellen Maschine muß vor einem Upload via bwLehrpool-Suite exportiert werden, da virtlibd die Konfiguration intern führt | ||
+ | |||
+ | < | ||
+ | |||
+ | 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# | ||
- | ===== Virtuelle Maschinen (VMs) ===== | ||
- | ==== Erstellen einer neuen VM ==== | + | ===== Erstellen einer neuen VM ===== |
- | Es stehen die folgenden Möglichkeiten zur Verfügung eine neue virtuelle Maschine, bestehend aus einer Maschinenkonfiguration | + | Von der allgemeinen Empfehlung abgesehen, besser Vorlagen-VMs herunterzuladen |
- | Für ein Erstellen einer VM werden folgende | + | Allgemein |
- | * emulierte | + | * Emulierte |
- | * dies gilt prinzipiell auch für die grafische Ausgabe („Video“); | + | * Dies gilt prinzipiell auch für die grafische Ausgabe („Video“); |
- | * das QCOW2-Format als Format für das Festplattenabbild bevorzugt werden, alternativ sind auch VMDK und VDI möglich. | + | * „Anzeige Spice“ sollte auf „SPICE-Server“ gesetzt werden. |
- | * optional: Komprimierung des Festplattenabbilds vor dem Upload (siehe [[client:qemu#optionale_optimierung_der_vm|Optionale | + | * Das qcow2-Format |
+ | * Optional: Komprimierung des Festplattenabbilds vor dem Upload (siehe [[#optimierung_optional|Optimierung der VM]]) | ||
- | === Grafisches Erstellen der VM === | + | ==== Grafisches Erstellen der VM ==== |
- | Ein grafisches Erstellen einer neuen VM erfolgt mittels | + | Ein grafisches Erstellen einer neuen VM erfolgt mittels |
- | === Manuelles Erstellen der VM === | + | ==== 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 85: | 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. |
- | mv [Datei.qcow2] | + | |
- | qemu-img convert | + | |
- | -O qcow2 \ | + | |
- | -c -o compression_type=zstd \ | + | |
- | [tmp-Datei.qcow2] \ | + | |
- | | + | |
- | rm [tmp-Datei.qcow2] | + | |
- | </ | + | |
- | + | ||
- | Hinweis: Als Komprimierungsalgorithmus kann zstd (Zstandard) oder zlib verwendet werden. Empfohlen wird der zstd-Algorithmus. | + | |
- | == Upload | + | ==== Export und Upload |
- | Die exportierte XML-Datei kann in einem nachfolgenden Schritt zum Upload | + | Der Export und Upload |
- | == Export Windows Guests == | ||
- | Beim Export von Windows VMs in Infrastrukturen wie bwClouds OpenStack gilt der folgende Workflow : | + | ===== Startprobleme ===== |
- | - VM Disk [[client: | + | ==== Netzwerk |
- | - Es wird empfohlen, [[client: | + | |
- | - Je nach Anwendungsfall sind folgende Schritte notwendig: \\ a) [[client: | + | |
- | - VM Disk als Image ins OpenStack hochladen. (API oder mit Openstack CLI). | + | |
- | + | ||
- | + | ||
- | | + | |
- | + | ||
- | + | ||
- | + | ||
- | Wichtig ist es auch, auf die Eigenschaften der Machine zu achten (in OpenStack sog. [[https:// | + | |
- | 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. | + | |
- | + | ||
- | Der Maschinentyp wählt einen Chipsatz (entweder i440FX oder Q35), der mit dem Virt-Manager für diese Maschinen funktioniert (in der Regel Q35). | + | |
- | + | ||
- | Das Videomodell ist dazu da, um Probleme mit der Standardgrafik von Cirrus zu vermeiden. VGA wurde gewählt, da es das einfachste Anzeigeformat ist. | + | |
- | + | ||
- | Schließlich gab es noch Probleme mit der Netzwerkkarte und dem Ethernet-Controller. | + | |
- | 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 ==== | + | |
- | + | ||
- | === Download und Import der VM === | + | |
- | + | ||
- | 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 im auf dem Image befindlichen Gastbetriebssystem verwendet wurde (scsi, sata, ata). Ansonsten kann es zu Problemen beim Gast-Boot kommen. Bei Linuxgästen („a start job is running… for dev/ | + | |
- | + | ||
- | < | + | |
- | < | + | |
- | + | ||
- | * „create“: | + | |
- | * „define“: | + | |
- | + | ||
- | === Bearbeitung der VM === | + | |
- | + | ||
- | Die Konfiguration der importierten VM kann nun editiert werden und das Gastsystem gestartet werden, wenn noch nicht geschehen. Diese Bearbeitung kann grafisch mittels Virtual Machine Manager oder Cockpit erfolgen. | + | |
- | + | ||
- | === Startprobleme === | + | |
- | + | ||
- | == Netzwerk | + | |
Mitunter tritt beim Start der VM die Meldung „Requested operation is not valid: network ' | Mitunter tritt beim Start der VM die Meldung „Requested operation is not valid: network ' | ||
Zeile 200: | Zeile 160: | ||
| | ||
- | [{{ client: | + | [{{ client: |
+ | < | ||
< | < | ||
Zeile 208: | Zeile 169: | ||
Das sollte das Problem beheben. | Das sollte das Problem beheben. | ||
- | == Laufwerke == | + | ==== Laufwerke |
[{{ client: | [{{ client: | ||
In desem Fall: | In desem Fall: | ||
- | * „Konsole der virtuellen Maschine und Details anzeigen“ | + | * „Konsole der virtuellen Maschine und Details anzeigen“, |
- | * „Details der virtuellen Geräte anzeigen“ | + | * „Details der virtuellen Geräte anzeigen“, |
- | * „SATA CDROM 1" rechtsklick, | + | * „SATA CDROM 1" rechtsklick, |
- | * „Zugehörige Dateien löschen" | + | * „Zugehörige Dateien löschen" |
- | === Export und Upload der VM === | + | ==== Verzeichnisberechtigungen ==== |
- | Die bearbeitete Maschine wird anschließend wieder exportiert und dann mittels bwSuite gemäß den Instruktionen im Abschnitt [[client: | + | === Berechtigungen === |
+ | [{{ client: | ||
+ | Nehmen wir beispielsweise an, wir wollten eine qcow2-/ | ||
+ | < | ||
+ | drwxr-xr-x | ||
+ | drwxr-x--x 132 chr users 20480 3. Apr 13:46 /home/chr/ | ||
+ | drwxr-xr-x 33 chr users 4096 2. Apr 17:08 / | ||
+ | drwxr-xr-x 33 chr users 4096 2. Apr 17:08 / | ||
- | ==== Notizen ==== | + | … aber das nicht: |
+ | < | ||
+ | drwxr-xr-x | ||
+ | drwxr-x--- 132 chr users 20480 3. Apr 13:46 / | ||
+ | drwxr-xr-- 33 chr users 4096 2. Apr 17:08 / | ||
+ | drwxr-xr-x 33 chr users 4096 2. Apr 17:08 / | ||
+ | … da die Verzeichnisse /home/chr und / | ||
- | CDROM-Wechsel für Gast: | + | === Abhilfe === |
- | * virsh -c qemu:/// | + | |
- | * virsh -c qemu:/// | + | |
- | * virsh -c qemu:/// | + | |
- | * virsh -c qemu:/// | + | |
- | | + | Zur Abhilfe bieten sich mehrere Möglichkeiten an: |
+ | |||
+ | | ||
+ | * Die Verwendung eines Teils der Verzeichnishierarchie mit passend gesetzten Berechtigungen, | ||
+ | * Schließlich kann in der libvirtd-Konfigurationsdatei / | ||
+ | |||
+ | |||
+ | ===== Export in Cloudsysteme ===== | ||
+ | |||
+ | < | ||
+ | |||
+ | Zum Export von Windows-VMs in Cloud-Infrastrukturen wie bwClouds/ | ||
+ | |||
+ | - Plattenabbild mit „qemu-img convert“ in's raw-Format | ||
+ | | ||
+ | | ||
+ | | ||
+ | - und ebenfalls [[client: | ||
+ | - Plattenabbild API oder mit Openstacks CLI als Image nach OpenStack hochladen. | ||
+ | |||
+ | ==== Troubleshooting zum Export von Windows Guests ==== | ||
+ | |||
+ | Es ist wichtig, auf die Eigenschaften der Machine zu achten | ||
+ | |||
+ | < | ||
+ | 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 hw_cdrom und hw_disk_bus sind wichtig zur Verwendung eines Bustyps, der mit dem von bwLehrpool kommenden VMs in der Regel funktioniert Ist dem so? Prüfen!). Der Firmware-Typ hilft bei der Auswahl des richtigen Bootloaders, | ||
+ | |||
+ | Schließlich ergaben sich Probleme mit der Netzwerkkarte/ | ||
„“ | „“ | ||
+ |