CentOS 下经常无法删除 qla2xxx 模块

CentOS 下经常无法删除 qla2xxx 模块

我经常无法在 CentOS 5 或 6 下卸载 Qlogic 光纤模块。qla2xxx这些机器正在运行 StorNext cvfs、EMCpowerpathhostagent。其他任何东西都不应接触光纤。在尝试移除模块之前,这三个进程都已停止。下面输出的有趣之处在于lsmodqla2xxx被 45 个东西使用,但没有一个列出。运行后没有可见的“光纤”进程(据我所知)sudo ps ax我没有尝试过“强制(-f)”移除强制移除(-f)对情况没有帮助。

# service cvfs status
Active SNFS mountpoints:
Error: fsmpm not running!

# service PowerPath stop
Stopping PowerPath: PowerPath is not running done

# service hostagent status
hostagent is stopped

# modprobe -v -r qla2xxx
FATAL: Module qla2xxx is in use.

# rmmod -v qla2xxx
ERROR: Module qla2xxx is in use

# lsmod | grep qla
qla2xxx               366555  45 
scsi_transport_fc      52241  1 qla2xxx

# modprobe --show-depends qla2xxx
insmod /lib/modules/2.6.32-220.7.1.el6.x86_64/kernel/drivers/scsi/scsi_tgt.ko 
insmod /lib/modules/2.6.32-220.7.1.el6.x86_64/kernel/drivers/scsi/scsi_transport_fc.ko 
insmod /lib/modules/2.6.32-220.7.1.el6.x86_64/kernel/drivers/scsi/qla2xxx/qla2xxx.ko ql2xfailover=0

# modprobe -r -v scsi_transport_fc
FATAL: Module scsi_transport_fc is in use.

# modprobe --show-depends scsi_transport_fc
insmod /lib/modules/2.6.32-220.7.1.el6.x86_64/kernel/drivers/scsi/scsi_tgt.ko 
insmod /lib/modules/2.6.32-220.7.1.el6.x86_64/kernel/drivers/scsi/scsi_transport_fc.ko

# lsmod | grep scsi_
scsi_transport_fc      52241  1 qla2xxx
scsi_tgt               12173  1 scsi_transport_f

# modprobe -r -v scsi_tgt
FATAL: Module scsi_tgt is in use.

# modprobe --show-depends scsi_tgt
insmod /lib/modules/2.6.32-220.7.1.el6.x86_64/kernel/drivers/scsi/scsi_tgt.ko 

更新:主机上的每个 HBA 都有一个内核线程,当我尝试删除模块时,该线程应该会被终止。

# ps ax | grep qla
  551 ?        S<     0:00 [qla2xxx_0_dpc]
  557 ?        S<     0:00 [qla2xxx_1_dpc]
  563 ?        S<     0:00 [qla2xxx_2_dpc]
  569 ?        S<     0:00 [qla2xxx_3_dpc]

答案1

您遇到的问题可能是一个错误。请参阅:

http://www.spinics.net/lists/linux-scsi/msg52025.html

答案2

您是否尝试过通过一次操作删除所有内容?

modprobe -r -f -v scsi_tgt scsi_transport_fc qla2xxx

我不确定我的替代方案是否符合您的需求:将以下行添加到/etc/modprobe.conf

alias qla2xxx off

将阻止模块在启动时自动加载,因此您的依赖锁定情况,但它需要重新启动......

答案3

尝试:

service multipathd stop
multipath -F 
modprobe -r -f -v scsi_tgt scsi_transport_fc qla2xxx

相关内容