Homelab FC 16G senza switch: qla2xxx qlini_mode=disabled viene ignorato su RHEL 8, niente LUN target
Sto mettendo insieme un setup Fibre Channel senza switch in casa: un box tiene lo storage e deve fare da target FC, gli altri due sono semplici initiator. Nessuno switch FC in mezzo, solo cavi diretti tra le HBA.
Hardware:
- QLogic QLE2694 nel box storage, quello che dovrebbe essere il target
- QLogic QLE2690 e QLE2692 nei due box initiator
- ottiche 16G SFP+ LC FTLF8529P4BCV-QL, codificate QLogic, short reach 850 nm
- bretelle multimodali OM3 LC-LC da 3 m tra le porte
Il lato ottico non mi dà nessun problema. Le porte salgono, le schede si vedono a vicenda, tutto si comporta bene finché entrambi i lati restano initiator. Il problema è far passare il box storage in modalità target. Ho messo l'opzione del modulo, ricostruito l'initramfs, riavviato, e il parametro semplicemente non si applica mai:
# 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
targetcli parte tranquillamente, ma con la modalità initiator ancora attiva non c'è nessuna fabric FC a cui agganciare un backstore, quindi non viene esportato niente e gli initiator vedono un link vuoto.
Cosa ho provato:
- l'opzione in /etc/modprobe.d e, separatamente, sulla kernel command line
- rigenerato l'initramfs e la configurazione di boot dopo ogni modifica
- scambiato quale scheda sta nel box storage, nel caso fosse una stranezza della QLE2694
È qualcosa legato alla build del driver sulla distro che uso, basata su RHEL 8, oppure mi sto perdendo un passaggio in come si applica l'opzione?
Comments 4
Non ti stai perdendo nessun passaggio, l'opzione non può funzionare dove la stai eseguendo. RHEL 8 e successive spediscono una build di qla2xxx a cui è stata tolta la possibilità di disabilitare la modalità initiator, quindi ovunque tu metta
qlini_mode="disabled"viene ignorato e la scheda resta un initiator. Niente di sbagliato nella QLE2694, nelle ottiche o nella fibra.Due vie d'uscita: fai girare l'host target su una distro che tiene ancora la modalità target in qla2xxx, oppure compila il modulo da solo, cosa che io non farei su un box destinato a contenere dati. Io ho preso la prima strada e ho messo il target su Fedora Server 39.
Da lì la sequenza è quella noiosa:
in modprobe.d, poi ricostruisci l'initramfs e la configurazione GRUB, riavvia, e controlla le porte con
Installa targetcli e sysfsutils, abilita le porte FC, poi mappa i tuoi volumi LVM sopra l'NVMe come block backstore, legali alle WWN delle porte e dai a ogni initiator la sua ACL. I box initiator possono restare esattamente come sono, la restrizione morde solo sul lato target.
Una nota d'acquisto per chi lo farà più avanti: preferisci le QLE2690, QLE2692 e QLE2694 a marchio Dell, perché la loro documentazione copre davvero la modalità target, il che risparmia un sacco di congetture.
Due cose da chiarire prima che qualcuno tiri a indovinare.
Primo, da dove viene davvero il tuo qla2xxx: il modulo in-box che arriva con il kernel della distro, o una build out-of-tree presa dal vendor e compilata da te? Su una base RHEL 8 i due si comportano in modo molto diverso qui, e conta molto più della sintassi di modprobe.
Secondo, posta
systool -c fc_host -vdal box storage. Ci dice se le porte salgono davvero e a che velocità, così possiamo separare una questione di driver da una fisica.Conferma anche le ottiche su entrambi i lati. FTLF8529P4BCV-QL è un componente short reach a 850 nm, quindi serve fibra multimodale - su monomodale non otterresti niente del tutto, e voglio escluderlo prima di parlare di modalità target.
Driver in-box: kernel stock e qla2xxx stock direttamente dai repository della distro, niente preso dal vendor, niente compilato a mano.
systool -c fc_host -vmostra entrambe le porte della QLE2694 online a 16G, e gli stessi moduli FTLF8529P4BCV-QL sono su entrambi i lati sulle bretelle OM3 da 3 m, quindi il livello fisico davvero non è il problema - come initiator funziona tutto.sysfs continua a riportare qlini_mode come enabled dopo ogni rebuild e reboot, indipendentemente dal fatto che lo imposti in modprobe.d o sulla kernel command line. sysfsutils e targetcli sono installati, targetcli stesso parte senza lamentarsi, semplicemente non c'è niente di forma FC da configurarci dentro.
Trappola vicina che vale la pena portarsi dietro quando sposti l'host target su un'altra distro: assicurati che il parametro finisca dove il boot path di quel box lo legge davvero.
La versione classica di questo è un host Proxmox che non accettava le sue ottiche. L'admin ha messo
ixgbe.allow_unsupported_sfp=1in modprobe.d, poi nella config GRUB, e nessuno dei due ha fatto niente, perché la macchina fa boot via EFI e non tocca mai GRUB. Lì il parametro deve andare in/etc/kernel/cmdlineseguito dapve-efiboot-tool refresh.Stessa firma di guasto della tua: il file di config dice una cosa, sysfs ne dice un'altra, e ci perdi una serata a sospettare dell'hardware. Qualunque sia l'host, rileggi il valore da
/sys/module/...dopo ogni riavvio e fidati di quello invece che del file che hai modificato.