FC 协议基础:层次、端口、登录与分区
Fibre Channel 在 SFP 层面看起来很像以太网——同样的笼子、类似的光学器件——但在此之上的行为则完全不同。它是一种为存储而设计的无损、面向连接的传输:每一帧都要求按顺序到达,光纤网络通过固化的名称识别每台设备。本页介绍协议层、端口类型、寻址、登录流程和分区——阅读 SAN 交换机、理解为何其光模块受到如此严格管控所需的词汇。
层
| 层 | 名称 | 内容 | 与光模块的关系 |
|---|---|---|---|
| FC-0 | 物理层 | 介质、连接器、发射机、接收机、速率 | SFP:FC 光模块、速率 |
| FC-1 | 传输 | 8B/10B 编码(最高至 8GFC),16GFC 起采用 64B/66B;有序集;16GFC 时 FEC 为可选,32GFC 及以上为强制 | 编码字节、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 位 | 光纤网络分配的地址:域(交换机)/区域/端口;设备迁移后会变化 |
| 知名地址 | FFFFFC 名称服务器、FFFFFD 光纤网络控制器、FFFFFE 光纤网络登录服务器、FFFFFA 管理服务器 | 光纤网络服务 |
WWN 固化在 HBA 和阵列端口中,不会随布线变化——这正是按 WWPN 分区能在重新布线后依然有效,而按端口分区则不能的原因。
登录流程
- 链路初始化——速率协商(双方从最高速率开始依次尝试;速率不匹配或临界光模块会在此处显现),随后进行原语序列,直至两端同步。
- FLOGI(光纤网络登录)——N_Port 向交换机请求 FCID,并协商缓冲区信用、服务类别和帧大小。
- PLOGI(端口登录)——N_Port 与 N_Port(或与名称服务器)之间建立会话。
- PRLI(进程登录)——协商 FC-4 协议(SCSI 或 NVMe)及其参数。
- 名称服务器注册与查询——设备注册自身的 WWPN/FCID,并获知哪些已分区的目标存在;后续变化由 RSCN 通知宣告。
端口卡在 FLOGI 之前,是物理层问题(光模块、线缆、速率);卡在 FLOGI 之后,则是光纤网络/分区问题(端口诊断)。
服务类别与流量控制
| 类别 | 行为 | 用途 |
|---|---|---|
| Class 1 | 专用连接 | 已废弃 |
| Class 2 | 确认式、无连接 | 少见 |
| Class 3 | 无连接、不确认的数据报——但由于信用机制,光纤网络永远不会丢弃它 | 几乎所有存储流量 |
| Class F | 交换机间控制 | 光纤网络服务 |
缓冲区到缓冲区信用(BB_Credit):接收方授予一定数量的帧缓冲区;发送方在收到 R_RDY 确认之前,只能发送这么多帧。不会有任何丢弃;信用耗尽时发送方等待——这正是无损行为、距离限制和 慢排空(slow-drain)拥塞背后的机制(SAN 设计)。
分区与屏蔽
- 交换机上的分区(zoning)限制哪些 WWPN 可以互相看到;单发起方分区(一个 HBA 端口及其目标)是常规做法。按 WWPN 分区,而不是按端口。
- 阵列上的 LUN 屏蔽限制哪些 WWPN 可以访问哪些卷。
- VSAN(Cisco)/Virtual Fabric(Brocade)将一台交换机划分为多个独立的光纤网络;NPIV 让一个 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),让你在模块进入会与之协商的光纤网络之前,先看清它声明支持哪些代际。