Virtuelle Disk-Controller für VMs auf VMware ESXi: LSI-Logic SAS oder VMware Paravirtual?

    LSI Logic SASESXi bietet bei der virtuellen Hardware mehrere Disk-Controller zur Auswahl an, und zwar abhängig von der Version des Hypervisors und des Gast­systems. Bei Windows ab 8.1 und Server 2012 sowie bei Linux-Distributionen mit 4er-Kernel reduziert sich die Wahl auf LSI-Logic SAS und VMware Paravirtual (PVSCSI).

    VMware vSphere arbeitet bekanntlich nach dem Prinzip der Voll­virtualisierung, bei der ESXi für alle VMs die gleiche virtuelle Hardware bereitstellt. Je nach Gast-OS bietet vSphere immer nur solche Adapter an, die vom Betriebs­system in der VM unterstützt werden.

    Die Adapter aus der realen Welt werden dabei von der Virtualisierungs­schicht emuliert. Ausge­nommen sind die rein synthetischen para­virtualisierten Typen, deren Treiber aber das Gast­system dann mitbringen muss.

    Insgesamt unterstützt ESXi im Gastsystem die Controller BusLogic Parallel, LSI Logic Parallel, LSI Logic SAS und VMware Paravirtual bei den SCSI-Controllern sowie AHCI-, SATA- und NVMe-Controller.

    Standard-Controller je nach OS

    Beim Erstellen einer VM ist der standard­mäßig angebotene Controller immer für maximale Leistung ausgelegt. Der Typ richtet sich nach dem Gastbetriebs­system, dem Gerätetyp und in einigen Fällen nach der Kompatibilität der virtuellen Maschine.

    Erstellt der Nutzer beispielsweise eine VM für Apple Mac OS X und einer Kompatibilität mit ESXi 5.5 (vHardware 10) oder höher, dann ist SATA der vorgegebene Controller-Typ für die Festplatte und das CD/DVD-Laufwerk.

    vSphere bietet die Controller-Typen abhängig vom Gastbetriebssystem an.

    Erstellt man hingegen eine VM mit Windows Vista oder jünger, dann ist ein SCSI-Controller der Standard für die Festplatte, aber ein SATA-Controller für das CD/DVD-Laufwerk.

    Voraussetzungen für einzelne Controller-Typen

    LSI Logic SAS und VMware Paravirtual SCSI sind nur für virtuelle Maschinen ab vHardware 7 verfügbar, AHCI SATA setzt die Kompatibilität mit ESXi 5.5 oder höher voraus. Außerdem können VMs mit VMware PVSCSI-Controller nicht Teil eines Microsoft-Guest-Clusters sein.

    NVMe hingegen erfordert virtuelle Maschinen, die mit ESXi 6.5 (vHardware Version 13) und höher kompatibel sind. BusLogic Parallel-Controller unterstützen keine VMs, bei denen die virtuellen Disks größer als 2 TB sind.

    Probleme und Einschränkungen

    Wird der Controller-Typ nach der Installation des Gast­betriebs­systems geändert, ist der Zugriff auf die Festplatte und andere Geräte, die mit dem Adapter verbunden sind, nicht mehr möglich.

    Bevor man also den Controller-Typ ändert oder einen neuen Controller hinzufügt, muss man sicherstellen, dass die erforderlichen Treiber auf den Installations­medien des Gast-OS enthalten sind. Bei Windows muss der Treiber als Starttreiber installiert und konfiguriert werden.

    Ferner kann das Hinzufügen unterschiedlicher Controller-Typen bei VMs, welche die BIOS-Firmware verwenden, Startprobleme des Gastsystems verursachen. Dann muss man im BIOS-Setup erst das richtige Startgerät auswählen.

    Auf etwaige Kompati­bilitäts­probleme beim Mischen mehrerer Adapter-Typen in einer VM weist aber auch das vSphere-Handbuch für virtuelle Maschinen hin, wie die folgende Tabelle zeigt.

    Die Tabelle zeigt, wie sich verschiedene Storage-Adapter kombinieren lassen und welche Maßnahmen dafür erforderlich sind. (Quelle: VMware)

    VMs mit einer aktuellen Linux- oder Windows-Version sollten für den Anschluss virtueller Festplatten einen SCSI-Controller verwenden. Dabei stehen BusLogic-/LSI Logic - Parallel, LSI Logic SAS und VMware Paravirtual zur Auswahl.

    Der BusLogic-Treiber war einer der ersten emulierten vSCSI-Controller für VMware. Er war zudem in allen älteren Windows-Versionen standard­mäßig verfügbar, was die Installation des Microsoft-OS in einer vSphere-VM vereinfachte. Allerdings ist er weniger leistungsfähig als der LSI Logic-Treiber, weil er auf eine Warte­schlangen­tiefe von 1 beschränkt ist.

    Der LSI Logic Parallel-Treiber (früher nur als LSI Logic bekannt) hingegen unterstützt bei den meisten Gast­betriebs­systemen eine Warte­schlangen­tiefe von 32. Deshalb wurde er auch früher schon häufig bevorzugt, auch als noch nicht jedes Gastsystem diesen Treiber mitbrachte.

    Der LSI Logic SAS ist eine Weiter­entwicklung des parallelen Treibers und gewann enorm an Bedeutung, weil er für die Microsoft Cluster Services ab Windows 2008 benötigt wird und daher heute nahezu bei allen aktuellen Gastsystemen an Bord ist.

    VMware Paravirtual (PVSCSI) wurde entwickelt, um einen sehr hohen Durchsatz bei minimalen Verarbeitungs­kosten zu ermöglichen. Er ist daher bis heute der effizienteste Treiber. Die Performance-Entscheidung reduziert sich also auf LSI Logic SAS versus VMware Paravirtual.

    Viele Nutzer neigen daher unreflektiert zur Verwendung von VMware Paravirtual. Allerdings schreibt VMware in seinem Handbuch:

    Festplatten auf VMware Paravirtual SCSI-Controllern weisen möglicher­weise keine optimalen Leistung­ssteigerungen auf, wenn sie über Snapshots verfügen oder wenn der Arbeits­speicher des Hosts mehrfach vergeben wird.

    Performance-Vergleich

    Theoretisch sind PVSCSI und LSI Logic Parallel / SAS hinsichtlich der Gesamt­leistungs­fähigkeit gleichwertig. Allerdings ist PVSCSI effizienter in Bezug auf die Anzahl der Host-Rechenzyklen, die erforderlich sind, um die gleiche Anzahl von IOPS zu verarbeiten.

    VMware erläutert sowohl im Knowledge-Base-Artikel KB1017652 als auch in einem detaillierten Whitepaper, wie bei PVSCSI und LSI Logic SAS IOPS, Latenz und Kosten genauer zusammen­hängen.

    Nutzer sollten daher den PVCSI-Treiber vor allem bei sehr speicher­intensiven VMs verwenden. Die meisten modernen Betriebs­systeme, die hohe I/O-Werte steuern können, unterstützen den PVSCSI-Treiber von VMware.

    Konkret hat VMware in Umgebungen mit enorm hohem Daten­aufkommen (die Testumgebung arbeitete mit 350000 IOPS) einen Leistungs­zuwachs von 12 Prozent gemessen bei einer um 18 Prozent geringeren Prozessorlast.

    Performance-Vergleich von VMware zwischen PVSCSI und LSI Logic Parallel / SAS

    Übrigens ist PVSCSI nicht nur für neue virtuelle Maschinen gedacht. Man kann etwa bei einem virtualisierten SQL-Server durchaus vom Geschwindig­keits­zuwachs durch PVSCSI profitieren. Um PVSCSI auf einer vorhandenen VM zu konfigurieren, müssen dort die VMware Tools installiert sein.

    Sofern die VM keinen riesigen Datendurchsatz für das Boot-Volume benötigt, empfiehlt VMware, den alten Adapter bei der Virtualisierung des SQL-Servers weiterhin zu verwenden und PVSCSI nur als sekundären Adapter für die Daten-Disk(s) zu benutzen.

    Fazit

    Auch wenn PVSCSI leistungs­fähiger ist, zahlt sich der Mehraufwand zur Bereitstellung und Pflege des Treibers nur bei VMs mit Millionen IOPS aus. Bei virtuellen Maschinen mit niedrigem Daten­aufkommen empfiehlt VMware, beim erprobten LSI Logic SCSI Adaptern zu bleiben.

    VMware sagt im oben genannten KB-Eintrag selbst:

    Die Testresultate zeigen, dass der PVSCSI besser als der LSI Logic Adapter ist, außer unter einer Bedingung: die virtuelle Maschine führt weniger als 2000 IOPS (Input/Output operations per second = Ein-/Ausgabe Operationen Pro Sekunde) aus.

    Abseits der Performance-Betrachtung gibt es aber andere Nachteile von PVSCSI, etwa wenn eine virtuelle Maschine für Fault Tolerance konfiguriert ist. Auch für den virtualisierten Betrieb des Microsoft Cluster Service (MSCS) muss man, wie oben erwähnt, LSI Logic SAS verwenden.

    Keine Kommentare