ITPub博客

首页 > IT基础架构 > 服务器/存储 > Linux/Unix系统中主机HBA无法发现LUN,路径显示错误,LUN相关错误

Linux/Unix系统中主机HBA无法发现LUN,路径显示错误,LUN相关错误

服务器/存储 作者:lovehewenyu 时间:2018-04-27 09:50:55 0 删除 编辑
转载地址:http://www.fuhenet.com/news/6363.html

文章摘要
:本文归纳总结了Linux/Unix系统几个常见的SCSI故障如:主机HBA无法发现LUN,路径显示错误,同一个LUN显示重复的LUN ID,故障切换问题,重新扫描磁盘问题等,并列出相关解决方法。 问题1:如何通过iSCSI在Linux动态发现新LUNs? 平台:RedHat Linux, SuSE Linux 问题描述:无法动态发现新磁盘设备 根本原因: iSCSI...

本文归纳总结了Linux/Unix系统几个常见的SCSI故障如:主机HBA无法发现LUN,路径显示错误,同一个LUN显示重复的LUN ID,故障切换问题,重新扫描磁盘问题等,并列出相关解决方法。

问题1:如何通过iSCSILinux动态发现新LUNs
平台Red Hat Linux, SuSE Linux
问题描述:无法动态发现新磁盘设备
根本原因
iSCSI驱动可在Ethernet上动态发现目标存储系统,然而,它无法动态发现存储系统上的LUN。Linux操作系统的SCSI中间层负责发现LUN。因此,通过Fibre Channel,用户必须重新扫描SCSI总线以发现新添加LUN,用户可通过重启服务器或重新加载iSCSI模块实现上述操作。
解决方法
root权限使用以下命令在 RHEL 3, RHEL4, SLES 8, SLES 9, Asianux 1.0, and Asianux 2.0上重新加载iSCSI驱动:
# /etc/init.d/iscsi restart
在RHEL5和SLES 10上作为root使用以下命令:
RHEL5:
# /etc/init.d/iscsid restart
SLES 10:
# /etc/init.d/open-iscsi restart
# /sbin/iscsiadm -m session –R

问题2:Linux是否需要LUN 0
平台:Linux
问题描述
1. /proc/scsi/scsi每条路径只包含一个DGC LUN Z。
2. /proc/scsi/qla2?00/[0-9] 显示除了LUN 0以外的所有LUN,星号标记显示没有 SCSI注册。
3. Emulex HBA 已在 FA注册 但/proc/scsi/scsi中没有device entry。
     根本原因
     Linux 2.4.x内核对LUN 0使用SCSI INQUIRY命令以确定系统连接到何种类型的磁盘设备。如果没有LUN 0,QLogic和Emulex驱动将会返回错误而不是发INQUIRY命令给磁盘设备,因此,Linux系统将无法自动扫描磁盘设备。须手动激活LUN。
     解决方法
     可通过以下方法解决此问题:
     1. 映射一个Gatekeeper给LUN 0。Linux 2.4受到最大SCSI磁盘设备数量的限制,因此可能需要手动指定HLU。
     2. 手动扫描LUN。用户须小心规划扫描时间。
     3. 为Linux SCSI驱动打补丁(不推荐)。
     详情请见Primus Solution emc115253。
 
问题3Linux主机Emulex HBA无法看见磁盘设备
平台:Linux Kernel 2.4
问题描述
1. 主机在存储端注册并登记后无法看到任何磁盘设备。
2. 所有lpfc驱动实例文件(例如:/proc/scsi/lpfc/*)无法看见存储WWN。
解决方法
按照以下步骤进行操作:
1. 通过如下命令检查哪些模块依赖于lpfc:
lsmod | grep lpfc
lpfc       243664   0  [lpfcdfc]
命令输出地黑体部分是正在使用lpfc的模块。在lpfcdfc被删除之前,lpfc将无法删除。
2. 使用rmmod命令删除相关模块,命令格式如下:
rmmod lpfcdfc
当该命令执行成功,通过lsmod命令验证该模块已被删除。
3. 使用以下命令删除lpfc模块:
rmmod lpfc
4. 使用以下命令重新加载lpfc模块:
modprobe lpfc
5. 模块成功加载之后,将会初始化PLOGI及存储端口信息,将会在驱动实例文件中看到。
同时也会自动扫描磁盘设备,如果没有,运行命令echo '- - -' > /proc/scsi/scsi扫描磁盘设备。
 
问题4"powermt display dev=all "Device(s) not found""
平台:HP-UX, IBM AIX, Red Hat Linux, UNIX
软件:PowerPath 5.0
问题描述:使用命令powermt display dev=all无法查看新加SCSI磁盘设备
解决方法:在emcgrab日志"powermt display options"文件检查PowerPath阵列状态是否设置为“managed”,或在主机运行命令powermt display options。
如果指定阵列设置为“unmanaged”,则输入以下命令:
powermt manage class=symm (or class=clariion, etc.)
powermt display dev=all
powermt save。
 
问题5Linux主机在proc/scsi/scsi中发现重复LUN ID
平台:Red Hat Linux 5.3
产品:Symmetirx DMX-4, VMAX系列
问题描述
一个磁盘设备呈现给2个HBA,每个HBA上通过2个不同LUN ID显示2个实例。主机应当在各HBA上看到相同的实例(LUN 16而非16和17),而不是两个不同的LUN ID。
Host: scsi5 Channel: 00 Id: 02 Lun: 16
Vendor: EMC Model: SYMMETRIX Rev: 5772
Type: Direct-Access ANSI SCSI revision: 02
Host: scsi5 Channel: 00 Id: 02 Lun: 17
Vendor: EMC Model: SYMMETRIX Rev: 5772
Type: Direct-Access ANSI SCSI revision: 02
 
Host: scsi3 Channel: 00 Id: 02 Lun: 16
Vendor: EMC Model: SYMMETRIX Rev: 5772
Type: Direct-Access ANSI SCSI revision: 02
Host: scsi3 Channel: 00 Id: 02 Lun: 17
Vendor: EMC Model: SYMMETRIX Rev: 5772
Type: Direct-Access ANSI SCSI revision: 02
解决方法
查看是否SPC 2和SCSI 3标记缺失。重新添加标记会解决此问题,主机必须重启以使更改生效。在HBA级别设置标记,例如:symmask -sid 308 -dir 8C -p 0 -wwn 10000000c99338ca set hba_flags on SPC2,SC3 –enable。
当磁盘设备设置了SPC 2和SCSI 3之后,proc/scsi/scsi将会返回正确地LUN ID。
 
问题6Linux操作系统能否不重新加载Linux驱动而重新扫描磁盘设备?
平台:Red Hat Linux,SuSE Linux Enterprise Server(SLES),QLogic,
问题描述:新LUN添加到存储阵列之后,无法通过操作系统的QLogic HBA驱动看到该设备。重启或重新加载驱动会造成生产中断。
解决方法
按照以下步骤,强制驱动重新扫描目标设备,允许添加新磁盘设备。该步骤触发驱动初始化LUN发现进程。扫描顺序:首先驱动层(qla2300/qla2200等),之后Linux SCSI中间层(即OS扫描)。
1.    1. 通过命令行强制扫描,输入以下命令:
     # echo "scsi-qlascan" > /proc/scsi/<driver_name>/<adapter_ID>
      <driver_name>是qla2100, qla2200, qla2300 (2.4内核驱动)或qla2xxx(2.6内核驱动)<adapter_ID>是HBA实例编号。
2.    2. 执行步骤1之后,通过以下命令强制SCSI中间层执行扫描并为新加磁盘设备添加device table entry。
     # echo "scsi add-single-device 0 1 2 3" >/proc/scsi/scsi
     "0 1 2 3"是“主机 通道 LUN”。
 
问题7Red Hat Linux收到SCSI错误返回值0x20000
平台:Red Hat Enterprise Linux 4 U2及以上版本,QLogic,PowerPath
问题描述
1.    1. Red Hat Linux收到SCSI错误返回值0x20000。
2.    2. kernel: SCSI error : <1 0 7 206> return code = 0x20000
kernel: end_request: I/O error, dev sdik, sector 4069594
     根本原因
     当一个端口被禁止,拔出,或重置光纤通道交换机通常会导致一个RSCN(Registered State Change Notification)事件,所有仍连接在交换机上的HBA都会看到该RSCN事件。在没有预警的情况下,多路径软件(PowerPath, DMP, MPIO)将会无法判断。
     注意:返回值0x20000表示DID_BUS_BUSY。并非所有0x20000错误都是由RSCN事件引起。Fabric或阵列故障也可能导致该错误。用户不应假设RSCN一定是导致该错误发生的原因。
     解决方法
     要正确地解释RSCN事件,须在modprobe.conf文件中添加一个内核选项。须重启以使更改生效。
1.    1. 编辑/etc/modprobe.conf并添加以下一行内容:
     options qla2xxx ql2xprocessrscn=1
2.    2. 保存文件。
3.    3. 重新编译initrd。
     mkinitrd -f /boot/initrd-`uname -r`.img `uname -r`
4. 重启系统以使更改生效。

问题8Linux主机在/proc/scsi/scsi中只能看到一条路径连接存储
平台:SLES 9,SLES 10,QLogic 8.01.06.01,PowerPath 5.0.1
问题描述
1.    SuSE Linux在/proc/scsi/scsi中只看到一条路径连接存储。
2.    PowerPath只显示一条路径连接到emcpower设备。
3.    即使配置了4条路径,/proc/scsi/scsi也只显示一条路径连接到磁盘设备
     Attached devices:
Host: scsi0 Channel: 00 Id: 00 Lun: 00
Vendor: DGC      Model: RAID 5           Rev: 0324
     Type:   Direct-Access                    ANSI SCSI revision: 04
     powermt display dev=all displays only one path to the emcpower device:
     Pseudo name=emcpowera
CLARiiON ID=CK200072300649 [SG_LINUXTST01]
Logical device ID=60060160128C1D00D8D768A3915BDC11 [fiscuat2 DATA]
state=alive; policy=BasicFailover; priority=0; queued-IOs=0
Owner: default=SP B, current=SP B
==============================================================================
---------------- Host ---------------   - Stor -   -- I/O Path -  -- Stats ---
###  HW Path                I/O Paths    Interf.   Mode    State  Q-IOs Errors
==============================================================================
   0 qla2xxx                   sda       SP B0     active  alive      0      0
 
 
根本原因
如果用户阻止PowerPath显示交换机上连接HBA0的端口,路径将会故障切换。PowerPath显示LUN并没有被另一个HBA通过另一个SP访问。(LUN将会trespass)。信息显示如下:
Jan 29 16:01:07 linuxtst01 kernel: qla2400 0000:08:00.0: LOOP DOWN detected (2).
Jan 29 16:01:18 linuxtst01 kernel: qla2x00: FAILOVER device 0 from 5006016039a028a8 -> 5006016839a028a8 - LUN 00, reason=0x2
Jan 29 16:01:18 linuxtst01 kernel: qla2x00: FROM HBA 0 to HBA 0
Jan 29 16:01:19 linuxtst01 cmafcad[6362]: Host controller 129 status change.Status is now Loop Degraded.
Jan 29 16:01:21 linuxtst01 kernel: qla2x00: FAILOVER device 0 from 5006016839a028a8 -> 5006016a39a028a8 - LUN 00, reason=0x2
Jan 29 16:01:21 linuxtst01 kernel: qla2x00: FROM HBA 0 to HBA 0
Jan 29 16:01:23 linuxtst01 kernel: qla2400 0000:08:00.0: Scheduling rescan for new luns...
Jan 29 16:01:23 linuxtst01 kernel: qla2400 0000:08:00.1: Scheduling rescan for new luns...
Jan 29 16:01:24 linuxtst01 kernel: qla2x00: FAILOVER device 0 from 5006016a39a028a8 -> 5006016939a028a8 - LUN 00, reason=0x2
Jan 29 16:01:24 linuxtst01 kernel: qla2x00: FROM HBA 0 to HBA 1
很明显PowerPath没有进行故障切换,但QLogic本机的故障切换被激活了。
检查/etc/modprobe.conf (RHEL主机) 或/etc/modprob.conf.local (SuSE 主机)的ql2xfailover参数。
解决方法
更改ql2xfailover参数值为0以禁止本机故障切换。在/etc/modprobe.conf中添加options qla2xxx ql2xfailover=0 ConfigRequired=0,重新编译initrd并重启。重启之后,确认"cat /sys/module/qla2xxx/parameters/ql2xfailover"返回0。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26442936/viewspace-2153415/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
10年老鸟,Oracle,Mysql,EMC 存储,NBU备份

注册时间:2012-02-03

  • 博文量
    268
  • 访问量
    1299299