How to reset hba port in linux

Getting your Trinity Audio player ready...

In this post we are going to share about how to reset hba port in linux if required due to any reason.We will see what are hba reset command in linux available for the same.

Most of the linux systems have host bus adapter installed for SAN Disks use by server where more disks required like enterprise development or production servers.

All disk gets allocated to server from SAN and for that reason SAN card is installed which is also termed Host Bus Adapters popularly known as HBA.

HBA reset command in Linux

There might be many reason you may need to reset HBA may be because it is not recognizing newly allocated disk or due to any other reason.

So before going to reset HBA first we need to see how we can identify what HBA is installed in linux server.

How to identify hba in linux

Let us see how to identify hba in linux to have confirmation which HBA is installed on linux system.

Qlogic and Emulex are brand leaders.So this command will help unless until you have any other HBA installed in your system.

Even it is not out of these two still you can use these commands and either you can review output or grep with the name of HBA vendor.

1. # lspci |egrep "Emulex|qlc"
12:00.0 Fibre Channel: Emulex Corporation Gen6: LPe32000 Fibre Channel Host Adapter (rev 01)
86:00.0 Fibre Channel: Emulex Corporation Gen6: LPe32000 Fibre Channel Host Adapter (rev 01)
2. # dmesg |egrep "Emulex|qlc"
Emulex LightPulse Fibre Channel SCSI driver 11.0.1.6
Copyright(c) 2004-2015 
Emulex.  All rights reserved.
scsi0:Emulex LPe32000 16Gb PCIe Fibre Channel Adapter on PCI bus 12 device 00 irq 32
scsi1:Emulex LPe32000 16Gb PCIe Fibre Channel Adapter on PCI bus 86 device 00 irq 64

You might have observed there is always two HBA installed to have redundancy to have multipath configured from storage side.

So now you have your query resolved about how to identify hba is linux so let’s proceed further.

So let us see how to reset hba port in linux and see what are hba reset commands in linux to reset HBA port. Mostly QLogic and Emulex HBA in linux.

How to reset hba port – QLogic hba port reset

Basically there is utility called sg3_utils which is installed on many systems.You can check to confirm the utility installations.

# rpm -qa |grep sg3_utils
sg3_utils-1.37-12.el7.x86_64
sg3_utils-libs-1.37-12.el7.x86_64

If it is not installed you can check availability of packages from yum as it is delivered with RHEL distro.

# yum --enablerepo=* list sg3_utils
Installed Packages
sg3_utils.x86_64    1.37-12.el7                                                @distro/7.3-7.el7

If you want to install use install options with above command instead of list like below.

# yum --enablerepo=* install sg3_utils
This will prompt you to confirm please answer and get it installed.

Now let us see how to reset hba port for QLogic HBA.

First Method : 

sg_reset command in linux

We can use sg_reset command in linux and syntax of QLogic hba reset commands in linux via sg_reset command in linux is as below.

# /usr/bin/sg_reset -H /dev/sgx
# sg_reset -H /dev/sg30
Here /dev/sgx is the device via which LUNs are getting allocated.

Sample output is as below

You can verify this in messages file it will display like below

# cat /var/log/messages |grep qla
Mar 9 12:00:45 hostname ker:qla2xxx[0000:14:00.1]-8018:7:ADAPTER RESET ISSUED
Mar 9 12:00:46 hostname ker:qla2xxx[0000:14:00.1]-8017:7:ADAPTER RESET SUCCEEDED

Well we have gone through how to reset hba for QLogic adapter using sg_reset command.

Let us see another method how to reset HBA port in linux using

2nd Method :

issue_lip command in linux

# cat /sys/class/fc_host/host*/port_name
0x100098f2b3a14e860x100098f2b3a14ec0 
If you want to reset HBA 0
# echo 1 >/sys/class/fc_host/host0/issue_lip 
If you want to reset HBA 1
# echo 1 > /sys/class/fc_host/host0/issue_lip 
 

So we have seen two method for how to reset hba port in linux for QLogic host bus adapter.

How to reset hba port – Emulex hba port reset

Now let us see how to reset hba port in linux for Emulex Adapter.

First Method :

issue_lip command in linux

You can use issue_lip command for Emulex card as well.We will see another options available.

# cat /sys/class/fc_host/host*/port_name
0x100098f2b3a14e860x100098f2b3a14ec0
If you want to reset HBA 0
# echo 1 > #/sys/class/fc_host/host0/issue_lip
If you want to reset HBA 1
# echo 1 > /sys/class/fc_host/host0/issue_lip
Or you can simply make it offline and online using below.Please 
mind which hba you are going to reset.
# cat /sys/class/scsi_host/host*/board_mode 
online
online
# echo offline > /sys/class/scsi_host/host0/board_mode
# echo offline > /sys/class/scsi_host/host1/board_mode
# echo online  > /sys/class/scsi_host/host0/board_mode
# echo online  > /sys/class/scsi_host/host1/board_mode 

2nd Method :

hbacmd commands in linux

If HBAnyware is installed on system you can use hbacmd command for managing HBA related stuff.

You can enquire if it is installed or not.

# rpm –qa |grep –I hbanyware
You can use locate command in linux to find path of hbacmd command 
in linux.
# locate hbacmd

If hbacmd command path is set in your user profile you can directly run hbacmd else you have to use absolute path.

See below sample listing HBA installed using hbacmd command in linux.

# /usr/sbin/hbanyware/hbacmd listHBA
Manageable HBA List
Port WWN   : 10:00:00:00:c9:9c:7e:22
Node WWN   : 20:00:00:00:c9:9c:7e:22
Fabric Name: 10:00:50:eb:1a:5e:93:00
Flags      : 8000fe00
Host Name  : server26
Mfg        : Emulex Corporation
Serial No. : BT00587794
Port Number: n/a
Mode       : Initiator

How to reset hba port using hbacmd commands in linux.You can reset specific HBA using hbacmd commands .

Please refer hba reset command in below example.  

# hbacmd RESET <WWPN>
# /usr/sbin/hbanyware/hbacmd Reset 10:00:00:00:c9:9c:7e:22
Reset HBA 10:00:00:00:c9:9c:7e:22
# /usr/sbin/hbanyware/hbacmd Reset 10:00:00:00:c9:9c:7a:f8
Rest HBA 10:00:00:00:c9:9c:7a:f8

That`s it about how to reset hba port in linux using issue_lip command, sg_reset command and hbacmd command in linux.

I think you will find it useful related to reset hba port in linux.If you like our work request you to like and subscribe our blog to have alerts about new posts posted immediately. 

Other Similar Articles you may like…