Einsatz für die CLI-Schnittstelle virsh

So verwaltet man KVM/Qemu von der Kommandozeile aus

| Autor / Redakteur: Thomas Drilling / Ulrike Ostler

Thomas Drilling zeigt, wie mit der Schnittstelle virsh umzugehen ist.
Thomas Drilling zeigt, wie mit der Schnittstelle virsh umzugehen ist. (Bild: © Nmedia - Fotolia)

„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:

Ergänzendes zum Thema
 
Tipp: Das Steuern der virtuelle Netzwerkkarte

-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.

copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Infos finden Sie unter www.mycontentfactory.de (ID: 43175462 / Virtualisierungspraxis)