Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

データセンターの量子化輻輳通知(DCQCN)

リモート ダイレクト メモリ アクセス (RDMA) は、最新のデータセンター アプリケーションに必要な高スループットと超低待機時間を実現し、CPU オーバーヘッドを低く抑えます。RDMAは、プライオリティベースのフロー制御(PFC)に依存するRoCEv2プロトコルを使用して導入され、ドロップフリーネットワークを実現します。データセンターの量子化輻輳通知(DCQCN)は、RoCEv2向けのエンドツーエンドの輻輳制御スキームです。Junosは、明示的輻輳通知(ECN)とPFCを組み合わせることで、エンドツーエンドの損失のないイーサネットをサポートするPFCの制限を克服することで、DCQCNをサポートしています。

DCQCN について

プライオリティベースのフロー制御(PFC)は、全二重イーサネットリンク上の各IEEE 802.1pコードポイント(プライオリティ)に対してきめ細かいリンクレベルのフロー制御を提供することで機能する、ロスレストランスポートおよび輻輳緩和機能です。スイッチ インターフェイスの受信バッファーがしきい値に達すると、スイッチは送信側(接続されたピア)に一時停止フレームを送信し、送信側によるそれ以上のフレームの送信を一時的に停止します。バッファしきい値は、送信側がフレームの送信を停止する時間を確保し、バッファがオーバーフローする前に受信側がワイヤ上にすでに存在するフレームを受け入れることができるように、十分に低くする必要があります。スイッチは、フレーム損失を防ぐために、キュー バッファのしきい値を自動的に設定します。

輻輳によってリンク上の 1 つの優先度が強制的に一時停止されると、リンク上の他のすべての優先度はフレームを送信し続けます。一時停止された優先度のフレームのみ送信されません。受信バッファが別のしきい値を下回ると、スイッチはメッセージを送信し、フローを再開します。ただし、リンク上のトラフィック量やプライオリティに割り当てられているトラフィック量によっては、トラフィックを一時停止すると、イングレスポートが混雑し、ネットワーク全体に輻輳が広がる可能性があります。

明示的輻輳通知 (ECN) を使用すると、TCP/IP ベースのネットワーク上の 2 つのエンドポイント間でエンドツーエンドの輻輳通知を行うことができます。2 つのエンドポイントは、ECN 対応の送信側と ECN 対応の受信側です。ECN が正しく機能するには、両方のエンドポイントとエンドポイント間のすべての中間デバイスで ECN を有効にする必要があります。ECNをサポートしていない伝送パス内のデバイスは、エンドツーエンドのECN機能を破壊します。

ECNは、パケットを落とさずに、送信デバイスに輻輳が解消されるまで伝送速度を下げさせることで、パケットロスと遅延を減らすことを目的として、ネットワークに輻輳を通知します。RFC 3168 , The Add of Explicit Congestion Notification (ECN) to IP は、ECN を定義しています。

データセンターの量子化輻輳通知(DCQCN)は、ECNとPFCを組み合わせたもので、エンドツーエンドのロスレスイーサネットをサポートします。ECNは、PFCの制限を克服してロスレスイーサネットを実現するのに役立ちます。DCQCNの背後にある考え方は、輻輳が始まったときに伝送速度を下げることによってECNがフロー制御を行えるようにすることで、PFCがトリガーされてフローが完全に停止する時間を最小限に抑えることです。

DCQCN を正しく操作するには、次の 2 つの相反する要件のバランスを取る必要があります。

  1. PFCが早期にトリガーされていないことを確認すること、つまり、ECNに輻輳フィードバックを送信してフローを遅くする機会を与える前に。

  2. PFC のトリガーが遅すぎず、バッファ オーバーフローによるパケット損失が発生しないようにします。

上記の主要な要件を達成するために適切に計算および構成する必要がある3つの重要なパラメーターがあります。

  1. Headroom Buffers- アップストリーム デバイスに送信された PAUSE メッセージは、到着して有効になるまでに時間がかかります。パケットドロップを回避するには、PAUSE 送信者は、この間に受信する可能性のあるパケットを処理するのに十分なバッファーを予約する必要があります。これには、PAUSE が送信されたときに転送中だったパケットと、アップストリーム デバイスが PAUSE メッセージの処理中に送信したパケットが含まれます。グローバル共有バッファーから、ポートごと、優先順位ごとにヘッドルーム バッファーを割り当てます。輻輳通知プロファイルのMRUおよびケーブル長パラメータを使用して、各ポートおよびプライオリティに割り当てられるヘッドルームバッファの量を制御できます。PFCがトリガーされた後でもマイナーなイングレスドロップが見られる場合は、そのポートとプライオリティの組み合わせのヘッドルームバッファを増やすことで、それらのドロップを排除できます。

  2. PFC Threshold- これはイングレスしきい値です。これは、PAUSE メッセージがアップストリーム デバイスに送信されるまでにイングレス優先度グループを拡大できる最大サイズです。各PFCプライオリティは、各イングレスポートで独自のプライオリティグループを取得します。PFCしきい値は、各イングレスポートでプライオリティグループごとに設定されます。PFC しきい値には、 PG MIN しきい値と PG shared しきい値の 2 つのコンポーネントがあります。優先度グループの PG MIN および PG shared しきい値に達すると、対応する優先度に対して PFC が生成されます。キューが PFC しきい値を下回ると、スイッチは RESUME メッセージを送信します。

  3. ECN Threshold- これはエグレスしきい値です。ECN しきい値は、WRED 開始フィル レベルの値と同じです。エグレス キューがこのしきい値を超えると、スイッチはそのキュー上のパケットに対して ECN マーキングを開始します。DCQCN を有効にするには、このしきい値をイングレス PFC しきい値よりも低くして、スイッチが ECN でパケットをマークする前に PFC がトリガーされないようにする必要があります。WRED フィル レベルを非常に低く設定すると、ECN マーキングの確率が高くなります。たとえば、デフォルトの共有バッファ設定では、WRED 開始フィル レベルが 10 % の場合、ロスレス パケットが ECN マーキングされます。ただし、充填レベルが高いほど、ECNマーキングの可能性は低くなります。たとえば、2 つのイングレス ポートに同じエグレス ポートへのロスレス トラフィックがあり、WRED 開始フィル レベルが 50 % の場合、イングレス PFC しきい値が最初に満たされるため、ECN マーキングは行われません。

DCQCN(Junos OS)の設定

DCQCN を有効にするには、トラフィック フローに ECN と PFC の両方を設定します。

  1. ROCEv2トラフィックと輻輳通知パケット(CNP)の分類子を設定します。例えば:
  2. ロスレスフローを実現するために、エグレスポートでECNを設定します。例えば:
  3. 同じロスレスフロー用にイングレスポートでPFCを設定します。例えば:
  4. 共有バッファーを構成します。例えば:
    手記:

    Junos OS が動作するプラットフォームで設定をコミットするには、以下のルールに従う必要があります。

    • 3 つすべてを構成するか、イングレス パーティションを構成しない必要があります。

    • 3つすべてを設定するか、エグレスパーティションを設定しないか、設定しない必要があります。

    • すべてのパーティションの入力共有バッファー構成の合計は 100% である必要があります。

    • すべてのパーティションのエグレス共有バッファー構成の合計は 100% である必要があります。

  5. 転送クラスを設定し、キューを割り当てます。例えば:
  6. 設定を確認します。例えば:
  7. 設定をコミットします。

DCQCN(Junos OS Evolved)の設定

DCQCN を有効にするには、トラフィック フローに ECN と PFC の両方を設定します。

  1. ROCEv2トラフィックと輻輳通知パケット(CNP)の分類子を設定します。例えば:
  2. ロスレスフローを実現するために、エグレスポートでECNを設定します。例えば:
  3. 同じロスレスフロー用にイングレスポートでPFCを設定します。例えば:
  4. 共有バッファーを構成します。例えば:
    手記:

    Junos OS Evolvedが稼働するプラットフォームで設定をコミットするには、以下のルールに従う必要があります。

    • 3 つのイングレス パーティションをすべて構成する必要があります。

    • すべてのパーティションの入力共有バッファー構成の合計は 100% である必要があります。

    • 非損失バッファー パーティションと損失なしバッファー パーティションでは、イングレスとエグレスのバッファー パーティションの割合を等しくする必要があります。

    • Junos OS Evolvedを実行するQFX5000スイッチには、ハードウェアの制限により、マルチキャストトラフィック専用のサービスプールがありません。そのため、マルチキャストトラフィックでは損失の多いサービスプール共有バッファが使用されます。

    ロスレスイングレスバッファパーティションの dynamic-threshold の設定はオプションです。ECN は、ロスレス キューのしきい値の計算にこのオプションを使用します。このオプションを構成しない場合、 dynamic-threshold は既定値の 7 を使用します。

  5. 転送クラスを設定し、キューを割り当てます。例えば:
  6. 設定を確認します。例えば:
  7. 設定をコミットします。