如何解析Linux/Unix系统中主机HBA无法发现LUN路径显示错误及LUN相关错误

98次阅读
没有评论

共计 6242 个字符,预计需要花费 16 分钟才能阅读完成。

行业资讯    
服务器    
如何解析 Linux/Unix 系统中主机 HBA 无法发现 LUN 路径显示错误及 LUN 相关错误

如何解析 Linux/Unix 系统中主机 HBA 无法发现 LUN 路径显示错误及 LUN 相关错误,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

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: 如何通过 iSCSI 在 Linux 动态发现新 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。

问题 3:Linux 主机 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 >

powermt display dev=all

powermt save。

问题 5:Linux 主机在 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。

问题 6:Linux 操作系统能否不重新加载 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”。

问题 7:Red 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. 重启系统以使更改生效。

问题 8:Linux 主机在 /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。

看完上述内容,你们掌握如何解析 Linux/Unix 系统中主机 HBA 无法发现 LUN 路径显示错误及 LUN 相关错误的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注丸趣 TV 行业资讯频道,感谢各位的阅读!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-16发表,共计6242字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)