光纤通道LUN重新扫描和QLogic


8

我有一个通过光纤通道连接到Linux机顶盒的SAN存储阵列出现严重问题。这是配置:

  • 带有普通香草Linux 2.6.27.25的Debian
  • 光纤控制器QLogic 4Gb双端口(基于ISP2432)

基本上问题是:如何获得此#?@ !! FC控制器/驱动程序可以正确识别存储阵列的配置更改(新的或已删除的LUN)?

  1. 当我在阵列上创建新的LUN(通常是一些现有LUN的快照)并将其映射到我的HBA时,我无法正确识别它:rescan-scsi-bus -l -w -r实际检测到某物(通用的/ dev / sgXX设备),但是没有块设备已创建(/ dev / sdXX)。
  2. 发出LIP并手动重新扫描时也是如此:

    回声1> / sys / class / fc_host / host6 / issue_lip

    回声“---”> / sys / class / scsi_host / host6 / scan

  3. 如果删除现有LUN,则发出LIP和重新扫描或rescan-scsi-bus均无效。以前的设备在那里,并且当然不起作用(“文件-s / dev / sdXX-> I / O错误”)。

  4. 重新加载qla2xxx驱动程序。但是,在生产环境中完全不可行。

显然,这是QLogic的一个非常普遍的问题。存在某种解决方案,该解决方案仅在使用仅适用于RedHat和Suse企业发行版的QLogic发行的驱动程序时有效:请参阅以下说明

附加信息 :

这是LIP和重新扫描之前的scsi设备:

# sg_map -x
/dev/sg0  0 0 0 0  0  /dev/sda
/dev/sg1  0 0 1 0  5  /dev/scd0
/dev/sg2  1 0 0 0  0  /dev/sdb
/dev/sg3  6 0 0 0  0  /dev/sdc
/dev/sg4  6 0 0 1  0  /dev/sdd
/dev/sg5  6 0 0 2  3

经过LIP并重新扫描后,我有一个新的sg设备,但没有匹配的驱动器。如果重新加载驱动程序,则会出现驱动器:

# sg_map -x
/dev/sg0  0 0 0 0  0  /dev/sda
/dev/sg1  0 0 1 0  5  /dev/scd0
/dev/sg2  1 0 0 0  0  /dev/sdb
/dev/sg3  6 0 0 0  0  /dev/sdc
/dev/sg4  6 0 0 1  0  /dev/sdd
/dev/sg5  6 0 0 2  3
/dev/sg6  6 0 0 3  3

~# sg_map -x
/dev/sg0  0 0 0 0  0  /dev/sda
/dev/sg1  0 0 1 0  5  /dev/scd0
/dev/sg2  1 0 0 0  0  /dev/sdb
/dev/sg3  8 0 0 0  0  /dev/sdc
/dev/sg4  8 0 0 1  0  /dev/sdd
/dev/sg5  8 0 0 2  0  /dev/sde
/dev/sg6  8 0 0 3  3

编辑:好的,显然这是一个难以克服的难题。我将询问LKML并在此处报告。


您正在谈论的QLogic发行的驱动程序也可以为其他发行版进行编译-它不是二进制Blob。
Segfault上尉,09年

很好,那我在哪里可以找到?我编译了整个内核,再添加一个驱动程序根本不是问题。
wazoox

我遇到了这个问题,您能找到任何东西吗?
ThatGraemeGuy 2012年

抱歉,暂无信息。
wazoox 2012年

Answers:


2

如果无法检测到阻止设备,但没有创建/ dev /设备,则可以手动创建该设备。这不是最佳选择,但可能会使您一mp不振。主编号和次编号显示在/ proc / partitions中,您可以通过mknod命令创建自己的块设备。

 # mknod /dev/sdg4 104 17

但是,我感到你很痛苦。QLogic提供RHEL和SUSE的驱动程序下载,但似乎没有其他发行版。OpenSUSE可能仅具有QLogic品牌的驱动程序,但我不确定。我上班时会仔细检查。

编辑:我在工作,并且看来SLES盒上的QLogic驱动程序都是QLogic提供的。他们的操作系统支持网格:

http://filedownloads.qlogic.com/files/Driver/71098/readme_driver_80223.html#os_support

但是,当我下载bog-standard 2.6.27.25内核并在./drivers/scsi/qla2xxx/qla_version.h文件中查找时,它的版本号几乎与我在Novell发行版(包括SLES和免费的openSUSE)。这表明您为SLES / RHEL找到的解决方案实际上可以与标准2.6.27.25内核一起使用。


不幸的是,它无法工作,因为它提到使用了一个不存在的文件(/ proc / scsi / qla2xxx / ...)和一个没有出现在驱动程序源代码中的命令(scsi-qlascan)。
wazoox

1

是的,在Google上有很多技巧,但大多数(如果不是全部)都是关于RedHat / SuSe和Qlogic专有驱动程序的。。。但是,您的链接之一给了我一个主意,我会回来的:)
wazoox

好吧,嗯,我尝试使用最新的固件,但是没有运气...
wazoox
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.