最稳路径是直接读取 /sys/class/fc_host/host*/port_name,输出如 0x210000e08b907955,去掉 0x 后的16位十六进制字符串即为标准wwpn;若该目录为空,需检查hba是否被识别及驱动是否加载。

直接看 /sys/class/fc_host/host*/port_name 是最稳的路径
Linux下HBA卡的物理WWN(准确说是WWPN)必须从主机侧硬件接口读取,不是从设备名或/dev/sdX推导出来的。/sys/class/fc_host/host*/port_name 是内核通过FC驱动暴露的标准入口,只要HBA卡被识别、驱动加载成功,这个文件就存在且内容可靠。
- 输出形如
0x210000e08b907955,去掉前缀0x后的 16 位十六进制字符串就是标准 WWPN(例如210000e08b907955) - 如果
ls /sys/class/fc_host/为空,说明 HBA 卡未被识别:检查lspci | grep -i fibre是否列出设备;再查dmesg | grep -i qla2xxx|lpfc看驱动是否加载失败 - 多张卡会对应多个
host*目录(如host4、host5),每张卡一个 WWPN,别漏掉
别把 node_name 和 port_name 搞混
同一个 /sys/class/fc_host/hostX/ 下有俩关键文件:
port_name:即 WWPN,是端口级唯一标识,存储侧 zoning 和 LUN mapping 必须用它node_name:即 WWNN,是整张 HBA 卡的节点 ID,一般只在交换机 zoning 的高级策略里用,LUN 映射几乎不用实际中常见错误:把
node_name当成 WWPN 提交给存储管理员,结果映射后主机扫不到 LUN
Browser Setup (No-Root Linux)下载在无 root/sudo 权限的环境(云容器、VPS、隔离主机)中安装并配置 OpenClaw 浏览器工具的 headless Chrome。适用场景:...
Emulex 卡的 WWPN 通常以
1开头,QLogic 以2开头,可快速辅助判断——但不能反向依赖,必须以port_name为准
映射前确认 HBA 卡在线且已连接光纤
WWPN 值正确 ≠ HBA 卡能通信。映射前务必验证链路状态:
-
cat /sys/class/fc_host/host*/port_state应为Online,不是Linkdown或Unknown -
cat /sys/class/fc_host/host*/port_type若显示NPort,说明已连入 Fabric(即接入了 FC 交换机);若为LPort或Private Loop,大概率是直连或未进交换机,多数企业存储不支持直连映射 -
cat /sys/class/fc_host/host*/speed应显示具体速率(如8 Gbit),若为unknown,说明物理链路未通
映射后必须执行 rescan 才能识别新 LUN
存储管理后台完成 LUN 映射只是第一步,Linux 主机不会自动感知。必须触发 SCSI 总线重扫描:
- 对应每张 HBA 卡执行:
echo "- - -" > /sys/class/scsi_host/host*/scan - 注意:这里的
host<em></em>要和前面查 WWPN 的host一致(比如查的是host4和host5,就得扫这两个) - 扫描后运行
lsscsi或ls /sys/block/确认新设备是否出现;若仍无,检查多路径软件(如multipath -ll)是否已启动并识别
真正容易被忽略的是:有些环境里 HBA 卡虽有 WWPN、port_state 是 Online,但 fabric_name 为空或为 0x00000000,说明没注册进 Fabric —— 这时候即使映射了 LUN,主机也扫不到。得先排查交换机 zoning 和 port enable 状态。










