Data Center Quantized Congestion Notification (DCQCN)
Remote Direct Memory Access (RDMA) bietet einen hohen Durchsatz und extrem niedrige Latenz bei geringem CPU-Overhead, wie sie für moderne Datencenter-Anwendungen erforderlich sind. RDMA wird mit dem RoCEv2-Protokoll bereitgestellt, das auf prioritätsbasierter Datenstromsteuerung (PFC) basiert, um ein verlustfreies 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 ECN und PFC, um die Einschränkungen von PFC zu überwinden und ein verlustfreies End-to-End-Ethernet zu unterstützen.
DCQCN verstehen
Die prioritätsbasierte Datenstromsteuerung (PFC) ist eine verlustfreie Transport- und Überlastungsentlastungsfunktion, die eine granulare Datenstromsteuerung auf Link-Ebene für jeden IEEE 802.1p-Codepunkt (Priorität) auf einer Vollduplex-Ethernet-Verbindung bietet. Wenn sich der Empfangspuffer auf einer Switch-Schnittstelle bis zu einem Schwellenwert füllt, überträgt der Switch einen Pausen-Frame an den Sender (den verbundenen Peer), um den Absender vorübergehend daran zu hindern, weitere Frames zu übertragen. Der Pufferschwellenwert muss niedrig genug sein, damit der Sender Zeit hat, die Übertragung von Frames zu beenden, und der Empfänger die bereits auf der Leitung befindlichen Frames akzeptieren kann, bevor der Puffer überläuft. Der Switch legt automatisch Schwellenwerte für den Warteschlangenpuffer fest, um Frame-Verlust zu verhindern.
Wenn eine Überlastung das Anhalten einer Priorität für eine Verbindung erzwingt, senden alle anderen Prioritäten für die Verbindung weiterhin Frames. Nur Frames der pausierten Priorität werden nicht übertragen. Wenn der Empfangspuffer unter einen anderen Schwellenwert fällt, sendet der Switch eine Nachricht, die den Fluss erneut startet. Je nachdem, wie viel Datenverkehr auf einer Verbindung eingeschaltet ist oder welcher Priorität zugewiesen ist, kann das Anhalten des Datenverkehrs jedoch zu einer Überlastung des Eingangsports führen und sich über das Netzwerk ausbreiten.
Explicit Congestion Notification (ECN) ermöglicht eine End-to-End-Überlastungsbenachrichtigung zwischen zwei Endgeräten 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 dass die Pakete verworfen werden. RFC 3168, The Addition of Explicit Congestion Notification (ECN) to IP, definiert ECN.
DCQCN ist eine Kombination aus ECN und PFC zur Unterstützung von verlustfreiem End-to-End-Ethernet. ECN hilft, die Einschränkungen von PFC zu überwinden und verlustfreies Ethernet zu erreichen. Die Idee hinter DCQCN besteht darin, ECN die Datenstromsteuerung zu ermöglichen, indem die Übertragungsrate zu Beginn der Überlastung verringert wird, wodurch die Zeit minimiert wird, in der PFC ausgelöst wird, wodurch der Fluss vollständig gestoppt wird.
Der korrekte Betrieb von DCQCN erfordert das Abwägen zweier widersprüchlicher Anforderungen:
Sicherstellen, dass PFC nicht zu früh ausgelöst wird, d. h. bevor ECN die Möglichkeit erhält, Überlastungsfeedback zu senden, um den Fluss zu verlangsamen.
Sicherstellen, dass PFC nicht zu spät ausgelöst wird und dadurch Paketverluste aufgrund eines Pufferüberlaufs verursacht.
Um die oben genannten Schlüsselanforderungen zu erfüllen, berechnen und konfigurieren Sie die folgenden drei wichtigen Parameter richtig:
Headroom Buffers– Eine PAUSE-Nachricht, die an ein vorgeschaltetes Gerät gesendet wird, braucht einige Zeit, um einzutreffen und wirksam zu werden. Um Paketverluste zu vermeiden, muss der PAUSE-Absender genügend Puffer reservieren, um alle Pakete zu verarbeiten, die er während dieser Zeit empfangen könnte. Dazu gehören Pakete, die ausgeführt wurden, als die PAUSE gesendet wurde, sowie die Pakete, die vom Upstreamgerät gesendet wurden, während es die PAUSE-Nachricht verarbeitet. Sie weisen Headroom-Puffer pro Port und Priorität aus dem global freigegebenen Puffer zu. Sie können die Menge der Headroom-Puffer, die jedem Port und jeder Priorität zugewiesen werden, mithilfe der Parameter MRU und Kabellänge im CNP steuern. Wenn Sie auch nach dem Auslösen von PFC geringfügige Eingangsverluste feststellen, können Sie diese Verluste beseitigen, indem Sie die Headroom-Puffer für diese Kombination aus Port und Priorität erhöhen.
PFC Threshold– Dies ist eine Eingangsschwelle. 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
PG MINSchwellenwert und dem SchwellenwertPG shared. SobaldPG MINSchwellenwertePG sharedfür eine Prioritätsgruppe erreicht sind, wird PFC für diese entsprechende Priorität generiert. Der Switch sendet eine RESUME-Nachricht, wenn die Warteschlange unter die PFC-Schwellenwerte fällt.ECN Threshold– Dies ist ein Ausgangsschwellenwert. Der ECN-Schwellenwert entspricht dem WRED-Startfüllstandswert. 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üllstands erhöht die ECN-Markierungswahrscheinlichkeit. Bei der Standardeinstellung für gemeinsam genutzten Puffer sorgt beispielsweise ein WRED-Startfüllstand von 10 Prozent dafür, dass verlustfreie Pakete ECN-markiert werden. Bei einem höheren Füllstand ist die Wahrscheinlichkeit einer ECN-Markierung jedoch geringer. Bei zwei Eingangsports mit verlustfreiem Datenverkehr zum selben Ausgangsport und einem WRED-Startfüllstand von 50 Prozent erfolgt beispielsweise 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.