Einsatz für die CLI-Schnittstelle virsh So verwaltet man KVM/Qemu von der Kommandozeile aus
Anbieter zum Thema
„Libvirt“ ist ein Virtualisierungs-Management-Layer, über den Tools wie „Virt Manager“ einheitlich mit „KVM“, „Xen“, „VMware“ und anderen Hypervisor-Typen kommunizieren können. Die leistungsfähigste Benutzerschnittstelle ist das CLI-Interface „virsh“. Nachfolgend geht es darum, eine „Windows-7“-VM mit virtio-Treibern unter Linux/KVM über die Kommandozeile einzurichten und zu administrieren.

Während sich Administratoren mit Virt Manager einen ersten Eindruck von der Leistungsfähigkeit der libvirt verschaffen können, sollten sie im Alltag zur virsh-Schnittstelle greifen. virsh verhilft nicht nur zu mehr Funktionen, wie „Live-Migration“, sondern ermöglicht auch das Automatisieren der Virtualisierung. Und so geht`s:
Schritt 1: Das Login
Admins verbinden sich zuerst als Benutzer „root“ via „ssh“ mit dem Host, der als KVM-Hypervisor dient, es sei denn, sie arbeiten lokal mit dieser Maschine:
ssh –l root <IP oder Hostname>
Schritt 2: Die virtio-Treiber
Mit diesem Befehl lassen sich die Red-Hat-virtio-Treiber von der Fedora-Seite herunter laden:
wget http://alt.fedoraproject.org/pub/alt/virtio-win/latest/images/bin/virtio-win-0.1-74.iso
Schritt 3: Der virsh-Kommandomodus
Der Standardbefehl zum Anlegen von VMs unter KVM virt-install verlangt zahlreiche Optionen. Einfacher ist es, virsh zum Sammeln erster Erfahrungen zu nutzen, und zwar durch den Befehl virsh (ohne Parameter); im interaktiven Modus, zu erkennen an der Ausgabe „vish #“.
Jetzt geben Admins der Reihe nach weitere Befehle ein:
-n winsp1
Das ist der Name ihrer VM.
Schritt 4: Die RAM-Ausstattung
-r 4096
So weisen sie der Virtuellen Maschinen 4 GB Arbeitsspeicher zu.
Schritt 5: Die Anzahl vCPUs
-vcpus=2
So weisen sie der VM zwei virtuelle CPUs zu.
Schritt 6: Eine virtuelle Festplatte erzeugen
-disk <Pfad Image-Verzeichnis>/vmwin7.qcow2,format=qcow2,device=disk,bus=virtio,size=100
Mit dieser Option lässt sich eine virtuelle Festplatte im qcow2-Format mit 100 GB erzeugen und das Gerät an den virtuellen virtio-SCSI-Bus anbinden.
Schritt 7: Das Windows-7-Installationsmedium
-c /<Pfad-ISO-Store>X17-59885.iso
Mit diesem Parameter bindet man eine vorhandene ISO-Datei einer Windows-7-Installations-DVD ein, so dass der virtuelle PC direkt von diesem ISO bootet. Wahlweise könnten ISO auch als virtuelles CD-ROM-Laufwerk zur Verfügung gestellt werden.
-disk path=/<Pfad-ISO-Store>X17-59885.iso, device=cdrom,perms=ro
Schritt 8: Die virtio-Treiber
-disk path=/<Pfad-ISO-Store>/virtiowin-0.1-22.iso,device=cdrom,perms=ro
Die vorhandene ISO-Datei mit den aktuellen virtio-Treibern für Windows-Gastsysteme lässt sich ebenfalls als virtuelles CD-ROM-Laufwerk einbinden, sofern die virtio-Treiber nicht gezeigt direkt in das Boot-Medium injizieren.
Schritt 9: Virtuelle Netzwerkkarten erzeugen
-w network=default,model=virtio
Mit dieser Option erzeugen Admins eine virtuelle virtio-Netzwerkkarte.
Schritt 10: Der Typ des Gastbetriebssystems
-os-type windows
-os-variant win7
So spezifizieren sie den Gast-OS-Typ.
Schritt 11: Die Vollvirtualisierung einschalten
-hvm
Mit dieser Option nutzt KVM/Qemu eine Vollvirtualisierung, außer bei paravirtualisierten virtio-Treibern.
Schritt 12: Virtueller Monitor via spice
-spice
In Alltag fasst man das Ganze mithilfe von virtinstall mit einem einzigen Befehl zusammen. Der erlaubt zum Beispiel ein automatisiertes Ausrollen.
virt-install —connect qemu:///system-n win7 -r 4096 —vcpus=2 \—disk <Pfad Image-Verzeichnis>/vmwin7.qcow2,format=qcow2,
device=disk,bus=virtio,size=100 \—os-type windows
-os-variant win7 \
-disk path=/<Pfad-ISO-Store>/virtiowin-0.1-22.iso,device=cdrom,perms=ro\
-c /<Pfad-ISO-Store>X17-59885.iso \
-w network=default,model=virtio \
-hvm –spice
Verwaltung der VMs mit virsh
Zum Verwalten der VMs mit virsh stehen folgende grundlegende Kommandos (und darüber hinaus noch viele mehr) zur Verfügung:
Alle laufenden VMs auflisten:
virsh list
Mit einem angehängten -all werden nicht nur die laufenden, sondern alle vorhandenen VMs angezeigt.
Starten der VM
virsh start <name>
Neustart der VM
virsh reboot <name>
Ausschalten der VM mittels ACPI
virsh shutdown <name>
Pausieren oder Einfrieren einer VM
virsh suspend <name>
Aufheben des Suspend-Modus (Resume)
virsh resume <name>
Löschen von VMs
virsh destroy <name>
Migrieren einer VM von Host 1 auf Host 2
Virsh beherrscht auch die Live-Migration einer auf Host 1 laufenden VM „<vmname>“ auf Host 2. Voraussetzung ist, dass Host 2 läuft, was sichmit virsh list prüfen lässt. Mit /system weist man libvirt an, dass ein umfassenden Zugriff benötigt wird:
virsh migrate –livea <vmname> qemu+ssh:
//host2.<domain.example>/system
Tipp der Redaktion:
Ein Shutdown mit ACPI funktioniert nur, wenn ACPI auch in der VM installiert und aktiviert ist. Bei Linux-VMs müssen Admins das Paket acpid installieren. Bei Red Hat erledigen sie dies durch Eingeben von
yum install acpi
Steuerung der VMs mit dem Qemu-Monitor
Eine weitere Möglichkeit zum Steuern von KVM-VMs bietet die Qemu-Konsole, auch Qemu-Monitor genannt. In den Monitor wechseln Admins aus dem Gast heraus mit S+A+2. Zurück aus dem Monitor in den Gast geht’s mit S+A+1.
Da Qemu nicht automatisch feststellen kann, ob der Admin eine DVD einlegen will, können sie den Qemu-Monitor verwenden, um mit dem Kommando change ein bestehendes Wechselmedium austauschen. Ein weiteres nützliches Qemu-Monitor-Kommando ist info <Gerät>. Der Befehl liefert nützliche Infos über das angegebene virtuelle Gerät, etwa eine virtuelle Festplatte.
So greift man direkt auf die VM-Konsole zu
Mitunter kann es auch nützlich sein, direkt auf die Konsole einer laufenden VM zuzugreifen, insbesondere bei Linux-VMs, etwa zu Diagnosezwecken. Doch Achtung! Die VM-Konsole ist nicht mit dem Qemu-Monitor zu verwechseln.
Der Zugriff erfolgt mit virsh console <vmname>, es sei denn, der Administrator hat eine virtuelle serielle Konsole beim Eingeben von virsh oder bei virt-install mit der Option -noautoconsole deaktiviert. Verlassen kann man die Konsole mit S+G+9.
o konfiguriert man VMs via XML-Datei
Wie auch immer die Konfiguration der KVM-VMs erzeugt wurden, per virt-install, mit virsh oder Virt Manager, Qemu speichert die Konfiguration jeder VM in je einer XML-Datei im Verzeichnis „/etc/libvirt/qemu“. Durch Bearbeiten der XML-Datei wird demenstprechend die Konfiguration einer VM verändert.
*Das Original und der Autor:
Thomas Drilling bloggt in „Drillings OpenSource-Eck“. Sein Artikel erschien zuerst in der Publikation „
“, Ausgabe Juli 2014. Aufgrund einer Kooperationsvereinbarung darf DataCenter-Insider Ihnen diesen Artikel kostenfrei zur Verfügung stellen.
(ID:43175462)