FC プロトコルの基礎:層、ポート、ログイン、ゾーニング
Fibre Channel は、SFP の部分ではイーサネットに似ています(ケージも光モジュールも同様です)が、それより上の層ではまったく異なる振る舞いをします。ロスレスでコネクション指向のストレージ向け伝送方式であり、すべてのフレームが順序どおりに到達することが前提となっていて、ファブリックは各デバイスを焼き付けられた名前で識別します。このページでは、プロトコルレイヤー、ポートタイプ、アドレッシング、ログインシーケンス、ゾーニングを扱います。これらは、SAN スイッチを読み解き、光モジュールがこれほど厳格に管理される理由を理解するために必要な語彙です。
レイヤー
| レイヤー | 名称 | 内容 | 光モジュールとの関係 |
|---|---|---|---|
| FC-0 | 物理層 | 伝送媒体、コネクター、送信器、受信器、速度 | SFP そのもの:FC の光学系、速度 |
| FC-1 | 伝送層 | 8GFC までは 8B/10B 符号化、16GFC 以降は 64B/66B、順序集合、16GFC(任意)と 32GFC 以上(必須)での FEC | 符号化バイト、FEC カウンター |
| FC-2 | フレーミングとフロー制御 | フレーム(最大 2112 バイトのペイロード)、シーケンス、エクスチェンジ、サービスクラス、バッファ間クレジット | クレジットが距離を決める:SAN 設計 |
| FC-3 | 共通サービス | マルチキャスト、ハントグループ(ほとんど使われない) | — |
| FC-4 | プロトコルマッピング | SCSI(FCP)、NVMe(FC-NVMe)、FICON、IP over FC | NVMe over fabrics |
ポートタイプ
| ポート | 役割 |
|---|---|
| N_Port | ノードポート。HBA またはストレージアレイのポート |
| F_Port | スイッチのファブリックポート。N_Port に接続される |
| E_Port | 拡張ポート。スイッチ間のインタースイッチリンク(ISL) |
| NL_Port / FL_Port | アービトレーテッドループの派生形(レガシー) |
| G_Port / U_Port | 汎用ポート。接続先を認識すると F または E になるスイッチポート |
| TE_Port / EX_Port | トランキング E_Port(Cisco VSAN トランク)/ファブリック間のルーターポート |
| D_Port | 診断ポート。リンク上で光学的・電気的ループバックテストを実行する(Brocade) |
名前とアドレス
| 識別子 | サイズ | 意味 |
|---|---|---|
| WWNN(World Wide Node Name) | 64 ビット | デバイス(HBA、アレイコントローラー) |
| WWPN(World Wide Port Name) | 64 ビット | 各ポート。ゾーニングとマスキングに使われる識別情報 |
| FCID(N_Port ID) | 24 ビット | ファブリックが割り当てるアドレス:Domain(スイッチ)/Area/Port。デバイスが移動すると変わる |
| ウェルノウンアドレス | FFFFFC ネームサーバー、FFFFFD ファブリックコントローラー、FFFFFE ファブリックログインサーバー、FFFFFA 管理サーバー | ファブリックサービス |
WWN は HBA とアレイポートに焼き付けられており、配線を変えても変化しません。そのため、WWPN によるゾーニングは配線変更後も維持されますが、ポートによるゾーニングは維持されません。
ログインシーケンス
- リンク初期化:速度ネゴシエーション(双方が最高速度から順に試行し、不一致や限界品質の光モジュールはここで露見します)を行い、その後、両端が同期するまでプリミティブシーケンスを続けます。
- FLOGI(ファブリックログイン):N_Port がスイッチに FCID を要求し、バッファクレジット、サービスクラス、フレームサイズをネゴシエートします。
- PLOGI(ポートログイン):N_Port 間(またはネームサーバーとの間)でセッションを確立します。
- PRLI(プロセスログイン):FC-4 プロトコル(SCSI や NVMe)とそのパラメーターをネゴシエートします。
- ネームサーバーへの登録と照会:デバイスは自身の WWPN/FCID を登録し、ゾーニングされたターゲットの存在を把握します。以降の変更はRSCN通知で知らされます。
FLOGI の前で止まっているポートは物理層の問題(光モジュール、ケーブル、速度)です。FLOGI の後で止まっている場合は、ファブリック/ゾーニングの問題です(ポート診断)。
サービスクラスとフロー制御
| クラス | 動作 | 用途 |
|---|---|---|
| Class 1 | 専用コネクション | 廃止済み |
| Class 2 | 確認応答あり、コネクションレス | まれ |
| Class 3 | コネクションレス、確認応答なしのデータグラム。ただしクレジットのおかげでファブリックが破棄することはない | 実質的にすべてのストレージトラフィック |
| Class F | スイッチ間の制御 | ファブリックサービス |
バッファ間クレジット(BB_Credit):受信側がフレームバッファの数を許可し、送信側は R_RDY 確認応答を受け取るまで、その数までしかフレームを送信できません。何も破棄されず、クレジットを使い切ると送信側は待機します。これが、ロスレス動作、距離の制限、スロードレイン輻輳の背後にある仕組みです(SAN 設計)。
ゾーニングとマスキング
- スイッチ上のゾーニングは、どの WWPN 同士が互いを認識できるかを制限します。シングルイニシエーターゾーニング(1つの HBA ポートとそのターゲット)が標準です。ポートではなく WWPN でゾーニングしてください。
- アレイ上のLUN マスキングは、どの WWPN がどのボリュームにアクセスできるかを制限します。
- VSAN(Cisco)/Virtual Fabric(Brocade)は、スイッチを独立したファブリックに分割します。NPIV により、1つの N_Port が複数の WWPN を提示できます(仮想マシン、ブレードエンクロージャーなど)。
- ゾーニングの問題は、ログイン自体は成功しているのに「デバイスが見えない」という形で現れます。光モジュールに手を付ける前に、ネームサーバーとアクティブなゾーンセットを確認してください。
速度ネゴシエーションと光モジュール
FC ポートは、共通の最高速度を自動的にネゴシエートします(例:32/16/8GFC)。SFP は、ネゴシエートされたレートに対応していなければなりません。32G ポートに 16G SFP を挿すと、ポートは 16G に制限されます。固定速度のポートに別世代の光モジュールを挿すと、まったくリンクしません。FC SFP は、イーサネットのコードではなく、FC の速度ビットとメディアビットでコーディングされており(コンプライアンスコード)、SAN スイッチはベンダーブランディングを厳格に強制します(FC の光学系)。
CodingBox では
FC SFP の場合、Check transceiver 画面が FC の速度、メディア、距離ビット(バイト 7–10、62)をデコードします。これにより、モジュールがファブリックに投入されネゴシエーションされる前に、どの世代に対応していると申告しているかを確認できます。