Lossless Ethernet für Storage: DCB, PFC, ECN
Ethernet verwirft Frames bei Überlast; Storage-Protokolle, die für Fibre Channel oder RDMA gebaut sind, gehen davon aus, dass nie etwas verworfen wird. Data Center Bridging (DCB) schließt diese Lücke mit Flusskontrolle pro Priorität und Bandbreitenzuteilung, und RoCE setzt Überlastsignalisierung oben drauf. Das Ergebnis ist nur so verlustfrei wie sein schwächster Link: Eine grenzwertige Optik, die einen von einer Million Frames verwirft, ist ein Storage-Vorfall. Diese Seite erklärt die Mechanismen und übersetzt sie in Anforderungen an die physikalische Schicht.
Der DCB-Werkzeugkasten
| Standard | Name | Was es tut |
|---|---|---|
| IEEE 802.1Qbb | PFC — prioritätsbasierte Flusskontrolle | Pause-Frames je Verkehrsklasse (0–7): Ein überlasteter Empfänger stoppt eine Klasse, ohne den Port zu stoppen |
| IEEE 802.1Qaz | ETS — erweiterte Übertragungsauswahl | garantierte Bandbreitenanteile je Klasse (z. B. 50 % Storage, 50 % LAN) |
| IEEE 802.1Qaz | DCBX — DCB-Austausch | LLDP-basierte Aushandlung der PFC-/ETS-Einstellungen zwischen Switch und NIC |
| IEEE 802.1Qau | CN — Überlastmeldung | selten im Einsatz |
| RFC 3168 + DCQCN | ECN-Markierung + Ratensteuerung | der Switch markiert Pakete, wenn sich Warteschlangen aufbauen; RoCE-NICs drosseln den Fluss, bevor PFC nötig wird |
Wie RoCE verlustfrei bleibt
- Storage-/RDMA-Verkehr wird über DSCP oder 802.1p mit einer eigenen Priorität markiert (häufig 3 oder 4).
- PFC ist nur für diese Priorität aktiviert, auf jedem Port entlang des Pfads, mit Puffer-Headroom, der für Link-Geschwindigkeit und Kabellänge bemessen ist (Bytes, die gerade unterwegs sind).
- ECN-Schwellwerte markieren Pakete frühzeitig; NICs führen DCQCN aus, um ihre Rate zu senken, sodass PFC nur als letztes Mittel greift.
- ETS garantiert der Storage-Klasse ihre Bandbreite auch unter LAN-Last.
- DCBX hält NIC- und Switch-Einstellungen konsistent; Fehlanpassungen brechen die Verlustfreiheit lautlos.
FC und InfiniBand erreichen dasselbe standardmäßig mit Credits auf jedem Link; bei Ethernet muss es konfiguriert, überprüft und überwacht werden (FC-Protokollgrundlagen, InfiniBand-Transport).
Was schiefgehen kann
| Problem | Auswirkung | Erkennung |
|---|---|---|
| PFC an einem Hop nicht aktiviert / falsche Priorität | Drops unter Last; RDMA überträgt neu; Latenzspitzen | Pause-Zähler bei null, wo sie es nicht sein sollten; Drops auf der Klasse |
| PFC-Storm | ein blockierter Empfänger pausiert Upstream unbegrenzt; die Überlast breitet sich fabricweit aus | Flut von Pause-Frames; Watchdog-Zähler |
| PFC-Deadlock | zyklische Pufferabhängigkeit in Clos-Fabrics; aller Verkehr auf der Klasse steht still | erfordert Deadlock-Erkennung/Watchdog zum Auflösen |
| Headroom zu klein für lange Kabel/Optik | Drops trotz PFC | Drops bei aktiven Pause-Zählern |
| ECN-Schwellwerte falsch gesetzt | zu früh: Durchsatzverlust; zu spät: PFC flutet | ECN-Markierungszähler, CNP-Zähler auf NICs |
| Physikalische Fehler auf einem Link (CRC, unkorrigierbare FEC) | Frames gehen verloren, die keine Flusskontrolle zurückholen kann | Port-Fehlerzähler, FEC-Zähler — VDM- und FEC-Metriken |
iSCSI ohne DCB
iSCSI läuft über TCP und übersteht Verluste, zahlt aber mit Latenz und Neuübertragungen dafür. Best Practice unabhängig von DCB:
- eigene VLANs/Subnetze je Fabric, zwei Fabrics, MPIO auf den Hosts;
- Jumbo-Frames (MTU 9000) Ende-zu-Ende;
- keine Überbuchung zwischen Initiatoren und Targets; 25G-/100G-Uplinks passend zum Array dimensioniert;
- FEC auf jedem 25G+-Link aktiv; CRC-Zähler bei null;
- optional PFC auf der iSCSI-Klasse, um Mikro-Bursts zu glätten (viele Arrays empfehlen das).
Anforderungen an die physikalische Schicht
| Anforderung | Warum | Praxis |
|---|---|---|
| FEC aktiviert und passend auf jedem 25G+-Link | RoCE verträgt die rohe BER ungeschützter 25G-/50G-Lanes nicht | FEC & Link-Training |
| CRC und unkorrigierbare FEC = 0 | jeder verlorene Frame blockiert eine Warteschlange | bei jedem Anstieg alarmieren |
| Rx-Leistung mit Reserve innerhalb des Fensters | grenzwertige Optik erzeugt bei Temperaturschwankungen Fehlerbursts | Rx-Leistung & Leistungsbudget |
| Konsistente Geschwindigkeit/Duplex/AN | DAC braucht AN + Link-Training an beiden Enden | Kupfer & DAC |
| Kabellänge innerhalb der Headroom-Annahmen | Headroom wird aus den unterwegs befindlichen Bytes berechnet | im Rack DAC bevorzugen, in der Reihe SR/AOC, zwischen Räumen DR/LR |
| Identität, die NIC und Switch akzeptieren | abgelehnte Optik fällt auf keinen Link oder reduzierte Geschwindigkeit zurück | Herstellersperre |
Checkliste für das Monitoring
- Je Port: gesendete/empfangene Pause-Frames je Priorität, ECN-Markierungen, Drops je Klasse, CRC, korrigierte/unkorrigierbare FEC, Link-Flaps.
- Je NIC: gesendete/empfangene CNPs, Neuübertragungen, Out-of-Sequence, Timeouts.
- Je Optik: Trends von Rx-/Tx-Leistung und Temperatur (Monitoring).
- Storage-Tail-Latenzspitzen mit dem Obigen korrelieren — die physikalische Schicht ist häufiger schuld als das Array.
In CodingBox
Eine verlustfreie Fabric besteht aus gewöhnlicher Optik, die lediglich an einem höheren Maßstab gemessen wird. Die Eingangsprüfung auf der Werkbank — Identität, Prüfsummen, Live-DDM gegen typische Werte, gespeicherte Baseline — hält grenzwertige Module aus einer Fabric heraus, in der ein schlechter Link eine Anwendung ihre Latenz-SLA kostet (Check transceiver, DDM).
Wo PFC und ECN unter den übrigen Forwarding-Mechanismen stehen und wie sich Fehler der physikalischen Schicht in ihnen zeigen: Forwarding-Grundlagen.