Open-Source-Management für virtuelle Maschinen

Aus LinuxUser 04/2012

Open-Source-Management für virtuelle Maschinen

© Dejan Krsmanovic, 123rf.com

Wirts-Haus

Die Libvirt und ihr grafisches Frontend Virt-Manager machen das Installieren und den Betrieb von Gästen unter KVM, Xen oder LXC zum Kinderspiel.

Dass Virtualisierung auch ohne proprietäre Software gelingt, zeigen Projekte wie Xen und KVM seit vielen Jahren. Vor allem bei der Kernel-based Virtual Machine engagierte sich Red Hat früh und brachte mit RHEV (Red Hat Enterprise Virtualization) ein Produkt auf den Markt, das Vmware das Fürchten lehren sollte. Am Rande dieser Entwicklung fiel so manches Tool ab, das auch Heimanwendern praktische Hilfestellungen beim Virtualisieren von Gästen auf dem Desktop leistet. Eines davon findet sich in jeder gängigen Linux-Distribution und hört auf den Namen Virt-Manager [1].

Damit Virt-Manager (Abbildung 1) auch auf Ihrem Rechner funktioniert, brauchen Sie nur eine CPU mit Hardware-Virtualisierung, eine passende Ausgabe der Libvirt-Bibliothek [2], die sich um alle Funktionen unter der Haube kümmert, und die passenden KVM-Treiber-Module. Aktuelle Distributionen wie Suse, Ubuntu, Mint und Red Hats Varianten bringen all das mit, und die in der Regel problemlose Installation des Pakets virt-manager zieht alle notwendigen Abhängigkeiten nach.

Abbildung 1: Während im Hintergrund Ubuntu 12.04 Alpha läuft, zeigt der Virt-Manager die CPU-Last auf Wirt und Gast an.

Abbildung 1: Während im Hintergrund Ubuntu 12.04 Alpha läuft, zeigt der Virt-Manager die CPU-Last auf Wirt und Gast an.

Die Virtualisierungsbibliothek Libvirt beherrscht zahlreiche Funktionen und kann sogar mit verschiedenen Technologien umgehen. Weil der Virt-Manager nichts anderes als ein Frontend für sie darstellt, kann sich der Anwender aussuchen, ob er als Virtualisierungstechnologie für die Gäste Xen [3], KVM [4] oder LXC [5] verwenden will. Nachdem Red Hat mehr oder weniger Pate für den Virt-Manager steht, verwundert es nicht, dass sich die besten Dokumentationen dafür auf den Webseiten von Fedora [6] und Red Hat [7] finden. Als Standard-Unterbau für den Virt-Manager gilt KVM.

Die Management-GUI lässt sich heute (beim Redaktionsschluss war Version 0.9.0 aktuell) auf den ersten Blick kaum noch von jener der Konkurrenten Vmware Player oder Virtualbox unterscheiden. Im Hauptfenster zeigt eine Liste die konfigurierten Gastsysteme und bietet einen schnellen Blick auf CPU-, Netzwerk- und Festplattenlast. Doch bereits der erste Eintrag in der Liste, Localhost, gibt einen Vorgeschmack auf tiefergehende Funktionen, die der Virt-Manager mitbringt: Die virtuellen Maschinen müssen nicht lokal laufen, mit der GUI steuern Sie auch bequem beliebig viele Server und verwalten die dort laufenden virtuellen Systeme.

Installation des ersten Gastes

Haben Sie gemäß der Voreinstellung den Localhost, also den lokalen Rechner, als zu steuernden Gastgeber im Virt-Manager ausgewählt, dann greifen Sie mit einem Rechtsklick auf dessen Kontextmenü zu und legen hier einfach über dem Eintrag Neu eine neue virtuelle Maschine an. Der Assistent aus Abbildung 2 begleitet Sie dabei in wenigen Schritten durch die Konfiguration. Die entsprechenden Daten landen in einem einfachen XML-File, das kundige Anwender auch per Hand editieren können. Diverse Kommandozeilentools (Kasten “CLI-Tools”) der Libvirt greifen ebenfalls auf diese Datei zurück, etwa wenn es darum geht, virtuelle Maschinen zu klonen oder zu verschieben.

Abbildung 2: Ein Mausklick auf das Symbol <code srcset=

Neue virtuelle Maschine erstellen in der Werkzeugleiste des Virt-Managers fördert diesen Dialog zutage.” width=”300″ height=”245″ /> Abbildung 2: Ein Mausklick auf das Symbol Neue virtuelle Maschine erstellen in der Werkzeugleiste des Virt-Managers fördert diesen Dialog zutage.

CLI-Tools

Die Virtualisierungsbibliothek Libvirt bringt einige hilfreiche Kommandozeilen-Tools mit, die auf die gleichen Funktionen zurückgreifen wie der Virt-Manager. So erstellt virt-image einen virtuellen Gast aus einer XML-Beschreibung, virt-install installiert neue VMs, virt-convert wandelt diverse Virtualisierungsformate um, virt-clone kopiert virtuelle Maschinen und die virsh bietet eine interaktive Shell [9] zum Administrieren von Gästen. Das Projekt SVirt [10] kombiniert die Sicherheitsfunktionen von SE Linux mit KVM und will so eine Hochsicherheitswolke ermöglichen.

Im ersten Schritt wählen Sie einen Namen für den Gast (hier sind nur wenige Sonderzeichen erlaubt) und bestimmen, woher die virtuelle Maschine das Installationsmedium bekommt. In aller Regel wählen Sie dazu ein heruntergeladenes ISO-Image oder ein ins lokale optische Laufwerk eingelegte Medium aus. Die Entscheidung ISO oder CD/DVD müssen Sie im nächsten Dialogfenster noch etwas konkretisieren: Dabei geben Sie entweder das entsprechende optische Laufwerk beziehungsweise den genauen Pfad zur Datei an oder wählen diese aus einem Drop-Down-Menü oder mit Hilfe der Schaltfläche Durchsuchen (Abbildung 3). Im gleichen Dialog spezifizieren sie das geplante Betriebssystem und die entsprechende Version: Das macht es der Libvirt einfacher, passende Voreinstellungen für den zukünftigen Gast vorzunehmen, und Sie ersparen sich später lästige Probleme.

Abbildung 3: Installation von einem ISO-Image. Die hier ausgewählte Windows-7-Testversion gibt es für 30 Tage kostenlos zum Test.

Abbildung 3: Installation von einem ISO-Image. Die hier ausgewählte Windows-7-Testversion gibt es für 30 Tage kostenlos zum Test.

Mehr Speicher

Im dritte Dialog des Assistenten weisen Sie dem Gast eine sinnvolle Menge an Arbeitsspeicher, eine Anzahl CPUs respektive Cores sowie genug Speicherplatz auf der Platte oder einem Netzwerklaufwerk zu. Während sich das verfügbare RAM und die CPUs meist direkt aus der Ausstattung des Wirts-PCs ergeben, ist die Frage nach dem Festplattenplatz etwas diffiziler. Wollen Sie Virt-Managers erst einmal testen oder betreiben nur wenige Gäste, können Sie in der Regel einfach die Voreinstellungen übernehmen, in dem sie den vierten Schritt des Wizards einfach mit Vor abnicken.

Für den dauerhaften Betrieb mit mehreren Gastsystemen empfiehlt sich dagegen ein wenig Vorarbeit. Die meisten Linux-Systeme verlangen heute über 4 GByte Plattenplatz, Windows braucht sogar noch etwas mehr. Lassen Sie die Gesamte Festplatte jetzt zuweisen, braucht Virt-Manager sofort den hier eingestellten Platz, anderenfalls wächst die virtuelle Platte nach und nach bis zu diesem Wert. Die Standardvorgabe lautet 8 GByte und die Images landen – etwas unglücklich – im Verzeichnis /var/lib/libvirt/images: Wer da nicht acht gibt, schreibt schnell die Systempartition voll und wundert sich dann, warum das Wirtssystem plötzlich zickt.

Darum leiten Sie vor dem Anlegen virtueller Festplatten besser das Verzeichnis /var/lib/libvirt/images über einen symbolischen Link in einen eigens dafür vorgesehenen Bereich um, idealerweise eine eigene Partition. Haben Sie diese beispielsweise als /mnt/Data/ eingebunden und dort ein Unterverzeichnis Images für die Abbilder angelegt, lautet die entsprechende Befehlssequenz:

# mkdir /mnt/Data/images
# cd /var/lib/libvirt
# rm -rf images
# ln -s /mnt/Data/images images

Nun steht reichlich Speicherplatz für die virtuellen Gäste zur Verfügung, der auch im schlimmsten Fall das System nicht ausbremst.

Im fünften und letzten Schritt (Abbildung 4) suchen sie noch aus, wie sich der neue Gast mit dem Netzwerk verbindet. In den meisten Fällen reicht es aus, die Standardeinstellungen unter Erweiterte Optionen zu bestätigen. Kniffliger wird es, wenn sie auch von außen auf das virtuelle System zugreifen wollen: Da ist dann Netzwerkkenntnis gefragt, die Dokumentationen von Fedora [6] und Red Hat [7] helfen beim Setup.

Abbildung 4: Ein virtuelles Netzwerk genügt für die meisten Einsatzzwecke.

Abbildung 4: Ein virtuelles Netzwerk genügt für die meisten Einsatzzwecke.

Details, Details

Sofern Sie das Optionsfeld Konfiguration bearbeiten vor der Installation ankreuzen, erhalten Sie vor dem Start des Gastes noch einmal Gelegenheit, die virtuelle Maschine mit simulierter Hardware zu versorgen und zahllose Details einzustellen.

Diese reichen von ACPI-Settings über die Auswahl einer speziellen simulierten CPU (Abbildung 5) bis zu den Massenspeichermedien und dem virtuellen Bootmenü. Allerdings gestalten sich nicht alle Dialoge so ausführlich wie die bezüglich der CPU oder der Netzwerkkarte, wo Sie sogar das Modell der simulierten Ethernet-Karte einstellen können (Abbildung  6).

Abbildung 5: Die Konfiguration einer virtuellen Maschine erlaubt auch detaillierte CPU-Einstellungen.

Abbildung 5: Die Konfiguration einer virtuellen Maschine erlaubt auch detaillierte CPU-Einstellungen.

Abbildung 6: KVM und der Virt-Manager können dem Gast verschiedene Typen von Netzwerkkarten vorgaukeln.

Abbildung 6: KVM und der Virt-Manager können dem Gast verschiedene Typen von Netzwerkkarten vorgaukeln.

Auch einen eigenen VNC-Server, Soundunterstützung für fünf Typen virtueller Audio-Karten und diverse Video-Treiber bringt die Hardware-Konfiguration mit. Wem das noch nicht reicht, der klickt auf die Schaltfläche Hardware Hinzufügen unten links und stellt hier Storage, Netzwerk, Grafiktabletts sowie parallele oder serielle Schnittstellen ein und konfiguriert echte USB- oder PCI-Geräte (Abbildung 7). Die in diesen beiden Dialogen enthaltenen Listen zeigen die tatsächlich im System vorhandene PCI- oder USB-Hardware. Virtualisierer wie KVM können diese an die Gäste durchreichen. So erhält das virtuelle System uneingeschränkten Zugriff beispielsweise auf einen Scanner oder DVB-T-Stick. Für die entsprechende Treiberausstattung muss dann die Software des Gastsystems sorgen.

Abbildung 7: Reale USB- oder PCI-Geräte lassen sich auch in KVM-Instanzen benutzen.

Abbildung 7: Reale USB- oder PCI-Geräte lassen sich auch in KVM-Instanzen benutzen.

Haben Sie die gewünschte Hardware konfiguriert, schließen sie das Fenster Add New Virtual Hardware mit der Schaltfläche Abschließen. Sobald Sie auf Installation beginnen klicken, startet die Einrichtung des Gasts. Dabei gilt es etwas Geduld aufzubringen, denn erst jetzt erzeugt Virt-Manager (via Libvirt) die virtuelle Festplatte, was je nach deren Größe und der Geschwindigkeit der realen Festplatte ein wenig Zeit in Anspruch nimmt. Anschließend öffnet Virt-Manager ein eigenes Fenster, in dem der Gast startet. Abbildung 8 zeigt die Installationsroutine von Windows 7, dessen Einrichten etwa eine halbe Stunde dauert. Linux-Installationen gelingen in etwa der halben Zeit.

Abbildung 8: Windows 7 bootet in der virtuellen Maschine.

Abbildung 8: Windows 7 bootet in der virtuellen Maschine.

Das Fenster jedes Gastes bringt eine eigene Menüleiste sowie sechs Icons für Werkzeuge mit, die Sie fortan regelmäßig benutzen. Hinter dem Symbol ganz links, das wie ein kleiner Computermonitor aussieht, verbirgt sich die “Konsole”, die grafische Ausgabe des virtuellen Systems. Die Schaltfläche mit dem blauen I bringt Sie zur Konfiguration der virtuellen Maschine, die sie schon weiter oben kennengelernt haben.

Geräte hinzufügen

Allerdings sind nicht alle hier vorhandenen Schalter aktiv, weil sich nicht jede Einstellung auch während des Betriebs des Gastes ändern lässt. USB-Geräte jedoch beherrschen von Natur aus Plug & Play, hier lohnt sich ein erster Test. Abbildung  9 zeigt eine Windows-8-Instanz, der wir im laufenden Betrieb einen betagten Epson-Scanner sowie einen aktuellen DVB-T-Stick bereitgestellt haben. Der Gast erkannte beide automatisch und ohne Probleme, sodass wir direkt zur Installation der nötigen Treiber schreiten konnten.

Abbildung 9: Das virtuelle Windows 8 erkennt den an USB angeschlossenen Scanner und die DVB-T-Karte, die der Anwender freigegeben hat.

Abbildung 9: Das virtuelle Windows 8 erkennt den an USB angeschlossenen Scanner und die DVB-T-Karte, die der Anwender freigegeben hat.

Zurück zu den Icons der Werkzeugleiste: Dasjenige mit dem Pfeil nach rechts startet ein Gastsystem, das mit dem Pause-Symbol hält es temporär an. Allerdings ist diese Pause nicht von Dauer, bei einem Reboot des Wirtssystems beispielsweise geht der Zustand des Gastes verloren. Das können Vmware und Virtualbox besser: Sie legen einen sogenannten Schnappschuss (“Snapshot”) an, der sich jederzeit reanimieren lässt. Für derlei muss der Virt-Manager-Anwender auf die Kommandozeile zurückgreifen, bis die Entwickler auch das in die GUI integrieren.

Hinter dem roten Icon verbirgt sich ein Ausklappmenü zum Ausschalten der virtuellen Maschine. Dessen Einträge finden sich auch im Virt-Manager-Hauptmenü unter Virtuelle Maschine | Herunterfahren (Abbildung 10). Sie können hier zartfühlend oder brachial vorgehen: Neustart und Herunterfahren signalisieren dem Gast über ACPI-Kommandos die gewünschte Aktion und versuchen so, einen sauberen Neustart beziehungsweise Shutdown herbeizuführen. Dagegen fackelt Forciertes Ausschalten nicht lange und beendet den Gast sofort und mit allen damit verbundenen Risiken eines Datenverlustes. Das letzte Icon ganz rechts mit den vier Pfeilen schaltet den Vollbildmodus ein. Diesen verlassen Sie später wieder über eine Schaltfläche, die der Virt-Manager in diesem Modus oben in der Mitte einblendet. Über eine entsprechende Tastenkombination schweigt sich die Dokumentation aus.

Abbildung 10: Pausieren, Klonen, Migrieren und Herunterfahren – über einen eigenen Eintrag im Virt-Manager-Menü.

Abbildung 10: Pausieren, Klonen, Migrieren und Herunterfahren – über einen eigenen Eintrag im Virt-Manager-Menü.

Diverse Einträge im Menü richten sich an fortgeschrittene Anwender. Schon in Abbildung 10 zeigen sich Funktionen wie das Klonen (Kopieren) oder Migrieren (Verschieben auf einen anderen Gastgeber) der virtuellen Instanz. Im Menü Anzeigen passen Sie die Darstellung des Gasts anpassen, über Taste senden lassen Sie dem virtuellen System spezielle Tastenkombinationen zukommen, die sonst der Wirt abfangen und interpretieren würde.

Normalerweise reicht es aus, mit dem Mauszeiger über den Rand des Gastfensters zu fahren, um den Eingabefokus zwischen Wirt und Gast umzuschalten. Klappt das nicht, verlassen Sie jederzeit das virtuelle System mit [Strg-links]+[Alt]. Das macht es allerdings schwierig, Tastenkombinationen wie [Strg]+[Alt]+[F1] nur auf dem Gast auszuführen – genau dafür bietet der Virt-Manager das Menü Taste senden.

Der erste Schritt zur eigenen Cloud

Wechsel Sie bei laufendem Gast zurück ins Fenster Verwaltung für virtuelle Maschinen, können Sie sich hier unter dem Menüpunkt Anzeigen diverse Leistungsdaten des Gastes einblenden lassen – in Abbildung 1 war das beispielsweise die CPU-Last auf Gast und Wirt. Die restlichen Optionen des Verwaltungsfensters fallen eher spartanisch aus, vor allem gemessen an den Konkurrenten Virtualbox und Vmware.

Wie bereits erwähnt, können Sie mit dem Virt-Manager auch externe Wirtssysteme administrieren. Ein Klick auf Datei | Verbindung hinzufügen bringt das Dialogfenster aus Abbildung 11 zutage. Hier lassen sich nicht nur andere Virtualisierungsmechanismen eintragen, wie XEN und LXC, sondern auch entfernte Rechner, die Sie von dieser Anwendung aus kontrollieren. Der Virt-Manager kennt mehrere Methoden für den Remote-Zugriff (Abbildung 12), darunter auch SSH.

Abbildung 11: Xen, KVM, LXC – welche Virtualisierung darf's denn sein?

Abbildung 11: Xen, KVM, LXC – welche Virtualisierung darf’s denn sein?

Abbildung 12: Der Virt-Manager kontrolliert die Gäste auf zwei Gastgebern: Windows 8 läuft lokal, Windows 7 auf einem entfernten Rechner.

Abbildung 12: Der Virt-Manager kontrolliert die Gäste auf zwei Gastgebern: Windows 8 läuft lokal, Windows 7 auf einem entfernten Rechner.

In den erweiterten Einstellungen jedes Gastes finden Sie mit VNC und Red Hats Eigenentwicklung Spice [8] gleich mehrere Protokolle für die Fernwartung. VNC ist standardisiert und universell, glänzt aber nicht eben mit Performance. Das noch recht junge Spice hat aber dank fortschrittlicher Multimediafunktionen einen guten Ruf und arbeitet erstaunlich schnell.

Fazit

Wer lieber freie Software und offene Standards einsetzt, als auf kommerzielle Produkte zu vertrauen, der liegt beim Gespann Virt-Manager, Libvirt und KVM richtig. Zwar fehlt hier noch das ein oder andere Detail, mit dem die proprietäre Konkurrenz glänzt: Seamless Windows oder eine ansprechende Netzwerkkonfiguration sucht man noch vergebens, aber die Funktionen rund um USB- und PCI-Hardware oder die Fernsteuerung können sich sehen lassen. Und das Beste: KVM ist in den Linux-Kernel integriert und wird ständig weiterentwickelt. Während Vmware und Virtualbox nach jedem Kernel-Update einen neuen Treiber verlangen, läuft das Gespann KVM/Virt-Manager einfach weiter. 

Infos

[1] Virt-Manager: http://virt-manager.org

[2] Libvirt: http://libvirt.org

[3] Xen: http://xen.org

[4] KVM: http://www.linux-kvm.org

[5] Linux Containers: Eva-Katharina Kunst, Jürgen Quade, “Eingedost”, Linux-Magazin 02/2011, S. 82, http://www.linux-magazin.de/Heft-Abo/Ausgaben/2011/02/LXC

[6] Fedora-Dokumentation: http://tinyurl.com/lu0412-fedora-virtm

[7] Red-Hat-Dokumentation: http://tinyurl.com/lu0412-redhat-virtm

[8] Spice: http://www.linux-kvm.com/content/red-hat-spice-protocol-virtual-desktops-now-open-source

[9] Virsh: Tim Schürmann, “Herr im Maschinenraum”, Linux-Magazin 11/2011, S. 40, http://www.linux-magazin.de/Heft-Abo/Ausgaben/2011/12/Virsh

[10] SVirt: http://selinuxproject.org/page/SVirt

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDF
LinuxUser 04/2012 KAUFEN
EINZELNE AUSGABE
ABONNEMENTS
TABLET & SMARTPHONE APPS
E-Mail Benachrichtigung
Benachrichtige mich zu:

Hinweis: Dieser Artikel ist älter als ein Jahr, enthaltene Informationen sind möglicherweise veraltet.

0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben