RoCE: RDMA/RoCE Solutions

便利リンク集。ここから色々なリンクに飛べる。

ROCE: ROCE CONFIGURATION FOR CISCO SWITCHES

1行1行ちゃんと読むことを推奨。最小かつ凝縮されている。キーワードレベルまでちゃんと追うこと。(例えば、RED with ECNが使われている、など。)

ROCE: NETWORK CONSIDERATIONS FOR GLOBAL PAUSE, PFC AND QOS WITH MELLANOX SWITCHES AND ADAPTERS

PFCではないPAUSEフレームは802.3xで定義されているflow controlの仕組みである。受信側が溢れそうな時に送信側に対して一定時間待機するようなPAUSEフレームを創出し、送信側は一定時間送信を止める。 これは幾つのかの欠点ある。最も致命的なのはあらゆるQoSのパケットをPAUSEすることである。つまり、異なるQoS制御、異なる要求のフレームが含まれても全てを止めてしまうことだ。特に複数のスイッチが存在する場合、その輻輳に関係のない通信が巻き込まれてしまう可能性もある。(訳註:ここは厳密な具体例がわからない)

IEEE 802.1Qbb PFCはこれを8クラス毎に拡張したものである。VLAN タグ(IEEE 802.1p)内のビットを使い、対象クラスに向けてPAUSEをする。 ここで注意すべきこととして、PFCとGlobalPAUSEは同時にEnableすることはできない。 PFCとGlobal PAUSEは共存可能と言った。しかし、同時に使われるのは避けるべきだ。なぜならグローバルのポーズは全てを止めてしまうからだ。

QoSについて述べる。ネットワークはQoSがない場合、すべてのフレームの優先度を区別せず、1つのバッファのみですべてのトラフィックが管理される。QoSを用いるとフレームは区別できる。PFCを有効にすべきなのはRoCEを通しているQoSのTCである。 ここで、Weighted Round RobinはETSと言える。なぜならトラフィッククラス毎の重みに基づいたラウンドロビンがなされるからである。

ROCE: INTRODUCTION TO RESILIENT ROCE - FAQ

ConnectX-4以降を推奨される。(なぜ?)

Resilient RoCEはフローコントロール、つまり、PFCが有効でないネットワーク上でのROCEトラフィックを流すものである。 ネットワーク上ではECNがMUSTである。PFCが有効であることが望ましい(SHOULD)がMUSTではない。ECNのみが用いられる場合、適切にPFCを有効にした場合と異なりロスが発生しうる。

ROCE: UNDERSTANDING ROCEV2 CONGESTION MANAGEMENT

ネットワークの輻輳はスイッチが多ポートであり、Many-Oneの通信が発生する限り防げないものである。そこでスイッチにはバッファが入っている。ロスレスのネットワークとは、バッファが溢れないようにフローを制御する仕組みそのものである。しかし、輻輳制御とはうまく行わないと逆に輻輳を広げることに注意しないとならない。

ここで図を見る。1つのシナリオでは、既に100%を受信しているポートGがあり、新規に他のスイッチのクライアントがG宛のトラフィックを吐きたいとする。この時スイッチ間でフロー制御を送りF側のスイッチにバックプレッシャーをかける。この結果、スイッチ内の処理が処理され次第、Fが処理される。 一方で、このケースのままそのクラスを使う(注意:ここではVoQは考慮されていない)トラフィックがそのスイッチを通過しようとした場合、F->Gでバックプレッシャーを受けているクラスではトラフィックが溢れてしまう。 このような問題を解決するためにECNが使われている。なぜなら、QoSだけではなく輻輳制御が必要とされている。AからBのポートは適切にECNによって帯域を下げ、他のトラフィックが通過しようとすればさらにECNで帯域を下げる。これによってPFC発生なくE2Eでの帯域制御が行われる。