linux磁盘设备名重启后会漂移,应使用wwn等唯一硬件标识精准识别物理盘:fc场景查wwpn,lun场景用lsscsi或udevadm查wwn,nvme/云盘用nvme id-ctrl或/dev/disk/by-id/wwn-,所有生产配置须基于wwn。

在 Linux 磁盘管理中,设备文件名(如 /dev/sda、/dev/nvme0n1)重启后可能漂移,这是内核按探测时序动态分配的结果,不能作为物理盘的稳定标识。要精准锁定某块物理磁盘,必须依赖其出厂写入的唯一硬件标识——WWN(World Wide Name)或等效 ID(如 SN、EUI-64、SCSI ID_SERIAL_SHORT)。以下是分场景的实操方法:
查 FC HBA 卡自身的 WWPN(主机侧端口 ID)
适用于光纤通道直连 SAN 场景,用于确认 HBA 卡身份及交换机 zoning 配置
- 路径:
/sys/class/fc_host/host*/port_name - 执行:
ls /sys/class/fc_host/ && cat /sys/class/fc_host/host*/port_name
- 输出示例:
0x210000e08b907955→ 实际 WWPN 是210000e08b907955(去掉0x,共 16 字符十六进制) - 注意:若
/sys/class/fc_host/为空,说明 FC 驱动未加载或硬件未就绪
查后端 LUN 的真实 WWN(存储阵列分配的设备 ID)
这才是你在多路径、LUN 映射、灾备配置中真正要匹配的“这块盘是谁家的”
- 首选命令(兼容主流阵列):
lsscsi -g --scsi_id -s
输出中形如
36000144000000010e00e0d0d1db7b2c9的长串即为 SCSI VPD Page 0x83 返回的 LUN WWN - 备用验证(需确保是直连块设备):
udevadm info --query=all --name=/dev/sdX | grep ID_SERIAL_SHORT
- 关键提醒:
-
/dev/sdX必须是底层物理设备(如/dev/sdb),不能是 multipath 设备(如/dev/mapper/mpatha) -
scsi_id -g -u -s /block/sdX在 RHEL/CentOS 7+ 已弃用,不推荐
-
查 NVMe 或云盘的等效唯一标识
NVMe 无传统 WWN,但可用 IEEE EUI-64 或序列号替代;云盘则依赖 /dev/disk/by-id/ 下的 wwn- 链接
使用 OpenAI Codex CLI 处理编码任务。触发词:codex、code review、fix CI、refactor code、implement feature、coding agent、gpt-5-codex。Clawdbot 可将编码工作委托给 Codex CLI 作为子代理或直接工具。
- NVMe 盘:
nvme id-ctrl /dev/nvme0n1 | grep -i "sn\|ieee"
关注
ieee行(如001b440011223344),格式为 EUI-64,可作 WWN 使用 - 云硬盘(阿里云 ESSD、腾讯云 CBS 等):
ls -l /dev/disk/by-id/ | grep wwn-
输出如
wwn-0x50000397c80b685d -> ../../sdc,该wwn-xxx就是设备标识与盘符的稳定映射
用 WWN 做生产级挂载和识别(防漂移核心实践)
所有自动化脚本、fstab、multipath.conf、LVM PV 初始化都应基于 WWN,而非 /dev/sdX
- fstab 示例(使用 by-id):
/dev/disk/by-id/wwn-0x50000397c80b685d /data xfs defaults 0 0
- LVM 物理卷初始化(避免误选):
pvcreate /dev/disk/by-id/wwn-0x50000397c80b685d
- 检查是否已绑定:
lsblk -o NAME,MODEL,SERIAL,WWN,FSTYPE,MOUNTPOINT
(部分内核版本支持
WWN列,若无则结合lsscsi和nvme id-ctrl补全)
不复杂但容易忽略










