Homelab FC 16G sans switch : qla2xxx qlini_mode=disabled ignoré sur RHEL 8, aucun LUN cible
Je monte une installation Fibre Channel sans switch à la maison : une machine héberge le stockage et doit faire office de cible FC, les deux autres sont de simples initiateurs. Pas de switch FC au milieu, juste des câbles directs entre les HBA.
Matériel :
- QLogic QLE2694 dans la machine de stockage, celle qui doit être la cible
- QLogic QLE2690 et QLE2692 dans les deux machines initiatrices
- Optiques FTLF8529P4BCV-QL 16G SFP+ LC, codées QLogic, courte portée 850 nm
- Cordons LC-LC multimodes OM3 de 3 m entre les ports
Le côté optique ne pose aucun problème. Les ports montent, les cartes se voient entre elles, tout fonctionne tant que les deux extrémités restent en mode initiateur. Le problème survient quand je bascule la machine de stockage en mode cible. J'ai mis en place l'option du module, reconstruit l'initramfs, redémarré, et le paramètre ne prend tout simplement jamais :
# 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 démarre sans problème, mais avec le mode initiateur toujours actif il n'y a pas de fabric FC sur lequel accrocher un backstore, donc rien n'est exporté et les initiateurs voient un lien vide.
Ce que j'ai essayé :
- l'option dans /etc/modprobe.d et, séparément, sur la ligne de commande du noyau
- régénérer l'initramfs et la configuration de boot après chaque changement
- échanger la carte installée dans la machine de stockage, au cas où ce serait une particularité du QLE2694
Est-ce lié à la façon dont le pilote est construit dans la distribution que j'utilise, basée sur RHEL 8, ou est-ce que je rate une étape dans l'application de l'option ?
Comments 4
Vous ne ratez pas d'étape, l'option ne peut tout simplement pas fonctionner là où vous l'exécutez. RHEL 8 et versions ultérieures livrent une build de qla2xxx dont la possibilité de désactiver le mode initiateur a été retirée, donc où que vous mettiez
qlini_mode="disabled", c'est ignoré et la carte reste initiateur. Rien de défaillant du côté du QLE2694, des optiques ou de la fibre.Deux solutions : faire tourner la machine cible sur une distribution qui conserve encore le mode cible dans qla2xxx, ou compiler le module vous-même, ce que je ne ferais pas sur une machine destinée à stocker des données. J'ai choisi la première option et mis la cible sous Fedora Server 39.
Ensuite la séquence est la classique :
dans modprobe.d, puis reconstruire l'initramfs et la configuration GRUB, redémarrer, et vérifier les ports avec
Installez targetcli et sysfsutils, activez les ports FC, puis mappez vos volumes LVM issus du NVMe comme backstores en mode bloc, liez-les aux WWN des ports et attribuez à chaque initiateur son propre ACL. Les machines initiatrices peuvent rester exactement telles quelles, la restriction ne joue que côté cible.
Une remarque pour l'achat, pour ceux qui feraient ça plus tard : préférez les QLE2690, QLE2692 et QLE2694 en version Dell, car leur documentation couvre réellement le mode cible, ce qui évite pas mal de tâtonnements.
Deux points à clarifier avant que quiconque ne se lance dans des suppositions.
D'abord, d'où vient réellement votre qla2xxx : le module intégré fourni avec le noyau de la distribution, ou une build hors arbre récupérée chez le fabricant et compilée vous-même ? Sur une base RHEL 8, ces deux cas se comportent très différemment ici, et ça compte bien plus que la syntaxe du modprobe.
Ensuite, postez
systool -c fc_host -vdepuis la machine de stockage. Cela nous dira si les ports montent réellement et à quelle vitesse, pour séparer une question de pilote d'une question physique.Confirmez aussi les optiques des deux côtés. Le FTLF8529P4BCV-QL est une pièce courte portée 850 nm, donc il lui faut de la fibre multimode - en monomode vous n'auriez rien du tout, et je veux qu'on écarte ça avant de parler du mode cible.
Pilote intégré : noyau standard et qla2xxx standard directement issu des dépôts de la distribution, rien récupéré chez le fabricant, rien compilé à la main.
systool -c fc_host -vmontre les deux ports du QLE2694 en ligne à 16G, et les mêmes modules FTLF8529P4BCV-QL sont présents aux deux extrémités sur les cordons OM3 de 3 m, donc la couche physique n'est vraiment pas le problème - en tant qu'initiateur, tout fonctionne.sysfs continue d'indiquer qlini_mode comme enabled après chaque reconstruction et redémarrage, que je le définisse dans modprobe.d ou sur la ligne de commande du noyau. sysfsutils et targetcli sont installés, targetcli lui-même démarre sans se plaindre, il n'y a simplement rien de type FC à configurer dedans.
Piège annexe à garder en tête quand vous basculez la machine cible sur une autre distribution : assurez-vous que le paramètre atterrit là où le chemin de boot de cette machine le lit réellement.
Version classique de ce piège : un hôte Proxmox qui n'acceptait pas ses optiques. L'administrateur a mis
ixgbe.allow_unsupported_sfp=1dans modprobe.d, puis dans la configuration GRUB, et ni l'un ni l'autre n'a eu d'effet, parce que la machine démarre en EFI et ne passe jamais par GRUB. Là, le paramètre doit aller dans/etc/kernel/cmdlinesuivi depve-efiboot-tool refresh.Même signature d'échec que la vôtre : le fichier de configuration dit une chose, sysfs en dit une autre, et on perd une soirée à soupçonner le matériel. Quel que soit l'hôte, relisez la valeur dans
/sys/module/...après chaque redémarrage et faites confiance à ça plutôt qu'au fichier que vous avez édité.