Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
client:qemureorg [2024/04/02 17:36 CEST] – [Start der VM] chrclient:qemureorg [2024/04/02 18:07 CEST] (aktuell) – gelöscht chr
Zeile 1: Zeile 1:
-====== qemu ====== 
- 
-<note important>Achtung: Dies hier ist eine komplette Baustelle!</note> 
- 
-===== Software ===== 
- 
-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://qemu.weilnetz.de/w64/, Anleitung etwa https://linuxhint.com/qemu-windows/)), wird von uns jedoch nicht getestet und daher nicht unterstützt. 
- 
-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. 
- 
-Installieren Sie von qemu und virt-manager ausgehend die für Ihre Distribution benötigten Pakete, etwa mittels: 
- 
-<code> 
-apt install qemu qemu-kvm virt-manager libvirt-daemon     # Ubuntu, Debian 
-zypper in qemu qemu-kvm virt-manager libvirt              # OpenSuse 
-dnf install qemu qemu-kvm virt-manager libvirt            # Red Hat 
-etc. 
-</code> 
- 
-Prüfen Sie ggf. nach Abschluß der Installation, ob der libvirtd-Daemon läuft ('systemctl status libvirt-daemon'). Falls nicht automatisch geschehen, sorgt ein 'systemctl enable libvirt-daemon' sorgt für den Start beim Booten; ein 'systemctl start libvirt-daemon' startet ihn manuell. 
- 
-<note tip>Der lokal zum Umgang mit qemu/libvirt verwendende User sollte Mitglied der Gruppe libvirt sein. Fügen Sie ihn ggf. dieser Gruppe hinzu.</note> 
- 
-Operationen als normaler User ohne weitere connect-Angaben (-c, --connect) und ohne gesetzte %%LIBVIRT_DEFAULT_URI%%-Umgebungsvariable werden im Kontext %%qemu:///session%% interpretiert. Der session-Kontext trägt geringere Berechtigungen, z.B. beim Umgang mit Netzwerken. Bei Mitgliedschaft des Users in der Gruppe libvirt sollte daher besser -c %%qemu:///system%% benutzt werden. 
- 
- 
-===== Virtuelle Maschinen (VMs) ===== 
- 
-[{{ client:qemu:virt_Symbole_qemu.png?200|qemu-Symbol in Liste}}]Die bwLehrpool-Suite unterstützt den Umgang mit qemu-basierten VMs analog zu anderen Hypervisoren. Wie üblich sollte bei Erstellung eigener Versionen von einer von Ihrer Institution zur Verfügung gestellten Vorlage ausgegangen werden, wenn möglich. 
- 
-==== Download und Import ==== 
- 
-Nach dem Download der VM erfolgt ein Import der Konfiguration in libvirt mit einem der beiden folgenden Konsolenaufrufen. 
- 
-<code>virsh -c qemu:///system create [xml-Datei.xml]</code> 
-<code>virsh -c qemu:///system define [xml-Datei.xml]</code> 
- 
-  * „create“: Startet VM ausgehend von XML-Datei, trägt diese jedoch nicht dauerhaft ein. 
-  * **„define“: Führt statische Überprüfungen (Validierung des XML) aus und trägt diese ein.** 
- 
-==== Bearbeitung der VM ==== 
- 
-Die Konfiguration der importierten VM kann nun editiert werden, wenn nötig. Diese Bearbeitung kann grafisch mittels des „Virtual Machine Manager“ (virt-manager), Cockpit oder dergleichen erfolgen. 
- 
-==== 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 [[#startprobleme|Startprobleme]] 
- 
-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/disk…“ 1:30) ggf. Hibernation kontrollieren (systemd-hibernate-resume), wenn vorhanden „resume“ aus KCL entfernen. 
- 
- 
-==== 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 und daher die ursprünglich per bwLehrpool-Suite geschriebe, zum Import verwendete xml-Datei nicht aktualisiert wird. Das kann derzeit nur mit einem Kommandozeilenbefehl geschehen: 
- 
-<code>virsh -c qemu:///system dumpxml [VM-Name] > [xml-Datei]</code> 
- 
-Folgender Befehl listet die vorhandenen VMs auf, falls Sie sich des VM-Namens nicht sicher sind: 
-<code>virsh -c qemu:///system list --all</code> 
- 
-Das Festplattenabbild der VM muss dabei nicht explizit kopiert werden, da die exportierte Konfiguration (XML-Datei) automatisch auf das vorhandene Festplattenabbild verweist.  
- 
-<note important>Allgemein: Wenn die Konfiguration der VM geändert wurde, muss die xml-Datei per dumpxml neu geschrieben werden, bevor ein Upload per bwLehrpool-Suite erfolgt!</note> 
- 
-==== 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#plattenplatz_freigeben|Anleitung]]). Als Komprimierungsalgorithmus kann zstd (Zstandard) oder zlib verwendet werden; empfohlen wird der zstd-Algorithmus. 
- 
-Die Kompression des Festplattenabbilds erfolgt mit folgenden Konsolenaufrufen: 
-<code> 
-qemu-img convert -f qcow2 -O qcow2 -c -o compression_type=zstd [Datei.qcow2] [temp_Datei.qcow2] 
-mv [temp_Datei.qcow2] [Datei.qcow2] 
-</code> 
- 
-==== Upload der VM ==== 
- 
-Die exportierte xml-Datei kann [[bwlehrpool-suite#neue_virtuelle_maschinen_hochladen|wie üblich]] zum Upload der VM mit der bwLehrpool-Suite verwendet werden. 
- 
- 
-===== 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, eine ungewöhnliche Ausführung usw. benötigen. Zu diesem Zweck müssen Sie eine Konfiguration mit zugeordnetem Festplattenabbild erstellen. Nach Erstellung und ggf. Export der Konfiguration kann die VM wie gewohnt mittels bwLehrpool-Suite hochgeladen werden. 
- 
-Allgemein werden folgende Konfigurationsoptionen empfohlen: 
- 
-  * Emulierte Hardwaregeräte, wenn möglich, immer auf den Typ „virtio“ stellen (z.B., aber nicht nur, Netzwerkkarten, Festplatten). 
-  * Dies gilt prinzipiell auch für die grafische Ausgabe („Video“); „virtio“ kann jedoch mitunter besonders in Windows-Gästen Probleme bereiten. Mit dem etwas weniger performanten QXL ist man auf der sicheren Seite. Verwenden Sie daher im Zweifel QXL. 
-  * „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 [[client:qemu#optionale_optimierung_der_vm|Optionale Optimierung der VM]]) 
- 
-==== Grafisches Erstellen der VM ==== 
- 
-Ein grafisches Erstellen einer neuen VM erfolgt mittels virt-manager (Virtual Machine Manager), Cockpit oder dergleichen. Zur Erstellung den jeweiligen Assistent en (Wizard) starten (virt-manager: „Datei“, „Neue virtuelle Maschine“ ff.). 
- 
-==== Manuelles Erstellen der VM ==== 
- 
-Ein manuelles Erstellen der VM kann alternativ über den folgenden Konsolenaufruf erfolgen. 
- 
-<code> 
-virt-install --connect qemu:///system \ 
-             --name [VM-Name] \ 
-             --memory [kB] \ 
-             --vcpus [Zahl] \ 
-             --disk [Datei.qcow2],bus=[bus] \ 
-             --os-variant [VM-Betriebssystem] \ 
-             --network [Netz] \ 
-             --check path_in_use=off \ 
-            [--cdrom [iso oder Device]] 
-</code> 
- 
-Beispiel: 
-<code> 
-virt-install --connect qemu:///system \ 
-             --name openSuse_Tumbleweed_64bit \ 
-             --memory 3072 \ 
-             --vcpus 2 \ 
-             --disk openSuse_Tumbleweed_64bit.qcow2,bus=sata \ 
-             --os-variant opensusetumbleweed \ 
-             --network default \ 
-             --check path_in_use=off \ 
-             --cdrom /home/chr/isos/tumbleutils.iso 
-</code> 
- 
-Der Befehl „osinfo-query os“ (aus der Bibliothek osinfo-query) zeigt verfügbare Werte für --os-variant an. Häufige Werte sind beispielsweise opensuse15.5, ubuntu22.04, debian9, win10 usw. Eine cdrom-Angabe ist manchmal praktisch, damit sie gleich in der Konfiguration enthalten ist. 
- 
- 
-==== Software ==== 
- 
-Unter den jeweiligen Gastsystemen sollten u.a. zur Performanzverbesserung folgende Gastprogramme installiert werden: 
- 
-=== Linux === 
- 
-  * 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. 
- 
-=== Windows === 
- 
-  * virtio Windows-Treiber per [[https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/latest-virtio/virtio-win.iso|virtio-win-ISO-Installer]], 
-  * qemu-ga (qemu-guest-agent), 
-  * spice-vdagent. 
- 
-==== Export und Upload ==== 
- 
-Der Export und Upload der VM erfolgt analog zu dem Vorgang ab [[#export_der_konfiguration|Export der Konfiguration]]. 
- 
- 
-===== Startprobleme ===== 
- 
-==== Netzwerk ==== 
- 
-Mitunter tritt beim Start der VM die Meldung „Requested operation is not valid: network 'default' is not active“ auf. Zur Behebung können Sie entweder das default-Netzwerk starten, oder je nach Ihrer lokalen Umgebung ein anderes (virtuelles) Netzwerk benutzen. Falls Sie ein anderes, lokal definiertes Netzwerk nutzen wollen, importieren Sie die VM mittels „define“, also ohne sie zu starten, und ändern die Einstellung unter (virt-manager) NIC, „Virtuelle Netzwerkschnittstelle“, „Netzwerkquelle“. 
- 
-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: 
- 
-<code>virsh -c qemu:///system net-list --all 
- 
- Name      State      Autostart   Persistent 
----------------------------------------------- 
- default   inactive   no         yes</code> 
- 
-[{{ client:qemu:qemu_default_network_inaktiv.png?200|inaktives Default-Netzwerk}}]In o. a. Beispiel ist das default-Netzwerk inaktiv. Starten Sie es mit „virsh -c qemu:///system net-start default“. Wenn wie in obigem Beispiel kein Autostart des default-Netzwerks gegeben ist, können Sie dem mit „virsh -c qemu:///system net-autostart default“ abhelfen. Eine erneute Abfrage mit net-list sollte dann folgende Ausgabe liefern: 
- 
-<code>Name      State    Autostart   Persistent 
--------------------------------------------- 
- default   active   yes         yes</code> 
- 
-Das sollte das Problem beheben. 
- 
-==== Laufwerke ==== 
- 
-[{{ client:qemu:qemu_cdrom_fehlend.png?200|Kein DVD/CDROM?}}] Wenn Ihr Rechner nicht über ein DVD-Laufwerk verfügt, die heruntergeladene xml-Steuerdatei aber auf eines verweisen sollte, kann die Fehlermeldung jedoch  „Fehler beim Starten der Domain: Cannot access storage file '/dev/sr0': Datei oder Verzeichnis nicht gefunden“ auftreten. 
- 
-In desem Fall: 
-  * „Konsole der virtuellen Maschine und Details anzeigen“ 
-  * „Details der virtuellen Geräte anzeigen“ 
-  * „SATA CDROM 1" rechtsklick, "Gerät entfernen".“ 
-  * „Zugehörige Dateien löschen" markieren“ 
- 
- 
- 
-„“ 
  
Drucken/exportieren