41.3Der Virtual Machine Manager

Der Virtual Machine Manager (Programm- und Paketname virt-manager) ist für KVM-Einsteiger sicherlich der beste Weg, um mit diesem Virtualisierungssystem vertraut zu werden. Das Programm hat auch für Profis eine Menge zu bieten und ist für die meisten Automatisierungsaufgaben absolut ausreichend.

Damit Sie das Programm benutzen können, müssen Sie eine Verbindung zum libvirt-Dämon herstellen. Bei den meisten Distributionen erfolgt der Verbindungsaufbau zum bereits vorhandenen Eintrag QEMU/KVM automatisch. Unter CentOS, Fedora und RHEL müssen Sie beim Start des Virtual Machine Managers das root-Passwort angeben.

Unter Ubuntu funktioniert der Verbindungsaufbau nur, wenn der Benutzer zur Gruppe libvirtd gehört. Ist das nicht der Fall, führen Sie sudo adduser loginname libvirtd aus und loggen sich aus und neu ein.

Das Hauptfenster des Virtual Maschine Managers enthält eine Liste aller libvirt-Verbindungen (siehe Abbildung 41.1). Standardmäßig besteht diese Liste nur aus einem Eintrag, nämlich QEMU/KVM für das lokale Virtualisierungssystem. Sie können aber mit Datei • Verbindung hinzufügen die Eckdaten weiterer KVM-Hosts angeben.

Ein Doppelklick auf einen Eintrag dieser Liste stellt die Verbindung zum KVM-Host her und zeigt dann alle virtuellen Maschinen dieses Hosts an. Bei jeder virtuellen Maschine zeigt ein Icon, ob die Maschine heruntergefahren ist, läuft oder pausiert.

Um eine virtuelle Maschine zu starten, klicken Sie deren Eintrag mit der rechten Maustaste an und führen Ausführen aus. Ein Doppelklick auf den Eintrag öffnet ein neues Fenster, das in zwei Ansichten den Zustand der virtuellen Maschine zeigt:

Der Virtual Machine Manager auf einem
   Fedora-Host mit virtuellen CentOS-, Ubuntu- und Windows-Installationen

Abbildung 41.1Der Virtual Machine Manager auf einem Fedora-Host mit virtuellen CentOS-, Ubuntu- und Windows-Installationen

Um zwischen den beiden Ansichten umzuschalten, führen Sie Anzeigen • Konsole bzw. Anzeigen • Details aus bzw. klicken in der Symbolleiste auf die entsprechenden Buttons.

Die virtuellen Maschinen laufen vollkommen unabhängig vom Virtual Machine Manager! Sie können also die Fenster des Virtual Machine Managers schließen und später wieder öffnen – die virtuellen Maschinen laufen in der Zwischenzeit weiter. Sie können sich sogar aus- und neu einloggen, ohne die Ausführung von virtuellen Maschinen zu beeinträchtigen.

Es gibt viele Möglichkeiten, eine virtuelle Maschine zu stoppen:

Sie können den Virtual Machine Manager auch verwenden, um einen via SSH erreichbaren externen KVM-Host zu administrieren. Dazu definieren Sie zuerst mit Datei • Verbindung hinzufügen eine Verbindung zu diesem Server, wobei Sie als Verbindungsmethode SSH auswählen (siehe Abbildung 41.2). Beim Verbindungsaufbau müssen Sie zudem das entsprechende Login-Passwort angeben.

Verbindungsaufbau via SSH

Abbildung 41.2Verbindungsaufbau via SSH

Wenn der externe KVM-Host unter RHEL oder Fedora läuft, erfordert die libvirt-Administration root-Rechte und somit einen root-Login via SSH. Aus Sicherheitsgründen sind SSH-Server aber häufig so konfiguriert, dass ein direkter root-Login unmöglich ist. Ein Kompromiss kann so aussehen, dass Sie den SSH-Server so konfigurieren, dass ein root-Login nur bei einer Authentifizierung durch einen Schlüssel akzeptiert wird, nicht aber per Passwort. Generell funktioniert die Administration externer KVM-Hosts nur mit einem SSH-Schlüssel komfortabel.

Eine neue virtuelle Maschine einrichten

Das Einrichten einer neuen virtuellen Maschine beginnt mit dem Button Neue virtuelle Maschine erstellen. Bei der Einstellung der Eckdaten hilft ein Assistent in fünf Schritten:

Hardware-Verwaltung im
   Virtual Machine Manager

Abbildung 41.3Hardware-Verwaltung im Virtual Machine Manager

Mit dem Abschluss der Konfiguration der virtuellen Maschine wird diese gestartet. Die Ausgaben der virtuellen Maschine sehen Sie in einem neuen Fenster des Virtual Machine Managers. Hinter den Kulissen agiert dieses Fenster als VNC- oder Spice-Client.

Minimalinstallation von CentOS, Fedora oder RHEL

Für Server-Aufgaben reicht oft eine Minimalinstallation ohne grafische Benutzeroberfläche. Bei Fedora-Gästen stellen Sie dazu während der Installation bei der Software-Auswahl anstelle der vorgegebenen Option Grafische Oberfläche die Option Minimal ein. Bei CentOS- und RHEL-Distributionen ist diese Option bereits voreingestellt.

Außer root werden keine Benutzer eingerichtet. Immerhin wird standardmäßig ein SSH-Server installiert und eine Firewall eingerichtet. Auch SELinux ist aktiv. Die gesamte weitere Administration muss nun mit textbasierten Werkzeugen erfolgen und setzt daher gute Fedora- oder RHEL-Grundlagenkenntnisse voraus. Das betrifft auch die Netzwerkkonfiguration – standardmäßig ist nur die Loopback-Schnittstelle aktiv.

Somit ist als Nächstes eine manuelle Netzwerkkonfiguration notwendig. Mit ip addr ermitteln Sie zuerst den Namen der Netzwerkschnittstelle. Ich verwende in den folgenden Beispielen eth0; der Name kann aber auch enp0s4 oder so ähnlich lauten.

Ad-hoc-Netzwerkkonfiguration zur Installation von Paketen

Während der ersten Konfigurationsarbeiten steht Ihnen als einziger Editor vi zur Verfügung. Wenn Sie einen anderen Editor vorziehen, können Sie die Netzwerkschnittstelle eth0 vorweg durch das Kommando dhclient eth0 aktivieren – einmal vorausgesetzt, dass die virtuelle Maschine in einem Netzwerk mit DHCP-Server läuft. Anschließend können Sie mit yum bzw. dnf einen anderen Editor installieren.

Nun richten Sie die Datei /etc/sysconfig/network-scripts/ifcfg-eth0 wie folgt ein:

# Datei /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 HWADDR=52:54:00:xx:xx:xx (eigene MAC-Adresse) NM_CONTROLLED=no ONBOOT=yes BOOTPROTO=dhcp TYPE=Ethernet USERCTL=no PEERDNS=yes

Welche MAC-Adresse der Netzwerkadapter der virtuellen Maschine hat, können Sie entweder der XML-Datei mit der Beschreibung der virtuellen Maschine entnehmen (/etc/libvirt/qemu/name.xml) oder in der virtuellen Maschine mit ip addr ermitteln.

Bei einer statischen Konfiguration muss die Datei dem folgenden Muster entsprechen, wobei Sie die IP-Adressen und -Masken durch eigene Werte ersetzen müssen:

# Datei /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 HWADDR=52:54:00:xx:xx:xx (eigene MAC-Adresse) NM_CONTROLLED=no ONBOOT=yes BOOTPROTO=none TYPE=Ethernet USERCTL=no IPV6INIT=no IPADDR=10.0.17.33 PREFIX=24 GATEWAY=10.0.17.1

Den oder die Nameserver tragen Sie in /etc/resolv.conf ein:

# /etc/resolv.conf nameserver 10.0.17.1 # erster DNS nameserver 10.0.17.2 # zweiter DNS

Um den Hostnamen einzustellen, führen Sie hostnamect set-hostname name aus. Bei einer statischen IP-Konfiguration ist es zumeist zweckmäßig, die Zuordnung der IP-Adresse des Rechners zu seinem Hostnamen auch in /etc/hosts einzutragen:

# /etc/hosts ... 10.0.17.33 myhostname.mydomainname myhostname

Das folgende Kommando aktiviert die Netzwerkeinstellungen:

root# ifup eth0

Minimalinstallation von Ubuntu Server

Wenn Sie in einer virtuellen Maschine eine minimale Ubuntu-Installation durchführen möchten, sollten Sie als Installationsquelle das ISO-Image der Server-CD verwenden und nicht die ISO-Datei zur Desktop-Installation. Am Beginn einer Ubuntu-Server-Installation können Sie mit (F4) die Installationsvariante Eine minimale virtuelle Maschine installieren auswählen. Der Vorteil gegenüber einer herkömmlichen Server-Installation besteht darin, dass ein spezieller Kernel eingesetzt wird, der für den Einsatz in virtuellen Maschinen optimiert ist und mit wenig zusätzlichem Ballast auskommt.

Anders als bei RHEL kümmert sich das Installationsprogramm um die Netzwerkkonfiguration. Wenn Sie die Konfiguration später ändern möchten, ist der zentrale Dreh- und Angelpunkt die Datei /etc/network/interfaces. Bezieht die virtuelle Maschine ihre Netzwerkparameter von einem DHCP-Server, muss diese Datei wie folgt aussehen, wobei Sie gegebenenfalls eth0 durch einen anderen Schnittstellennamen ersetzen müssen:

# /etc/network/interfaces auto lo iface lo inet loopback auto eth0 iface eth0 inet dhcp

Bei einer statischen Konfiguration können Sie sich am folgenden Muster orientieren:

# /etc/network/interfaces auto lo iface lo inet loopback auto eth0 inet static address 10.0.17.33 netmask 255.255.255.0 gateway 10.0.17.1

Den oder die Nameserver tragen Sie in /etc/resolv.conf ein. Damit Änderungen an der Konfiguration wirksam werden, führen Sie das folgende Kommando aus:

root# ifup eth0

Windows-Installation

KVM ist Windows-kompatibel, und prinzipiell unterscheidet sich eine Windows-Installation nur unwesentlich von einer Linux-Installation. Sie beginnen abermals damit, dass Sie eine neue virtuelle Maschine einrichten. Achten Sie darauf, dass Sie im zweiten Schritt des Assistenten den Betriebssystemtyp Windows und die entsprechende Windows-Version auswählen! Nur dann verwendet der Virtual Machine Manager für Windows geeignete virtuelle Hardware-Komponenten.

Standardmäßig kommen die folgenden Hardware-Komponenten zum Einsatz:

Um Netzwerk- und Festplattenzugriffe effizienter zu gestalten, sollten Sie nun unbedingt virtio-Treiber unter Windows installieren und anschließend die Hardware-Einstellungen der virtuellen Maschine entsprechend ändern. Auf den folgenden Webseiten finden Sie Download-Links für eine ISO-Datei mit Treibern für gängige Windows-Versionen:

http://www.linux-kvm.org/page/WindowsGuestDrivers/Download_Drivers
https://fedoraproject.org/wiki/Windows_Virtio_Drivers

Diese ISO-Datei laden Sie auf das Hostsystem herunter, also nicht in der virtuellen Maschine. Anschließend fahren Sie Ihren Windows-Gast herunter. Mit Anzeigen • Details wechseln Sie in die Hardware-Ansicht der virtuellen Maschine. Dort geben Sie die ISO-Datei als Quelle für das virtuelle CD-Laufwerk an. Außerdem fügen Sie der virtuellen Maschine zusätzlich zu den vorhandenen Netzwerk- und Festplattenadaptern eine neue virtio-Netzwerkkarte und eine virtio-Festplatte hinzu. Die Image-Datei für die neue Festplatte muss nicht groß sein – es geht nur darum, dass Windows beim nächsten Start die neuen Hardware-Komponenten bemerkt.

Anschließend starten Sie den Windows-Gast neu und rufen im Windows-Menü das Programm Geräte-Manager auf. Dort erscheinen mehrere noch unbekannte Hardware-Komponenten, unter anderem als Ethernet- und SCSI-Controller. Bei jeder dieser Komponenten öffnen Sie nun per Doppelklick den Eigenschaftendialog, klicken auf Einstellungen ändern, dann auf Treiber aktualisieren und schließlich auf Auf dem Computer nach Treibersoftware suchen. Bei dieser Suche müssen Sie mithelfen. Sie geben als Ort der Treibersoftware das DVD-Laufwerk an, also üblicherweise »D:«.

Bei der Treiberinstallation warnt Windows davor, dass die Treiber nicht signiert sind. Diese Warnung können Sie ignorieren. (Wenn Sie RHEL verwenden, stellt Ihnen diese Distribution Pakete mit signierten Treibern zur Verfügung. Dort entfällt die Warnung. Von der Signatur abgesehen sind die Treiber aber mit denen der vorhin angegebenen fedoraprojekt.org-Seite identisch.)

virtio-Treiberinstallation
  unter Windows 7

Abbildung 41.4virtio-Treiberinstallation unter Windows 7

Nun fahren Sie Windows herunter und entfernen in der Hardware-Übersicht des Virtual Machine Managers die IDE-Festplatte, die virtio-Festplatte und den RTL-8139-Netzwerkadapter. Außerdem richten Sie eine neue virtio-Festplatte ein, wobei Sie die ursprüngliche Image-Datei auswählen – also die, die bisher mit der IDE-Festplatte verbunden war. Das Ergebnis ist eine virtuelle Maschine mit einem virtio-Netzwerkadapter und einer virtio-Festplatte. Vergewissern Sie sich mit einem Blick in den Geräte-Manager, dass Ihre Änderungen übernommen wurden (siehe Abbildung 41.4)!

Als ich die Treiberinstallation zuletzt im Oktober 2015 getestet habe, gab es im Treiberpaket noch keine Treiber speziell für Windows 10. Das war aber kein Problem – Windows 10 akzeptierte die im ISO-Image enthaltenen Windows-8.1-Treiber ohne Murren.