服務器HBA卡常見問題


服務器HBA卡常見問題

一、概述:

FC HBA,也即Fibre Channel Host Bus Adapter,光纖通道主機適配器,簡稱光纖適配器。在FC網絡環境中,主機需要和FC網絡、FC存儲設備(SAN磁盤陣列)連接時需要使用一種接口卡,就如同連接以太網需要以太網卡一樣,這種接口卡就叫做FC HBA,簡稱FC HBA卡。

我司目前服務器上的的HBA卡主要有兩種,屬於不同廠家:

Emulex   LPe31002

驅動下載位置:

https://www.broadcom.com/products/storage/fibre-channel-host-bus-adapters/lpe31002-m6

Qlogic   Qle2692:

驅動下載位置:

https://driverdownloads.qlogic.com/QLogicDriverDownloads_UI/SearchByProduct.aspx?ProductCategory=39&Product=1259&Os=65#70

 

二、常用命令:

(1)      查看是否識別到硬件(兩種卡是一致的):

lspci |grep  -i  fibre (注意:如果沒有lspci命令,需要裝相應的包lspciutils)

(2)      查看驅動版本:

兩個廠家的驅動名稱不一樣:Qlogic:qla2xxx

                                            Emulex:lpfc

剛升級驅動還沒有加載時,可以直接看:modinfo  lpfc  | more

                                                               modinfo  qla2xxx|more

已經加載上去之后可以:(需要先查看在哪個host上)

cat /sys/class/scsi_host/host18/lpfc_drvr_version  (lpfc)

  Emulex LightPulse Fibre Channel SCSI driver 11.1.0.2

cat /sys/class/scsi_host/host16/driver_version   (qla2xxx)

  10.00.00.06.07.6-k

(3)      查看固件版本:

可以查看系統信息:

cat /sys/class/scsi_host/host15/fwrev(lpfc)

  12.6.182.8, sli-4:2:c

cat /sys/class/scsi_host/host15/fw_version(qla2xxx)

  8.08.03 (d0d5)

              emulex也可以用特定的工具查看:(需要先安裝emulex固件,見下文)

                     /usr/sbin/linlpcfg/elxflash /q

(4)      查看通道host(這里的通道相當於網卡的網口,一張網卡有兩個網口,而一張HBA卡也有兩個host)

注意:實踐發現,升級驅動之后,host會發生改變。

ls  -l  /sys/class/fc_host

 

(5)      查看通道狀態

cat /sys/class/fc_host/host*/port_stat

 

(6)      HBA上也有獨一無二的標識,:WWN(World Wide Name),FC HBA上的WWN有兩種:

① Node WWN(WWNN):每塊HBA有其獨有的Node WWN;

② Port WWN(WWPN):每塊HBA卡上每個port有其獨一無二的Port WWN。

由於通信是通過port進行的,因此多數情況下需要使用WWPN而不是WWNN。 WWN的長度為8bytes,用16進制表示並用冒號分隔,例如:50:06:04:81:D6:F3:45:42(用0x代表16進制)

cat /sys/class/fc_host/host15/port_name

0x100000109ba0e37e

              cat /sys/class/fc_host/host16/node_name

0x200000109ba0e37f

(7)      這個命令是啥?

cat /sys/class/fc_host/host16/statistics/error_frames

0x0

三、常用操作:

(1)     Emulex升級固件

1、解壓升級工具

gunzip elxflashOffline-linux-12.2.299.17-1.tgz

tar -xf elxflashOffline-linux-12.2.299.17-1.tgz

2、安裝升級工具

cd elxflashOffline-linux-12.2.299.17-1

./install.sh

3、將固件lancerg6_A12.6.182.8.grp復制到/usr/sbin/linlpfcfg/firmware目錄。

4、執行命令進行固件更新,等待執行結束。

#cd /usr/sbin/linlpcfg

#./elxflash   /f   /update  /auto   

5、使用命令./elxflash /q可以查看詳細信息。

cat /sys/class/scsi_host/hostX/fwrev  (X表示當前卡的host號)

(2)     升級驅動

源碼升級

/lib/modules/`uname -r`/modules.dep是一個依賴關系文件,也是一個數據庫文件,相當於locatedb一樣的東西。當系統需要加載內核驅動的時候需要先在這個文件中查找,如果沒有系統就會因為找不到相應的文件而停下來並提示。這時,你需要把自己的編譯的驅動文件加到/lib/modules/`uname -r`下,然后depmod,這個命令會告訴系統重新掃秒所有的驅動生成一個modules.dep文件。值得注意的是,當系統有多個驅動程序的時候,系統只會優先選擇一個驅動當作默認驅動。所以當你更新一個驅動時只需要編譯一個驅動,然后放在/lib/modules/`uname -r` 下面合適的位置,然后把原來的驅動刪除掉。再depmod就可以了。

如何編譯呢?

有多種編譯方式,這里列出幾種:

1,src.rpm包安裝方法elx-lpfc-12.2.383.0-1_rhel7u4.src.rpm

參考:https://www.cnblogs.com/wrencai/p/4513116.html

但是有幾個問題:

① 實踐的時候發現並不存在/usr/src/redhat/SPECS 這個目錄。但是會在/root下會生成rpmbuild目錄,將文中所說的內容換成/root/rpmbuild/SPEC就可以。

② 另一個問題是沒有config文件,實踐發現可以跳過,直接在相應目錄下make&make install。

③ 如果發現此時驅動還是沒變,那就在編譯的這個目錄下把驅動文件(例如lpfc.ko)拷貝到/lib/modules/`uname -r`,刪除舊有的驅動程序,然后depmod。

④ 如果你不知到舊的驅動位置,可以modinfo 驅動名稱|more 查看原有驅動文件的位置。

⑤ 有可能需要安裝一些包:gcc、rpm-build、kernel-devel

2,tar包安裝qla2xxx-src-v8.08.00.08.07.5-k19.tar

解壓之后進入目錄執行

make -C /usr/src/kernels/3.10.0-957.5.1.e*  M=`pwd` modules

會在當前目錄下生成相應的驅動文件(這里是qla2xxx.ko)

然后參考上面的操作

3,據說還有一種老版本的升級方式

參考鏈接:https://wenku.baidu.com/view/433e929f844769eae109ed84.html

(3)     故障排錯

①    最常見的就是刷屏報錯,主要和存儲側有關系。

②    有時候會遇到開機能夠切換,但是關機重啟新版本不生效,還是安裝系統時候的驅動版本。原因是開機的時候會收集驅動程序在initramfs中,當開機用到設備時就會自動加載initramfs中的驅動。所以需要重新生成initramfs文件。

mkinitrd  -f  initramfs-`uname -r `.img   `uname  -r `

或者dracut -f

附:存儲的原理圖(來源華為存儲手冊)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM