Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

選択的動的ロードバランシング(DLB)

概要

AI-MLワークロードでは、アプリケーショントラフィックの大部分が、トランスポートにコンバージドイーサネットバージョン2(RoCEv2)上のリモートダイレクトメモリアクセス(RDMA)を使用します。動的ロードバランシング(DLB)は、効率的なロードバランシングを実現し、RoCEv2ネットワークの輻輳を防止するのに最適です。ただし、トラフィックの種類によっては、静的ロード バランシング(SLB)の方が効果的な場合があります。 選択的 DLB を使用すると、デバイスを通過するすべてのトラフィックに対して DLB と SLB のどちらかを選択する必要がなくなります。グローバル レベルで任意の DLB モードを設定し、特定の種類のトラフィックに対して DLB を選択的に有効にすることができます。

負荷分散を有効にするには、フローごととパケットごとの 2 つの方法があります。フロー単位のロード バランシングは、一度に最も多くのパケットを処理するため、最も広く使用されています。デバイスは、同じ 5 タプルのパケット ヘッダーを持つパケットを 1 つのフローとして分類します。デバイスは、フロー内のすべてのパケットに同じロード バランシング処理を行います。フローベースのロードバランシングは、トラフィックがすべてのリンクを均等に利用するため、一般的なTCPおよびUDPトラフィックに適しています。ただし、パケット単位のロード バランシングによって一部のパケットの順序が変更される場合があり、パフォーマンスに影響を与える可能性があります。

多くのAIクラスターは、順不同のパケットを処理できるスマートネットワークインターフェイスカード(SmartNIC)を介してアプリケーションをネットワークに接続します。パフォーマンスを向上させるには、ネットワーク上でパケット単位の DLB を有効にします。次に、順不同のパケットを処理できるエンドポイントサーバーのみに対してDLBを有効にします。デバイスは、これらのパケットのBTH+ヘッダー内のRDMA命令コード(オペコード)をリアルタイムで確認します。ファイアウォールフィルターの一致条件を使用して、これらのオペコードに基づいてDLBを選択的に有効または無効にできます。その他のフローでは、SLB とも呼ばれるデフォルトのハッシュベース ロード バランシングが引き続き使用されます。

選択的 DLB は、エレファント フローがデータ フロー全体に対して小さすぎるリンクを検出した場合にも役立ちます。このシナリオでは、選択的DLBは、データセンターファブリックでリンクの利用可能な帯域幅の最適な使用を計算することができます。エレファント フローに対してパケット単位の選択的 DLB を有効にすると、アルゴリズムによってパケットが最高品質のリンクに最初に転送されます。リンク品質が変化すると、アルゴリズムは後続のパケットを次に高品質のリンクに誘導します。

利点

  • 大規模なデータフローのネットワーク処理を改善します。

  • 同じトラフィックストリームでパケット単位とフロー単位のロードバランシングを使用して、パフォーマンスを向上させます。

  • ファイアウォールフィルターの一致条件に基づいてロードバランシングをカスタマイズします。

プラットフォームのサポート

プラットフォームとリリースのサポートについては、「 機能エクスプローラー 」を参照してください。Junos OS Evolvedリリース23.4R2以降、この機能は次のプラットフォームでサポートされています。

  • QFX5230-64CD

  • QFX5240-64OD

  • QFX5240-64QD

位相幾何学

このトポロジーでは、DLB はパケット単位モードでグローバルに設定され、選択的に有効になります。Flow1 では、DLB が有効になっていないため、デバイスはデフォルトでロード バランシング設定になります。この場合、ロード バランシングはフロー単位モードで構成されているため、フローは 1 つのデバイスに送信されます。

Flow2 の場合、デバイスはフローのパケット ヘッダー内の RDMA オペコードを検出し、フィルター一致条件をトリガーします。DLB はパケット単位モードでグローバルに設定されるため、デバイスはこのフローをパケットに分割します。DLB は、パケット ヘッダーの RDMA オペコードと対応するフィルターに基づくパスに各パケットを割り当てます。

図1:フロー単位とパケット単位のロードバランシング Per-Flow and Per-Packet Load Balancing

設定ステートメント

2 つの方法で DLB を選択的に有効にすることができます。いずれの場合も、最初にパケット単位モードで DLB を設定する必要があります。パケット単位は、DLB が有効になっている場所で使用される DLB モードです。

DLB をグローバルに無効にし、選択的に DLB を有効にする

DLB を必要とするパケットが非常に少ない場合は、グローバル レベルで DLB を無効にし、フローごとに選択的に有効にすることができます。まず、DLB をパケット単位モードにします。次に、すべてのイーサネットタイプでDLBをオフにして、グローバルにDLBを無効にします。デフォルトでは、すべてのパケットがハッシュベースのロードバランシングを取得します。

これで、BTH+ ヘッダー内の特定の RDMA オペコードに一致するようにファイアウォール フィルターを構成できます。ファイアウォール フィルター内でパケット単位の DLB を有効にして、それらのパケットにのみ DLB を適用します。例えば:

他のパケットは引き続きSLBを取得します。

DLB をグローバルに有効にし、DLB を選択的に無効にする

ほとんどのパケットがDLBの恩恵を受ける場合は、まずすべてのパケットに対してグローバルレベルでDLBを設定します。

これで、BTH+ ヘッダー内の特定の RDMA オペコードに一致するようにファイアウォール フィルターを構成できます。SLB で処理したいパケットのファイアウォール フィルター内で、パケット単位の DLB を無効にします。例えば:

実装ノート

(オプション)この機能は、フローレットモードで設定されたDLBで有効にできます。

同じデバイス上で、フロー単位モードとパケット単位モードで同時にDLBを設定することはできません。

検証とトラブルシューティング