Eu tenho um problema sério com uma matriz de armazenamento SAN conectada a uma caixa Linux através do Fibre Channel. Aqui está a configuração:
- Debian com vanilla linux simples 2.6.27.25
- Porta dupla QLogic 4Gb do controlador de fibra (baseada em ISP2432)
Basicamente, o problema é: como obter esse #? @ !! Controlador / driver FC para reconhecer corretamente as alterações na configuração (LUNs novas ou removidas) da matriz de armazenamento?
- quando crio um novo LUN no meu array (normalmente um instantâneo de algum LUN existente) e mapeio-o para o meu HBA, não consigo reconhecê-lo corretamente:
rescan-scsi-bus -l -w -r
na verdade, detecta algo (um dispositivo / dev / sgXX genérico), mas nenhum dispositivo de bloco é criado (/ dev / sdXX). mesma coisa ao emitir um LIP e verificar novamente manualmente:
eco 1> / sys / class / fc_host / host6 / issue_lip
eco "- - -"> / sys / class / scsi_host / host6 / scan
se eu remover um LUN existente, nem emitir LIPs e redigitalizar ou rescan-scsi-bus terá qualquer efeito. Os dispositivos anteriores permanecem lá e, é claro, não funcionam ("arquivo -s / dev / sdXX -> erro de E / S").
- recarregar o driver qla2xxx funciona. No entanto, é completamente impraticável em um ambiente de produção.
Aparentemente, este é um problema muito comum com o QLogic . Existe algum tipo de solução que funciona apenas ao usar o driver emitido pela QLogic, disponível apenas para as distribuições corporativas RedHat e Suse: consulte esta explicação .
Informação adicional :
Aqui estão os dispositivos scsi antes do LIP e digitalizar novamente:
# 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
Após um LIP e uma nova varredura, tenho um novo dispositivo sg, mas nenhuma unidade correspondente. Se eu recarregar o driver, uma unidade aparecerá:
# 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
Edit: OK, obviamente, este é um osso duro de roer. Vou pedir ao LKML e reportar aqui.