Les fonctions majeures du multipathing STMS sont :

- Load Balancing : lorsque plusieurs cartes d’attachement (HBA) sont installées dans un serveur, STMS distribue les I/Os sur l’ensemble des paths disponibles. Ceci permet d’éviter les goulots d’étranglements provoqués sur un port alors que le deuxième port est sous-utilisé.

- Path Failover : lorsque plusieurs cartes d’attachements (HBA) sont installées dans un serveur, un seul port est utilisé en temps normal, le deuxième reste disponible. Ce n’est qu’au moment où le port actif rencontre un problème que STMS bascule les I/Os sur les autres chemins path.

- Failback : suite à une bascule des I/Os d’un path en panne vers un path disponible et que le premier path redevient utilisable, on bascule à nouveau pour retrouver l’état initial.

- Path health checking : STMS vérifie en permanence l’état du path suivant un intervalle paramétré.

1. Mise en place de STMS

La commande format avant la mise en place de STMS :

# format
Searching for disks...done

AVAILABLE DISK SELECTIONS:

      0. c0t0d0 <SUN72G cyl 14087 alt 2 hd 24 sec 424>
         /pci@0,600000/pci@0/pci@8/pci@0/scsi@1/sd@0,0
      1. c0t1d0 <SUN72G cyl 14087 alt 2 hd 24 sec 424>
         /pci@0,600000/pci@0/pci@8/pci@0/scsi@1/sd@1,0
      2. c1t40d0 <SUN-StorEdge3510-415G cyl 35010 alt 2 hd 64 sec 255>
         /pci@0,600000/pci@0/pci@9/SUNW,qlc@0/fp@0,0/ssd@w216000c0ff8b586b,0
      3. c3t44d0 <SUN-StorEdge3510-415G cyl 35010 alt 2 hd 64 sec 255>
         /pci@1,700000/SUNW,qlc@0/fp@0,0/ssd@w256000c0ffcb586b,0


/pci@0,600000/pci@0/pci@9/SUNW,qlc@0/fp@0,0/ssd@w216000c0ff8b586b,0 et /pci@1,700000/SUNW,qlc@0/fp@0,0/ssd@w256000c0ffcb586b,0 sont les deux chemins d'accès physique à la baie.

L'activation de STMS se fait dans le fichier /kernel/drv/fp.conf. Il faut pour cela modifier la ligne :

mpxio-disable="yes";

en :

mpxio-disable="no";

La configutation de STMS se fait dans le fichier /kernel/rdv/scsi_vhci.conf. Pour une baie Sun StorEdge 3510, il faut mettre à la fin du fichier :

device-type-scsi-options-list =
"SUN StorEdge 3510", "symmetric-option";
symmetric-option = 0x1000000;

Rebooter ensuite en mode reconfigure :

# touch /reconfigure
# shutdown -g0 -y -i6

Lorsque j'ai mis en place cette procédure, en rebootant, je suis allé en "mode maintenance". Cela vient du fait que, dans le fichier /etc/vfstab, le filesystem monté sur la baie, était renseigné avec le nom du disque c1t40d0 :

/dev/dsk/c1t40d0s6 /dev/rdsk/c1t40d0s6 /appli ufs 2 yes -

En mettant en place STMS, les deux disques sont maintenant visibles par un seul chemin virtuel, comme le montre la commande format :

# format
Searching for disks...done

AVAILABLE DISK SELECTIONS:

      0. c0t0d0 <SUN146G cyl 14087 alt 2 hd 24 sec 848>
         /pci@0,600000/pci@0/pci@8/pci@0/scsi@1/sd@0,0
      1. c0t1d0 <SUN146G cyl 14087 alt 2 hd 24 sec 848>  Solaris
         /pci@0,600000/pci@0/pci@8/pci@0/scsi@1/sd@1,0
      2. c5t600C0FF00000000009C9F1178DD30B00d0 <SUN-StorEdge3510-421F cyl 52610 alt 2 hd 64 sec 255>
         /scsi_vhci/ssd@g600c0ff00000000009c9f1178dd30b00


Il suffit donc de modifier le fichier /etc/vfstab en modifiant la ligne correspondant à /appli, par (sur une seule ligne) :

/dev/dsk/c5t600C0FF00000000009C9F1178DD30B00d0s6 /dev/rdsk/c5t600C0FF00000000009C9F1178DD30B00d0s6 /appli ufs 2 yes -

Rebooter ensuite pour booter "normalement".

Pour voir la correspondance entre les chemins physiques et les chemins virtuel :

# stmsboot -L
non-STMS device name STMS device name
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
/dev/rdsk/c1t40d0 /dev/rdsk/c5t600C0FF0000000000B586B4B5F982000d0
/dev/rdsk/c3t44d0 /dev/rdsk/c5t600C0FF0000000000B586B4B5F982000d0

Vérifier que les disques passent bien par 2 chemins :

# mpathadm list lu
/dev/rdsk/c5t600C0FF00000000009C9F14B86FB4100d0s2
Total Path Count: 2
Operational Path Count: 2

Voir les chemins des LUNs :

# mpathadm show lu /dev/rdsk/c5t600C0FF0000000000B586B4B5F982000d0s2
Logical Unit: /dev/rdsk/c5t600C0FF0000000000B586B4B5F982000d0s2

       mpath-support:  libmpscsi_vhci.so
       Vendor:  SUN
       Product:  StorEdge 3510
       Revision:  415G
       Name Type:  unknown type
       Name:  600c0ff0000000000b586b4b5f982000
       Asymmetric:  no
       Current Load Balance:  round-robin
       Logical Unit Group ID:  NA
       Auto Failback:  on
       Auto Probing:  NA
       Paths:
               Initiator Port Name:  2100001b3210258e
               Target Port Name:  216000c0ff8b586b
               Override Path:  NA
               Path State:  OK
               Disabled:  no
               Initiator Port Name:  2100001b3210f28e
               Target Port Name:  256000c0ffcb586b
               Override Path:  NA
               Path State:  OK
               Disabled:  no
       Target Ports:
               Name:  216000c0ff8b586b
               Relative ID:  0
               Name:  256000c0ffcb586b
               Relative ID:  0

Nous pouvons aussi utiliser la commande luxadm pour voir les chemins d'une LUN :

# luxadm probe
No Network Array enclosures found in /dev/es

Found Fibre Channel device(s):

 Node WWN:206000c0ff0b586b  Device Type:Disk device
   Logical Path:/dev/rdsk/c5t600C0FF0000000000B586B4B5F982000d0s2


Et à l'aide du "Node WWN" :

# luxadm display 206000c0ff0b586b
DEVICE PROPERTIES for disk: 206000c0ff0b586b

 Vendor:               SUN
 Product ID:           StorEdge 3510
 Revision:             415G
 Serial Num:           0B586B4B5F982000
 Unformatted capacity: 279004.000 MBytes
 Read Cache:           Enabled
   Minimum prefetch:   0x0
   Maximum prefetch:   0xffff
 Device Type:          Disk device
 Path(s):
 /dev/rdsk/c5t600C0FF0000000000B586B4B5F982000d0s2
 /devices/scsi_vhci/ssd@g600c0ff0000000000b586b4b5f982000:c,raw
  Controller           /devices/pci@0,600000/pci@0/pci@9/SUNW,qlc@0/fp@0,0
   Device Address              216000c0ff8b586b,0
   Host controller port WWN    2100001b3210258e
   Class                       primary
   State                       ONLINE
  Controller           /devices/pci@1,700000/SUNW,qlc@0/fp@0,0
   Device Address              256000c0ffcb586b,0
   Host controller port WWN    2100001b3210f28e
   Class                       primary
   State                       ONLINE