Nouvelle analyse des LUN Fibre Channel et QLogic


8

J'ai un grave problème avec une baie de stockage SAN connectée à un boîtier Linux via Fibre Channel. Voici la configuration:

  • Debian avec plain vanilla linux 2.6.27.25
  • Contrôleur fibre optique QLogic 4Gb double port (basé sur ISP2432)

Fondamentalement, le problème est: comment obtenir ce #? @ !! Contrôleur / pilote FC pour reconnaître correctement les changements de configuration (LUN nouveaux ou supprimés) de la matrice de stockage?

  1. lorsque je crée un nouveau LUN sur ma baie (généralement un instantané de certains LUN existants) et que je le mappe sur mon HBA, je ne peux pas le faire reconnaître correctement: rescan-scsi-bus -l -w -rdétecte réellement quelque chose (un périphérique générique / dev / sgXX) mais aucun périphérique de bloc est créé (/ dev / sdXX).
  2. même chose lors de l'émission d'un LIP et d'une nouvelle analyse manuelle:

    echo 1> / sys / class / fc_host / host6 / issue_lip

    echo "- - -"> / sys / class / scsi_host / host6 / scan

  3. si je supprime un LUN existant, aucune émission de LIP et de nouvelle analyse ou rescan-scsi-bus n'a d'effet. Les appareils précédents restent là et bien sûr ne fonctionnent pas ("file -s / dev / sdXX -> I / O error").

  4. le rechargement du pilote qla2xxx fonctionne. Cependant, il est totalement irréalisable dans un environnement de production.

Apparemment, c'est un problème très courant avec QLogic . Il existe une sorte de solution qui fonctionne uniquement lors de l'utilisation du pilote émis par QLogic disponible uniquement pour les distributions d'entreprise RedHat et Suse: voir cette explication .

Information additionnelle :

Voici les périphériques scsi avant LIP et rescan:

# 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

Après une LIP et une nouvelle analyse, j'ai un nouveau périphérique sg, mais pas de lecteur correspondant. Si je recharge le pilote, un lecteur apparaît:

# 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, évidemment, c'est un écrou difficile à casser. Je vais demander au LKML et faire un rapport ici.


Le pilote émis par QLogic dont vous parlez peut également être compilé pour d'autres distributions - ce n'est pas un blob binaire.
Captain Segfault

Très bien, où puis-je le trouver alors? J'ai compilé tout le noyau, un pilote de plus n'est pas un problème du tout.
wazoox

J'ai ce problème, avez-vous réussi à découvrir quelque chose?
ThatGraemeGuy

Désolé, pas encore d'informations.
wazoox

Réponses:


2

Dans l'éventualité où le périphérique de bloc est détecté, mais aucun / dev / périphérique n'est créé, vous pouvez créer manuellement le périphérique. Ce n'est pas optimal, mais cela pourrait vous booster. Les nombres majeurs et mineurs sont présentés dans / proc / partitions, et vous pouvez créer vos propres périphériques de bloc via la commande mknod.

 # mknod /dev/sdg4 104 17

Cependant, je ressens ta douleur. QLogic propose le téléchargement de pilotes pour RHEL et SUSE mais il ne semble pas y avoir d'autres distributions. OpenSUSE pourrait bien avoir les pilotes de marque QLogic mais je ne peux pas en être certain. Je vérifierai de plus près quand j'arriverai au travail.

Edit : je suis au travail, et il semble que les pilotes QLogic sur mes boîtiers SLES soient tous ceux fournis par QLogic. Leur grille de support OS:

http://filedownloads.qlogic.com/files/Driver/71098/readme_driver_80223.html#os_support

Et pourtant, lorsque je télécharge le noyau 2.6.27.25 standard et que je regarde dans le fichier ./drivers/scsi/qla2xxx/qla_version.h, ce sont presque les mêmes numéros de version que ceux que j'ai sur mes distributions Novell (SLES et openSUSE gratuit). Ce qui suggère que la solution que vous avez trouvée pour SLES / RHEL peut réellement fonctionner avec un noyau 2.6.27.25 standard.


Malheureusement, cela ne peut pas fonctionner, car il mentionne l'utilisation d'un fichier inexistant (/ proc / scsi / qla2xxx / ...) et d'une commande (scsi-qlascan) qui n'apparaît pas dans le code source du pilote.
wazoox

1

Oui, beaucoup de conseils sur Google, mais la plupart sinon tous concernent RedHat / SuSe et le pilote propriétaire Qlogic ... Cependant, l'un de vos liens m'a donné une idée, je serai de retour :)
wazoox

Eh bien, euh, j'ai essayé avec le dernier firmware, mais pas de chance ...
wazoox
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.