Solaris 10: configuration de drives avec IBMtape

J’ai eu une configuration de lecteurs de bandes a réalisé sur un serveur en solaris 10 pour l’utilisation du LAN FREE BACKUP. Je disposais de deux cartes QLOGIC 2200F manufacturés par SUN et de drives LTO1, LTO2 et 3590E. Je dois dire que la configuration du driver IBMtape n’a pas été simple. La configuration de ce driver sur Solaris 10 étant assez mal documenté à mon avis. C’est pourquoi je me suis décidé à décrire mon installation.

Le Storage Agent TSM qui gère le Lan Free Backup nécessite l’utilisation du driver IBMtape pour fonctionner. Ce driver remplace le driver st natif.

J’ai commencé a modifier le fichier /kernel/drv/st.conf pour que le driver st ne réclame pas les drives lors de la détection matérielle. Dans le cas où seul des drives devant être gérés par le Storage Agent TSM sont connectés par fibre, il suffit de commenter cette entrée :

name="st" parent="fp" target=0;

Dans mon cas, un impératif de l'installation était d’éviter au maximum de rebooter le système pour configurer les drives. Le serveur est en production et je ne disposais pas d’un serveur de test :-(.

J’ai donc commencé par vérifier si le driver st était chargé en mémoire :

modinfo |grep "st "

Et comme c’était le cas, je l’ai déchargé :

rem_drv st

J’ai repéré mes cartes QLOGIC gràce à cette petite merveille d’utilitaire qu’est fcinfo. Avec le paramètre hba-port cela permet d’obtenir rapidement la liste des cartes fibre du système, leur WWN, les débits supportés et courant. Voici le résultat de cette commande sur mon système pour les deux cartes fibres dédiés au drives:

# fcinfo hba-port
HBA Port WWN: 210000e08b0766ca
OS Device Name: /dev/cfg/c2
Manufacturer: QLogic Corp.
Model: 375-3030-xx
Type: N-port
State: online
Supported Speeds: 1Gb
Current Speed: 1Gb
Node WWN: 200000e08b0766ca
HBA Port WWN: 210100e08b2766ca
OS Device Name: /dev/cfg/c5
Manufacturer: QLogic Corp.
Model: 375-3030-xx
Type: N-port
State: online
Supported Speeds: 1Gb
Current Speed: 1Gb
Node WWN: 200100e08b2766ca
.....

Les deux cartes sur lesquelles je désire configurer mes drives sont c2 et c5.

Je vérifie leurs configuration avec la commande cfgadm :

 
# cfgadm -al
Ap_Id Type Receptacle Occupant Condition
c2 fc connected unconfigured unknown
c5 fc connected unconfigured unknown

Les cartes sont détectées au niveau matériel mais non configurées.

C’est a ce moment là que l’on fait voir les drives sur les fibres au niveau SAN.

La configuration des cartes s’effectue aussi avec la commande cfgadm en lui passant l’instruction configure. Il est possible de faire configurer les deux cartes en une commande :

cfgadm -c configure c2 c5

A ce moment là, les drives sont visibles par le système mais il n’arrive pas à les configurer (le driver IBMtape n’est pas encore chargé), il est donc normal de voir apparaitre des messages de ce type dans /var/adm/messages :

Aug 23 18:59:27 srv1 scsi: [ID 243001 kern.warning] WARNING: /pci@9d,600000/pci@1/SUNW,qlc@4/fp@0,0 (fcp2):
Aug 23 18:59:27 srv1 Failed to create nodes for pwwn=500507630f467815; error=5
Aug 23 18:59:27 srv1 scsi: [ID 243001 kern.info] /pci@9d,600000/pci@1/SUNW,qlc@4/fp@0,0 (fcp2):
Aug 23 18:59:27 srv1 ndi_devi_online: failed for scsiclass,01.vIBM.pULT3580-TD1: target=903cc lun=0 ffffffff
Aug 23 18:59:27 srv1 scsi: [ID 243001 kern.warning] WARNING: /pci@9d,600000/pci@1/SUNW,qlc@4/fp@0,0 (fcp2):
Aug 23 18:59:27 srv1 Failed to create nodes for pwwn=50050763004b9601; error=5
Aug 23 18:59:37 srv1 scsi: [ID 243001 kern.info] /pci@9d,600000/pci@1/SUNW,qlc@4/fp@0,0 (fcp2):
Aug 23 18:59:37 srv1 ndi_devi_online: failed for scsiclass,01.vIBM.pULT3580-TD2: target=90cab lun=0 ffffffff
Aug 23 18:59:37 srv1 scsi: [ID 243001 kern.warning] WARNING: /pci@9d,600000/pci@1/SUNW,qlc@4/fp@0,0 (fcp2):
Aug 23 18:59:37 srv1 Failed to create nodes for pwwn=50050763004b9615; error=5
Aug 23 18:59:37 srv1 scsi: [ID 243001 kern.info] /pci@9d,600000/pci@1/SUNW,qlc@4/fp@0,0 (fcp2):
Aug 23 18:59:37 srv1 ndi_devi_online: failed for scsiclass,01.vIBM.pULT3580-TD2: target=90da9 lun=0 ffffffff
Aug 23 18:59:37 srv1 scsi: [ID 243001 kern.warning] WARNING: /pci@9d,600000/pci@1/SUNW,qlc@4/fp@0,0 (fcp2):
Aug 23 18:59:37 srv1 Failed to create nodes for pwwn=50050763004b9617; error=5
....

La ligne suivante “ndi_devi_online: failed for scsiclass,01.vIBM.pULT3580-TD2” indique qu’il n’y a pas de driver prévue pour configurer le matériel référencé comme scsiclass,01.vIBM.pULT3580-TD2.

Techniquement, il serait plus propre de configurer les cartes après avoir chargé le driver IBMtape pour éviter ces messages. Cela permet tout de même de vérifier que le driver st ne configure pas les drives.

Je me suis ensuite basé sur la procédure fournie dans le fichier IBMtape.readme (accessible à l’url suivante : ftp://service.software.ibm.com/storage/devdrvr/IBMtape.conf )pour la configuration des cartes HBA SUN mais en la modifiant pour éviter un reboot du serveur.

Normalement, il est précisé d’ajouter les entrées correspondantes aux modèles de drive gérés dans le fichier /etc/driver_aliases. Dans mon cas, il s’agit des lignes suivantes :

  • LTO1 : “scsiclass,01.vIBM.pULT3580-TD1”
  • LTO2 : “scsiclass,01.vIBM.pULT3580-TD2”
  • 3590E1A : “scsiclass,01.vIBM.p03590E1A”

On retrouve bien les références scsiclass qui n’était pas configurées auparavant. Le problème est qu’il n’est plus possible de charger le driver IBMtape une fois cela fait. Un redémarrage est nécessaire(comme indiqué dans la procédure ). Ma solution a donc consisté à charger le driver en lui spécifiant directement le matériel qu’il était censé gérer :

add_drv -i '"scsiclass,01.vIBM.p03590E1A" "scsiclass,01.vIBM.pULT3580-TD2" "scsiclass,01.vIBM.pULT3580-TD1"' -m  '* 0666 bin bin' IBMtape

Si tout se passe bien, on voit ce genre de message apparaitre dans le fichier log /var/adm/messages :

Aug 23 19:02:16 wsdscef1d2 IBMtape: [ID 243001 kern.info]          IBMtape      _init: enter
Aug 23 19:02:16 wsdscef1d2 IBMtape: [ID 702911 kern.notice]
Aug 23 19:02:16 wsdscef1d2
Aug 23 19:02:16 wsdscef1d2 IBM Tape & Medium Changer Device Driver
Aug 23 19:02:16 wsdscef1d2 for Solaris 8, 9 and 10 Sparc Systems
Aug 23 19:02:16 wsdscef1d2
Aug 23 19:02:16 wsdscef1d2 Version 4.1.4.1
Aug 23 19:02:16 wsdscef1d2
Aug 23 19:02:16 wsdscef1d2 (C) COPYRIGHT IBM Corporation, 1994-
Aug 23 19:02:16 wsdscef1d2 Licensed Materials - Property of IBM
Aug 23 19:02:16 wsdscef1d2 All Rights Reserved
Aug 23 19:02:16 wsdscef1d2
Aug 23 19:02:16 wsdscef1d2 US Government Users Restricted Rights -
Aug 23 19:02:16 wsdscef1d2 Use, duplication, or disclosure restricted
Aug 23 19:02:16 wsdscef1d2 by GSA ADP Schedule Contract with IBM Corp.
Aug 23 19:02:16 wsdscef1d2
Aug 23 19:02:16 wsdscef1d2 last message repeated 1 time
Aug 23 19:02:16 wsdscef1d2 pseudo: [ID 129642 kern.info] pseudo-device: IBMtape16382
Aug 23 19:02:16 wsdscef1d2 genunix: [ID 936769 kern.info] IBMtape16382 is /pseudo/IBMtape@16382
Aug 23 19:02:16 wsdscef1d2 pseudo: [ID 129642 kern.info] pseudo-device: IBMtape16383
Aug 23 19:02:16 wsdscef1d2 genunix: [ID 936769 kern.info] IBMtape16383 is /pseudo/IBMtape@16383

Ceci indique que le driver s’est bien chargé. C’est suivi d’un message par drive détecté. Pour la détection d’un drive LTO1 :

Aug 23 23:16:20 srv1 IBMtape: [ID 107833 kern.notice] NOTICE:  IBMtape      _probe: Found Tape Drive     ULT3580-TD1     , Inst   66, Tgt 656585, Lun   0
Aug 23 23:16:21 srv1 scsi: [ID 799468 kern.notice] IBMtape66 at fp3: name w50050763004b9604,0, bus address a04c9

Pour la détection d’un drive LTO2 :

Aug 23 23:15:22 srv1 IBMtape: [ID 107833 kern.notice] NOTICE:  IBMtape      _probe: Found Tape Drive     ULT3580-TD2     , Inst    3, Tgt 658358, Lun   0
Aug 23 23:15:22 srv1 IBMtape: [ID 243001 kern.info] scsiclas( 3)
Aug 23 23:15:22 srv1 IBMtape: [ID 243001 kern.info] scsiclas( 3) 70 0 5 0 0 0 0 1C 0 0 0 0 24 0 30 CF
Aug 23 23:15:22 srv1 IBMtape: [ID 243001 kern.info] scsiclas( 3) 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Aug 23 23:15:22 srv1 IBMtape: [ID 243001 kern.info] scsiclas( 3) 0 0 0 0
Aug 23 23:15:22 srv1 IBMtape: [ID 243001 kern.info] scsiclas( 3)
Aug 23 23:15:22 srv1 IBMtape: [ID 243001 kern.info] scsiclas( 3) 70 0 5 0 0 0 0 1C 0 0 0 0 24 0 30 CF
Aug 23 23:15:22 srv1 IBMtape: [ID 243001 kern.info] scsiclas( 3) 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Aug 23 23:15:22 srv1 IBMtape: [ID 243001 kern.info] scsiclas( 3) 0 0 0 0
Aug 23 23:15:22 srv1 IBMtape: [ID 243001 kern.info] scsiclas( 3)
Aug 23 23:15:22 srv1 IBMtape: [ID 243001 kern.info] scsiclas( 3) 70 0 5 0 0 0 0 1C 0 0 0 0 24 0 30 CF
Aug 23 23:15:22 srv1 IBMtape: [ID 243001 kern.info] scsiclas( 3) 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Aug 23 23:15:22 srv1 IBMtape: [ID 243001 kern.info] scsiclas( 3) 0 0 0 0
Aug 23 23:15:22 srv1 scsi: [ID 799468 kern.notice] IBMtape3 at fp3: name w50050763004b960c,0, bus address a0bb6

Pour la détection d’un drive 3590E1A

Aug 24 18:00:54 srv1 IBMtape: [ID 107833 kern.notice] NOTICE:  IBMtape      _probe: Found Tape Drive     03590E1A        , Inst   14, Tgt 655910, Lun   0
Aug 24 18:00:54 srv1 scsi: [ID 799468 kern.notice] IBMtape14 at fp3: name w5005076300402d78,0, bus address a0226

Une fois les drives détectés, on lance le service tmd :

# /opt/IBMtape/tmd

Puis l’on vérifie comment les drives sont détectés par IBMtape :

# /opt/IBMtape/tapelist -l 
Inst# Special File Device Serial No TGT/LUN Ucode World Wide NN World Wide PN Device Physical Path Path Type
----- --------------- ------------ ---------------- ------- ------ ---------------- ---------------- -------------------------------------------- ----------
29 /dev/rmt/3st ULT3580-TD2 1110285896 852169/0 73V1 500507630F067804 N/A /devices/pci@9d,600000/pci@1/SUNW,qlc@4/fp@0,0/st@w500507630f467804,0 N/A
13 /dev/rmt/27st 03590E1A 0000000C1734 655654/0 F2C6 5005076300003131 N/A /devices/pci@9d,600000/pci@1/SUNW,qlc@5/fp@0,0/st@w5005076300403131,0 N/A
30 /dev/rmt/4st ULT3580-TD2 1110285712 852423/0 73V1 500507630F067805 N/A /devices/pci@9d,600000/pci@1/SUNW,qlc@4/fp@0,0/st@w500507630f467805,0 N/A
12 /dev/rmt/0st ULT3580-TD2 1110285204 786636/0 73V1 500507630F067801 N/A /devices/pci@9d,600000/pci@1/SUNW,qlc@5/fp@0,0/st@w500507630f467801,0 N/A
32 /dev/rmt/5st ULT3580-TD2 1110285672 852678/0 73V1 500507630F067806 N/A /devices/pci@9d,600000/pci@1/SUNW,qlc@4/fp@0,0/st@w500507630f467806,0 N/A
4 /dev/rmt/1st ULT3580-TD2 1110285165 786891/0 73V1 500507630F067802 N/A /devices/pci@9d,600000/pci@1/SUNW,qlc@5/fp@0,0/st@w500507630f467802,0 N/A

Dans le prochain billet, je parlerais des outils de diagnostic SAN que j'ai utilisé lorsque j'ai rencontré un problème de perte de lien SAN sur ces drives et du cas particulier de l'utilisation du lan Free backup par une zone locale.

Commentaires

1. Le dimanche, mars 16 2008, 19:34 par Lavoux

bonjour, merci poour ce billet intéressant (comme souvent !) ; hrureusement que tu as précisé : "bus address a0226 une fois les drives detectes":) on aurait eu du mal à saisir l'essentie :)

2. Le lundi, octobre 20 2008, 19:20 par Stéphane

trouvé sur le net

3. Le lundi, octobre 20 2008, 19:20 par alain dejoux

Stéphane,

J'ai pas compris le commentaire. Si tu parle de la partie chargement du driver IBMtape, je précise bien dans le post que la procédure d'installation se trouve dans le fichier IBMtape.readme et je fournis même le lien, je peux difficilement faire plus référence à la source.
Le concept du post est de décrire la démarche de A à Z et puis avant de mettre la main sur le readme j'ai passé du temps à comprendre comment ça marchait et même avec ça n'a pas été immédiat. Le but est de faciliter la vie aux personnes qui feront la même opération.

Si par contre tu as vu un document vraiment proche du mien sur Internet, ça m'intéresse d'avoir le lien.

Alain