Hyper-V-Patch von ETES findet Einzug in Linux-Kernel
Infrastruktur von Robert Scheck (Kommentare: 0)
Der von der ETES GmbH geschriebene Quellcode-Patch für Microsoft Hyper-V hat heute Einzug in den Linux-Kernel gefunden. Unser Patch entfernt die Größenbeschränkung auf maximal 2 TB bei Festplatten in virtuellen Maschinen unter Hyper-V und ermöglicht damit die noch bessere Integration von z.B. Red Hat Enterprise Linux unter dem Microsoft-Hypervisor.
In modernen heterogenen IT-Infrastrukturen wird inzwischen häufiger virtualisiert und neben KVM und VMware kommt vereinzelt auch Microsoft Hyper-V zum Einsatz. So haben wir im Rahmen eines Projekts eine Installation von Red Hat Enterprise Linux 5 in einer virtuellen Maschine unter Hyper-V durchgeführt. Da die Virtualisierung jedoch Abstraktions- bzw. Emulationsschichten hinzufügt, leidet üblicherweise die I/O-Performance in den Bereichen Netzwerk und Festplatten sehr stark. Um bessere I/O-Geschwindigkeiten zu erzielen, gibt es die Möglichkeit der Paravirtualisierung, die Microsoft umgangssprachlich "synthetische Geräte" nennt.
Dabei kommen spezielle Treiber, unter Linux also sogenannte Kernel-Module, zum Einsatz, welche vereinfacht gesagt wissen, dass virtualisiert wird und damit Abstraktions- bzw. Emulationsschichten reduzieren können. Bei Hyper-V werden diese Kernel-Module als Linux Integration Components von Microsoft bereitgestellt. Nach der Kompilierung des Quellcodes mussten wir jedoch feststellen, dass Festplatten innerhalb der virtuellen Linux-Maschine, die größer als 2 TB sind, trotzdem nur mit 2 TB zur Verfügung stehen (Auszug aus dmesg):
sda : very big device. try to use READ CAPACITY(16).
sda : READ CAPACITY(16) failed.
sda : status=0, message=00, host=5, driver=00
sda : use 0xffffffff as device size
SCSI device sda: 4294967296 512-byte hdwr sectors (2199023 MB)
sda: Write Protect is off
sda: Mode Sense: 0f 00 10 00
SCSI device sda: drive cache: write back w/ FUA
sda: unknown partition table
sd 0:0:0:0: Attached scsi disk sda
Nach einiger Fehlersuche haben wir schließlich die Ursache im Kernel-Modul "hv_storvsc" gefunden und einen Quellcode-Patch geschrieben, der das Problem beseitigt:
sda : very big device. try to use READ CAPACITY(16).
SCSI device sda: 6442475520 512-byte hdwr sectors (3298547 MB)
sda: Write Protect is off
sda: Mode Sense: 0f 00 10 00
SCSI device sda: drive cache: write back w/ FUA
sda: unknown partition table
sd 0:0:0:0: Attached scsi disk sda
Unseren Quellcode-Patch haben wir anschließend an Microsoft gesendet, da die Kernel-Module unter der GNU General Public License veröffentlicht sind - das war im April.
Heute habe ich eine E-Mail von Greg Kroah-Hartman, einem der bekanntesten Linux-Kernel-Entwickler, erhalten, in der er schreibt, dass unser Patch sich derzeit im sogenannten Staging-Zweig befindet, in den Entwicklungszweig einfließt und anschließend im nächsten Release des Linux-Kernels veröffentlicht werden wird.
Haben Sie Linux unter Microsoft Hyper-V bereits im Einsatz oder benötigen Sie eine solche Integration in der Zukunft? Sprechen Sie uns an - wir stehen Ihnen selbstverständlich von der Planung, über die Realisierung bis hin zur Wartung zur Verfügung!