Frage Tuning von iSCSI-Speicher


Das ist ein Kanonische Frage über iSCSI können wir als Referenz verwenden.

iSCSI ist ein Protokoll, das SCSI-Befehle als Payload in TCP-Netzwerkpakete einfügt. Als solche unterliegt es einer anderen Reihe von Problemen als beispielsweise Fibre Channel. Wenn zum Beispiel eine Verbindung überlastet wird und die Puffer des Switches voll sind, wird Ethernet standardmäßig Frames löschen, anstatt dem Host zu sagen, dass er langsamer werden soll. Dies führt zu erneuten Übertragungen, die zu einer hohen Latenz für einen sehr kleinen Teil des Speicherverkehrs führen.

Je nach Clientbetriebssystem gibt es Lösungen für dieses Problem, einschließlich der Änderung von Netzwerkeinstellungen. Wie sieht eine optimale iSCSI-Clientkonfiguration für die folgende Liste der Betriebssysteme aus? Würde es die Einstellungen an den Schaltern ändern? Was ist mit dem Speicher?

  • VMWare 4 und 5
  • Windows Hyper-V 2008 und 2008r2
  • Windows 2003 und 2008 auf blankem Metall
  • Linux auf blankem Metall
  • AIX VIO
  • Jedes andere Betriebssystem, das Sie denken, wäre relevant

29


Ursprung


iSCSI ist weitaus komplexer als das - aber in Bezug auf den IP-Stack gilt alles, was für IP-Verbindungen mit hohem Durchsatz und geringer Latenz gilt - nicht besonders speziell. - Nils


Antworten:


Ich kenne VMWare nicht, aber ich benutze XenServer und habe Hyper-V (R2) benutzt.

Mit meiner aktuellen Xenserver-Konfiguration habe ich:

  • 8 Dell Poweredge 29xx Server
  • 2 Dell Powerconnect 6248-Switches
  • 2 Dell MD3000i SAN (iSCSI)

Ich habe meine Switches in einer Multipath-Konfiguration eingerichtet und für iSCSI optimiert durch:

  • Trennung meiner Switches in 3 VLANs (2 für iSCSI-Verkehr und 1 für Management)
  • Verwenden von JumboFrames
  • Anwenden der "iSCSI" -Optimierungen, die die Powerconnect hat

Jeder Server verfügt über mehrere Netzwerkkarten, die eine Verbindung zu jedem Switch herstellen. Dadurch wird Redundanz über Multipathing zwischen den Servern und dem iSCSI-SAN bereitgestellt. Die iSCSI-VLANs enthalten keinen anderen Datenverkehr als iSCSI.

Ich freue mich berichten zu können, dass der Xenserver "Cluster" mit dieser Konfiguration hervorragend funktioniert.

Nebenbei bemerkt, ich habe einen Windows 2008 Server, der direkt über iSCSI mit einem HP SAN (alter Dateiserver) verbunden ist. Früher wurde Windows 2003 ausgeführt, und die Verbindung wurde regelmäßig unterbrochen (selbst nach einer Neuinstallation von 2003). Sobald ich jedoch auf Windows 2008 aktualisiert habe, bleibt es verbunden.

Ich beantworte gerne alle Fragen zu meinem Setup.


6



Verwenden Sie die Stapelkabel zwischen den beiden Dell Switches? - SpacemanSpiff
Warum iSCSI? Warum nicht DRBD auf direkt verbundenem MD3000? - Nils
@SpacemanSpiff Meine Schalter sind nicht gestapelt. - Steve
@Nils Ich habe DRBD nicht erforscht, obwohl ich davon gehört habe. Was bietet DRBD über iSCSI für meinen direkt verbundenen Speicher an? - Steve
DRBD hat keinen SCSI-Overhead. Die andere Sache ist, dass Sie einen iSCSI-Client-Prozess nicht loswerden können, wenn Ihr iSCSI-Server abstirbt oder nicht erreichbar ist (Letzteres sollte in Ihrem Setup kein Problem sein). - Nils


Das ist keine Antwort ... noch nicht. Dies ist der Rahmen für die generische Antwort. Wenn Sie Zeit haben, füllen Sie bitte alles aus, was Sie wissen. In Bezug auf die Konfiguration bestimmter Hardware, bitte posten Sie eine separate Antwort für jeden Anbieter, damit wir diese Informationen organisieren und trennen können.

QoS-Profil für die Ports, Ausschalten der Storm-Kontrolle, Einrichten von MTU auf 9000, Einschalten der Flusskontrolle und Setzen der Ports in Portfast

Durchsatz und Latenz

Aktualisierte Firmware, Treiber und andere Systeme

MPIO

Jumbo Frames / MTU

Mit zunehmender Geschwindigkeit der Netzwerkverbindungen steigt auch die Anzahl der potenziell erzeugten Pakete. Dies ergibt mehr und mehr CPU / Interrupt-Zeit, die für die Erzeugung von Paketen aufgewendet wird, was dazu führt, daß das Übertragungssystem sowohl übermßig belastet wird als auch eine übermßige Menge an Verbindungsbandbreite mit Framing beansprucht wird.

Sogenannte "Jumbo" -Frames sind Ethernet-Frames, die das kanonische 1518-Byte-Limit überschreiten. Während die Zahlen basierend auf Switch-Anbietern, Betriebssystemen und NICs variieren können, sind die typischsten Jumbo-Paketgrößen 9000 und 9216 Bytes (wobei letzteres am üblichsten ist). Wenn man annimmt, dass die Daten in etwa 6X in einen 9K Rahmen eingegeben werden können, wird die Anzahl der tatsächlichen Pakete (und Interrupts) um einen ähnlichen Betrag auf dem Host reduziert. Diese Verstärkungen sind besonders ausgeprägt bei Verbindungen mit höherer Geschwindigkeit (d. H. 10 GE), die große Datenmengen (d. H. ISCSI) senden.

Die Aktivierung von Jumbo-Frames erfordert sowohl die Konfiguration des Hosts als auch des Ethernet-Switches, und vor der Implementierung sollte mit großer Sorgfalt vorgegangen werden. Mehrere Richtlinien sollten befolgt werden -

1.) Innerhalb eines gegebenen Ethernet-Segments (VLAN) sollte für alle Hosts und Router die gleiche MTU konfiguriert sein. Ein Gerät ohne korrekte Konfiguration sieht größere Frames als Linkfehler (insbesondere "Riesen") und lässt sie fallen.

2.) Innerhalb des IP-Protokolls benötigen zwei Hosts mit unterschiedlichen Frame-Größen einen Mechanismus, um eine geeignete gemeinsame Frame-Größe auszuhandeln. Für TCP ist dies Pfad-MTU- (PMTU-) Erkennung und beruht auf der Übertragung von ICMP-unerreichbaren Paketen. Stellen Sie sicher, dass PMTU auf allen Systemen aktiviert ist und dass ACLs oder Firewall-Regeln diese Pakete zulassen.

Ethernet-Flusskontrolle (802.3x)

Obwohl es von einigen iSCSI-Anbietern empfohlen wird, sollte die einfache 802.3x-Ethernet-Flusskontrolle funktionieren nicht in den meisten Umgebungen aktiviert sein, sofern nicht alle Switch-Ports, NICs und Links vorhanden sind vollständig auf den iSCSI-Verkehr zugeschnitten und sonst nichts. Wenn sich auf den Links noch weiterer Datenverkehr befindet (z. B. SMB- oder NFS-Dateifreigabe, Heartbeats für Clusterspeicher oder VMware, NIC-Teaming-Steuerungs- / Überwachungsdatenverkehr usw.), sollte die einfache 802.3x-Flusskontrolle verwendet werden nicht verwendet werden, da es die gesamten Ports blockiert und anderer Nicht-iSCSI-Verkehr ebenfalls blockiert wird. Die Leistungssteigerungen der Ethernet-Flusssteuerung sind oft minimal oder nicht existent, ein realistisches Benchmarking sollte für die gesamten OS / NIC / Switch / Storage-Kombinationen durchgeführt werden, die in Betracht gezogen werden, um festzustellen, ob tatsächlich Nutzen besteht.

Die eigentliche Frage aus der Perspektive eines Servers lautet: Stopfe ich den Netzwerkverkehr, wenn meine Netzwerkkarte oder mein Netzwerk überläuft, oder fange ich an, Pakete zu löschen und erneut zu übertragen? Wenn Flow Control eingeschaltet wird, können Puffer die NIC auf der Empfängerseite geleert werden, jedoch werden die Puffer auf der Senderseite belastet (normalerweise puffert ein Netzwerkgerät hier).

TCP-Überlastungskontrolle (RFC 5681)

TOE (TCP / IP Offload-Engines)

iSOE (iSCSI-Offload-Engines)

LSO (TCP-Segmentierung / Large Send Offload)

Netzwerkisolation

Eine gängige Best Practice für iSCSI besteht darin, sowohl Initiatoren als auch Ziele von anderem Nichtspeicher-Netzwerkverkehr zu isolieren. Dies bietet Vorteile in Bezug auf Sicherheit, Verwaltbarkeit und in vielen Fällen die Bereitstellung von Ressourcen für den Speicherverkehr. Diese Isolation kann verschiedene Formen annehmen:

1.) Physische Isolation - alle Initiatoren haben einen oder mehrere NICs, die ausschließlich für den iSCSI-Verkehr bestimmt sind. Dies kann - oder auch nicht - eine dedizierte Netzwerkhardware implizieren, abhängig von den Fähigkeiten der betreffenden Hardware und den spezifischen Sicherheits- und Betriebsanforderungen innerhalb einer gegebenen Organisation.

2.) Logische Isolation - Meistens in schnelleren (d. H. 10GE) Netzwerken gefunden, haben Initiatoren VLAN-Tagging (siehe 802.1q), das konfiguriert ist, um Speicher- und Nicht-Speicher-Verkehr zu trennen.

In vielen Organisationen werden zusätzliche Mechanismen eingesetzt, um sicherzustellen, dass sich iSCSI-Initiatoren über diese dedizierten Netzwerke nicht gegenseitig erreichen können und dass diese dedizierten Netzwerke außerdem nicht über Standarddatennetzwerke erreichbar sind. Maßnahmen, die dazu verwendet werden, umfassen Standard-Zugriffskontrolllisten, private VLANs und Firewalls.

Etwas über Backplane und Switching Fabric hier auch.

QoS (802.1p)

vLAN (802.1q)

STP (RSTP, MSTP usw.)

Verkehrsunterdrückung (Sturmkontrolle, Multi- / Broadcast-Kontrolle)

Sicherheit

Authentifizierung und Sicherheit

KERL

IPSec

LUN-Mapping (Best Practices)


3



Gibt es Tunable für RFC 5681 auf jedem Gerät? Wenn nicht, sollten wir diesen Abschnitt löschen. - Nils
Würden Sie hinzufügen, dass Jumbo-Frames selten für die iSCSI-Replikation unterstützt werden (da alle zwischengeschalteten WAN-Geräte diese unterstützen müssten)? - Jeremy
@ Jeremy sicher - schreibe es oben. Selbst im LAN - wenn Sie unterwegs ein Gerät vergessen (oder wenn Ihr ausgelagertes Netzwerkteam etwas falsch konfiguriert), unterstützt der Pfad MTU keine Jumbo Frames. - Nils
Stimme mit Jeremy überein. Nils, wenn TCP-CC verfügbar ist und es mögliche Vorteile und Konsequenzen hat, sollten diese zumindest skizziert werden. - Chris S


Einige Überlegungen und Nachforschungen sollten Sie treffen subjektiv in Bezug auf:

1) Multipathing - Ihre SAN-Lösung und Ihr Betriebssystem, sei es Hypervisor- oder Bare-Metal-Betriebssystem, benötigen möglicherweise herstellerspezifische Software, damit dies ordnungsgemäß funktioniert.

2) Initiatoren - Sie müssen herausfinden, ob der Software-Initiator auf der Grundlage der Anforderungen ausreichend Leistung bietet. Viele NICs verfügen über iSCSI-Offloading-Funktionen, die den Durchsatz erheblich verbessern können, aber es ist bekannt, dass bestimmte ältere Hypervisors mit ihnen ziemlich verstimmt sind. Die reiferen Angebote (ESXi 4.1+) scheinen gut zu sein.

3) Sicherheit / Berechtigungen - Stellen Sie sicher, dass Sie vollständig überprüfen, welche Initiatoren Zugriff auf welche LUNs benötigen ... Sie werden einen schlechten Tag haben, wenn ein Administrator auf einer Ihrer Windows-Maschinen eine "initialize disk" auf einem Datenträger startet wird von einem anderen Server als VMware-Datenspeicher verwendet.


1



Im Hinblick auf Multi-Pathing - eigentlich kann man dies auch über verschiedene Netzwerke erreichen -, was mit IP etwas trickreicher ist als mit FC-SAN (wo das Konzept von SAN A / B mit verschiedenen Hardware-Fabrics durchaus üblich ist). - Nils
Meine Erfahrung mit Multipathing war in erster Linie äquallogisch, in welchem ​​Fall der Client normalerweise eine Erkennungs-IP-Adresse (die Gruppen-IP) erhält und dann mit dieser Adresse für die tatsächlichen Zieladressen verhandelt. Ich nehme an, das könnte mit verschiedenen Netzwerken gemacht werden und der Client würde entweder einen Pfad dazu haben oder nicht, aber die Entdeckung würde untergehen, wenn das Subnetz, auf dem sich die Gruppen-IP befand, derjenige war, der gestorben ist. - SpacemanSpiff
Ich versuchte (natives) Multipathing auf SLES11 auf verschiedenen VLANs. Der schwierige Teil bestand darin, die Multipfad-Konfiguration zu ändern, sodass die iSCSI-Ziele, die an den gleichen physischen Speicher gingen, als das gleiche Gerät angesehen wurden. - Nils