“Enlightening” CentOS: Linux als Hyper-V-Gast betreiben

Über Linux als “Child parition” (als virtuelle Maschine) in Hyper-V wird viel Unsinn geschrieben, der nachfolgende Text soll ein wenig Klarheit bringen und zeigen, wie ein offiziell nicht unterstütztes Linux-OS in Hyper-V optimal genutzt werden kann.

Frage: Wo ist das Problem, mein Linux läuft doch!
Antwort: Praktisch jedes Linux lässt sich in Hyper-V mit den Legacy-Schnittstellen betreiben, wobei anstelle der synthetischen VMBus-Adapter emulierte Geräte verwendet werden müssen. Dagegen ist prinzipiell nichts zu sagen, außer das die virtuellen Maschinen dadurch unvergleichbar viel langsamer arbeiten.

F: Aber Suse Linux wird doch von Hyper-V unterstützt, oder?
A: Genau genommen wird SLES 10 SP1 und SP2 in beiden Wortbreiten (x86-32 und x86-64) unterstützt. Das liegt daran, dass diese Betriebssysteme noch auf Kernel 2.6.16 beruhen.
SLES 11 wird dagegen nicht “erleuchtet”, es beruht auf Kernel 2.6.27. Gleiches gilt für OpenSuse. Kernel jenseits der Version 2.6.16 werden nicht von Microsofts “Linux Integration Components” unterstützt, nach meinem Wissensstand ist dies auch bis auf Weiteres nicht beabsichtigt.

F: “Enlightening” CentOS: wieso CentOS?
CentOS ist ein zu Redhat-Linux binärkompatibles Betriebssystem und sehr beliebt bei all jenen Administratoren, die gerne mit Redhat-Linux arbeiten und eine freie Alternative suchen. Tests, die unter CentOS erfolgreich verlaufen, werden auch in Redhat-Linux erfolgreich sein.
Des Weiteren beruht CentOS 5.3 (aktuelle Version Juni 2009) auf Kernel 2.6.18 und ist somit geeignet für Versuche mit den “LIC”, siehe unten.

F: Woher bekomme ich die “Linux Integration Components”?
A: Über “https://connect.microsoft.com” kann man (Anmeldung erforderlich) die Integrationskomponenten für Linux herunterladen. Aktuell ist LIC-Version-1, es gibt eine Beta für Version 2. Die LIC-v2-Beta dienen nachfolgend als Beispiel.

Howto
CentOS 5.3 installieren und die CentOS-ISO-Datei oder CentOS-CD zunächst im Laufwerk belassen.

mkdir /media/CentOS
mount /dev/hdc /media/CentOS
yum –disablerepo=\* –enablerepo=c5-media install gcc kernel-devel

Das o.g. Vorgehen setzt voraus, dass das CDRom als erstes Gerät an den zweiten IDE-Kanal angeschlossen ist. “yum …” installiert dann die notwendigen Pakete. Will man mit den Satori-Erweiterungen experimentieren, so sollte man auch noch das Paket “xorg-x11-server-sdk” installieren.

Im zweiten Schritt muss man die o.g. LIC-v2-Beta herunterladen, es findet sich in dem Paket eine ISO-Datei, die man in Hyper-V einbindet.

mkdir /root/lic-v2
mount /dev/hdc /media/CDROM
cp /media/CDROM /root/lic-v2
/root/lic-v2/setup.pl drivers

(Der zweite Schritt, das “mount”-en, ist unnötig, wenn der Automounter bereits tätig wurde.)

Nun sollte man prüfen, ob alles zur Zufriedenheit funktioniert. zum Beispiel mit

lsmod | grep vsc
ifconfig
cat /proc/scsi/scsi

Die Ausgabe von “lsmod” sollte die Module “netsvc” (NIC), “storvsc” (SCSI) und “blksvc” (synthetic IDE disks, fastpath) zeigen.

Die Kür: Satori
Satori ist ein Citrixprojekt (ja, das ist kein Tippfehler), das einen “Enlightened mouse driver” ermöglicht. Das bedeutet, dass man zwischen virtueller Maschine und Hostsystem wechseln kann, ohne dass die Tastenkombination STRG+ALT+LINKS notwendig ist.
Wirklich notwendig ist dies sicher nicht, die Unterstützung bezieht sich auch nur auf das “vmconnect”-Programm. Über VNC, SSH, etc. sind solche Überlegungen hinfällig.

Zunächst steht der Download des Paketes an:
http://www.xen.org/download/satori.html
Wie gehabt wird das ISO-Abbild in Hyper-V eingebunden, dann geht es los:

mount /dev/hdc /media/CDROM
mkdir /root/satori
cp /media/CDROM/* /root/satori -R
/root/satori/setup.pl inputdriver

Ich habe unter CentOS häufiger Probleme mit der Kalibrierung der Maus und anderer kleiner Gemeinheiten gehabt, aus diesem Grund rate ich von dem Einsatz von Satori auf Produktivsystemen ab.

Das ALT-GR-Problem
In Hyper-V funktioniert u. U. die ALT-GR-Taste im “vmconnect”-Fenster nicht. Es gibt einen KB-Artikel plus Hotfix zu diesem Thema. Nach meiner Erfahrung reicht es in aller Regel bereits aus, den nachfolgenden Registry-Wert einzutragen:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Virtualization\Worker
“KeyboardWorkaroundEnabled” = 1

Anschließend das “VMConnect”-Fenster schließen und neu öffnen. Sollte dies nicht ausreichen, so findet sich hier der besagte KB-Artikel mit Verweis auf den Hotfix:
http://support.microsoft.com/kb/963709/
Den Hotfix muss man explizit anfordern, im Anschluss erhält man einen Link per Email. Bitte nicht wundern, dass beim Anfordern des Hotfix ein falsches Paket gelistet wird. Einfach anfordern, der Verweis in der Email weist auf den korrekten Patch.

Fazit
Das o.g. Vorgehen lässt sich auf beliebige Linux-Distributionen und -Versionen anwenden; jedoch werden die LIC sich nicht fehlerfrei installieren und verwenden lassen, wenn ein aktueller Kernel in der Distribution verwendet. Der unterstütze Kernel 2.6.18 ist nicht mehr taufrisch, wird aber in allen Geschäftskunden-Distributionen gerne verwendet, um XEN umfassend unterstützen zu können – als Host wie als Gast/VM. Letztlich hängt die weitere Entwicklung von Linux@Hyper-V ganz maßgeblich von der XEN-Entwicklung ab. Denn die Hypercall-API von XEN nutzt Microsoft für das “Enlightning” der Linux-Gäste.