Quantisierte Überlastungsbenachrichtigung im Datencenter (DCQCN)
Remote Direct Memory Access (RDMA) bietet einen hohen Durchsatz und extrem niedrige Latenz bei geringem CPU-Overhead, was für moderne Datencenter-Anwendungen erforderlich ist. RDMA wird mithilfe des RoCEv2-Protokolls bereitgestellt, das auf prioritätsbasierter Flusskontrolle (PFC) beruht, um ein störungsfreies Netzwerk zu ermöglichen. Data Center Quantized Congestion Notification (DCQCN) ist ein End-to-End-Überlastungskontrollschema für RoCEv2. Junos unterstützt DCQCN durch die Kombination von Explicit Congestion Notification (ECN) und PFC, um die Einschränkungen von PFC zu überwinden und verlustfreies End-to-End-Ethernet zu unterstützen.
Grundlegendes zu DCQCN
Priority-based Flow Control (PFC) ist eine verlustfreie Transport- und Überlastungsentlastungsfunktion, die eine granulare Flusssteuerung auf Link-Ebene für jeden IEEE 802.1p-Codepunkt (Priorität) auf einer Vollduplex-Ethernet-Verbindung bietet. Wenn der Empfangspuffer auf einer Switch-Schnittstelle bis zu einem bestimmten Schwellenwert voll ist, überträgt der Switch einen Pause-Frame an den Sender (den verbundenen Peer), um den Sender vorübergehend daran zu hindern, weitere Frames zu senden. Der Pufferschwellenwert muss niedrig genug sein, damit der Sender Zeit hat, die Übertragung von Frames zu beenden, und der Empfänger die Frames akzeptieren kann, die sich bereits auf der Leitung befinden, bevor der Puffer überläuft. Der Switch legt automatisch Warteschlangenpufferschwellenwerte fest, um Frame-Verlust zu vermeiden.
Wenn eine Überlastung eine Priorität für einen Link zum Anhalten zwingt, senden alle anderen Prioritäten auf dem Link weiterhin Frames. Nur Frames der pausierten Priorität werden nicht übertragen. Wenn der Empfangspuffer unter einen anderen Schwellenwert geleert wird, sendet der Switch eine Nachricht, die den Fluss erneut startet. Abhängig von der Menge des Datenverkehrs auf einer Verbindung oder der Priorität zugewiesen ist, kann das Anhalten des Datenverkehrs jedoch zu einer Überlastung der Eingangsports führen und eine Überlastung im gesamten Netzwerk ausbreiten.
Explicit Congestion Notification (ECN) ermöglicht eine End-to-End-Überlastungsbenachrichtigung zwischen zwei Endpunkten in TCP/IP-basierten Netzwerken. Bei den beiden Endpunkten handelt es sich um einen ECN-fähigen Sender und einen ECN-fähigen Empfänger. Sie müssen ECN auf beiden Endpunkten und auf allen Zwischengeräten zwischen den Endpunkten aktivieren, damit ECN ordnungsgemäß funktioniert. Jedes Gerät im Übertragungspfad, das ECN nicht unterstützt, unterbricht die End-to-End-ECN-Funktionalität.
ECN benachrichtigt Netzwerke über Überlastungen mit dem Ziel, Paketverluste und -verzögerungen zu reduzieren, indem das sendende Gerät die Übertragungsrate verringert, bis die Überlastung behoben ist, ohne Pakete zu verwerfen. RFC 3168, The Addition of Explicit Congestion Notification (ECN) to IP, definiert ECN.
Data Center Quantized Congestion Notification (DCQCN) ist eine Kombination aus ECN und PFC zur Unterstützung von verlustfreiem End-to-End-Ethernet. ECN hilft dabei, die Einschränkungen von PFC zu überwinden und verlustfreies Ethernet zu erreichen. Die Idee hinter DCQCN besteht darin, ECN die Möglichkeit zu geben, die Durchflusskontrolle durchzuführen, indem die Übertragungsrate verringert wird, wenn eine Überlastung beginnt, wodurch die Zeit minimiert wird, in der PFC ausgelöst wird, wodurch der Fluss vollständig gestoppt wird.
Für den ordnungsgemäßen Betrieb von DCQCN müssen zwei widersprüchliche Anforderungen in Einklang gebracht werden:
Sicherstellen, dass PFC nicht zu früh ausgelöst wird, d. h. bevor ECN die Möglichkeit hat, Überlastungsfeedback zu senden, um den Fluss zu verlangsamen.
Dadurch wird sichergestellt, dass PFC nicht zu spät ausgelöst wird, was zu Paketverlusten aufgrund eines Pufferüberlaufs führt.
Es gibt drei wichtige Parameter, die Sie richtig berechnen und konfigurieren müssen, um die oben genannten Hauptanforderungen zu erfüllen:
Headroom Buffers—Es dauert einige Zeit, bis eine PAUSE-Nachricht, die an ein Upstream-Gerät gesendet wird, ankommt und wirksam wird. Um Paketverluste zu vermeiden, muss der PAUSE-Absender genügend Puffer reservieren, um alle Pakete zu verarbeiten, die er während dieser Zeit empfängt. Dazu gehören Pakete, die sich zum Zeitpunkt des Sendens der PAUSE im Flug befanden, und die Pakete, die vom Upstreamgerät gesendet wurden, während es die PAUSE-Nachricht verarbeitete. Sie weisen Headroom-Puffer pro Port und Priorität aus dem global gemeinsam genutzten Puffer zu. Sie können die Menge der Headroom-Puffer, die für jeden Port und jede Priorität zugewiesen sind, mithilfe der Parameter MRU und Kabellänge im Überlastungsbenachrichtigungsprofil steuern. Wenn Sie auch nach dem Auslösen von PFC geringfügige Einbrüche feststellen, können Sie diese Einbrüche beseitigen, indem Sie die Headroom-Puffer für diese Port- und Prioritätskombination erhöhen.
PFC Threshold—Dies ist ein Eingangsschwellenwert. Dies ist die maximale Größe, auf die eine Eingangsprioritätsgruppe anwachsen kann, bevor eine PAUSE-Nachricht an das Upstreamgerät gesendet wird. Jede PFC-Priorität erhält an jedem Eingangsport eine eigene Prioritätsgruppe. PFC-Schwellenwerte werden pro Prioritätsgruppe an jedem Eingangsport festgelegt. Der PFC-Schwellenwert besteht aus zwei Komponenten: dem Schwellenwert und dem
PG MIN
PG shared
Schwellenwert.PG shared
SobaldPG MIN
Schwellenwerte für eine Prioritätsgruppe erreicht sind, wird PFC für diese entsprechende Priorität generiert. Der Switch sendet eine RESUME-Nachricht, wenn die Warteschlange die PFC-Schwellenwerte unterschreitet.ECN Threshold—Dies ist ein Ausgangsschwellenwert. Der ECN-Schwellenwert entspricht dem WRED-Wert für Start-Fill-Level. Sobald eine Ausgangswarteschlange diesen Schwellenwert überschreitet, beginnt der Switch mit der ECN-Markierung für Pakete in dieser Warteschlange. Damit DCQCN wirksam ist, muss dieser Schwellenwert niedriger sein als der Eingangs-PFC-Schwellenwert, um sicherzustellen, dass PFC nicht ausgelöst wird, bevor der Switch die Möglichkeit hat, Pakete mit ECN zu markieren. Die Einstellung eines sehr niedrigen WRED-Füllstandes erhöht die ECN-Markierungswahrscheinlichkeit. Bei der Standardeinstellung für gemeinsam genutzten Puffer stellt beispielsweise ein WRED-Start-Füll-Level von 10 Prozent sicher, dass verlustfreie Pakete ECN-markiert sind. Bei einem höheren Füllstand ist die Wahrscheinlichkeit einer ECN-Kennzeichnung jedoch geringer. Beispielsweise erfolgt bei zwei Eingangsports mit verlustfreiem Datenverkehr zum gleichen Ausgangsport und einem WRED-Start-Füll-Füllstand von 50 Prozent keine ECN-Markierung, da die Eingangs-PFC-Schwellenwerte zuerst erreicht werden.
Konfigurieren von DCQCN (Junos OS)
Um DCQCN zu aktivieren, konfigurieren Sie sowohl ECN als auch PFC für einen Datenverkehrsfluss.
Konfigurieren von DCQCN (Junos OS Evolved)
Um DCQCN zu aktivieren, konfigurieren Sie sowohl ECN als auch PFC für einen Datenverkehrsfluss.