O problema que você está enfrentando pode ser um bug. Veja:
Eu rotineiramente não posso descarregar o módulo de fibra Qlogic qla2xxx
no CentOS 5 ou 6. Essas máquinas estão executando StorNext cvfs
, EMC powerpath
e hostagent
. Nada mais deveria estar tocando a fibra. Todos esses três processos foram interrompidos antes de tentar remover o módulo. O interessante da saída abaixo é o lsmod
: qla2xxx
está sendo usado por 45 itens, mas nenhum está listado. Não há processos "fibre-ish" visíveis (que eu possa dizer) depois de executar sudo ps ax
. Eu não tentei uma "força ( A remoção da força ( -f
)" remoção -f
) não ajuda na situação.
# 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
Atualização: Há um segmento de kernel persistindo para cada HBA no host, que deve ser eliminado quando eu tentar remover o módulo.
# 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]
O problema que você está enfrentando pode ser um bug. Veja:
Você tentou remover tudo em uma única operação?
modprobe -r -f -v scsi_tgt scsi_transport_fc qla2xxx
Não sei se minha proposta alternativa corresponde às suas necessidades: adicione a seguinte linha a /etc/modprobe.conf
alias qla2xxx off
evitará o carregamento automático do módulo no momento da inicialização e, portanto, sua situação de bloqueio de dependência, mas requer a reinicialização ...
Tente:
service multipathd stop
multipath -F
modprobe -r -f -v scsi_tgt scsi_transport_fc qla2xxx