Virtuelle Maschinen mittels VNC und Spice bedienen

© Oleg Doroshin, 123RF

Nachgewürzt

Das Grafiksystem virtueller Maschinen wird unter Linux standardmäßig per VNC an den Virtual Machine Manager oder einen VNC-Client übertragen. Eine Alternative dazu ist Spice: Sofern im Gastsystem der QXL-Treiber läuft, überzeugt es nicht nur durch schnelle Grafik, sondern gibt auch Audio-Daten weiter.
RAID-Technologie verspricht höhere Performance und mehr Sicherheit beim permanenten Speichern von Daten. Die ADMIN-Redaktion gibt einen Überblick über ... (mehr)

Damit Grafik in virtuellen Maschinen funktioniert, müssen mehrere Puzzlestücke ineinandergreifen: Zum einen muss KVM beziehungsweise das zugrunde liegende QEMU-System der virtuellen Maschine einen Grafikadapter zur Verfügung stellen. Standardmäßig wird hierfür eine (uralte!) Cirrus-Grafikkarte emuliert. Wenn Sie höhere Auflösungen als 1024 mal 768 Pixel wünschen, stehen auch andere virtuelle Grafikkarten zur Auswahl, die aber in Linux-Gästen oft eine manuelle X-Konfiguration voraussetzen.

Zu guter Letzt stellt sich noch die Frage, über welches Protokoll die Grafikdaten von der virtuellen Maschine zum Client-Rechner kommen. Üblich ist hierfür das Protokoll VNC, das über die Linux-Welt hinaus weite Verbreitung findet und in der Praxis die geringsten Probleme bereitet. Alternativ dazu verspricht das neue Protokoll Spice eine höhere Geschwindigkeit und einige weitere Zusatzfunktionen.

Der virtuelle Grafikadapter

Damit die virtuelle Maschine ein Grafiksystem sieht, emuliert QEMU eine Grafikkarte. Im Zusammenspiel mit KVM stehen dabei vier Modelle zur Auswahl:

  • »cirrus« : Diese Grafikkarte wird von nahezu allen Gastsystemen korrekt erkannt und funktioniert ohne Konfigurationsarbeiten in einer akzeptablen Geschwindigkeit. Die maximale Auflösung beträgt allerdings magere 1024 mal 768 Pixel.
  • »vga« : Der Vorteil dieser virtuellen Grafikkarte besteht darin, dass sie wesentlich höhere Auflösungen unterstützt (getestet bis zu 2560 mal 1600 Pixel). Die Grafikkarte wird unter Windows auf Anhieb korrekt erkannt. Bei vielen Linux-Distributionen ist hingegen manuelle Konfigurationsarbeit erforderlich: In xorg.conf muss explizit der Vesa-Treiber eingestellt werden ( Listing 1 )

Listing 1

Vesa-Konfiguration

 

  • »vmvga« : Die Grafikkarte wird seit geraumer Zeit von diversen VMware-Produkten eingesetzt. Die dazu passenden Open-Source-Grafiktreiber werden bei einigen Linux-Distributionen standardmäßig mitgeliefert. Unter dieser Voraussetzung ist die VMware-Grafikkarte eine gute Wahl: Sie unterstützt ohne großen Konfigurationsaufwand hohe Auflösungen in der virtuellen Maschine.
  • »qxl« : Diese Grafikkarte kann nur in Kombination mit Spice eingesetzt werden (siehe unten).

Im Virtual Machine Manager stellen Sie den gewünschten Grafikadapter in der Detailansicht der virtuellen Maschine im Dialogblatt »Video« ein. Der Grafikadapter »xen« kann unter KVM nicht verwendet werden. (Der Virtual Machine Manager eignet sich aber auch zur Administration von virtuellen Xen-Maschinen, die diesen Grafikadapter unterstützen.) Der Grafikadapter »qxl« steht nur zur Auswahl, wenn zuvor im Dialogblatt »Anzeige« das Protokoll »Spice« aktiviert wird.

VNC-Desktop

VNC steht für Virtual Network Computing und ermöglicht es, den Bildschirminhalt eines anderen, auch virtuellen Rechners in einem Fenster (dem VNC-Viewer oder VNC-Client) darzustellen. Gleichzeitig werden per VNC lokale Tastatur- und Mauseingaben an die virtuelle Maschine weitergegeben.

Damit eine virtuelle Maschine per VNC gesteuert werden kann, führt »qemu-kvm« einen VNC-Server aus und macht damit den Inhalt des virtuellen Grafikadapters im Netzwerk zugänglich. Der VNC-Server kann aus Sicherheitsgründen standardmäßig nur über die Adresse 127.0.0.1 angesprochen werden. Der Virtual Machine Manager berücksichtigt die Einstellungen der Libvirt-Konfigurationsdatei, in der auch ein VNC-Passwort angegeben werden kann – dennoch ist VNC ein relativ unsicheres Protokoll, die Verwendung eines VNC-Passworts ändert daran nicht viel.

# Datei /etc/libvirt/qemu.conf
...
vnc_listen = "127.0.0.1"
vnc_password = "strengGeheim"

Zur Steuerung der virtuellen Maschine muss auf dem lokalen Rechner ein VNC-Client ausgeführt werden. In der Regel werden Sie dazu einfach das Konsolenfenster des Virtual Machine Managers verwenden. Alternativ kommen aber auch die Programme »vncviewer« , »vinagre« oder »virt-viewer« infrage.

Standardmäßig verwendet die erste gestartete virtuelle Maschine den Port 5900, die nächste 5901 und so weiter. Wenn Sie nicht mit dem Virtual Machine Manager arbeiten, können Sie die Display-Nummer mit dem Virsh-Kommando »vncdisplay« ermitteln. Den dazu passenden Port erhalten Sie, indem Sie 5900 addieren:

root# virsh list
 Id Name Status
 ----------------------------------
 7 centos laufend
 8 fedora laufend
root# virsh vncdisplay 8
 :1

Der in den Virtual Machine Manager beziehungsweise in den »virt-viewer« integrierte VNC-Client überträgt Tastatureingaben in Form von RAW-Codes. Sofern im Host- und im Gastsystem dasselbe Tastaturlayout eingestellt ist, werden Sie keine Probleme mit dem Tastaturlayout haben.

Andere VNC-Clients übertragen Tastatureingaben hingegen immer gemäß dem US-Layout. Um die daraus resultierenden Probleme zu lösen, kann in der Detailansicht des Virtual Machine Managers (Dialogblatt »Anzeige« ) das gewünschte Tastaturlayout angegeben werden. Es ist in der XML-Datei der virtuellen Maschine gespeichert (Attribut »keymap« ):

# in /etc/libvirt/qemu/vmname.xml
...
<graphics type='vnc' port='-1' autoport='yes' keymap='de'/>
comments powered by Disqus
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Ausgabe /2023