技术标签: linux里hba状态
本文阐述了Linux系统下HBA卡的常用基本操作,包括如何通过命令或日志查找HBA,如何查找WWN以及设置永久绑定,以及HBA卡安装完成之后如何识别存储设备。
主机外接存储的准备工作:
HBA卡与操作系统的安装顺序决定了主机外接存储的操作步骤。如果HBA安装在操作系统之前,那么连接磁盘还是比较简单的。安装程序检测到发现的硬件并准备所需模块。如果适配器安装于操作系统之后,或在操作系统安装之后有变更,则用户需要手动安装。本文以Emulex 1000作为示例HBA。
HBA安装于操作系统之前:安装程序发现硬件,准备模块
HBA安装或变更于操作系统之后:用户手动安装
查看HBA:
lspci (Linux command)
[root@sandboxlinux etc]# lspci
00:00.0 Host bridge: VIA Technologies, Inc. VT82C693A/694x [Apollo PRO133x] (rev c4)
00:01.0 PCI bridge: VIA Technologies, Inc. VT82C598/694x [Apollo MVP3/Pro133x AGP]
00:04.0 ISA bridge: VIA Technologies, Inc. VT82C686 [Apollo Super South] (rev 40)
00:04.1 IDE interface: VIA Technologies, Inc.
VT82C586A/B/VT82C686/A/B/VT8233/A/C/VT8235 PIPC Bus Master IDE (rev 06
00:04.2 USB Controller: VIA Technologies, Inc. USB (rev 16)
00:04.3 USB Controller: VIA Technologies, Inc. USB (rev 16)
00:04.4 Host bridge: VIA Technologies, Inc. VT82C686 [Apollo Super ACPI] (rev 40)
00:09.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+(rev 10)
00:0a.0 Ethernet controller: 3Com Corporation 3c905 100BaseTX [Boomerang]
00:0c.0 Fibre Channel: Emulex Corporation: Unknown device fa00 (rev 01)
00:0c.1 Fibre Channel: Emulex Corporation: Unknown device fa00 (rev 01)
01:00.0 VGA compatible controller: ATI Technologies Inc Rage XL AGP 2X (rev 27)
如果已经安装了HBA,使用上述命令确认HBA芯片集的类型。此命令列出了适配器的芯片集。本例显示,Fibre Channel Emulex card, device fa00 , rev 01。
在消息日志中查找HBA:
另一个在服务器中查找HBA类型的方法是查看消息日志文件最后一次启动过程中保存的信息。本例中,在/var/log/目录下执行“more messages |grep HBA”我们看见两个Emulex LP10000 HBA。
[#/var/log/more messages |grep HBA
Oct 18 14:55:21 sandboxlinux kernel: scsi0 : HBA: Emulex LightPulse
LP10000 on PCI bus 00 device 60 irq 11
Oct 18 14:55:21 sandboxlinux kernel: scsi1 : HBA: Emulex LightPulse
LP10000 on PCI bus 00 device 61 irq 9
Emulex HBA驱动:
Emulex驱动位于/lib/modules/2.4.21-4.EL/kernel/drivers/scsi 。SCSI驱动文件是lpfcdd.o。
/lib/modules/2.4.21-4.EL/kernel/drivers/scsi
3w-xxxx.o ata_piix.o ide-scsi.o lpfcdd.orig scsi_mod.o st.o
aacraid BusLogic.o ips.o megaraid2.o sd_mod.o sym53c8xx_2
aic7xxx dpt_i2o.o libata.o megaraid.o sg.o sym53c8xx.o
aic7xxx_old.o gdth.o lpfcdd.o
lsmod命令验证模块已被加载。本例显示驱动已被加载,名为lpfcdd。
/sbin/lsmod
Module Size Used by Tainted: P
ide-cd 34016 0 (autoclean)
cdrom 32576 0 (autoclean) [ide-cd]
mousedev 5624 1 (autoclean)
input 6144 0 (autoclean) [mousedev]
iptable_filter 2412 1 (autoclean)
ext3 89960 2
jbd 55060 2 [ext3]
lpfcdd 295016 18
aic7xxx 162064 4
sd_mod 13360 25 [emcp]
scsi_mod 112680 5 [emcpmpap emcpmp
如何使用Emulex lputil工具查找WWN:
通过执行lputil,可通过Emulex “lputil”工具查找HBA卡的WWN名。选择2“Adapter Information”,之后选择4“IEEE Address”。此地址将会被显示成为2个8位16进制字符,即为WWN。
Emulex永久绑定:
在光纤网络环境下,EMC推荐永久绑定驱动,但不强制要求,目的是限制网络存储只能通过预定义的端口进行通讯。如不绑定,则无法保证服务器端与EMC存储阵列通过光纤网络通讯逻辑路由的一致性。如果交换机的物理配置发生变更(如调换线缆或主机重启),逻辑路由将无法保持一致,这将会导致数据损坏。注意Emulex驱动的永久绑定是基于target的,而非LUN。可通过两种方式来实现永久绑定,使用Emulex配置文件/etc/lpfc.conf,或在/etc/modules.conf文件中添加选项。
lpfc.conf文件包含所有控制驱动初始化的参数。此文件一经修改,需要经过重新编译和加载才能使改动生效。也就是说,如果lpfc.conf文件中添加了永久绑定则必须重新加载。
配置lpfc.conf文件的步骤:
在lpfc.conf文件中配置永久绑定,首先在lpfc.conf文件中查找lpfc_bind_entries参数并将此参数设置成该主机实际的绑定数目。例如:int lpfc_bind_entries =4; 定义了4个绑定。
第二,选择一种永久绑定的方式。Emulex有三种永久绑定的方法:
lpfc_fcp_bind_WWNN将指定的World Wide Node Name绑定至target ID
lpfc_fcp_bind_WWPN将指定的World Wide Port Name绑定至target ID
lpfc_fcp_bind_DID将指定的port ID绑定至target ID
EMC推荐通过WWPN永久绑定。只能使用一种永久绑定方式。当指定target ID时,Target 0不能被使用,因为target 0是为控制器保留的。
第三步,查找lpfc_automap参数并将其设置为0。
第四步,查找lpfc_scandown参数并将其设置为0。
第五步,保存lpfc.conf文件。
第六步,使用make build命令编译驱动。
第七步,使用make install命令在当前运行的内核安装驱动。make install参数将驱动复制到/lib/modules/$myversion/kernel/drivers/scsi($myversion是内核版本)。
我们按照target device WWPN建立FCP绑定。lpfc_fcp_bind_WWPN将指定WWPN绑定至target ID。该绑定确保分配的target在重启之后仍被保存。绑定内容格式为:“NNNNNNNNNNNNNNNN:lpfcXtY”,NNNNNNNNNNNNNNNN是16bit数代表着target WWPN。X是物理硬件适配器编号,Y是分配的target。多条语句之间以逗号相间隔,以分号为结束。目前无法将适配器target指定给特定的sd设备,/dev/sdX。
例如:char *lpfc_fcp_bind_WWPN[]={"21000020370cf8263:lpfc1t0"};
举例1:
char *lpfc_fcp_bind_WWPN={.NNNNNNNNNNNNNNNN:lpfcXtY.};
vi /etc/lpfc.conf
int lpfc_bind_entries =4;
int lpfc_automap parameter=0;
int lpfc_scandown=0;
char *lpfc_fcp_bind_WWPN={"50060160006000ed:lpfc0t1",
"50060168006000ed:lpfc0t2","50060160006000ed:lpfc1t1",
"50060168006000ed:lpfc1t2"};
本例中我们修改了lpfc.conf文件,将参数lpfc_bind_entries,lpfc_automap和
lpfc_scandown设置为0,并通过lpfc_fcp_bind_WWPN绑定WWPN。
配置module.conf文件的步骤:
在module.conf文件中配置永久绑定,首先为系统中每一个adapter指定WWNN/WWPN以及target信息,之后通过在文件中添加永久绑定参数修改module.conf文件。
首先,将lpfc_bind_entries参数设置成主机实际绑定的数量:比如:lpfc_bind_entries=4。
第二步,将lpfc_scandown参数设置成“0”。
第三步,将lpfc_automap参数设置成“0”。
第四步,选择lpfc_fcp_bind_WWPN, lpfc_fcp_bind_WWNN 或lpfc_fcp_bind_DID, target ID设置绑定类型。
EMC推荐通过WWPN实现永久绑定。
第五步,保存对/etc/modules.conf文件的更改。
第六步,通过执行/sbin/#./modprobe lpfcdd更新lpfcdd模块。
举例2:
#/etc/more modules.conf
alias parport_lowlevel parport_pc
alias scsi_hostadapter sym53c8xx
alias scsi_hostadapter1 lpfcdd
alias scsi_hostadapter2 lpfcdd
alias eth0 tlan
options scsi_mod max_scsi_luns=256 scsi_allow_ghost_devices=1
options lpfcdd lpfc0_topology=0x02 lpfc1_topology=0x02
lpfc_network_on=0 lpfc_use_data_direction=0 lpfc_automap=0
lpfc_scandown=0 lpfc_bind_entries=4
lpfc_fcp_bind_WWPN={.50060160006000ed:lpfc0t1,50060168006000ed:lpfc0t2,50
060160006000ed:lpfc1t1,50060168006000ed:lpfc1t2.};
本例中我们修改了/etc/modules.conf文件,设置lpfc_automap=0, lpfc_scandown=0,
lpfc_bind_entries=4,并通过lpfc_fcp_bind_WWPN={“50060160006000ed:lpfc0t1,50060168006000ed:lpfc0t2,50060160006000ed:lpfc1t1,50060168006000ed:lpfc1t2”}绑定WWPN。
识别存储设备:
HBA安装结束并重启系统之后,用户可以通过执行“more messages |grep SCSI”识别HBA发现的磁盘设备。
本例中我们看到的设备从sda到sdf。
举例3:
文章浏览阅读122次。还是A+BTime Limit: 2000/1000 MS (Java/Others)Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 24568Accepted Submission(s): 11729Problem Description读入两个小于10000的正整数A和B,计算A+B。...
文章浏览阅读419次。HEADERS:在BASIC的基础上,额外记录了请求和响应的头信息。FULL:记录所有请求和响应的明细,包括头信息、请求体、元数据。BASIC:仅记录请求的方法,URL以及响应状态码和执行时间。NONE:不记录任何日志信息,这是默认值。配置Feign日志有两种方式;方式二:java代码实现。注解中声明则代表某服务。方式一:配置文件方式。_feign 日志设置
文章浏览阅读155次。将容器管理的持久性 Bean 用于面向服务的体系结构本文将介绍如何使用 IBM WebSphere Process Server 对容器管理的持久性 (CMP) Bean的连接和持久性逻辑加以控制,使其可以存储在非关系数据库..._javax.ejb.objectnotfoundexception: no such entity!
文章浏览阅读1.5k次。基础java练习题一、递归实现跳台阶从第一级跳到第n级,有多少种跳法一次可跳一级,也可跳两级。还能跳三级import java.math.BigDecimal;import java.util.Scanner;public class Main{ public static void main(String[]args){ Scanner reader=new Scanner(System.in); while(reader.hasNext()){ _java 递归例题
文章浏览阅读1.5k次,点赞6次,收藏6次。目录1.串应用- 计算一个串的最长的真前后缀题目描述输入输出样例输入样例输出题解2.字符串替换(string)题目描述输入输出样例输入样例输出题解3.可重叠子串 (Ver. I)题目描述输入输出样例输入样例输出题解4.字符串操作(string)题目描述输入输出样例输入样例输出题解1.串应用- 计算一个串的最长的真前后缀题目描述给定一个串,如ABCDAB,则ABCDAB的真前缀有:{ A, AB,ABC, ABCD, ABCDA }ABCDAB的真后缀有:{ B, AB,DAB, CDAB, BCDAB_对存储在string数组内的所有以字符‘a’开始并以字符‘e’结尾的单词做加密处理。
文章浏览阅读68次。西安交通大学/算法设计与问题求解/树与二叉树/MOOC_算法设计与问题求解西安交通大学
文章浏览阅读1.6k次。问题:在Vue项目中出现如下错误提示:[Vue warn]: Computed property "totalPrice" was assigned to but it has no setter. (found in <Anonymous>)代码:<input v-model="totalPrice"/>原因:v-model命令,因Vue 的双向数据绑定原理 , 会自动操作 totalPrice, 对其进行set 操作而 totalPrice 作为计..._computed property "totalprice" was assigned to but it has no setter.
文章浏览阅读60次。十分暴力而简洁的解决方式:读取P和T的位置并自动生成唯一正确答案,将题给测点与之对比,不一样就给我爬!_basic 1003 case 1
文章浏览阅读422次。原标题:详解将Web项目War包部署到Tomcat服务器基本步骤详解将Web项目War包部署到Tomcat服务器基本步骤1 War包War包一般是在进行Web开发时,通常是一个网站Project下的所有源码的集合,里面包含前台HTML/CSS/JS的代码,也包含Java的代码。当开发人员在自己的开发机器上调试所有代码并通过后,为了交给测试人员测试和未来进行产品发布,都需要将开发人员的源码打包成Wa..._/opt/bosssoft/war/medical-web.war/web-inf/web.xml of module medical-web.war.
文章浏览阅读3k次,点赞3次,收藏13次。# -*- coding: utf-8 -*-# 简述:这里有四个数字,分别是:1、2、3、4#提问:能组成多少个互不相同且无重复数字的三位数?各是多少?def f(n):list=[]count=0for i in range(1,n+1):for j in range(1, n+1):for k in range(1, n+1):if i!=j and j!=k and i!=k:list.a..._python求从0到9任意组合成三位数数字不能重复并输出
文章浏览阅读1k次,点赞3次,收藏2次。<el-table-column prop="studentSex" label="性别" :formatter="sex"></el-table-column>然后就在vue的methods中写方法就OK了methods: { sex(row,index){ if(row.studentSex == 1){ return '男'; }else{ return '女'; }..._elementui table 性别
文章浏览阅读1.1k次。java文件操作之移动文件到指定的目录_java中怎么将pro.txt移动到design_mode_code根目录下