Tags: Hochverfügbarkeit, Storage, Netzwerk, iSCSI, Load Balancing
Nutzt ein Server Netzwerkspeicher wie ein SAN oder NAS, dann erfordern kritische Anwendungen eine Storage-Anbindung, die ausfallsicher und leistungsfä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.
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.
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.
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.
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 Lastenausgleichsrichtlinie die verfügbaren Varianten zur Auswahl. Sie reichen von reinem Failover und Round Robin bis zu sehr spezifischen Methoden.
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.
Täglich Know-how für IT-Pros mit unserem Newsletter
Verwandte Beiträge
- Network Load Balancing (NLB) für Windows konfigurieren
- Statt NIC-Teaming: Switch-Embedded Teaming (SET) in Hyper-V 2016
- NAS: Synology mit Netzwerk-Speichersystem der Einstiegsklasse
- NAS-Systeme: Synology Rackstations für bis zu 24 Laufwerke
- Failover-Cluster: Windows Server 2012 R2 als hochverfügbares iSCSI Target
Weitere Links
2 Kommentare
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
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.