fcping是光纤通道网络专用连通性检测工具,需安装sg3_utils等包,目标必须为WWPN或FC-ID,不能用IP地址;物理链路状态应优先通过/sys/class/fc_host/host*/port_state等文件验证。

fcping 命令必须先确认是否可用
不是所有 Linux 发行版默认自带 fcping,它属于 sg3_utils 或独立的 fping-fc 包,常见于 RHEL/CentOS 的 EPEL 源或 SLES 的 SDK 仓库。直接运行 fcping -h 报 “command not found” 就得先装包。
- RHEL/CentOS 7+:先启用 EPEL,再
yum install sg3_utils(fcping是其中一部分) - SLES:安装
fibutils或从 SUSE SDK 获取 - Ubuntu/Debian:官方源通常不提供,需手动编译或找第三方 deb;更现实的做法是跳过
fcping,改用底层路径验证 +fcstat辅助判断 - 注意:有些旧内核(如 3.10 以下)即使装了也报
Operation not supported,因为缺少 FC transport 层的 ioctl 支持
/sys/class/fc_host/host*/ 下的 port_state 和 port_id 是第一手证据
只要 HBA 卡物理上连了光纤交换机、电源和链路都正常,内核会通过 FC 链路训练自动建立端口状态。这时候不用发包,看 /sys 文件就能知道“桥”通没通。
-
cat /sys/class/fc_host/host*/port_state必须是Online—— 如果是Linkdown、Unknown或Offline,说明物理链路或交换机端口未就绪,fcping肯定失败 -
cat /sys/class/fc_host/host*/port_id应返回类似0x012345的十六进制值 —— 若为0x000000,大概率是交换机未分配 FC-ID,检查交换机 zone 配置或端口是否被 shutdown -
cat /sys/class/fc_host/host*/port_type显示NPort (fabric via point-to-point)才表示已成功注册进 Fabric;若仍是LPort或unknown,说明没连交换机,只连了另一块 HBA 卡(point-to-point 模式)
fcping 的目标必须是有效的远程 WWPN 或 FC-ID
fcping 不接受 IP 地址或域名,也不认交换机管理 IP。它只向 FC 网络里的“设备身份”发 ELS(Exchange Link Service)帧,所以目标必须是对方设备真实注册的标识符。
- 查远端设备 WWPN:登录光纤交换机 CLI,执行
switchshow或fcnsshow,找到目标端口对应的WWPN(格式如0x2000001b329240d8) - 用 FC-ID 更可靠:交换机上
portshow <port></port>可看到该端口当前分配的FCID(如0x120001),fcping -s 0x120001比 ping WWPN 更快生效 - 别用本机 WWPN 当目标:比如
fcping -s $(cat /sys/class/fc_host/host2/port_name)会失败 —— 这是自环,FC 协议不支持 - 超时或无响应?先确认交换机是否启用了
ELS透传(某些安全策略会禁用 ELS),或远端设备是否处于Non-participating状态
丢包率高或延迟异常时,别只盯着 fcping 输出
fcping 返回的 time=xx ms 和 packet loss 看似直观,但 FC 网络里“丢包”含义和 IP 网络完全不同:它可能反映的是交换机 QoS 限速、缓冲区溢出、或是 ELS 请求被临时节流,而非物理链路中断。
- 连续多次
fcping -c 10 -s 0x120001,如果只有首包慢(>50ms)、后续稳定在 1–3ms,属正常链路训练行为;若每包都 >20ms 且抖动大,查交换机端口 error counters(porterrshow) - 对比
cat /sys/class/fc_host/host*/statistics/*_errors下的link_failure_count、loss_of_signal_count—— 这些硬件计数比fcping更权威 - 真正要验证业务连通性,得走上层路径:比如用
lsscsi看远程 LUN 是否识别出来,或dd if=/dev/zero of=/mnt/fc-lun/test bs=1M count=100 oflag=direct测试实际 I/O 延迟
/sys/class/fc_host/ 的每个文件里,以及交换机的 portshow 输出中。


















