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:
-
Die Konsolenansicht zeigt das Grafiksystem der virtuellen Maschine. Hier sehen Sie die Ausgaben der virtuellen Maschine und können per Tastatur und Maus Eingaben durchführen. Bei virtuellen Maschinen, die im Textmodus laufen, wird der Mauscursor durch einen Klick in der virtuellen Maschine gleichsam eingefangen. (Strg)+(Alt) löst den Cursor wieder.
-
Die Detailansicht zeigt die Eckdaten der virtuellen Maschine an. Hier können Sie die Hardware-Ausstattung der virtuellen Maschine verändern. Die meisten Änderungen können allerdings nur durchgeführt werden, wenn die virtuelle Maschine vorher heruntergefahren wird.
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:
-
Herunterfahren • Neustart sendet ein entsprechendes ACPI-Ereignis an die virtuelle Maschine. Wenn die virtuelle Maschine ACPI-Ereignisse verarbeitet, leitet sie einen Shutdown und anschließend einen Neustart ein.
-
Herunterfahren • Herunterfahren leitet via ACPI einen Shutdown ein.
-
Herunterfahren • Forciertes Ausschalten beendet die Ausführung der virtuellen Maschine sofort – so, als würden Sie bei einem realen Rechner das Stromkabel ziehen. Naturgemäß sollten Sie versuchen, diese Variante des Ausschaltens zu vermeiden, da sie mit Datenverlusten verbunden sein kann.
-
Herunterfahren • Speichern speichert den Inhalt des virtuellen RAMs der Maschine in einer Datei und beendet dann die Ausführung. Wird die virtuelle Maschine später wieder gestartet, befindet sie sich exakt im selben Zustand wie beim Herunterfahren.
-
Natürlich können Sie auch die virtuelle Maschine an sich herunterfahren oder neu starten, z.B. durch die Kommandos shotdown now, reboot oder halt -p.
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.
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:
-
Im ersten Schritt geben Sie an, auf welchem KVM-Host die virtuelle Maschine installiert werden soll. Diese Auswahlmöglichkeit ist dann relevant, wenn Sie mit dem Virtual Machine Manager nicht nur einen lokalen KVM-Host, sondern mehrere Virtualisierungsrechner administrieren.
Außerdem geben Sie hier die Installationsquelle an. Bei einer Linux-Installation handelt es sich üblicherweise um eine ISO-Datei. Es ist aber auch möglich, die Installationsdaten vom DVD-Laufwerk des Hostrechners zu lesen. Die Option Vorhandenes Festplatten-Abbild importieren erzeugt eine Kopie einer bereits vorhandenen Image-Datei mit einer virtuellen Maschine.
-
Wenn Sie im ersten Schritt ein ISO-Abbild oder eine CD/DVD als Installationsquelle ausgewählt haben, können Sie im zweiten Schritt den Dateinamen einer ISO-Datei oder das CD/DVD-Laufwerk angeben. Der Button Durchsuchen führt in einen Dialog, der vorerst nur die dem Virtual Machine Manager bekannten Storage Pools anzeigt. Um eine ISO-Datei direkt auszuwählen, müssen Sie in diesem Dialog den Button Lokal durchsuchen anklicken.
Manchmal gelingt es dem Assistenten, den Typ des Betriebssystems und seine Version aus dem Installationsmedium zu entnehmen – also z.B. Linux und Fedora 23. Gelingt dies nicht, müssen Sie diese Daten selbst angeben. Die Einstellungen sind erforderlich, damit der Assistent die für das Gastsystem optimalen virtuellen Hardware-Komponenten einrichtet.
-
Im dritten Schritt geben Sie an, wie viel Speicher (RAM) und wie viele CPU-Cores Sie der virtuellen Maschine zuweisen möchten.
-
Im vierten Schritt richten Sie die virtuelle Festplatte ein. Normalerweise werden Sie die bereits vorselektierte Option Plattenabbild auf Festplatte des Systems erstellen nutzen. Die neue Image-Datei wird standardmäßig im Verzeichnis /var/lib/libvirt/images angelegt. Wählen Sie die Größe der virtuellen Festplatte nicht zu klein – eine nachträgliche Vergrößerung ist mit großem Aufwand verbunden.
Neben der Größe können Sie auch auswählen, ob der virtuelle Festplattenspeicher sofort zugewiesen werden soll. Das ist effizienter und schließt aus, dass zu einem späteren Zeitpunkt vielleicht zu wenig Platz auf der Festplatte ist, um dem steigenden Platzbedarf der virtuellen Maschine gerecht zu werden. Allerdings geht damit der gesamte Platz sofort im Dateisystem verloren, während die Datei für die virtuelle Festplatte standardmäßig erst bei Bedarf wächst.
Die Alternative Verwalteten oder anderen Speicher wählen ist nur dann von Relevanz, wenn Sie vorher mit Bearbeiten • Verbindungsdetails im Dialogblatt Speicher weitere Speicherpools eingerichtet haben. Ein derartiger Pool kann z.B. ein beliebiges Verzeichnis im Dateisystem oder ein LVM-System sein.
-
Im fünften Schritt können Sie der virtuellen Maschine einen Namen geben und zwischen verschiedenen Netzwerkoptionen wählen. Standardmäßig verwendet der Virtual Machine Manager das Verfahren NAT. Damit werden die virtuellen Maschinen dem privaten Netzwerk 192.168.124.0/24 zugeordnet. Damit kann die virtuelle Maschine den Internetzugang des Hostrechners nutzen, aber keine Verbindungen zu anderen Rechnern in Ihrem lokalen Netzwerk herstellen.
Mit dem Button Fertig wird die Konfiguration beendet und die neue virtuelle Maschine sofort gestartet. Wenn Sie das nicht wünschen, aktivieren Sie im letzten Dialogblatt des Assistenten die Option Konfiguration bearbeiten vor der Installation. Damit gelangen Sie nach dem Ende des Assistenten in einen Dialog, der die Hardware-Komponenten der virtuellen Maschine zusammenfasst (siehe Abbildung 41.3).
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:
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:
Den oder die Nameserver tragen Sie in /etc/resolv.conf ein:
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:
Das folgende Kommando aktiviert die Netzwerkeinstellungen:
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:
Bei einer statischen Konfiguration können Sie sich am folgenden Muster orientieren:
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:
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:
-
eine CPU mit zwei Cores
-
ein RTL-8139-Netzwerkadapter im NAT-Netzwerk
-
eine IDE-Festplatte
-
eine Grafikkarte mit nahezu beliebiger Auflösung
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.)
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.