Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

Chapitre 34. Scanner les interconnexions du stockage

Plusieurs commandes vous permettront de réinitialiser, de scanner (ou les deux à la fois) une ou plusieurs interconnexion(s), ajoutant ou supprimant potentiellement plusieurs périphériques en une seule opération. Ce type de scan peut être perturbateur car il peut provoquer des délais alors que les opérations d'E/S expirent et peut supprimer des périphériques de manière inattendue. Ainsi, Red Hat recommande d'utiliser le scan d'interconnexions uniquement lorsque nécessaire. Les restrictions suivantes doivent être observées lorsque les interconnexions de stockage sont scannées :
  • Toutes les E/S sur interconnexions affectées doivent être mises sur pause et vidées avant d'exécuter la procédure, et les résultats du scan doivent être vérifiés avant de reprendre les E/S.
  • Comme pour la suppression de périphériques, scanner des interconnexions n'est pas recommandé lorsque le système se trouve sous pression mémoire. Pour déterminer le niveau de pression mémoire, exécutez la commande vmstat 1 100. Scanner les interconnexions n'est pas recommandé si la quantité de mémoire disponible fait moins de 5% de la mémoire totale dans plus de 10 échantillons pour 100. Aussi, le scan d'interconexions n'est pas recommandé si la fonction swap est active (avec des colonnes si et so qui ne sont pas égales à zéro dans la sortie vmstat). La commande free peut également afficher la mémoire totale.
Les commandes suivantes peuvent être utilisées pour scanner les interconnexions de stockage :
echo "1" > /sys/class/fc_host/host/issue_lip
Cette opération effectue un Loop Initialization Protocol (LIP), analyse l’interconnexion et met à jour la couche SCSI pour refléter les périphériques actuellement présents sur le bus. Essentiellement, un LIP est une réinitialisation du bus et entraîne l'ajout ou la suppression de périphériques. Cette procédure est nécessaire pour configurer une nouvelle cible SCSI sur un réseau d’interconnexion Fibre Channel.
Notez que issue_lip est une opération asynchrone. La commande peut finaliser son but avant la fin du scan. Vous pourrez vérifier dans le fichier /var/log/messages si la commande issue_lip est terminée.
Les pilotes lpfc, qla2xxx, et bnx2fc supportent issue_lip. Pour plus d'informations sur les fonctions des API supportées par chaque pilote dans Red Hat Enterprise Linux, consulter Tableau 26.1, « Capacités de l'API Fibre-Channel ».
/usr/bin/rescan-scsi-bus.sh
Le script /usr/bin/rescan-scsi-bus.sh a été introduit dans Red Hat Enterprise Linux 5.4. Par défaut, ce script scanne tous les bus SCSI du système, et met à jour la couche SCSI pour refléter la présence de nouveaux périphériques sur le bus. Le script fournit des options supplémentaires pour permettre la suppresion de périphériques, et le lancement des LIP. Pour obtenir plus d'informations sur ce script, y compris les problèmes connus, consulter Chapitre 38, Ajouter ou supprimer une unité logique avec rescan-scsi-bus.sh.
echo "- - -" > /sys/class/scsi_host/hosth/scan
C’est la même commande, comme décrit dans Chapitre 31, Ajouter un périphérique ou un chemin de stockage, qui sert à ajouter un périphérique de stockage ou le chemin d’accès. Dans ce cas, toutefois, le numéro du canal, l'ID cible SCSI, et des valeurs LUN sont remplacés par des caractères génériques. Toute combinaison de caractères génériques et d'identificateurs est autorisée, donc vous pouvez rendre la commande aussi précise qu'englobante selon les besoins. Cette procédure ajoute des LUN, mais ne les supprime pas.
modprobe --remove driver-name, modprobe driver-name
En exécutant la commande modprobe--remove driver-name suivie de la commande modprobe driver-name, vous ré-initialisez totalement l’état de toutes les interconnexions controlées par le pilote. Bien qu’il s'agisse d'une mesure relativement extrême, utiliser les commandes décrites peut être appropriée dans certaines situations. Les commandes peuvent être utilisées, par exemple, pour redémarrer le pilote avec une valeur de paramètre de module différente.