插件窝 干货文章 linux中的wwn是什么

linux中的wwn是什么

WWN 格式 输出 方法 1004    来源:    2025-04-14

在Linux系统中,WWN(World Wide Name) 是一个全球唯一的标识符,主要用于存储区域网络(SAN)和光纤通道(Fibre Channel)环境中的存储设备(如HBA卡、磁盘阵列、LUN等)。以下是详细解释:


1. WWN的类型

  • WWPN(World Wide Port Name)
    标识光纤通道设备的物理端口(如HBA卡的端口),格式通常为 16:16进制(例如 21:00:00:24:ff:31:e9:50)。
  • WWNN(World Wide Node Name)
    标识光纤通道设备的整个节点(如存储阵列或服务器),格式与WWPN类似。

2. 在Linux中查看WWN的方法

方法1:通过/sys文件系统

# 查看HBA卡的WWPN和WWNN
cat /sys/class/fc_host/host*/port_name
cat /sys/class/fc_host/host*/node_name

输出示例(需将0x前缀后的值转换为冒号分隔的格式):

0x21000024ff31e950 → 21:00:00:24:ff:31:e9:50

方法2:使用工具lsscsi

lsscsi -g

输出中会显示SCSI设备的WWN信息(如磁盘的wwn-0x50014ee20b8d1a9a)。

方法3:通过scsi_id命令

# 查看磁盘的WWN
scsi_id --page=0x83 --whitelisted --device=/dev/sdX

方法4:多路径工具(multipath

multipath -ll

输出中会显示LUN的WWN(如3600508b4000abc00)。


3. WWN的用途

  • 唯一标识存储设备:避免在SAN环境中出现冲突。
  • LUN映射:存储阵列通过WWN控制主机对LUN的访问权限。
  • 多路径配置:在Linux多路径软件(如DM-Multipath)中,WWN用于识别同一LUN的不同路径。

4. 注意事项

  • 格式转换:Linux中显示的WWN可能是0x开头的十六进制,需手动转换为标准WWN格式(冒号分隔)。
  • 虚拟化环境:虚拟机的虚拟HBA卡可能由Hypervisor分配虚拟WWN。
  • NVMe over Fabrics:NVMe设备使用类似的概念(NQN,NVMe Qualified Name)。

示例:转换WWN格式

# 原始输出(来自/sys)
echo "0x21000024ff31e950" | sed 's/0x//; s/../&:/g; s/:$//'

输出:

21:00:00:24:ff:31:e9:50

如果需要进一步帮助(如具体设备查询或配置),可以提供更多上下文信息!