Vor kurzem habe ich über die Anforderungen an die niedrigste Latenz für ein Leaf / Spine-Netzwerk (oder CLOS) zum Hosten einer OpenStack-Plattform diskutiert.
Systemarchitekten streben nach einer möglichst geringen RTT für ihre Transaktionen (Blockspeicher und zukünftige RDMA-Szenarien), und die Behauptung lautete, dass 100G / 25G im Vergleich zu 40G / 10G erheblich weniger Serialisierungsverzögerungen bieten. Allen Beteiligten ist bewusst, dass das End-to-End-Spiel (was RTT schaden oder helfen kann) viel mehr als nur Verzögerungen bei der NIC- und Switch-Port-Serialisierung aufweist. Dennoch taucht das Thema Serialisierungsverzögerungen immer wieder auf, da diese nur schwer zu optimieren sind, ohne eine möglicherweise sehr kostspielige Technologielücke zu überspringen.
Die Serialisierungszeit ist etwas vereinfacht (ohne die Codierungsschemata) und kann als Anzahl der Bits / Bitrate berechnet werden , sodass wir bei ~ 1,2 μs für 10 G beginnen können (siehe auch wiki.geant.org ).
For a 1518 byte frame with 12'144bits,
at 10G (assuming 10*10^9 bits/s), this will give us ~1.2μs
at 25G (assuming 25*10^9 bits/s), this would be reduced to ~0.48μs
at 40G (assuming 40*10^9 bits/s), one might expect to see ~0.3μs
at 100G (assuming 100*10^9 bits/s), one might expect to see ~0.12μs
Nun zum interessanten Teil. Auf der physischen Schicht werden 40 G üblicherweise als 4 Spuren von 10 G und 100 G als 4 Spuren von 25 G ausgeführt. Abhängig von der QSFP + - oder QSFP28-Variante wird dies manchmal mit 4 Faserstrangpaaren durchgeführt, manchmal wird es durch Lambdas auf ein einzelnes Faserpaar aufgeteilt, wobei das QSFP-Modul selbst xWDM ausführt. Ich weiß, dass es Spezifikationen für Fahrspuren mit 1x 40G oder 2x 50G oder sogar 1x 100G gibt, aber lassen wir diese für den Moment beiseite.
Um Serialisierungsverzögerungen im Kontext von mehrspurigen 40G- oder 100G-NICs abzuschätzen, muss man wissen, wie 100G- und 40G-NICs und Switch-Ports die Bits sozusagen "auf die (Gruppe von) Drähte (n) verteilen". Was wird hier gemacht?
Ist es ein bisschen wie Etherchannel / LAG? Die NIC / Switchports senden Frames eines "Flusses" (gelesen: dasselbe Hashing-Ergebnis eines beliebigen Hashing-Algorithmus, der in welchem Bereich des Frames verwendet wird) über einen bestimmten Kanal. In diesem Fall würden wir Serialisierungsverzögerungen wie 10G bzw. 25G erwarten. Aber im Grunde genommen würde eine 40G-Verbindung nur eine LAG mit 4 × 10G ergeben, wodurch der Durchsatz bei einem einzigen Durchsatz auf 1 × 10G reduziert würde.
Ist es so etwas wie ein bisschen Round-Robin? Jedes Bit ist Round-Robin über die 4 (Sub-) Kanäle verteilt. Dies kann aufgrund der Parallelisierung zu geringeren Verzögerungen bei der Serialisierung führen, wirft jedoch einige Fragen zur Lieferung in der Bestellung auf.
Ist es so etwas wie Frame-weise Round-Robin? Ganze Ethernet-Frames (oder andere entsprechend große Bit-Blöcke) werden über die 4 Kanäle gesendet, verteilt auf Round-Robin-Art.
Ist es etwas ganz anderes, wie ...
Vielen Dank für Ihre Kommentare und Hinweise.