メインコンテンツまでスキップ

バッファ間クレジット管理とは

Views:
1,225
Visibility:
Public
Votes:
8
Category:
fabric-interconnect-and-management-switches
Specialty:
brocade
Last Updated:

すべてのとおり  

環境

  • FlexPod
  • ファイバチャネル

回答

バッファ間クレジット(BBクレジット)の仕組み
  • Fiber Channelでは、ハードウェアベースのフロー制御にBBクレジット メカニズムを使用します。このメカニズムでは、ポートがポートの処理バッファに合わせてフレームのフローを調整できます。
  • バッファ間クレジットを使用してフロー制御を管理し、受信側のスイッチ デバイスを飽和状態にすることなく送信できるフレーム数を特定します。このメカニズムにより、スイッチ ハードウェアで輻輳が原因のフレームの破棄が発生しなくなります。
  • あるポートのクレジット数は、フレームの確認応答を受け取るまでの間にポートが送信できるフレーム数です。BBクレジットの管理は、相互に接続された2つのFiber Channelポート間で行われます。

例:

  • 1つのNポートと1つのFポート
  • 2つのEポート
  • ポイントツーポイント トポロジの2つのNポート
  • アービトレーテッド ループの各種のモード

フレームの確認応答メカニズムでは、受信側で利用可能な個々のバッファについて、受信ポートから送信ポートにR_RDY(Receiver Ready)プリミティブが送信されます。

送信ポートは受信側の空きバッファ数を保持し、これが0になるまでフレームの送信を継続します。

BBクレジットは、クラス2およびクラス3のサービスで使用され、受信側から送信側に送信されるR_RDY(Receiver Ready)に基づいて管理されます。ノードのペアは、FLOGI/PLOGIの実行時に、それぞれの使用可能なクレジット数を伝達します。送信側は、この値を使用して受信バッファの使用状況を追跡し、必要に応じて送信ペースを調整します。FCスイッチでは、使用可能なBBクレジットを次のように追跡します。

  • 送信側は、データ フレームを送信する前に、FLOGIで受信側から伝達されたBBクレジットの値にカウンタを設定します。
  • 送信側からデータ フレームが1つ送信されるたびに、カウンタの値が1つ減ります。
  • データ フレームを受け取った受信側は、ステータス フレーム(R_RDY)を送信側に送信し、データ フレームを受け取ったこと、および別のデータ フレームを受け取る準備ができたことを通知します。
  • 送信側がR_RDYを受け取るたびに、カウンタの値が1つ増えます。 

: VC_RDY は、 Virtual Channel ( VC; 仮想チャネル)テクノロジで使用される Brocade 独自のバージョンの R_RDY です。このドキュメントでは、R_RDYとVC_RDYの両方について「R_RDY」と記述しています。

特定のリンク速度と長さで必要な BB クレジットの数はいくつですか。
上記の計算は、 MetroCluster FC バックエンド構成には適用されません。 
  • ファブリック ログイン時、リンク両端のNポートとFポートの間でBBクレジットが確立されます。各ポートが提供できるBBクレジットの最大数を宣言し、少ない方が使用されます。
  • ホストとターゲットのHost Bus Adapter(HBA;ホスト バス アダプタ)では、BBクレジット数は固定で、変更することはできません。ただし、ファイバチャネルスイッチは、指定された速度とリンク距離を考慮して、各ポートの BB_Credit を内部的に計算します。
  • 特定の距離に必要なBBクレジット数を求める計算式を次に示します(最大フレーム サイズを想定)。

(X * Y / 2) + 6 = B

B = 必要なBBクレジット数

X = 距離(km)* (念のため、実際の距離の1.5倍に設定)

Y = 速度

6 = ファブリック サービスに必要なポートあたりのバッファ数(常に6)

:リンクで QoS が有効になっている場合は、 QoS 管理に必要なクレジットをさらに 14 クレジットまで考慮する必要があります。

特定のスイッチで使用可能なBBクレジットの最大数がわかっている場合は、次の計算式を使用して、そのBBクレジットに対して設定可能な理論上の最大距離を計算できます。

X = (B - 6) / (Y / 2)

X = 理論上の最大距離*

B = 使用可能なBBクレジット数

Y = 速度

たとえば、1つのISLを4Gbpsで実行しているBrocade 200Eの場合、理論上の最大距離は次のようになります。

x = (144 – 6) / (4 / 2)

x = 138 / 2

x = 69km 

必要なバッファ数はフレーム サイズから計算することもできます。平均的なフレーム サイズ(1024バイトなど)の場合は、2倍のBBクレジットを割り当てるか、長距離のLS設定モードで距離を2倍にします。

1. スイッチに必要な距離の値を計算して、割り当てる BB クレジット数を決定するには、次の式を使用します。

  • desired_distance = [(実際の推定距離 * 2112) / 平均ペイロード サイズ] ->最も近い整数に四捨五入したもの
  • 平均ペイロード サイズ = 1024バイト
  • この例では、実際の推定距離は200kmとします。
  • desired_distance = [(200 * 2112) / 1024] ->最も近い整数に四捨五入 = 412
  • Brocade スイッチで portcfglongdistance コマンドを使用して LS モードを設定するときに、実際の 200km に対して desired_distance の値を「 412 」と入力します
  • リンクは 4 Gbps E_Port に接続されています。これにより、Fabric OSで正しい数のBBクレジットが割り当てられます。

2. 長距離接続に使用する速度を決定します。この例では8Gbpsです。

3. 接続速度の data_rate 値を調べます。エンコードが8b / 10b、ボー レート1.0625Gb/秒の1Gb Fiber Channelリンクの場合、ちょうど1Gbpsのデータ フローを処理できます。Fiber Channelのギガビットの値は次のとおりです。

  • 1Gbpsで1.0625
  • 2Gbpsで2.125
  • 4Gbpsで4.25
  • 8Gbpsで8.5

4. 次の計算式を使用して、割り当てる BB クレジット数を計算します。

  • BBクレジット = [esired_distance * (データ速度 / 2.125)] ->最も近い整数に四捨五入
  • 手順1と手順3で求めたesired_distanceとデータ速度を代入すると、BBクレジットの計算は次のようになります。
  • BBクレジット = [(412 * 4.25) / 2.125] ->最も近い整数に四捨五入 = 824
十分な BB クレジットがない場合はどうなりますか?
  • 使用可能なバッファが十分でない場合でも、トラフィックはFCネットワークで送信されます。ただし、ライン レートが低速になります。この状態はBBクレジットの枯渇と呼ばれ、BBクレジットがなくなるまではトラフィックの送信が継続されます。
  • 実際にBBクレジットのプールが0になると、クレジットが補充されるかリンクがリセットされるまで、ポートはフレームを送信できなくなります。
  • リンクの両端でBBクレジットが一致しない場合、ファブリック セグメンテーションが発生し、スイッチ間リンクが稼働しなくなることがあります。両端のログでエラー メッセージを確認し、ISLが稼働しない原因を特定します。

:特定の実装で FC フレームサイズの割合が高い場合、最大サイズよりもかなり小さいと、さらに多くの BB クレジットが必要になることがあります。

バッファ クレジット リカバリ

Eポートでのみサポートされる機能で、意図せずに失われたBBクレジットをスイッチが自動的にリカバリすることができます。BBクレジット リカバリにより、クレジットが失われたことにより発生するリンクのパフォーマンス低下を防ぐことができます。詳細については、スイッチ ベンダーのマニュアルを参照してください。

追加情報

N/A

 

NetApp provides no representations or warranties regarding the accuracy or reliability or serviceability of any information or recommendations provided in this publication or with respect to any results that may be obtained by the use of the information or observance of any recommendations provided herein. The information in this document is distributed AS IS and the use of this information or the implementation of any recommendations or techniques herein is a customer's responsibility and depends on the customer's ability to evaluate and integrate them into the customer's operational environment. This document and the information contained herein may be used solely in connection with the NetApp products discussed in this document.