Der Zugriff auf virtuelle Monitore Die besten Spice-Clients zur Erhöhung der Netzwerk- und Festplatten-Performance

Autor / Redakteur: Dipl. -Ing. Thomas Drilling / Ulrike Ostler

Das grafische Tool „Virt Manager“ erlaubt sowohl das Anlegen, Steuern und Verwalten von KVM-VMs als auch den Zugriff auf den virtuellen Monitor der jeweiligen VM. Bei der Virtualisierung von Desktops (VDI) ist es aber oft gewünscht, beide Funktionen zu trennen. Für den Bildschirmzugriff via „Spice“ stehen deshalb eine Reihe grafischer Clients zur Verfügung.

Firma zum Thema

Virtuos virtuell mit Spice-Clients, minutiös und bravourös erläutert von Thomas Drlling
Virtuos virtuell mit Spice-Clients, minutiös und bravourös erläutert von Thomas Drlling
(Bild: © Sergey Nivens - Fotolia)

Virt Manager ist zwar zum Sammeln erster Erfahrungen recht nützlich, Admins sollten ihren Benutzern aber keinen eigenen Virt Manager zur Verfügung stellen. Der läuft ohnehin nicht unter Windows. Außerdem sollten Nutzer keinen oder nur eingeschränkten Zugriff auf das eigentliche Virtualisierungs-Management haben, sieht man ´mal vom Starten und Stoppen der VMs ab. Ausgeklammert seien in diesem Zusammenhang fortgeschrittene Self-Service-Funktionen, wie sie ausgewachsene VDI-Lösungen bieten.

Das sind die derzeit besten Spice-Clients

Verwenden Admins Spice als Remote-Desktop-Protokoll für KVM, stehen ihnen eine Reihe von Clients zur Verfügung, zu finden auf der Spice-Homepage den Gtk-Client spice-gtk für Linux und Windows, einen Android-Client und mit spice-xpi ein Spice-Plug-In für Firefox.

Darüber hinaus gibt es mit spicy und spicec zwei echte Stand-alone-Clients, einen noch in Entwicklung befindlichen HTML5-Client und mit XSpice sogar einen X11-Server, der unter Zuhilfenahme des Treibers spiceqxl_drv gleichzeitig als X11- und Spice-Server arbeiten kann. Xpice ist allerdings momentan noch nicht ausgereift. Außerdem gibt es im Chrome Web Store einen Spice-Client, der als App für Google Chrome realisiert ist.

Die drei ausgereiftesten Spice-Clients im Alltag

1. Der spice-gtk-Client für Linux ist in den Paketquellen aller Linux-Distributionen zu finden. Unter Red Hat oder Fedora installieren lässt er sich mit

yum install spice-gtk

installieren. Das Tool basiert auf zwei Bibliotheken libspice-client-glib und der eigentlichen grafischen Oberfläche spice-client-gtk. Beide kommen nicht nur beim Virt Manager zum Einsatz, sondern auch beim traditionellen Client des Virt-Manager-Projekts virt-viewer, der per Default installiert ist.

Möchten Admins mit virt-viewer und spice-gtk über das Spice-Protokoll auf den Bildschirm Ihrer KVM-VM zugreifen, geben sie diesen Befehl ein:

virt-viewer spice://<Adresse>:<Port>

In gleicher Weise funktioniert auch

remote-viewer spice://<Adresse>:<Port>

Die Windows-Version des virt-viewer können sie als MSI-Datei ebenfalls von der Virt-Manager-Homepage herunterladen und installieren.

2. Installieren Adminsitratoren unter Linux zudem das Paket spicegtk-tools, kommen sie auch in den Genuss des grafischen Spice-Clients spicy. Bei spicy geben sie die Adresse des KVM-Hosts und die Spice-Port-Nummer in einem Dialogfeld ein.

3. Am elegantesten und zudem plattformunabhängig funktioniert der Spice-Monitor-Zugriff derzeit mit der Chrome-App von Google, die sich per Mausklick im Chrome Web Store installieren lässt. Auch hier müssen Host-Adresse und Port-Nummer am Login-Screen eingegeben werden.

Internet in der VM mit Netzwerkbrücken

Soll eine VM sowohl mit anderen VMs als auch mit dem Host und der Außenwelt kommunizieren, braucht man auf dem Host ein Bridge-Device, das an die virtuelle Netzwerkkarte der VM zu binden ist. Wählen der kluge Admin ein solches Gerät als Netzwerktyp aus, zum Beispiel in Virt Manager, kümmert sich die Software automatisch darum, ein Gerät vom Typ MacVTap zur Verfügung zu stellen.

Dabei handelt es sich um einen Gerätetreiber, der Bridge-Networking extrem vereinfacht. Er ersetzt die klassische Kombination aus virtuellem tap-Device und dem Bridge-Treiber aus dem Paket bridge-utils. Das Gerät besteht nur aus einem einzigen Modul auf Basis des macvlan-Treibers. KVM/Qemu und andere Hypervisoren können so ein macvtap-Endpoint-Charakter-Device direkt verwenden, ohne dass Administratoren dazu Vorbereitungen treffen müssen.

So legt man ein Bridge-Device manuell an

Allerdings legen die diversen Anwenderberichte wie auch unsere eigenen Tests die Vermutung nahe, dass macvtap-Devices bei bestimmten Kombinationen aus Host- und Gast-OS zu merkwürdigem Verhalten neigen. Dies führt mitunter zu extremen Einbrüchen der Netzwerk-Performance oder zum Verlust der Konnektivität auf TCP-Ebene. Daher ist es besser, ein Admin legt auf dem Host manuell ein klassisches Bridge-Gerät an und bindet es an die virtuelle virtio-Ethernet-Karte der VM.

Unter Red Hat funktioniert das wie folgt:

Schritt 1: Installation

Soweit nicht automatisch geschehen, ist das Paket

bridge-utils mit yum install bridge-utils

zu installieren

Schritt 2: Automatische Verwaltung

Auf dem Host ist die automatische Verwaltung von Netzwerkgeräten mittels Geräte-Manager zu deaktivieren:

systemctl stop NetworkManager.servicesystemctl disable NetworkManager.servicesystemctl enable network.servicesystemctl start network.service

Schritt 3: Ändern der Konfigurationsdatei

Auf dem Host mur in das Verzeichnis„/etc/sysconfig/network-scripts“ gewechselt und die Konfigurationsdatei für das physische Ethernet-Device des Hosts („ifcfg-eth0“ oder „ifcfg-em0“) mit einem Editor (zum Beispiel vim oder nano) wie folgt abgeändert werden. (Dazu sind Root-Rechte notwendig:

DEVICE=eth0BOOTPROTO=staticHWADDR=xx:xx:xx:xx:xx:xx#die MAC-AdresseONBOOT=yesBRIDGE=br0

Schritt 4: ifcfg-br0 erzeugen

Nach dem Speichern ist eine neue Datei mit folgendem Inhalt zu erzeugen „ifcfg-br0“ (der Name muss dem Eintrag bei „BRIDGE“ in „ifcfg-eth0“ entsprechen):

DEVICE=br0TYPE=BridgeIPADDR=192.168.xxx.xxx #ihreIPv4-AdresseGATEWAY=192.168.xxx.254 #ihr RouterDNS=194.25.2.129#Ihr DNS-ServerNETMASK=255.255.255.0DEFROUTE=yesONBOOT=yesDELAY=0

Es handelt sich im Wesentlichen um die Angaben, die zuvor in „ifcfg-eth0“ standen. Statt „IPADDR“, „GATEWAY“, „DNS“ und „NETMASK“ anzugeben, können Admins auch „DHCP“ verwenden, wenn der Router als DHCP-Server konfiguriert ist.

Schritt 5: Einsatz von neuen Geräten

Das neue Gerät „br0“ kann in Virt Manager verwendet werden, beziehungsweise via virsh oder virt-install:

—network=bridge:br0

Das Original und der Autor

Thomas Drilling bloggt in „Drillings OpenSource-Eck“. Sein Artikel erschien zuerst in der Publikation „Erfolgreich virtualisieren“, Ausgabe Juli 2014. Aufgrund einer Kooperationsvereinbarung darf DataCenter-Insider Ihnen diesen Artikel kostenfrei zur Verfügung stellen.

(ID:43093578)

Über den Autor

Dipl. -Ing. Thomas Drilling

Dipl. -Ing. Thomas Drilling

IT-Consultant, Trainer, Freier Journalist