Homelab FC 16G sem switch: qla2xxx qlini_mode=disabled é ignorado no RHEL 8, sem LUNs de target
Estou montando uma configuração Fibre Channel sem switch em casa: uma caixa segura o storage e precisa agir como o target FC, as outras duas são iniciadores comuns. Nenhum switch FC no meio, só cabos diretos entre as HBAs.
Hardware:
- QLogic QLE2694 na caixa de storage, a que deveria ser o target
- QLogic QLE2690 e QLE2692 nas duas caixas iniciadoras
- ópticas SFP+ LC 16G FTLF8529P4BCV-QL, codificadas QLogic, curto alcance 850 nm
- cordões LC-LC multimodo OM3 de 3 m entre as portas
O lado óptico não me dá trabalho nenhum. As portas sobem, as placas se enxergam, tudo se comporta enquanto as duas pontas ficam como iniciadoras. O problema é virar a caixa de storage para modo target. Coloquei a opção de módulo no lugar, reconstruí o initramfs, reiniciei, e o parâmetro simplesmente nunca pega:
# cat /etc/modprobe.d/qla2xxx.conf
options qla2xxx qlini_mode="disabled"
# after rebuilding the initramfs and rebooting
# cat /sys/module/qla2xxx/parameters/qlini_mode
enabled
O targetcli inicia bem, mas com o modo iniciador ainda ligado não existe fabric FC para pendurar um backstore, então nada é exportado e os iniciadores veem um link vazio.
O que tentei:
- a opção em /etc/modprobe.d e, separadamente, na linha de comando do kernel
- regenerar o initramfs e a configuração de boot depois de cada mudança
- trocar qual placa fica na caixa de storage, para o caso de ser uma esquisitice da QLE2694
Isso é alguma coisa sobre o build do driver na distro que estou rodando, que é baseada em RHEL 8, ou estou deixando passar um passo em como a opção é aplicada?
Comments 4
Você não está deixando passar nenhum passo, a opção não tem como funcionar onde você está rodando. RHEL 8 e versões posteriores distribuem um build do qla2xxx com a capacidade de desabilitar o modo iniciador removida, então não importa onde você coloque
qlini_mode="disabled", é ignorado e a placa continua iniciadora. Nada errado com a QLE2694, com a óptica ou com a fibra.Duas saídas: rodar o host de target numa distro que ainda mantém o modo target no qla2xxx, ou compilar o módulo você mesmo, o que eu não faria numa caixa destinada a guardar dados. Fui pelo primeiro caminho e coloquei o target num Fedora Server 39.
Depois disso a sequência é a chata de sempre:
no modprobe.d, depois reconstrua o initramfs e a configuração do GRUB, reinicie, e confira as portas com
Instale targetcli e sysfsutils, habilite as portas FC, depois mapeie seus volumes LVM do NVMe como backstores em bloco, associe eles aos WWNs das portas e dê a cada iniciador sua própria ACL. As caixas iniciadoras podem ficar exatamente como estão, a restrição só morde do lado do target.
Uma nota de compra para quem for fazer isso depois: prefira as QLE2690, QLE2692 e QLE2694 de marca Dell, porque a documentação delas realmente cobre modo target, o que poupa bastante adivinhação.
Duas coisas para fixar antes de alguém chutar.
Primeiro, de onde vem de fato o seu qla2xxx: o módulo in-box que vem com o kernel da distro, ou um build fora da árvore que você pegou do fabricante e compilou você mesmo? Numa base RHEL 8 essas duas coisas se comportam bem diferente aqui, e isso importa muito mais do que a sintaxe do modprobe.
Segundo, poste o
systool -c fc_host -vda caixa de storage. Isso nos diz se as portas realmente sobem e em qual velocidade, para separar uma questão de driver de uma física.Também confirme a óptica nas duas pontas. FTLF8529P4BCV-QL é uma peça de curto alcance 850 nm, então precisa de fibra multimodo - em monomodo você não teria nada de jeito nenhum, e eu quero descartar isso antes de falarmos de modo target.
Driver in-box: kernel padrão e qla2xxx padrão direto dos repositórios da distro, nada pego do fabricante, nada compilado na mão.
systool -c fc_host -vmostra as duas portas da QLE2694 online a 16G, e os mesmos módulos FTLF8529P4BCV-QL estão nas duas pontas sobre os cordões OM3 de 3 m, então a camada física realmente não é o problema - como iniciador, tudo funciona.O sysfs continua reportando qlini_mode como enabled depois de cada rebuild e reboot, não importa se eu configuro no modprobe.d ou na linha de comando do kernel. sysfsutils e targetcli estão instalados, o targetcli em si inicia sem reclamar, só não tem nada com formato de FC para configurar nele.
Armadilha vizinha que vale levar com você quando mover o host de target para outra distro: garanta que o parâmetro caia onde o caminho de boot daquela caixa realmente lê ele.
A versão clássica disso é um host Proxmox que não aceitava a óptica dele. O administrador colocou
ixgbe.allow_unsupported_sfp=1no modprobe.d, depois na config do GRUB, e nenhum dos dois fez nada, porque a máquina inicializa via EFI e nunca toca no GRUB. Ali o parâmetro tem que ir para/etc/kernel/cmdlineseguido depve-efiboot-tool refresh.Mesma assinatura de falha que a sua: o arquivo de config diz uma coisa, o sysfs diz outra, e você perde uma noite suspeitando do hardware. Seja qual for o host, leia o valor de volta em
/sys/module/...depois de cada reboot e confie nisso, não no arquivo que você editou.