ETES-Weblog

Hyper-V-Patch von ETES findet Einzug in Linux-Kernel

Gepostet am 07. September 2011 von Robert Scheck in „ETES-News“ Kommentare 0

Robert Scheck

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ößen­beschrä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 durch­geführt. Da die Virtualisierung jedoch Abstraktions- bzw. Emulations­schichten hinzufügt, leidet üblicherweise die I/O-Performance in den Bereichen Netzwerk und Festplatten sehr stark. Um bessere I/O-Geschwindig­keiten zu erzielen, gibt es die Möglichkeit der Para­virtualisierung, die Microsoft umgangs­sprachlich "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. Emulations­schichten 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 selbst­verständlich von der Planung, über die Realisierung bis hin zur Wartung zur Verfügung!

Tags dieses Beitrages: Hyper-V, Linux, Microsoft, RHEL
Trackback-URL: https://www.etes.de/system/modules/trackback/trackback.php?id=2621

Einen Kommentar schreiben

Was ist die Summe aus 3 und 9?