服务器测评网
我们一直在努力

Linux下如何查看设备WWN号?命令有哪些?

在Linux系统中,WWN(World Wide Name)是全球唯一标识设备的名称,主要用于存储设备、光纤通道适配器等硬件设备,查看设备的WWN信息对于设备管理、故障排查、存储网络配置等场景至关重要,本文将详细介绍在Linux系统中查看WWN的多种方法,涵盖不同硬件类型和工具,帮助用户全面掌握WWN的获取技巧。

Linux下如何查看设备WWN号?命令有哪些?

通过/proc文件系统查看WWN

Linux系统的/proc文件系统提供了内核与硬件信息的交互接口,部分设备的WWN信息可以直接通过读取特定文件获取,这种方法无需安装额外工具,适合快速查看基础信息。

光纤通道适配器WWN

对于光纤通道(Fibre Channel)适配器,其WWN通常存储在/proc/scsi/fc_host/目录下的主机适配器文件中。

cat /proc/scsi/fc_host/host*/port_name

该命令会列出所有光纤通道主机的端口名称(WWN),格式为10:00:00:00:00:00:00:0020:00:00:00:00:00:00:00,分别表示端口WWN(PWWN)和节点WWN(NWWN)。

SAS/SATA设备WWN

对于SAS(Serial Attached SCSI)或SATA设备,部分情况下可以通过/proc/scsi/scsi文件获取WWN。

cat /proc/scsi/scsi | grep -i "wwn"

但需要注意的是,该方法并非所有设备都支持,具体取决于驱动和硬件厂商的实现。

使用sysfs文件系统查看WWN

sysfs是Linux系统中另一个重要的虚拟文件系统,它以更结构化的方式呈现设备信息,相较于/proc,sysfs提供了更详细的设备属性,包括WWN。

光纤通道设备WWN

光纤通道设备的WWN信息通常位于/sys/class/fc_host/目录下,每个主机适配器对应一个子目录(如host0host1),其中包含以下关键文件:

  • port_name:端口WWN(PWWN)
  • node_name:节点WWN(NWWN)

查看命令示例:

# 查看所有光纤通道主机的PWWN和NWWN
for host in /sys/class/fc_host/host*; do
    echo "Host: $(basename $host)"
    echo "PWWN: $(cat $host/port_name)"
    echo "NWWN: $(cat $host/node_name)"
    echo "----------------------"
done

SCSI设备WWN

对于SCSI设备(包括SAS、SATA等),其WWN信息可能存储在/sys/class/scsi_device/目录下,每个设备对应一个子目录(如0:0:0:0),部分设备会提供wwid文件:

cat /sys/class/scsi_device/*/device/wwid

wwid文件通常返回设备的唯一标识符,格式可能为naa.60014054abcdef12,其中naa表示命名授权格式,60014054abcdef12为WWN值。

NVMe设备WWN

NVMe(Non-Volatile Memory Express)设备的WWN信息可以通过/sys/class/nvme/目录查看,每个NVMe设备对应一个子目录(如nvme0),其WWN存储在device/wwid文件中:

Linux下如何查看设备WWN号?命令有哪些?

cat /sys/class/nvme/nvme*/device/wwid

输出格式通常为eui.00124b3801234567uuid.12345678-1234-1234-1234-123456789012,其中EUI格式的值即为设备的WWN。

使用命令行工具查看WWN

Linux系统提供了多种命令行工具,可以更便捷地查看设备的WWN信息,以下是常用的工具及其使用方法。

lsscsi

lsscsi是一个用于列出SCSI设备的工具,能够直观显示设备的WWN信息,首先需要安装该工具:

# 基于Debian/Ubuntu系统
sudo apt-get install lsscsi
# 基于RHEL/CentOS系统
sudo yum install lsscsi

安装后,直接运行lsscsi -g即可显示设备的WWN:

lsscsi -g

输出示例:

[0:0:0:0]    disk    ATA      Samsung SSD 860  EVO 1TB  1.0   /dev/sda   [0:0:0:0] (naa.5002538d12345678)
[1:0:0:0]    disk    LSI      LOGICAY     SSD-SCM11     5.00  /dev/sdb   [0:0:0:1] (naa.60014054abcdef12)

naa.开头的字符串即为设备的WWN。

sg3-utils

sg3-utils是一套用于SCSI设备的工具集,其中sg_inq命令可以查询设备的标识信息,包括WWN,安装方法:

# 基于Debian/Ubuntu系统
sudo apt-get install sg3-utils
# 基于RHEL/CentOS系统
sudo yum install sg3-utils

使用sg_inq命令查看设备WWN:

sg_inq -p 0x83 /dev/sda

输出示例:

 Inquiry response for /dev/sda:
 PQual=0, PType=0, Reserved=0, Length=96
 Vendor: ATA      Model: Samsung SSD 860  EVO 1TB  Rev: 1.0
 Product: Samsung SSD 860  EVO 1TB 1.0
 Serial No: S2Z8NB0K123456
 Version: M5QEMEA0
 Additional length: 96
 Protocol identifier: 0 (Fibre Channel)
 WWN: 5002538d12345678

其中WWN:字段即为设备的WWN。

nvme-cli

对于NVMe设备,nvme-cli工具提供了更专业的查询方式,安装方法:

Linux下如何查看设备WWN号?命令有哪些?

# 基于Debian/Ubuntu系统
sudo apt-get install nvme-cli
# 基于RHEL/CentOS系统
sudo yum install nvme-cli

使用nvme list-subsys命令查看NVMe设备的WWN:

nvme list-subsys

输出示例:

Subsystem: nvme-subsys0
    NQN: nqn.2014-08.org.nvmexpress:uuid:12345678-1234-1234-1234-123456789012
    Namespace ID: namespace1
        UUID: 12345678-1234-1234-1234-123456789012
        EUI: 00124b3801234567

其中EUI:字段即为设备的WWN。

multipath工具

在多路径环境中,multipath工具可以显示设备的WWN信息,安装multipath-tools后,运行以下命令:

multipath -ll

输出示例:

360014054abcdef12 dm-0 LSI,LOGICAY SSD-SCM11
size=931G features='1 queue_if_no_path' hwhandler='0' wp=rw
|-+- policy='service-time 0' prio=1 status=active
| `- 0:0:0:1 sdb 8:16 active ready running
`-+- policy='service-time 0' prio=1 status=enabled
  `- 1:0:0:1 sdc 8:32 active ready running

其中360014054abcdef12即为设备的WWN。

不同场景下的WWN查看技巧

虚拟化环境

在虚拟化环境中(如KVM、VMware),虚拟设备的WWN可能需要通过宿主机或虚拟化平台查看,在KVM中,可以通过virsh domblklist命令查看磁盘设备,再结合lsscsisg_inq获取WWN。

存储阵列

对于存储阵列设备(如EMC、NetApp、Dell等),通常需要使用厂商提供的专用工具查看WWN,Dell的PERCCLI工具或EMC的Naviseccli工具可以获取存储端口的WWN信息。

多路径环境

在多路径配置下,设备的WWN可能通过多个路径显示,但WWN值应保持一致,使用multipath工具可以确认设备的WWN及多路径状态,确保配置正确。

注意事项

  1. 权限问题:部分文件(如/proc/scsi/scsi)需要root权限才能访问,建议使用sudo执行相关命令。
  2. 驱动支持:并非所有设备都支持WWN查询,具体取决于硬件驱动和厂商实现。
  3. 格式差异:WWN的格式可能因设备类型而异,常见的有naa.eui.iqn.等,需根据实际需求识别。
  4. 多路径配置:在多路径环境中,确保所有路径的WWN一致,避免配置冲突。

在Linux系统中查看WWN信息是设备管理的重要技能,通过/procsysfs文件系统以及lsscsisg3-utilsnvme-cli等工具,可以灵活应对不同硬件类型和场景的需求,掌握这些方法不仅有助于快速定位设备,还能为存储网络配置、故障排查等提供关键支持,在实际操作中,建议根据设备类型和系统环境选择最合适的查询方式,并注意权限和格式问题,确保信息获取的准确性和高效性。

赞(0)
未经允许不得转载:好主机测评网 » Linux下如何查看设备WWN号?命令有哪些?