Обычно я не могу выгрузить оптоволоконный модуль Qlogic qla2xxx
под CentOS 5 или 6. На этих машинах работает StorNext cvfs
, EMC powerpath
и hostagent
. Больше ничего не должно касаться волокна. Все три процесса были остановлены перед попыткой удаления модуля. Интересный момент вывода ниже - это lsmod
: qla2xxx
используется 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]
Проблема, с которой вы столкнулись, может быть ошибкой. Видеть:
Пытаться:
service multipathd stop
multipath -F
modprobe -r -f -v scsi_tgt scsi_transport_fc qla2xxx
Вы пробовали удалить все за одну операцию?
modprobe -r -f -v scsi_tgt scsi_transport_fc qla2xxx
Я не уверен, что мое альтернативное предложение соответствует вашим потребностям: добавление следующей строки в /etc/modprobe.conf
alias qla2xxx off
предотвратит автоматическую загрузку модуля во время загрузки и, следовательно, вашу ситуацию с блокировкой зависимостей, но для этого потребуется перезагрузка ...