選択的動的ロードバランシング(DLB)
概要
AI-MLワークロードでは、アプリケーショントラフィックの大部分が、転送にRemote Direct Memory Access(RDMA)over Converged Ethernet version 2(RoCEv2)を使用します。動的ロードバランシング(DLB)は、RoCEv2ネットワークで効率的なロードバランシングを実現し、輻輳を防ぐのに理想的です。ただし、静的ロードバランシング(SLB)は、トラフィックの種類によってはより効果的な場合があります。 選択的 DLB を使用すると、デバイスを通過するすべてのトラフィックに対して DLB と SLB のどちらかを選択する必要がなくなります。グローバル レベルで優先する DLB モードを設定し、デフォルトのタイプのロードバランシングを設定してから、特定の種類のトラフィックに対して DLB を選択的に有効または無効にすることができます。
ロードバランシングを有効にするには、フロー単位またはパケット単位の 2 つの方法があります。フロー単位のロードバランシングは、一度に処理するパケット数が最も多いため、最も広く使用されています。デバイスは、同じ 5 タプルのパケットヘッダーを持つパケットを 1 つのフローとして分類します。デバイスは、フロー内のすべてのパケットに同じロードバランシング処理を与えます。フローベースのロードバランシングは、すべてのリンクをほぼ均等に使用するため、一般的なTCPおよびUDPトラフィックに適しています。ただし、パケット単位のロードバランシングによって一部のパケットが並べ替えられる可能性があり、パフォーマンスに影響を与える可能性があります。
多くのAIクラスターは、誤順序パケットを処理できるスマートネットワークインターフェイスカード(SmartNIC)を介してアプリケーションをネットワークに接続します。パフォーマンスを向上させるには、ネットワーク上でパケットごとのDLBを有効にします。次に、順不同のパケットを処理できるエンドポイントサーバーのみに対して DLB を有効にします。デバイスは、これらのパケットのBTH+ヘッダーにあるRDMAオペレーションコード(オペコード)をリアルタイムで確認します。任意のファイアウォールフィルターの一致条件を使用して、これらのオペコードに基づいてDLBを選択的に有効または無効にできます。他のフローは、SLB とも呼ばれるデフォルトのハッシュベースロードバランシングを引き続き使用します。
選択的DLBは、エレファントフローがデータフロー全体に対して小さすぎるリンクに遭遇した場合にも役立ちます。このシナリオでは、選択的DLBによって、データセンターファブリックにおけるリンクの利用可能な帯域幅の最適な使用量を計算できます。エレファントフローの選択的パケット単位DLBを有効にすると、アルゴリズムはパケットを最初に最高品質のリンクに誘導します。リンク品質が変化すると、アルゴリズムは後続のパケットを次に品質の高いリンクに転送します。
利点
-
大規模なデータフローのネットワーク処理を改善します。
-
パフォーマンスを向上させるため、同じトラフィックストリーム内でパケット単位およびフロー単位のロードバランシングを使用します。
-
ファイアウォールフィルターの一致条件に基づいてロードバランシングをカスタマイズします。
構成
構成の概要
DLB を選択的に有効にするには、デフォルトで DLB を無効にし、特定のフローで DLB を選択的に有効にする方法と、DLB をグローバルに有効にして DLB を選択的に無効にする方法の 2 つがあります。いずれの場合も、最初に パケット単位モードで DLB を構成する必要があります。パケット単位は、DLB が有効になっている場所で使用される DLB モードです。同じデバイス上で同時にフロー単位およびパケット単位のモードで DLB を設定することはできません。
この機能は Flowlet モードと互換性があります。DLB がフローレット モードで設定されている場合は、オプションでこの機能を有効にすることができます。
位相幾何学
図 1 に示したトポロジーでは、DLB はデフォルトで使用不可になっています。パケット単位のモードで、Flow2 で DLB を選択的に有効にしました。表 1 は、示されている 2 つのフローのロードバランシング設定と、フローに適用されたロードバランシングの結果をまとめたものです。
流れる |
DLB の有効性 |
結果 |
---|---|---|
フロー1 |
いいえ |
デバイスは、フロー単位のモードであるデフォルトのロードバランシング設定を使用します。フローは 1 つのデバイスに向けられます。 |
フロー2 |
はい |
デバイスは、パケット単位の DLB 設定を使用します。デバイスは、このフローをパケットに分割します。DLB は、パケット ヘッダーの RDMA オペコードと対応するフィルターに基づいて、各パケットをパスに割り当てます。 |

DLB をグローバルに無効にし、DLB を選択的に有効にする
DLB を必要とするパケットが非常に少ない場合は、グローバル レベルで DLB を無効にし、フローごとに選択的に有効にすることができます。
DLB をグローバルに有効にし、DLB を選択的に無効にする
ほとんどのパケットが DLB の恩恵を受ける場合は、すべてのパケットに対してグローバル レベルで DLB を有効にし、パケットごとに選択的に無効にします。
検証
次のコマンドを使用して、DLBが想定どおりに有効になっていることを確認します。
show forwarding-options enhanced-hash-key
show pfe filter hw profile-info
例:ファイアウォールフィルター一致条件でDLBを選択的に有効にする
選択的 DLB の利点の 1 つは、ファイアウォール フィルターの一致条件に基づいてロードバランシングをカスタマイズできることです。この例では、RDMA キューペアに一致するファイアウォールフィルターに基づいて DLB を有効にする方法を示しています。この例では、パケット並べ替えをサポートするネットワーク インターフェイス カード(NIC)で終端するフローに対してのみ、パケット単位の DLB を有効にする場合に使用します。
アプリケーション トラフィックのトランスポートに RoCEv2 を使用するネットワークでは、RDMA 接続は送信キューでトラフィックを送信し、受信キューでトラフィックを受信します。これらのキューは、RDMA 接続を形成します。送信キューと受信キューを合わせて、キュー ペアと呼びます。各キュー ペアには、識別可能なプレフィックスがあります。この例では、キュー ペア プレフィックスを使用して、DLB が有効になるタイミングを制御します。
この例は、QFX5240-64QDスイッチで設定されています。
プラットフォームのサポート
プラットフォームとリリースのサポートについては 、Feature Explorer を参照してください。