JNT Visual - Fotolia

Storage I/O Control und der Kernel-Storage-Stack in VMware vSphere

vSphere 6 bringt einen ausgereiften Kernel-Storage-Stack mit sich. Ein Blick hinter die Kulissen von VAAI, VMCP und SCSI-HBA-Emulation.

VMware vSphere unterstützt in der Enterprise-Plus-Version mit Storage I/O Control (SIOC), Storage DRS (Distributed Resource Scheduling) und Virtual Flash Ressources drei Technologien zur Ressourcen-Kontrolle beziehungsweise zur Priorisierung von Storage. In diesem ersten von zwei Artikel werfen wir zunächst einen Blick auf die Grundlagen des Kenel-Storage-Stacks, bevor wie im zweiten Artikel auf Funktionsweise und Inbetriebnahme von Storage I/O-Control eingehen.

VMware bringt von der ersten Version an eine eigene Storage-Implementation mit. Sie setzt sich aus verschiedenen Storage- und Netzwerk-Stacks und einer eigenen Multipathing-Architektur zusammen. Ferner verfügt vSphere über ein eigenes Cluster-fähiges Dateisystem VMFS (Virtual Machine File System), das stetig weiterentwickelt wird.

Kernel-Storage-Stack durchleuchtet

Werfen wir einen Blick auf den Speicher-Stack des VMKernels selbst. vSphere bringt nämlich einen komplett eigenen SCSI-Stack mit, der das Anbinden von lokalem oder im Netzwerkwerk vorhandenen Speichern (FC, iSCSI) ermöglicht. Der Kernel-Stack verfügt dazu über komplett eigene Queueing-Mechanismen, auch wenn es seit der Einführung von vSphere (also ab ESX 4.0) auch möglich ist, Multipathing-Funktionen über Drittanbieter-Plug-ins zu integrieren.

Ferner verfügt der Kernel über Mechanismen, die eine bessere Erkennung ermöglichen, ob alle Pfade zu einem Datastore ausgefallen sind (PDL Autoremove). Probleme mit den entsprechenden Failure Conditions APD (All Path Down) und PDL (Permanent Device Lost) ließen sich in früheren Versionen nur durch ein (gegebenenfalls mehrfaches) Rescannen der SAN (Storage Area Network) oder im schlimmsten Fall durch Neustarts beheben.

Ab Version 6 ist vSphere durch eine neues Feature der HA-Cluster-Konfiguration namens VMware Component Protection (VMCP) nicht nur in der Lage, PDL- und APD-Conditions noch besser zu erkennen. Vielmehr kann der Cluster-Admin vorgeben, wie vSphere im High-Availability-Cluster auf entsprechende Situationen reagieren soll.

VAAI verstehen

Im Zusammenhang mit Storage ist es außerdem wichtig, dass dieser VMware VAAI-API unterstützt. Unter VAAI (VMware vStorage APIs für Array Integration) versteht VMware ein Paket von Programmierschnittstellen, das vSphere die „Kommunikation“ mit dem unterliegenden Storage-System ermöglicht.

Die API wurde mit vSphere 4.1 eingeführt und mit vSphere 5.0 deutlich erweitert, da die meisten Storage-Hersteller bereitwillig auf den Zug aufgesprungen waren und die entsprechende API implementiert hatten. VAAI bringt vor allem Performance-Vorteile, da sich mittels VAAI zum Beispiel Storage DRS komplett auf das Storage-Array offloaden lässt.

Das Storage-Backend erhält dann von vSphere nur noch Informationen darüber, welche Blöcke kopiert werden sollen, so dass ESX-seitig keine echten Blöcke mehr übertragen werden müssen, sondern nur noch Pointer-Operationen stattfinden. Weitere sogenannte VAAI-Primitive neben dem von Storage DRS genutzten Clone Blocks/Full Copy /XCOPY sind:

  • ATS (Atomic Test & Set) sorgt im Wesentlichen dafür, so genannten SCSI Reservations auf das Storage-System offloaden zu können.
  • Zero Blocks/Same Writer kommt zum Löschen beziehungsweise Nullen von Blöcken durch den Storage selbst zum Einsatz.
  • Thin Provisioning ermöglicht das so genannte Reclaming. Seit ESX 5.1 kann der ESXi-Host Informationen zum Storage-Back-end senden, welche Blöcke im Datastore nicht mehr mit VMs-Daten belegt sind, etwa weil eine VM beispielsweise gelöscht oder migriert wurde.

Speziell auf NAS-Systemen unterstützt die VAAI-Implementierung von vSphere seit Version 5 zudem:

  • Full File Clone zum Kopieren ungenutzter VMDK-Dateien auf dem NAS-System (Network Attached Storage).
  • Reserve Space zum Thick-Provisionieren von VMDK-Disks für NFS-Datastores (Network File System).
  • Native Snapshot Support, wodurch Snapshots direkt vom Storage-System angelegt werden können.
  • Extended Statistics für bessere Statistikwerte für real verwendeten und provisionierten Plattenplatz.

Kernel-seitige Verarbeitung der SCSI-HBA-Emulation

Um Funktionsweise und Nutzen von Storage-I/O zu verstehen, ist es zudem ratsam, einen Blick auf die Kernel-seitige Verarbeitung von der SCSI-HBA-Emulation in der virtuellen Maschine bis zum entsprechenden Geräte-Treiber im VM-Kernel zu werfen.

Dabei sind diverse Verarbeitungsschichten zu berücksichtigen, zum Beispiel der Typ der virtuellen Disk einer virtuellen Maschine (Raw-Disk, Physical-Mode-RDM oder SCSI-Gerät), wobei bei letzterem die SCSI Command Emulation dafür sorgt, SCSI-Kommandos je nach Anforderung des unterliegenden logischen Objekt-Typs (reguläre VMDK-Datei, Virtual Mode RDN oder Snapshot) entsprechend zu verpacken.

Der Logical Device I/O-Scheduler sorgt dann für das Adressieren der zuständigen Storage-API, wie beispielsweise VAAI, gefolgt von der Storage-API für Multipathing (PSA) und dem Adapter I/O-Scheduler.

Abbildung 1: Der Kernel-Storage-Stack von VMware vSphere

Multipathing per NMP

VMware verwendet von je her eine eigene Pluggable Multipathing-Architecture (PSA). Erkennt vSphere mehrere Pfade zum Storage, entscheidet der VM-Kernel mithilfe entsprechender Komponenten, wie er damit umgeht. Standardmäßig kommt das eigene Native Multipathing Plugin (MNP) zum Einsatz, es werden aber auch Third-Party-MPP-Module unterstützt.

Der Vorgang gestaltet sich dann so, dass das NMP-Modul das zugehörige PSP-Modul aufruft, also Fixed, MRU oder RR (Round Robin). PSP entscheidet sich dann für den optimalen physischen Pfad. Sind alle I/O-Operationen erfolgreich abgeschlossen, gibt NMP sie zurück. Erst wenn eine I/O-Operation fehlschlägt, wird gegebenenfalls ein SATP ausgewählt. Erkennt SATP den I/O-Fehler, kann bei Bedarf ein inaktiver Pfad aktiviert werden und PSP verwendet dann den neuen Pfad.

Abbildung 2: Die PSA-Architektur von vSphere

Im nächsten Artikel dieses Zweiteilers gehen wir dann näher auf die Aktivierung von Storage I/O Control ein.

Folgen Sie SearchStorage.de auch auf Twitter, Google+, Xing und Facebook!

Artikel wurde zuletzt im Juli 2016 aktualisiert

Pro+

Premium-Inhalte

Weitere Pro+ Premium-Inhalte und andere Mitglieder-Angebote, finden Sie hier.

Erfahren Sie mehr über Enterprise-Storage: Planung und Management

Diskussion starten

Schicken Sie mir eine Nachricht bei Kommentaren anderer Mitglieder.

Mit dem Absenden dieser Daten erklären Sie sich bereit, E-Mails von TechTarget und seinen Partnern zu erhalten. Wenn Ihr Wohnsitz außerhalb der Vereinigten Staaten ist, geben Sie uns hiermit Ihre Erlaubnis, Ihre persönlichen Daten zu übertragen und in den Vereinigten Staaten zu verarbeiten. Datenschutz

Bitte erstellen Sie einen Usernamen, um einen Kommentar abzugeben.

- GOOGLE-ANZEIGEN

SearchSecurity.de

SearchNetworking.de

SearchEnterpriseSoftware.de

SearchDataCenter.de

Close