How to troubleshoot multiple HBA Cards issue.
Instructions
Here is a step by step guide to verify that your FC HBAs installed and configured correctly.
Step-1: Determine the Manufacturer and Model of the HBAs.Run the lspci command to list all PCI cards detected on the system.
Step-2: Get the Vendor and Device IDs for the HBAs installed.These can be obtained from the file /usr/share/hwdata/pci.ids
# vi /usr/share/hwdata/pci.ids
.....
Step-3: Check if the driver modules are installed.This can be done by searching the list of available modules. (Replace 2.6.18-308.el5PAE with your kernel version in the command below)
# grep 1077 /lib/modules/2.6.18-308.el5PAE/modules.* | grep 2532
/lib/modules/2.6.18-308.el5PAE/modules.alias:alias pci:v00001077d00002532sv*sd*bc*sc*i* qla2xxx
/lib/modules/2.6.18-308.el5PAE/modules.pcimap:qla2xxx 0x00001077 0x00002532 0xffffffff 0xffffffff 0x00000000 0x00000000 0x0
The above output shows that this HBA is supported by the module qla2xxx
Step-4: Check if the drivers for these HBAs are loaded in the kernel.The lsmod command will list the currently loaded kernel modules
# lsmod | grep qla2xxx
qla2xxx 1205905 0
scsi_transport_fc 44745 1 qla2xxx
scsi_mod 144277 16 be2iscsi, ib_iser, iscsi_tcp, bnx2i, libcxgbi, libiscsi2, scsi_transport_iscsi2, scsi_dh, sr_mod, sg, usb_storage, qla2xxx, scsi_transport_fc, libata,cciss, sd_mod
The output shows the module qla2xxx is loaded by the kernel. If you don't see any output for lsmod command then you can load the module using modprobe command
# modprobe -v qla2xxx
Step-5: Getting detailed informationYou can find detailed information about the fibre channel adapters in the location /sys/class/fc_host/
# ll /sys/class/fc_host/
drwxr-xr-x 3 root root 0 Feb 5 11:28 host3
drwxr-xr-x 3 root root 0 Feb 5 11:28 host4
The directories host3 and host4 in the example above contains information specific to each adapter like node name (WWN), port name (WWN), type, speed,state etc.,
An easier way to get this information is to use the systool command.
# systool -c fc_host
Class = "fc_host"
Class Device = "host3"
Device = "host3"
Class Device = "host4"
Device = "host4"
The -v option gives you detailed output
# systool -c fc_host -v host3
Class = "fc_host"
Class Device = "host3"
Class Device path = "/sys/class/fc_host/host3"
fabric_name = "0x50014380272531e9"
issue_lip = <store method only>
node_name = "0x50014380281412e9"
port_id = "0x0000e8"
port_name = "0x50014380281412e8"
port_state = "Online"
port_type = "LPort (private loop)"
speed = "8 Gbit"
supported_classes = "Class 3"
supported_speeds = "1 Gbit, 2 Gbit, 4 Gbit, 8 Gbit"
symbolic_name = "HPAK344A FW:v5.06.03 DVR:v8.03.07.09.05.08-k"
system_hostname = ""
tgtid_bind_type = "wwpn (World Wide Port Name)"
uevent = <store method only>
Device = "host3"
Device path = "/sys/devices/pci0000:00/0000:00:01.0/0000:07:00.0/host3"
edc = <store method only>
fw_dump =
nvram = "ISP "
optrom_ctl = <store method only>
optrom =
reset = <store method only>
sfp = ""
uevent = <store method only>
vpd = "&"