cat-linux

How-To: Virtualisieren von Linux mit Hyper-V

LINUX

Linux Virtual Machines laufen auch auf Hyper-V! Ja, der Hypervisor von Microsoft unterstützt Linux als Operating System für Virtual Machines. Natürlich wäre es aus der Sicht des Software Hersteller wünschenswert hauptsächlich Windows Server zu betreiben, aber man möchte mit Hyper-V auch vermehrt auch die Szenarien abdecken können welche eine Linux / Unix Plattform erfordern.

Wie bei Windows werden auch bei einer Virtual Machine basierend auf Linux Integration Services (IS) für den optimierten Einsatz auf Hyper-V benötigt. Bisher wurden folgende Funktionen unterstützt:

  • Driver Support – Linux Guests unterstützen die für Hyper-V entwickelten Synthetic Network und Storage Controllers (SCSI Adapter).
  • Fastpath Boot Support for Hyper-V – Boot Devices können vom Virtualization Service Client (VSC) profitieren um eine bessere Performance zu erzielen.

Microsoft hat nun die neue Version für Linux 2.1 veröffentlicht. Die oben genannten Funktionen wurde wie folgt erweitert:

  • Integrated Shutdown – Herunterfahren von Linux Guests mittels Hyper-V Management Console und System Center Virtual Machine Manager
  • Multi CPU (SMP) Support – Linux Guests können nun mit bis zu 4 virtuellen Prozessoren (v-procs) konfiguriert werden
  • Heartbeat – Ein Hyper-V Host kann den Status (Stopped, Running, Saved, Suspended) eines Linux Guest auslesen
  • Zeitsynchronisation (Timesync) – Zeitabgleich zwischen Linux Guests und der Hyper-V Management Partition
  • Pluggable Time Source – Eine pluggable Zeit Quelle für eine genauere Zeit Quelle für das Guest System

Mit der Version 2.1 wurden zwar einige interessante Funktionen hinzugefügt, im Vergleich zu den Windows Integration Services (IS’s) fehlen bei der Linux Variante aber noch immer das eine oder andere, wie zum Beispiel:

  • Integration Services: Data Exchange, Heartbeat, Volume Snapshot Backup
  • Networking: Jumbo Frames and TCP Offload
  • Storage: Hot Add/Remove (VHD‟s and Passthrough Disks)
  • Memory: Dynamic Memory

Nebst dem separaten Download werden zukünftig die Integration Services ab Version 2.6.32 und Neuer integriert sein. Dies ermöglicht High Performance Support ohne zusätzliche IS’ installieren zu müssen. Die Source Code wurde der Linux Community übrigens von der Microsoft Open Source Community als GPL 2 zur Verfügung gestellt.

Installation der Integration Services

Da neuerdings der Kernel nicht mehr neu kompiliert werden muss, ist die Anleitung für die Aktivierung der Integration Services um einiges einfacher (und schneller) geworden:

  1. Zunächst muss eine Virtual Machine angelegt werden.
  2. Wenn bereits bei der Installation eine Netzwerkkarte benötigt wird gilt es zu beachten, dass nur Legacy Network Adapters (Emulated NICs) verwendet werden, da noch keine IS geladen wurden.
  3. Nach erfolgreichem Abschluss der Installation muss eine Konfigurations-Datei bearbeitet werden: # sudo gedit /etc/initramfs-tools/modules
  4. In Editor müssen nun folgende Einträge / Module müssen bei “initframes” hinzugefügt werden, die erste Zeile gilt rein als Information:
    # Added for Hyper-V integration
    hv_vmbus
    hv_storvsc
    hv_blkvsc
    hv_netvsc
  5. Die Module werden mit aktiviert: # sudo update-initramfs -u
  6. Bevor die Virtual Machine neugestartet wird um die IS zu aktivieren, kann überprüft werden was bereits geladen wurde: # /sbin/modinfo vmbus
  7. Mit reboot wird das Linux Operating System neu gestartet
  8. Falls ein “Legacy Network Adapter” benötigt wurde, könnte dieser nun durch den “Synthetic Network Adapter” ausgetauscht werden.
  9. That’s it?

Installation der Mouse Drivers

Noch nicht ganz – denn selbst nach der Installation der Integration Services steht die Maus zum Beispiel in der Hyper-V Console noch nicht zur Verfügung. Diese Komponente kommen nicht von Microsoft, sondern von Xen Citrix mit dem Namen “Satori”. Die Installation der InputVSC Treiber kann wie folgt durchgeführt werden (als root):

  1. Satori ISO-Image (inputvsc.iso) der VM mounten
  2. Die Installation wird mit folgendem Befehl gestartet: # sudo ./setup.pl inputdriver
  3. That’s it! Nun verfügt die VM auch über vollständigen Maus Support

Best Practices

Linux Guests welche als High Available Virtual Machines (HAVM) konfiguriert werden, sollten mit einer statischen MAC Adresse konfiguriert werden. Da gewisse Linux Versionen Probleme mit der dynamischen Zuweisung einer MAC Adresse haben verhindert dieser Workaround dass der Netzwerk Zugriff nach einem Failover verloren geht.

Bei manchen Versionen der Integration Services ts kann es zu Meldungen im Event Log des Hyper-V Hosts kommen:

Log Name: System
Source: storvsp
Event ID: 6
Level: Warning
Description: A storage device in ‘<VM>’ loaded but has a different version from server. Server version 4.2 Client version 2.0 (Virtual machine ID <GUI>). The device will work, but this is an unsupported configuration. This means that technical support will not be provided until this problem is resolved. To fix this problem, upgrade the integration services. To upgrade, connect to the virtual machine and select Insert Integration Services Setup Disk from the Action menu.

Wie in der Meldung beschrieben funktionieren die IS tadellos. Der Event Log Eintrag zu Networking Driver und Storage Device können daher ohne Problem ignoriert werden. Der Hinweis bezüglich Support kommt übrigens bei sämtlichen Linux Distributionen, ob supported oder nicht.

(Microsoft) Support Statement

Microsoft unterstützt offiziell die Linux Distributionen SUSE, Red Hat und CentOS. Genauer spezifiziert wären dies folgende Versionen:

  • Red Hat Enterprise Linux 5.2 / 5.3 / 5.4 / 5.5 / 5.6 / 6.0 / 6.1
  • SUSE Linux Enterprise Server 10 SP4
  • SUSE Linux Enterprise Server 11 SP1
  • CentOS 5.2 / 5.3 / 5.4 / 5.5 / 5.6 / 6.0

Amerkung: Ubuntu zum Beispiel ist keine durch Microsoft unterstützte Distribution, dennoch ist der Code für die Integration Services im Kernel integriert und demnach auch für die Hyper-V Virtual Machines verfügbar. Gemäss eigenen Tests scheint dies auch ganz gut zu funktionieren… Wie ein Ubunte Server auf Hyper-V installiert werden kann, hat Ben Armstrong in einem Artikel beschrieben.

Download

Linux Integration Services Version v2.1 for Hyper-V können direkt beim Hersteller heruntergeladen werden.

Hyper-V

, , ,

About the Author

Michel Luescher ist bei Microsoft Corporation als Solution Architect im Center of Excellence (CoE) für Datacenter & Cloud Infrastructure tätig. Michel ist Speaker und Blogger rund um das Thema Microsoft Cloud und bei Microsoft zudem Subject Matter Expert (SME) für Hyper-V + System Center Virtual Machine Manager.

Comments (1)

Hinterlasse eine Antwort.