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:42 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. | ||
- | < | + | ==== 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 === | ||
- | == Netzwerk | + | ===== Export in Cloudsysteme ===== |
- | 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 mit „virsh net-list“ bestehende Netzwerke auflisten (alle hier beschriebenen virsh-Befehle benötigen root-Rechte): | + | Zum Export von Windows-VMs in Cloud-Infrastrukturen wie bwClouds/ |
- | < | + | |
+ | - Es wird empfohlen, soweit möglich virtio-Treiber zu installieren. | ||
+ | - Je nach Anwendungsfall sind folgende Schritte notwendig: | ||
+ | | ||
+ | - und ebenfalls [[client: | ||
+ | | ||
- | | + | ==== Troubleshooting zum Export von Windows Guests ==== |
- | ---------------------------------------------- | + | |
- | | + | |
- | In o. a. Beispiel | + | Es ist wichtig, auf die Eigenschaften der Machine zu achten (in OpenStack sog. [[https://docs.openstack.org/glance/latest/admin/ |
- | < | + | < |
- | -------------------------------------------- | + | hw_cdrom_bus sata |
- | default | + | hw_disk_bus sata |
+ | hw_firmware_type uefi | ||
+ | hw_machine_type q35 | ||
+ | hw_video_model vga | ||
+ | hw_vif_model e1000 | ||
+ | </ | ||
- | Das sollte | + | 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, |
- | == Laufwerke == | + | Schließlich ergaben sich Probleme mit der Netzwerkkarte/ |
- | {{ client: | + | „“ |
- | In desem Fall: | ||
- | * „Konsole der virtuellen Maschine und Details anzeigen“ | ||
- | * „Details der virtuellen Geräte anzeigen“ | ||
- | * „SATA CDROM 1" rechtsklick, | ||
- | * „Zugehörige Dateien löschen" | ||
- | |||
- | === Export und Upload der VM === | ||
- | |||
- | Die bearbeitete Maschine wird anschließend wieder exportiert und dann mittels bwSuite gemäß den Instruktionen im Abschnitt [[client: | ||
- | |||
- | |||
- | |||
- | ==== 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 ' | ||
- | |||
- | „“ |