服务器HBA卡常见问题
服务器HBA卡常见问题
⼀、概述:
FC HBA,也即Fibre Channel Host Bus Adapter,光纤通道主机适配器,简称光纤适配器。在FC⽹络环境中,主机需要和FC⽹络、FC存储设备(SAN磁盘阵列)连接时需要使⽤⼀种接⼝卡,就如同连接以太⽹需要以太⽹卡⼀样,这种接⼝卡就叫做FC HBA,简称FC HBA卡。
我司⽬前服务器上的的HBA卡主要有两种,属于不同⼚家:
Emulex LPe31002
驱动下载位置:
Qlogic Qle2692:
驱动下载位置:
⼆、常⽤命令:
(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.
感慨的话tar -xf elxflashOffline-linux-12.2.
2、安装升级⼯具
cd elxflashOffline-linux-12.2.299.17-1
./install.sh
3、将固件lancerg6_A12.6.p复制到/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
但是有⼏个问题:
①实践的时候发现并不存在/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)bios密码破解
然后参考上⾯的操作
3,据说还有⼀种⽼版本的升级⽅式
(3)故障排错
①最常见的就是刷屏报错,主要和存储侧有关系。
②有时候会遇到开机能够切换,但是关机重启新版本不⽣效,还是安装系统时候的驱动版本。原因是
开机的时候会收集驱动程序在initramfs中,当开机⽤到设备时就会⾃动加载initramfs 中的驱动。所以需要重新⽣成initramfs⽂件。
mkinitrd -f initramfs-`uname -r `.img `uname -r `
或者dracut -f
附:存储的原理图(来源华为存储⼿册)
>篙怎么读
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论