Multipath I/O (MPIO) für iSCSI-Storage konfigurieren

    MPIO für iSCSI und Shared SAS Nutzt ein Server Netzwerkspeicher wie ein SAN oder NAS, dann erfordern kritische Anwendungen eine Storage-Anbindung, die ausfallsicher und leistungs­fähig ist. Multipath I/O bietet sowohl Failover als auch Load Balancing für die Verbindung zu Speichersystemen.

    Windows Server umfasst verschiedene Techniken für das Bündeln von Netzwerkadaptern und für die Lastenverteilung auf mehrere Verbindungen. Dazu gehört seit längerer Zeit Network Load Balancing (NLB), das dazu dient, den Traffic auf IP-Ebene zwischen mehreren Servern zu aufzuteilen. Am häufigsten wird NLB zusammen mit den IIS für den Lastenausgleich zwischen Web-Servern genutzt.

    MPIO statt NIC-Teaming

    Während NLB also keine Lösung darstellt, um einen Server redundant mit einem Storage-System zu verbinden, wäre der Einsatz von NIC-Teaming für diesen Zweck denkbar. Eine solche Link-Aggregierung beherrscht jedoch die fein granulare Aufteilung von I/O-Operationen über mehrere Verbindungen nicht, sondern ordnet einen I/O-Strom immer nur einem Adapter zu. Damit erreicht man zwar eine gewisse Ausfallsicherheit, aber meistens keinen optimalen Datendurchsatz.

    Dagegen wurde MPIO für die Kommunikation eines iSCSI- oder Fibre-Channel-Initiators mit einem Target konzipiert. Daher ist es auch in der Lage, die I/O-Anforderungen einer einzelnen Applikation auf mehrere Pfade zu verteilen. MPIO arbeitet protokollunabhängig und lässt sich auch mit Serial Attached SCSI (SAS) nutzen, etwa um ein Multiport-JBOD anzubinden.

    Windows Server unterstützt den Einsatz von bis zu 32 parallelen Verbindungen. Um eine hohe Ausfallsicherheit zu gewährleisten, können die Pfade über verschiedene Switches laufen, so dass die Kommunikation mit dem Storage-System gegen Defekte von Server-NICs, der Verkabelung und der Netzwerkgeräte gewappnet ist.

    Generisches DSM von Microsoft

    MPIO nutzt als Schnittstelle zur Storage-Hardware so genannte Device-specific Modules (DSMs). Diese können vom Hersteller des Speichersystems stammen, der damit die Möglichkeit hat, MPIO optimal auf die Fähigkeiten seiner Produkte abzustimmen.

    Zum Lieferumfang von Windows Server 2012 (R2) gehört jedoch auch eine generische DSM-Implementierung, die alle mit SCSI Primary Commands-3 (SPC-3) kompatiblen Storage-Systeme unterstützt.

    MPIO als Feature installieren

    Im Gegensatz zum iSCSI-Initiator muss MPIO erst explizit als Feature installiert werden. Dies erfolgt wie gewohnt über den Server Manager, und zwar über den Wizard Rollen und Features hinzufügen. In der deutschen Version der Software wurde MPIO mit Multipfad-E/A übersetzt.

    MPIO muss als eigenes Feature installiert werden, entweder über den Server Manager oder PowerShell.

    Die anschließende Konfiguration von MPIO erfolgt über ein Applet in der Systemsteuerung. Dieses ist auch unter Server Core oder dem kostenlosen Hyper-V Server verfügbar (durch den Aufruf von mpiocpl.exe). Somit lässt sich MPIO dort ebenfalls vollständig über die GUI einrichten, nachdem bereits die Installation des Features remote über den Server Manager von einer Workstation möglich ist.

    MPIO und das zugehörige Applet für die Konfiguration stehen auch unter Hyper-V Server zur Verfügung.

    Multipath I/O konfigurieren

    Startet man das Applet (etwa aus dem Tools-Menü des Server Managers), dann zeigt es standardmäßig die Registerkarte Geräte mit MPIO an. Dort findet sich eine Liste der Hardware-IDs von Geräten, die MPIO verwaltet. Wenn man ein Hardware-spezifisches DSM eines Herstellers hinzufügen möchte, dann kann man dies über den Reiter DSM-Installation tun.

    Nach der Suche von verschiedenen Verbindungen zu den gleichen LUNs ist ein Reboot des Servers erforderlich.

    Der nächste Schritt besteht darin, dass man das Tool herausfinden lässt, welche Adapter unterschiedliche Pfade zur gleichen LUN repräsentieren. Dafür wechselt man zur Registerkarte Multipfade suchen. Bevor man den Vorgang auslöst, aktiviert man die Option Unterstützung für iSCSI-Geräte hinzufügen. Nach Abschluss dieser Aktion startet der Server neu.

    iSCSI für MPIO einrichten

    Im Folgenden geht es darum, iSCSI für MPIO zu konfigurieren. Dazu öffnet man das iSCSI-Applet in der Systemsteuerung und legt entweder eine neue iSCSI-Verbindung an oder wählt auf der Registerkarte Ziele eine bestehende aus. Anschließend öffnet man den Dialog Eigenschaften und führt dort den Befehl Sitzung hinzufügen aus. Im nachfolgenden Dialog hakt man die Checkbox Multipfad aktivieren an. Unter Erweitert kann man die Initiator-IP für das Multipath I/O zum aktuellen Target auswählen.

    Für die MPIO-Konfiguration öffnet man unter "Ziele" den Dialog "Eigenschaften" und dann "Sitzung hinzufügen".

    Das Hinzufügen von MPIO zu iSCSI-Verbindungen sorgt automatisch für redundante Pfade und somit für ein Failover. Neben der Ausfallsicherheit bietet MPIO zusätzlich eine Lastenverteilung zwischen den Verbindungen.

    Optionen für das Load Balancing

    Das dafür genutzte Verfahren kann man festlegen, wenn man im iSCSI-Applet auf der Registerkarte Ziele die Schaltfläche Geräte betätigt und danach den Dialog MPIO öffnet. Dort stehen im Pulldown-Menü unter Lastenausgleichs­richtlinie die verfügbaren Varianten zur Auswahl. Sie reichen von reinem Failover und Round Robin bis zu sehr spezifischen Methoden.

    Microsofts DSM bietet mehrere Varianten des Lastenausgleichs zwischen den Pfaden zum Storage-System an.

    Die Option Nur Failover bewirkt erwartungsgemäß eine Active/Passive-Konfiguration ohne Lastenverteilung, bei der Daten nur über den bevorzugten Pfad laufen, während alle anderen als Standby dienen, die nur im Fehlerfall einspringen. Alle anderen Varianten bieten ein Load Balancing, wobei Roundrobin voreingestellt ist. Eine Zwischenposition nimmt Roundrobin mit Teilmenge ein, das einen Teil der Pfade für den Lastenausgleich verwendet und einen anderen für Standby reserviert.

    2 Kommentare

    Bild von M.Ullrich
    M.Ullrich sagt:
    15. Juni 2015 - 9:31

    Vielen Dank für Ihre Anleitung, hat mir sehr geholfen!
    Habe es mit Windows Server 2012 R2 und einer Qnap-TS-EC1280
    umgesetzt.

    Mit freundlichen Grüßen
    M.Ullrich

    Bild von Fabian Winzinger
    Fabian Winzinger sagt:
    29. Juni 2017 - 14:41

    Laut Artikel funktioniert MPIO automatisch wenn man das iScsi Target konfiguriert. Das war bei mir jedoch nicht der Fall, erst nachdem ich zusätzliche Pfade manuell hinzugefügt habe, hat sich die Performance tatsächlich merklich verbessert.