问题5Linux主机在proc/scsi/scsi中发现重复LUN ID

平台Red Hat Linux 5.3

产品Symmetirx DMX-4 VMAX系列

问题描述

一个磁盘设备呈现给2HBA,每个HBA上通过2个不同LUN ID显示2个实例。主机应当在各HBA上看到相同的实例(LUN 16而非1617),而不是两个不同的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 2SCSI 3标记缺失。重新添加标记会解决此问题,主机必须重启以使更改生效。在HBA级别设置标记,例如:symmask -sid 308 -dir 8C -p 0 -wwn 10000000c99338ca set hba_flags on SPC2,SC3 –enable

当磁盘设备设置了SPC 2SCSI 3之后,proc/scsi/scsi将会返回正确地LUN ID

 

 

问题6Linux操作系统能否不重新加载Linux驱动而重新扫描磁盘设备?

平台Red Hat LinuxSuSE Linux Enterprise Server(SLES)QLogic

问题描述:新LUN添加到存储阵列之后,无法通过操作系统的QLogic HBA驱动看到该设备。重启或重新加载驱动会造成生产中断。

解决方法

按照以下步骤,强制驱动重新扫描目标设备,允许添加新磁盘设备。该步骤触发驱动初始化LUN发现进程。扫描顺序:首先驱动层(qla2300/qla2200等),之后Linux SCSI中间层(即OS扫描)。

  1. 1.    1. 通过命令行强制扫描,输入以下命令:

     # echo "scsi-qlascan" > /proc/scsi/<driver_name>/<adapter_ID>

      <driver_name>qla2100, qla2200, qla2300 2.4内核驱动)或qla2xxx2.6内核驱动)<adapter_ID>HBA实例编号。

  1. 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及以上版本,QLogicPowerPath

问题描述

  1. 1.    1. Red Hat Linux收到SCSI错误返回值0x20000

  2. 2.    2. kernel: SCSI error : <1 0 7 206> return code = 0x20000
    kernel: end_request: I/O error, dev sdik, sector 4069594

       根本原因

     当一个端口被禁止,拔出,或重置光纤通道交换机通常会导致一个RSCNRegistered State Change Notification)事件,所有仍连接在交换机上的HBA都会看到该RSCN事件。在没有预警的情况下,多路径软件(PowerPath, DMP, MPIO)将会无法判断。

     注意:返回值0x20000表示DID_BUS_BUSY。并非所有0x20000错误都是由RSCN事件引起。Fabric或阵列故障也可能导致该错误。用户不应假设RSCN一定是导致该错误发生的原因。

       解决方法

     要正确地解释RSCN事件,须在modprobe.conf文件中添加一个内核选项。须重启以使更改生效。

  1. 1.    1. 编辑/etc/modprobe.conf并添加以下一行内容:

     options qla2xxx ql2xproce***scn=1

  1. 2.    2. 保存文件。

  2. 3.    3. 重新编译initrd

     mkinitrd -f /boot/initrd-`uname -r`.img `uname -r`

  1. 4. 重启系统以使更改生效。

 

问题8Linux主机在/proc/scsi/scsi中只能看到一条路径连接存储

平台SLES 9SLES 10QLogic 8.01.06.01PowerPath 5.0.1

问题描述

  1. 1.    SuSE Linux/proc/scsi/scsi中只看到一条路径连接存储。

  2. 2.    PowerPath只显示一条路径连接到emcpower设备。

  3. 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