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

NetApp_Insight_2020.png 

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

Views:
70
Visibility:
Public
Votes:
0
Category:
fabric-interconnect-and-management-switches
Specialty:
san
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