在Linux/Unix操作系统中,有方法或使用命令来确定光纤通道(FC)HBA的WWN(WWNN、WWPN、WWID)及其详细信息,可通过从sysfs中或使用systool命令找到HBA卡信息。

什么是SAN?

大多数IT行业使用SAN(存储区域网络)和fas I/O来获得更高的性能。

SAN是一种高速网络,可在存储设备和服务器之间建立连接,从而提供更好的性能,它通过HBA连接到光纤通道(FC)。

SCSI(小型系统系统接口)是用于在服务器和存储设备之间进行通信的协议。

为什么需要一个WWN号?

如果任何Linux服务器或系统通过光纤通道(FC)HBA卡连接到一个或多个SAN交换机,则存储团队必须在光纤通道交换机上创建分区,以将存储分配和取消分配给特定的Linux主机。

如果您需要Linux主机的其他存储,则必须为存储团队提供WWN号,然后他们将根据WWN号分配新的LUN。

您必须扫描SCSI主机以查找由存储团队分配的新LUNs。

著名的FC主机总线适配器是QLogic、Emulex、Brocade、Cisco等。

一些重要的关键说明:

WWN:World Wide Name(全球通用名称)。

WWNN:World Wide Node Name(全球节点名称)。

WWPN:World Wide Port Name(全球端口名称)。

WWID:World Wide Identifier(全球标识符)。

OUI:Organizationally Unique Identifier(组织唯一标识符)。

如何查找在Linux系统上安装的HBA卡的列表

您可以通过运行lspci命令轻松确定Linux系统上安装了多少HBA卡:

# lspci -nn | grep -i hba
07:00.0 Fibre Channel [0c04]: QLogic Corp. ISP2532-based 8Gb Fibre Channel to PCI Express HBA [1077:2532] (rev 02)
07:00.1 Fibre Channel [0c04]: QLogic Corp. ISP2532-based 8Gb Fibre Channel to PCI Express HBA [1077:2532] (rev 02)
08:00.0 Fibre Channel [0c04]: QLogic Corp. ISP2532-based 8Gb Fibre Channel to PCI Express HBA [1077:2532] (rev 02)
08:00.0 Fibre Channel [0c04]: QLogic Corp. ISP2532-based 8Gb Fibre Channel to PCI Express HBA [1077:2532] (rev 02)

方法1、在Linux中手动识别HBA卡信息:找到HBA卡的WWN号

您可以通过从sysfs中列出来找到HBA卡信息,如下所示。

转到以下路径检查可用的HBA端口:

# ls -l /sys/class/fc_host
total 0
lrwxrwxrwx 1 root root 0 Aug 26 17:10 host1 -> ../../devices/pci0000:00/0000:00:02.0/0000:03:00.0/host1/fc_host/host1
lrwxrwxrwx 1 root root 0 Aug 26 17:10 host2 -> ../../devices/pci0000:00/0000:00:02.2/0000:04:00.0/host2/fc_host/host2
lrwxrwxrwx 1 root root 0 Aug 26 17:10 host3 -> ../../devices/pci0000:00/0000:00:02.2/0000:04:00.0/host2/fc_host/host3
lrwxrwxrwx 1 root root 0 Aug 26 17:10 host4 -> ../../devices/pci0000:00/0000:00:02.2/0000:04:00.0/host2/fc_host/host4

转到以下路径查看Linux系统上使用的HBA端口:

# ls -lrt /sys/class/fc_transport/
drwxr-xr-x  2 root root 0 May 27 09:40 target7:0:2
drwxr-xr-x  2 root root 0 May 27 09:40 target7:0:1
drwxr-xr-x  2 root root 0 May 27 09:40 target7:0:0
drwxr-xr-x  2 root root 0 May 27 09:40 target5:0:2
drwxr-xr-x  2 root root 0 May 27 09:40 target5:0:1
drwxr-xr-x  2 root root 0 May 27 09:40 target5:0:0

转到以下路径以在Linux系统上找到fc主机(HBA卡)的wwn号:

# cat /sys/class/fc_host/host?/port_name
0x500143802426baf2
0x500143802426baf3
0x500143802426baf4
0x500143802426baf5

如果要检查特定的fc主机wwn编号,请使用以下格式:

# cat /sys/class/fc_host/host1/node_name

0x500143802426baf2

转到以下路径检查HBA端口的状态:

# more /sys/class/fc_host/host?/port_state
::::::::::::::
/sys/class/fc_host/host1/port_state
::::::::::::::
Online
::::::::::::::
/sys/class/fc_host/host2/port_state
::::::::::::::
Online
::::::::::::::
/sys/class/fc_host/host3/port_state
::::::::::::::
Online
::::::::::::::
/sys/class/fc_host/host4/port_state
::::::::::::::
Online

方法2、使用systool命令在Linux中识别HBA卡信息:找到HBA卡的WWN号

systool是使用libsysfs提供的API来收集信息的工具,它允许您按总线、类和拓扑查看系统设备信息。

在不带参数的情况下运行systool时,将显示所有可用的总线类型、设备类和根设备。

下面将在Linux系统上安装systool,可以从发行版官方存储库轻松安装systool。

对于RHEL、CentOS 6/7系统,请使用yum命令安装systool:

$ sudo yum install -y sysfsutils

对于RHEL/CentOS 8和Fedora系统,请使用dnf命令安装systool:

$ sudo dnf install -y sysfsutils

在Linux系统上安装sysfsutils软件包后,运行以下命令以查找fc主机的WWN号:

# systool -c fc_host -v | grep port_name
port_name           = "0x500143802426baf2"
port_name           = "0x500143802426baf3"
port_name           = "0x500143802426baf4"
port_name           = "0x500143802426baf5"

运行以下命令以检查HBA端口的状态:

# systool -c fc_host -v | grep port_state
port_state          = "Online"
port_state          = "Online"
port_state          = "Online"
port_state          = "Online"

如果要检查特定的fc主机wwn编号,请运行以下命令:

# systool -c fc_host -v -d host2 | grep port_name