ダイナミックロードバランシング(DLB)
ダイナミックロードバランシング(DLB)とDLBの構成方法について説明します。この TOPC には、ECMP および LAG の DLB の設定方法も含まれています。
動的ロードバランシング(DLB)の概要
ロードバランシングにより、ネットワークトラフィックが、特定の等価コストマルチパス(ECMP)ルーティンググループまたはLAGのメンバー間で可能な限り均等に分散されます。一般に、ロードバランシングは静的または動的のいずれかに分類されます。静的ロードバランシング(SLB)は、パケットの内容(送信元IP、宛先IPなど)に基づいてのみハッシュを計算します。SLBの最大の利点は、特定のフローのすべてのパケットが同じパスを通るため、パケットの順序が保証されることです。しかし、SLBメカニズムではパスやリンクの負荷が考慮されないため、ネットワークで次のような問題が頻繁に発生します。
-
リンク帯域幅の使用率が低い
-
1つのリンクにエレファントフローが発生し、その上にマウスフローが完全にドロップします。
動的ロードバランシング(DLB)は、SLBの上に加わった機能です。
ECMP の場合は DLB をグローバルに設定できますが、LAG の場合は各集合型イーサネット インターフェイス(aex)に対して設定できます。設定に基づいて、選択した イーサタイプ(動的ロードバランシング)( IPv4、IPv6、MPLS)にDLBを適用できます。 ether-type(動的ロードバランシング)を設定しない場合、DLBはすべてのEtherTypeに適用されます。デフォルトモードがないため、DLBモードを明示的に設定する必要があることに注意してください。
機能エクスプローラーを使用して、特定の機能のプラットフォームとリリースのサポートを確認します。
-
DLBと耐障害性ハッシュの両方を同時に設定することはできません。そうでない場合は、コミットエラーがスローされます。
-
DLBは、ユニキャストトラフィックにのみ適用されます。
-
LAGがエグレスECMPメンバーの1つである場合、DLBはサポートされません。
-
リモートLAGメンバーはDLBをサポートしていません。
-
DLBは、バーチャルシャーシおよびVCFではサポートされていません。
-
LAGのDLBとHiGigトランクは、同時にサポートされていません。
DLBの重要な動作は次のとおりです。
-
DLBは、受信EtherTypesにのみ適用されます。
-
DLBの観点からは、L2とL3の両方のLAGバンドルが同じと見なされます。
-
DLBを非対称バンドルで使用する場合、つまり、メンバー容量の異なるECMPリンクでDLBを使用する場合、リンク使用率は最適ではありません。
-
DLBでは、パケットごとに新しいリンクが追加され、フローモードが割り当てられても、フローの再割り当ては行われません。これは、フラップ後に新しいフローまたはフローレットが見られない場合、フラップを受けた後も使用されたリンクが使用されない可能性があるリンクフラップシナリオで、最適ではない使用につながる可能性があります。
利点
-
DLBは、メンバーを選択する際に、メンバーの帯域幅の使用率とパケットのコンテンツを考慮します。その結果、リアルタイムのリンク負荷に基づいて、リンク使用率を向上させます。
-
DLBは、エレファントフローによって占有されたリンクがマウスフローによって使用されないようにします。したがって、DLBを使用することで、SLBで発生するハッシュコリジョンドロップを回避できます。つまり、DLBを使用すると、リンクが分散されるため、衝突とそれに伴うパケットのドロップが回避されます。
DLBモード
以下のDLBモードを使用して、トラフィックの負荷を分散できます。
-
パケットごとのモード
このモードでは、フロー内の各パケットに対してDLBが開始されます。このモードでは、パケットが常に最高品質のメンバーポートに割り当てられます。ただし、このモードでは、DLBで遅延スキューが原因で発生する可能性のあるパケット並べ替えの問題が発生する可能性があります。
-
フローレットモード
フローレットモードは、基本的に単一のトラフィックフロー内のデータのバーストである「フローレット」に基づいてリンクを割り当てます。これは、TCPなどの上位層プロトコルがデータ送信を一時停止して再起動し、バーストを引き起こすことが多いためです。
非アクティブ間隔
各フローレット間の一時停止は、非アクティブ間隔と呼ばれます。この設定を構成すると、新しいフローレットが開始されたときにシステムに通知されます。これにより、しばらく非アクティブな新規フローと既存のフローの両方に対して、ロードバランシングを開始できます。
パケットの並べ替えを回避する
この方法の主な利点は、パケットの並べ替えを防ぐことです。1つのフローレット内のすべてのパケットは、同じリンクを介して送信されます。inactivity-interval の値を最大遅延よりも高く設定することで、使用可能なすべてのリンクを最大限に活用しながら、異なるフローレット間での並べ替えを回避できます。
-
割り当てられたフローモード
割り当てられたフローモードを使用して、一定期間の間、リバランスを選択的に無効にし、問題の原因を切り分けることができます。このモードをリアルタイムDLBに使用することはできません。割り当てられたフローモードではポート負荷とキューサイズが考慮されないため、このモードで選択される出口ポートを予測することはできません。
動的ロードバランシングの設定
このトピックでは、フローレットモードでダイナミックロードバランシング(DLB)を設定する方法について説明します。
ECMPのDLBの設定(フローレットモード)
フローレットモードでECMPの動的ロードバランシングを設定するには(QFX5120-32C、QFX5120-48Y、QFX5220スイッチ):
同様に、 パケットごと または 割り当てられたフロー モードでECMPのDLBを設定できます。
LAGのDLBを設定する(フローレットモード)
開始する前に、特定の集約型イーサネットグループ識別子を使用して、一連のルーターインターフェイスを設定して、集約型イーサネットバンドルを作成します。
フローレットモードでLAGの動的ロードバランシングを設定するには(QFX5120-32CおよびQFX5120-48Y)。
フローレットモードで動的ロードバランシングを有効にします。
[edit interfaces ae-x aggregated-ether-options] user@router# set dlb flowlet
(オプション)リンク再割り当てのための inactivity-interval 値 - 最小非アクティブ間隔(マイクロ秒単位)を設定します。
[edit interfaces ae-x aggregated-ether-options] user@router# set dlb flowlet inactivity-interval (micro seconds)
(オプション)
ether-typeで動的ロードバランシングを設定します。[edit forwarding-options enhanced-hash-key] user@router# set lag-dlb ether-type mpls
(オプション)
show forwarding-options enhanced-hash-keyコマンドを使用して、LAGで動的ロードバランシングに設定されたオプションを表示できます。
同様に、 パケットごと または 割り当てられたフロー モードでLAGのDLBを設定できます。
例:動的ロードバランシングの設定
この例では、動的ロードバランシングを設定する方法を示します。
必要条件
この例では、以下のハードウェアおよびソフトウェアコンポーネントを使用しています。
2 つの QFX5120-32C または QFX5120-48Y スイッチ
すべてのデバイスで実行されている Junos OS リリース 19.4R1 以降
概要
動的ロードバランシング(DLB)は、SLBの上に加わった機能です。
ECMP の場合は DLB をグローバルに設定できますが、LAG の場合は、集約されたイーサネットインターフェイスごとに設定します。設定に基づいて、IPv4、IPv6、MPLSなどの選択したEtherTypeにDLBを適用できます。EtherTypeを設定しない場合、DLBはすべてのEtherTypeに適用されます。デフォルトモードは存在しないため、DLBモードを明示的に設定する必要があります。
DLBと耐障害性ハッシュの両方を同時に設定することはできません。そうでない場合は、コミットエラーがスローされます。
位相幾何学
このトポロジーでは、R0とR1の両方が接続されています。
この例では、静的な設定を示しています。動的プロトコルを使用して設定を追加することもできます。
構成
- CLIクイックコンフィグレーション
- LAGの動的ロードバランシングの設定(QFX5120-32CおよびQFX5120-48Y)
- ECMP(QFX5120-32C、QFX5120-48Y、QFX5220スイッチ)の動的ロードバランシングの設定
CLIクイックコンフィグレーション
この例を簡単に設定するには、以下のコマンドをコピーしてテキストファイルに貼り付け、改行を削除して、ネットワーク構成に合わせて必要な詳細を変更し、コマンドを [edit] 階層レベルのCLIにコピー&ペーストしてください。
R0
set interfaces xe-0/0/0 unit 0 family inet address 10.1.0.2/24 set interfaces xe-0/0/10 unit 0 family inet address 10.1.1.2/24 set interfaces xe-0/0/54:0 unit 0 family inet address 10.10.10.2/24 set forwarding-options enhanced-hash-key ecmp-dlb per-packet set policy-options policy-statement loadbal then load-balance per-packet set routing-options static route 20.0.1.0/24 next-hop 10.1.0.3 set routing-options static route 20.0.1.0/24 next-hop 10.1.1.3 set routing-options forwarding-table export loadbal
R1
set interfaces xe-0/0/0 unit 0 family inet address 10.1.0.3/24 set interfaces xe-0/0/10 unit 0 family inet address 10.1.1.3/24 set interfaces xe-0/0/52:0 unit 0 family inet address 20.0.0.2/16
LAGの動的ロードバランシングの設定(QFX5120-32CおよびQFX5120-48Y)
手順
次の例では、設定階層のさまざまなレベルに移動する必要があります。CLIのナビゲーションについては、 設定モードでのCLIエディターの使用を参照してください。
R0 ルーターを設定するには:
各ルーターの適切なインターフェイス名、アドレス、およびその他のパラメーターを変更した後、他のルーターに対してこの手順を繰り返します。
リンクアグリゲーショングループ(LAG)を設定します。
[edit interfaces]user@R0# set interfaces xe-0/0/0 ether-options 802.3ad ae0 user@R0# set interfaces xe-0/0/10 ether-options 802.3ad ae0 user@R0# set interfaces ae0 aggregated-ether-options lacp active user@R0# set interfaces ae0 unit 0 family inet address 10.1.0.2/24 user@R0# set routing-options static route 20.0.1.0/24 next-hop 10.1.0.3LAGを設定した後、検証セクションで、「 LAG上の動的ロードバランシング機能を設定する前にトラフィック負荷を検証する」 セクションの手順を実行し、DLBを設定する前に設定またはトラフィック負荷を確認します。
LAGのパケット単位モードで動的ロードバランシングを設定します。
[edit]user@R0# set interfaces ae0 aggregated-ether-options dlb per-packetDLBを設定した後、検証セクションで「 LAGでダイナミックロードバランシング機能を設定した後のトラフィック負荷の検証 」セクションの手順を実行し、DLBを設定する前に設定またはトラフィック負荷を確認します。
ECMP(QFX5120-32C、QFX5120-48Y、QFX5220スイッチ)の動的ロードバランシングの設定
手順
次の例では、設定階層のさまざまなレベルに移動する必要があります。CLIのナビゲーションについては、 設定モードでのCLIエディターの使用を参照してください。
R0 ルーターを設定するには:
各ルーターの適切なインターフェイス名、アドレス、およびその他のパラメーターを変更した後、他のルーターに対してこの手順を繰り返します。
R0からR1に接続するギガビットイーサネットインターフェイスリンクを設定します。
[edit interfaces]user@R0# set interfaces xe-0/0/0 unit 0 family inet address 10.1.0.2/24 user@R0# set interfaces xe-0/0/10 unit 0 family inet address 10.1.1.2/24 user@R0# set interfaces xe-0/0/54:0 unit 0 family inet address 10.10.10.2/24スタティックルートを作成します。
[edit interfaces]user@R0# set routing-options static route 20.0.1.0/24 next-hop 10.1.0.3 user@R0# set routing-options static route 20.0.1.0/24 next-hop 10.1.1.3負荷分散ポリシーを適用します。動的ロードバランシング機能には、複数のECMPネクストホップが転送テーブルに存在する必要があります。
[edit interfaces]user@R0# set policy-options policy-statement loadbal then load-balance per-packet user@R0# set routing-options forwarding-table export loadbalECMPのパケット単位モードで動的ロードバランシングを設定します。
[edit interfaces]user@R0# set forwarding-options enhanced-hash-key ecmp-dlb per-packetR1で、ギガビットイーサネットインターフェイスリンクを設定します。
[edit interfaces]user@R2# set interfaces xe-0/0/0 unit 0 family inet address 10.1.0.3/24 user@R2# set interfaces xe-0/0/10 unit 0 family inet address 10.1.1.3/24 user@R2# set interfaces xe-0/0/52:0 unit 0 family inet address 20.0.0.2/16
検証
設定が正常に機能していることを確認します。
LAGで動的ロードバランシング機能を設定する前にトラフィック負荷を確認する
目的
リンクアグリゲーショングループでDLB機能が設定される前に確認します。
アクション
動作モードから、 show interfaces interface-name | match pps コマンドを実行します。
user@R0>show interfaces xe-0/0/0 | match pps Input rate : 1240 bps (1 pps) Output rate : 1024616 bps (1000 pps) ## all traffic in one link. user@R0>show interfaces xe-0/0/10 | match pps Input rate : 616 bps (0 pps) Output rate : 1240 bps (1 pps)<< Output rate : 1240 bps (1 pps) ## no traffic
LAGで動的ロードバランシング機能を設定した後のトラフィック負荷の検証
目的
R0で受信したパケットがロードバランシングされていることを確認します。
アクション
動作モードから、 show interfaces interface-name コマンドを実行します。
user@R0>show interfaces xe-0/0/0 | match pps Input rate : 616 bps (0 pps) Output rate : 519096 bps (506 pps)<< Output rate : 519096 bps (506 pps) ## load equally shared user@R0>show interfaces xe-0/0/10 | match pps Input rate : 1232 bps (1 pps) Output rate : 512616 bps (500 pps)<< Output rate : 512616 bps (500 pps) ## load equally shared
意味
パケット単位モードでの動的ロードバランシングが正常に動作しています。LAGに動的ロードバランシング機能を適用した後、負荷はネットワーク内で均等に共有されます。
検証
R0で設定が正常に機能していることを確認します。
R0 で動的ロード バランシングを検証する
目的
R0で受信したパケットがロードバランシングされていることを確認します。
アクション
動作モードから、 run show route forwarding-table destination destination-address コマンドを実行します。
user@R0>show route forwarding-table destination 20.0.1.0/24
inet.0: 178 destinations, 178 routes (178 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both
20.0.1.0/24 *[Static/5] 1d 03:35:12
> to 10.1.0.3 via xe-0/0/0.0
to 10.1.1.3 via xe-0/0/10.0
user@R0>show route 20.0.1.0/24
inet.0: 178 destinations, 178 routes (178 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both
20.0.1.0/24 *[Static/5] 1d 03:35:12
> to 10.1.0.3 via xe-0/0/0.0
to 10.1.1.3 via xe-0/0/10.0
意味
R0で受信したパケットはロードバランシングされます。
R1でロードバランシングを検証する
目的
R1で設定が正常に機能していることを確認します。
アクション
動作モードから、 show route コマンドを実行します。
user@R1>show route 20.0.1.25
inet.0: 146 destinations, 146 routes (146 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both
20.0.0.0/16 *[Direct/0] 1d 03:37:11
> via xe-0/0/52:0.0
意味
パケット単位モードでの動的ロードバランシングが正常に動作しています。ECMPに動的ロードバランシング機能を適用した後は、ネットワーク内で負荷を均等に共有します。
選択的動的ロードバランシング(DLB)
選択的DLBの概要
選択的DLBを使用すると、デバイスを通過するすべてのトラフィックについてDLBとSLBのどちらかを選択する必要がなくなります。グローバルレベルで好みのDLBモードを設定し、デフォルトのタイプのロードバランシングを設定してから、特定の種類のトラフィックに対してDLBを選択的に有効または無効にすることができます。
選択的DLBは、エレファントフローとも呼ばれる非常に大きなデータフローが、データフロー全体に対して小さすぎるリンクに遭遇する場合にも役立ちます。このシナリオでは、選択的DLBが、データセンターファブリックにおけるリンクの利用可能な帯域幅の最適使用を計算できます。エレファントフローに対して選択的パケットごとのDLBを有効にすると、アルゴリズムはパケットを最高品質のリンクに最初に誘導します。リンク品質が変化すると、アルゴリズムは後続のパケットを次に品質の良いリンクに誘導します。
機能エクスプローラーを使用して、特定の機能のプラットフォームとリリースのサポートを確認します。
利点
-
大規模なデータフローのネットワーク処理を改善します。
-
同じトラフィックストリームでパケット単位およびフロー単位のロードバランシングを使用して、パフォーマンスを向上させます。
-
ファイアウォールフィルターの一致条件に基づいてロードバランシングをカスタマイズします。
AI-MLデータセンターにおける選択的DLB
AI-MLワークロードでは、アプリケーショントラフィックの大部分は、転送にRDMA(Remote Direct Memory Access)over Converged Ethernet version 2(RoCEv2)を使用します。動的ロードバランシング(DLB)は、効率的なロードバランシングを実現し、RoCEv2ネットワークで混雑を防止するのに最適です。ただし、一部のトラフィックタイプでは、静的ロードバランシング(SLB)の方が効果的な場合があります。選択的DLBはこの問題を解決します。
ロードバランシングは、フローごとまたはパケットごとの2つの方法で有効にできます。フロー単位のロードバランシングは、一度に最も多くのパケットを処理するため、最も広く使用されています。デバイスは、同じ5タプルパケットヘッダーを持つパケットを単一のフローとして分類します。デバイスは、フロー内のすべてのパケットに同じロードバランシング処理を与えます。フローベースのロードバランシングは、トラフィックがすべてのリンクをほぼ均等に利用するため、一般的なTCPおよびUDPトラフィックに適しています。ただし、パケット単位のロードバランシングでは、一部のパケットの順序が変更され、パフォーマンスに影響を与える可能性があります。
多くのAIクラスターは、順序外れのパケットを処理できるスマートネットワークインターフェイスカード(SmartNIC)を介してアプリケーションをネットワークに接続します。パフォーマンスを向上させるには、ネットワークでパケットごとのDLBを有効にします。次に、順序外れのパケットを処理できるエンドポイントサーバーのみに対してDLBを有効にします。デバイスは、これらのパケットのBTH+ヘッダーにあるRDMA操作コード(オペコード)をリアルタイムで確認します。ファイアウォールフィルターの一致条件を使用して、これらのオペコードに基づいてDLBを選択的に有効または無効にできます。他のフローでは、SLB とも呼ばれるデフォルトのハッシュベースのロードバランシングが引き続き使用されます。
構成
構成の概要
DLB をデフォルトで無効にして特定のフローで DLB を選択的に有効にするか、DLB をグローバルに有効にして DLB を選択的に無効にするかの 2 つの方法で選択的に有効にできます。いずれの場合も、まず パケット単位モードでDLBを設定する必要があります。パケット単位は、DLBが有効になっている場合に使用されるDLBモードです。同じデバイスで同時にフロー単位とパケット単位モードでDLBを設定することはできません。
この機能は、フローレット モードと互換性があります。DLBがフローレットモードで設定されている場合、オプションでこの機能を有効にすることができます。
位相幾何学
図2に示すトポロジーでは、DLBはデフォルトで無効になっています。パケット単位モードでフロー2でDLBを選択的に有効にしました。表1は、示した2つのフローのロードバランシング構成と、フローに適用されたロードバランシングの結果をまとめたものです。
| 流れる |
DLBが有効になっていますか? |
結果 |
|---|---|---|
| フロー1 |
いいえ |
デバイスは、デフォルトのロードバランシング設定であるフロー単位モードを使用します。フローは単一のデバイスに向けられます。 |
| フロー2 |
はい |
デバイスは、パケット単位モードのDLB設定を使用します。デバイスはこのフローをパケットに分割します。DLBは、パケットヘッダーのRDMAオペコードと対応するフィルターに基づくパスに各パケットを割り当てます。 |
DLBをグローバルに無効にし、DLBを選択的に有効にする
DLB を必要とするパケットが非常に少ない場合は、グローバル レベルで DLB を無効にし、フローごとに選択的に有効にすることができます。
DLBをグローバルに有効化し、DLBを選択的に無効化する
ほとんどのパケットがDLBの恩恵を受ける場合は、すべてのパケットに対してグローバルレベルでDLBを有効にし、パケットごとに選択的に無効にします。
例:ファイアウォールフィルター一致条件でDLBを選択的に有効にする
選択的DLBのメリットの1つは、ファイアウォールフィルターの一致条件に基づいてロードバランシングをカスタマイズできることです。この例では、RDMAキューペアと一致するファイアウォールフィルターに基づいてDLBを有効にする方法を示しています。この例では、パケットの並べ替えをサポートするネットワークインターフェイスカード(NIC)で終端するフローに対してのみ、パケットごとのDLBを有効にします。
アプリケーション トラフィック トランスポートに RoCEv2 を使用するネットワークでは、RDMA 接続は送信キューでトラフィックを送信し、受信キューでトラフィックを受信します。これらのキューは RDMA 接続を形成します。送信キューと受信キューを合わせて、キュー ペアと呼びます。各キューペアには、識別可能なプレフィックスがあります。この例では、キューペアのプレフィックスを使用して、DLBを有効にするタイミングを制御します。
この例は、QFX5240-64QDスイッチ上に設定されています。
DLB のエグレス ポート リンク品質メトリックのカスタマイズ
概要
ダイナミックロードバランシング(DLB)は、トラフィックフローがネットワーク全体に均等に分散されるように、リンクの品質に基づいて最適なリンクを選択します。ネットワーク管理者は、DLBが最適なリンクを選択できるように、DLBがエグレスポートの品質メトリックを割り当てる方法をカスタマイズできます。
DLBは、等価コストマルチパス(ECMP)の一部である各エグレスポートを品質帯域に割り当てます。品質バンドには 0 から 7 までの番号が付けられており、0 が最下位の品質、7 が最高品質です。DLBは各ポートで2つのメトリックを追跡し、これらのメトリックを使用してリンクの品質を計算します。
-
ポート負荷メトリック:各ECMPリンクを介して最近送信されたトラフィックの量(バイト単位)。
-
ポートキューメトリック:送信用に各ECMPリンクにキューに入れられたトラフィックの量(セル数で測定)。
メンバーポートの負荷とキューサイズに基づいて、DLBは品質バンドの1つをメンバーポートに割り当てます。ポートから品質への帯域マッピングは、瞬時のポート負荷とキューサイズのメトリックに基づいて変化します。
デフォルトでは、DLBはリンク品質を評価する際に、ポート負荷メトリックとポートキューメトリックを均等に重み付けします。DLBは、リンク品質がポートキューよりもポート負荷に重きを基づけるように設定することも、その逆も可能です。[edit forwarding-options enhanced-hash-key ecmp-dlb egress-quantization]階層レベルのrate-weightageステートメントを使用して、DLBがポート負荷に与える重みを設定します。DLBは、残りの重みの割合をポートキューに割り当てます。例えば、rate-weightage値を80に設定した場合、DLBはリンクの品質を評価する際に、ポート負荷に80%の重みを、ポートキューに20%の重みを割り当てます。
また、ポート負荷しきい値を設定して、品質の上限域と下限域を決定することもできます。しきい値は、 min および max オプションを使用して設定する総ポート負荷の割合です。DLBは、ポート負荷がこの最小値を下回るエグレスポートを最高品質バンド(7)に割り当てます。最大しきい値よりも大きいポート負荷は、最低品質帯域(0)に分類されます。DLBは、残りのポート負荷量を品質バンド1から6に分割します。
例えば、最小値を10、最大値を70に設定した場合、DLBは、ポート負荷全体の10%(%)未満のポート負荷を持つエグレスポートを品質バンド7に割り当てます。DLBは、ポート負荷が総ポート負荷の70%を超えるegressポートを品質バンド0に割り当てます。そして、DLBは、ポート負荷が総ポート負荷の10%から70%を占めるegressポートを、品質バンド1から6に割り当てます。
機能エクスプローラーを使用して、特定の機能のプラットフォームとリリースのサポートを確認します。
利点
-
ポートの負荷サイズとキューに基づいて最適化されたロードバランシング。
-
ネットワークのニーズに合ったリンク品質パラメータ。
-
リアルタイムメトリックに基づいて、品質帯域に柔軟なポート割り当てを実行。
構成
egressポート品質メトリックを設定します。
DLBフローレットモードでのフローセットテーブルサイズの設定
概要
ダイナミックロードバランシング(DLB)とは、トラフィックフローが均等に分散されるようにリンクの品質に基づいて最適な出口リンクを選択するロードバランシング技術です。ネットワーク管理者は、 DLBをフローレットモードで設定できます。
フローレットモードでは、DLBは最後に表示されたタイムスタンプと、最適なリンク品質に基づいてDLBが選択したエグレスインターフェイスを記録することで、フローを追跡します。DLBは、各ECMPグループに割り当てられたフローセットテーブルにこの情報を記録します。DLB アルゴリズムは、最後に表示されたタイムスタンプが非アクティブ タイマーを超えるまで、特定のリンクで特定のフローを維持します。特定のフローの非アクティブタイマーが期限切れになると、DLBはそのリンクがまだそのフローに対して最適であるかどうかを再確認します。リンクが最適でなくなった場合、DLBは新しいエグレスリンクを選択し、新しいリンクとフローの最後の既知のタイムスタンプでフローセットテーブルを更新します。リンクが最適状態が続く場合、フローセットテーブルは引き続き同じエグレスリンクを使用します。
ネットワーク管理者は、フローセットテーブルのサイズを大きくして、ECMPグループ間のフローセットテーブルエントリーの分布を変更することができます。ECMP グループがフローセット テーブル内のエントリーの数が多いほど、ECMP グループが対応できるフローの数も増えます。大量のフローを処理する必要がある AI-ML データ センターなどの環境では、DLB でより大きなフローセット テーブル サイズを使用することが特に便利です。各 ECMP グループが多数のフローに対応できる場合、DLB は ECMP メンバー リンク全体のフロー分散を改善します。
フローセット テーブルには合計 32,768 個のエントリーがあり、これらのエントリーは DLB ECMP グループ間で均等に分割されます。各 ECMP グループのフローセット テーブル サイズの範囲は 256 から 32,768 です。次の式を使用して、ECMP グループの数を計算します。
32,768/(flowset size) = Number of ECMP groups
デフォルトでは、フローセットのサイズは256エントリなので、デフォルトでは128のECMPグループがあります。
機能エクスプローラーを使用して、特定の機能のプラットフォームとリリースのサポートを確認します。
利点
-
エグレス リンク上の負荷分散を改善します。
-
フローをグループ化して、各フローに対して DLB が行う計算の数を最小限に抑えます。
-
フローセットテーブルエントリーの割り当てをカスタマイズして効率を最大化します。
-
フローレットモードの効率を高めます。
構成
フローセットテーブルのサイズを設定する際は、以下の点に注意してください。
-
フローセットのサイズを変更すると、ECMP DLB グループのスケールも変更されます。フローセット テーブル サイズを 256 より大きく割り当てると、DLB 対応 ECMP グループの数が減少します。
-
この設定をコミットすると、設定変更中にトラフィックがドロップする可能性があります。
-
リンクアグリゲーショングループ(LAG)がECMPのエグレスメンバーの1つである場合、DLBはサポートされません。
-
DLBをサポートするのはアンダーレイファブリックだけです。
-
速度が50Gbps未満のQFX5240スイッチポートはDLBをサポートしていません。
リアクティブ パス リバランス
概要
ダイナミックロードバランシング(DLB)は、AI-MLデータセンターファブリックに固有の大規模なデータフロー(エレファントフローとも呼ばれます)を処理するための重要なツールです。 リアクティブパスリバランス は、既存のDLB機能の拡張です。
DLBのフローレットモードでは、ネットワーク管理者は非アクティブ間隔を設定します。トラフィックは、非アクティブタイマーよりも長くフローが一時停止するまで、割り当てられた発信(エグレス)インターフェイスを使用します。発信リンクの品質が徐々に低下する場合、フロー内の一時停止は設定された非アクティブタイマーを超えない場合があります。この場合、従来のフローレットモードではトラフィックが別のリンクに再割り当てされないため、トラフィックはより高品質のリンクを利用できません。リアクティブパスリバランスは、フローレットモードが有効になっている場合でも、ユーザーがトラフィックをより高品質のリンクに移動できるようにすることで、この制限に対処します。
デバイスは、リンクを通るトラフィックに基づいて、各等価コストマルチパス(ECMP)エグレスメンバーリンクに品質帯域を割り当てます。品質帯域は、ポート負荷とキューバッファに依存します。ポート負荷は、送信されたエグレスバイト数です。キューバッファは、エグレスポートからの送信を待機しているバイト数です。ECMP を通過するトラフィックパターンに基づいて、これらの属性をカスタマイズできます。
機能エクスプローラーを使用して、特定の機能のプラットフォームとリリースのサポートを確認します。
利点
-
リンクの劣化に対する拡張性に優れたソリューション
-
大規模データフローにおける帯域幅の最適な利用
-
長時間フローによるロードバランシングの非効率性の回避
構成
構成の概要
品質バンドには 0 から 7 までの番号が付けられており、0 が最下位の品質、7 が最高品質です。メンバーポートの負荷とキューサイズに基づいて、DLBはメンバーポートに品質帯域値を割り当てます。ポートから品質までの帯域マッピングは、瞬時のポート負荷とキューサイズに基づいて変化します。
以下の条件が両方満たされると、リアクティブパスリバランスは、より高品質なメンバーリンクにフローを再割り当てします。
-
品質バンドが、現メンバーの品質バンドに設定済みの再割り当て 品質デルタ 値を加えた値以上である、より高品質のメンバーリンクが利用可能です。品質デルタは、2つの品質バンドの差です。
quality-deltaステートメントを使用して品質デルタ値を設定します。 -
システムが生成するパケットランダム値が、再割り当て 確率しきい値 よりも低くなっています。
prob-thresholdステートメントを使用して確率しきい値を設定します。
この機能を使用する際は、以下の点に注意してください。
-
リアクティブパスリバランスはグローバルな設定であり、システム内のすべてのECMP DLB設定に適用されます。
-
フローの再割り当てを制御するために、リアクティブパスのリバランスに加えて、エグレス量子化を設定することができます。
-
パケットの並べ替えは、フローが1つのポートから別のポートに移動するときに発生する可能性があります。リアクティブパスリバランスを設定すると、フローが新しいリンクに再割り当てされたときに、一時的な順序外の問題が発生することがあります。
位相幾何学
このトポロジーでは、デバイスには 3 つのイングレス ポートと 2 つのエグレス ポートがあります。イングレスストリームのうちの2つはレイヤー2(L2)トラフィックで、1つはレイヤー3(L3)トラフィックです。図は、各エグレスポートにトラフィックを転送するテーブルエントリーを示しています。すべてのイングレスポートとエグレスポートの速度は同じです。
このトポロジーでは、事後対応型パスのリバランスは次のように機能します。
品質デルタ2が設定されています。
L2ストリーム1(
mac 0x123)は、10%のレートでイングレスポートet-0/0/0に入ります。それはet-0/0/10を介して終了します。et-0/0/10のエグレスリンク使用率は10%で、品質バンド値は6です。L3ストリームは、50%のレートでポートet-0/0/1に入ります。et-0/0/11を経由して終了し、ECMPメンバーリストから最適なリンクを選択します。et-0/0/11のエグレスリンク使用率は50%で、品質バンド値は5です。
L2ストリーム2(
mac 0x223)は、40%のレートでポートet-0/0/2に入ります。また、et-0/0/11から終了します。これにより、et-0/0/11のリンク品質バンドの値はさらに4に低下します。これで、両方の ECMP メンバー リンクの品質バンド値の差は 2 です。ポートet-0/0/10とet-0/0/11の品質バンド値の差が、設定された品質デルタ2以上になるため、リアクティブパスバランシングアルゴリズムが動作するようになります。このアルゴリズムは、L3ストリームをet-0/0/11から、より高品質のメンバーリンク(この場合はet-0/0/10)に移動します。
L3 スチームが et-0/0/10 に移動した後、et-0/0/10 リンク使用率は 60% に増加し、品質バンド値は 5 に減少します。L2ストリーム2は、et-0/0/11まで終了し続けます。et-0/0/11のリンク使用率は40%を維持し、品質バンド値は5に増加しています。
リアクティブパスリバランスを設定する
変更履歴テーブル
サポートされる機能は、使用しているプラットフォームとリリースによって決まります。 機能エクスプローラー を使用して、機能がお使いのプラットフォームでサポートされているかどうかを確認します。