HBA卡是存储和主机之间连接的媒介。在后端存储配置前后,需要通进查看一些HBA卡信息,如HBA卡型号、HBA卡是否online、HBA卡WWN号等。这里汇总几种查看HBA卡的方法。

一、lspci 指令查看HBA卡信息

现在的HBA卡为了速度的保证,一般都是插在pci插槽上的FC HBA卡,这里以常用的FC接口HBA为例,通过lspci 查看:

1[[email protected] ~]$ lspci|grep -i Fibre
244:00.0 Fibre Channel: Emulex Corporation Saturn-X: LightPulse Fibre Channel Host Adapter (rev 03)
344:00.1 Fibre Channel: Emulex Corporation Saturn-X: LightPulse Fibre Channel Host Adapter (rev 03)

上面只能看到HBA卡的厂商是Emulex ,具体的型号这里没有列出。这时可以尝试使用lspci -vvv查看更详细的信息,如下:

1[[email protected] ~]# lspci -vvv|grep -i Fibre -A 100
244:00.0 Fibre Channel: Emulex Corporation Saturn-X: LightPulse Fibre Channel Host Adapter (rev 03)
3        Subsystem: Hewlett-Packard Company Device 3282
4        Physical Slot: 8
5        Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr+ Stepping- SERR- FastB2B- DisINTx+
6        Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <tabort->SERR- <perr- a="" a-5442="" a0:1="" abcd="" abwmgmt-="" acsviol-="" address:="" advanced="" aercap:="" aj763-63003="" aj763b="" aspm="" at="" attnbtn-="" attnind-="" autbwint-="" autwiddis-="" auxcurrent="0mA" auxpwr-="" bad="" baddllp-="" badtlp-="" bar="2" budgeting="" bwint-="" bwmgmt-="" bwnot-="" byte="" bytes="" cache="" capabilities:="" cemsk:="" cesta:="" cgenen-="" changes:="" channel="" checksum="" chkcap="" chken-="" clockpm-="" cmpltabrt-="" cmpltto-="" cn64520512="" commclk-="" completion="" compliance="" compliancesos-="" correctable="" correrr="" count="1/16" current="" d0="" d1-="" d2-="" data="" data:="" de-emphasis="" de-emphasis:="" devcap2:="" devcap:="" devctl2:="" devctl:="" devsta:="" disabled="disabled" disabled-="" dlactive-="" dlp-="" dscale="0" dsel="0" dsi-="" dual="" ecrc-="" enable="" enable-="" end="" endpoint="" engineering="" entercompliance-="" entermodifiedcompliance-="" equalizationcomplete-="" equalizationphase1-="" equalizationphase2-="" equalizationphase3-="" error="" errors:="" expansion="" express="" extsynch-="" exttag="" exttag-="" f8800000="" f8de0000="" f8df0000="" fatal="" fatalerr="" fc="" fcp-="" fields:="" first="" flags:="" flreset-="" gen="" gencap="" hba="" hp="" interrupt:="" intx-="" irq="" l0="" l0s="" l1="" latency="" latency:="" level:="" line="" link="" linkequalizationrequest-="" llactrep-="" lnkcap:="" lnkctl2:="" lnkctl:="" lnksta2:="" lnksta:="" ltr-="" malftlp-="" management="" margin:="" maskable="" masked-="" masking:="" maxpayload="" maxreadreq="" memory="" msi="" msi-x:="" msi:="" name:="" non-fatal="" non-prefetchable="" nonfatalerr="" nonfatalerr-="" normal="" nosnoop="" nosoftrst-="" not="" number:="" obff="" offset="00002000" operating="" part="" pba:="" pci-e="" pcie="" pending:="" phantfunc="" phantfunc-="" pin="" pme="" pme-="" pme-enable-="" pmeclk-="" pointer:="" port="" power="" product="" pw="13.3" pwrind-="" range="" rbe="" rcb="" read-only="" region="" report="" reporting="" reserved="" reserved:="" retrain-="" rlxdord="" rollover-="" rom="" routed="" rxerr-="" rxof-="" sdes-="" serial="" size:="" slotclk="" specific:="" speed="" speed:="" speeddis-="" status:="" supported="" surprise-="" t2:78="" table:="" target="" timeout-="" timeout:="" timeoutdis="" timeoutdis-="" tlp-="" to="" train-="" transmit="" transpend-="" trerr-="" uemsk:="" uesta:="" uesvrt:="" uncorrerr-="" unknown:="" unlimited="" unsupported="" unsuppreq="" unsupreq="" unsupreq-="" unxcmplt-="" v1="" vector="" vendor="" version="" vital="" w="" wc45273528="" width="" x8="">
7        Kernel driver in use: lpfc
8        Kernel modules: lpfc</perr-></tabort->

从上面我们可以看到HBA卡的Product Name(型号)、SN号、PN号、驱动模块(lpfc)等信息。当然还有很多我们看不明白的信息也一并输出了。

注:

1、lspci -vvv操作时,需要使用root权限进行查看,普通用户查看时部分信息会提示无权查看,如Capabilities:

2、lscp -vvv不能保证获取所有FC HBA卡的型号信息,这里只是尽可能详尽的获取信息。当然也有部分FC HBA卡直接在lspci查看时就能获取到;

3、结合modinfo等指令又可以查看目前使用的驱动版本,如(modinfo lpfc |grep -i version)。

二、读取sys文件

sys文件与proc文件有些类似,sys文件主要读取主机的硬件信息,proc主要获取系统层面或性能层面的一些信息。只要系统能识别的硬件,都可以读取相应的sys文件获取相应的信息。这里还是以上面的主机为例:

 1# HBA是否online和wwn号
 2[[email protected] ~]# cat /sys/class/fc_host/host4/port_state
 3Online
 4[[email protected] ~]# cat /sys/class/fc_host/host4/port_name
 50x10000090fa9b1724
 6#查看具体的HBA卡型号信息
 7[[email protected] ~]# cat /sys/class/scsi_host/host4/modelname
 8AJ763B/AH403A
 9[[email protected] ~]# cat /sys/class/scsi_host/host4/modeldesc
10HP 8Gb Dual Channel PCI-e 2.0 FC HBA
11#常看ROM版本
12[root@irora09s ~]# cat /sys/class/scsi_host/host4/option_rom_version
135.20x13

注:

1、这里我只查看了sys里的部分信息,更多的信息可以到hostX相应的文件夹里查看 ;

2、HBA卡的链路一般都是成对出现的,即我们平时说的多路径。所以在fc_host和scsi_host 目录下查看到一般会有host4\host5 这样成对的目录链路信息。

针对两在主机厂商Emulex和Qlogic,将其写成脚本查看型号和firmware如下:

1#!/bin/ksh
2for SCSI in `ls -d /sys/class/scsi_host/host*`;
3do
4[ -e ${SCSI}/modelname ] && echo -n 'Model Name ' && cat ${SCSI}/modelname;
5[ -e ${SCSI}/model_name ] && echo -n 'Model Name ' && cat ${SCSI}/model_name;
6[ -e ${SCSI}/fwrev ] && echo -n 'Firmware Version ' && cat ${SCSI}/fwrev;
7[ -e ${SCSI}/fw_version ] && echo -n 'Firmware Version ' && cat ${SCSI}/fw_version;
8done

三、systool 工具查看

systool 是系统上一的个查看sys信息的工具,在redhat、suse发行版里都有该工具,其位于sysfsutils rpm包中:

1[[email protected] ~]# rpm -qf /usr/bin/systool
2sysfsutils-2.1.0-7.el6.x86_64

这里我又换了一台装有该工具的主机,查看另一个HBA卡的信息,如下:

 1[[email protected] ~]#  systool -av -c fc_host
 2Class = "fc_host"
 3  Class Device = "host1"
 4  Class Device path = "/sys/class/fc_host/host1"
 5    active_fc4s         = "0x00 0x00 0x01 0x00 0x00 0x00 0x00 0x01 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 "
 6    fabric_name         = "0x100000051efabe32"
 7    issue_lip           = <store method="" only="">
 8    maxframe_size       = "2048 bytes"
 9    node_name           = "0x2000286ed4233d6a"
10    port_id             = "0x010900"
11    port_name           = "0x2100286ed4233d6a"
12    port_state          = "Online"
13    port_type           = "NPort (fabric via point-to-point)"
14    speed               = "2 Gbit"
15    supported_classes   = "Class 3"
16    supported_fc4s      = "0x00 0x00 0x01 0x00 0x00 0x00 0x00 0x01 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 "
17    supported_speeds    = "1 Gbit, 2 Gbit, 4 Gbit"
18    symbolic_name       = "Emulex FC3532 FV2.72A2 DV8.1.10.3"
19    tgtid_bind_type     = "wwpn (World Wide Port Name)"
20    uevent              = <store method="" only="">
21    Device = "host1"
22    Device path = "/sys/devices/pci0000:00/0000:00:04.0/0000:0b:00.0/host1"
23      uevent              = <store method="" only="">
24  Class Device = "host2"
25  Class Device path = "/sys/class/fc_host/host2"
26    active_fc4s         = "0x00 0x00 0x01 0x00 0x00 0x00 0x00 0x01 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 "
27    fabric_name         = "0x100000051efacbcf"
28    issue_lip           = <store method="" only="">
29    maxframe_size       = "2048 bytes"
30    node_name           = "0x2000286ed4233d6b"
31    port_id             = "0x010900"
32    port_name           = "0x2100286ed4233d6b"
33    port_state          = "Online"
34    port_type           = "NPort (fabric via point-to-point)"
35    speed               = "2 Gbit"
36    supported_classes   = "Class 3"
37    supported_fc4s      = "0x00 0x00 0x01 0x00 0x00 0x00 0x00 0x01 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 "
38    supported_speeds    = "1 Gbit, 2 Gbit, 4 Gbit"
39    symbolic_name       = "Emulex FC3532 FV2.72A2 DV8.1.10.3"
40    tgtid_bind_type     = "wwpn (World Wide Port Name)"
41    uevent              = <store method="" only="">
42    Device = "host2"
43    Device path = "/sys/devices/pci0000:00/0000:00:04.0/0000:0b:00.1/host2"
44      uevent              = <store method="" only=""></store></store></store></store></store></store>

wwn号、型号、是否在用、速率等信息一目了然。

四、官方工具

这里指的官方不但包括HBA卡原厂提供的工具,还包括后端存储厂商提供的工具,如Emulex的OCmanager工具、Qlogic的SANsurfer工具、EMC 厂商的power path(powermt display)、华赛存储的UltraPath(upTools、hot_add)等----话题扯的稍微有点远了,存储厂商提供的工具一般用于查看多路径信息等,部分工具里可能包含有查看HBA卡信息。

上面查看的几台都是Emulex的HBA卡,这里以SANsurfer查看Qlogic的为例:

SANsurfer

参考页面: