[Update: We're at version 1.3 now, just look at the vhci_stat-Page]
When you have some Solaris machines with MPxIO (scsi_vhci) enabled you may begin to cry why there isn't a simple tool to show all paths to a certain volume AND ITS STATUS.
You may use stmsboot to accomplish the further, but it will only show paths which have been found before you configured scsi_vhci. Why? Because devices found afterwards which have been taken immediately by scsi_vhci do not have a seperate devfs entry - neither in /devices nor in /dev.
So stmsboot does not show them. You may also use luxadm of StorEdge Traffic Manager.
I preferred a simplier solution: I wrote a very tiny little test program using scsi_vhci ioctls to get the required info and to print it - it also sets a return code equally to the number of failed links. If all links are not in FAILED state, it will return 0 (zero).
Example:
You may even reprobe devices using "-p" as an option. Option "-i" sends an SCSI inquiry to each device to look up its vendor and product id.
When I have some time I will add Controller names instead of their PCI path. In my example, you see two different FibreChannel controller ports (each residing on a separate controller):
-
You may find this utility on my vhci_stat-Page.
I would be glad to get feedback from you!
When you have some Solaris machines with MPxIO (scsi_vhci) enabled you may begin to cry why there isn't a simple tool to show all paths to a certain volume AND ITS STATUS.
You may use stmsboot to accomplish the further, but it will only show paths which have been found before you configured scsi_vhci. Why? Because devices found afterwards which have been taken immediately by scsi_vhci do not have a seperate devfs entry - neither in /devices nor in /dev.
So stmsboot does not show them. You may also use luxadm of StorEdge Traffic Manager.
I preferred a simplier solution: I wrote a very tiny little test program using scsi_vhci ioctls to get the required info and to print it - it also sets a return code equally to the number of failed links. If all links are not in FAILED state, it will return 0 (zero).
Example:
# vhci_stat -i
vhci_stat
1.1; Pascal Gienger <pascal@southbrain.com>; http://southbrain.com/south/
Host: atlanta
PATH WWPN,LUN STATE
------------------------------------------------- ------------------- -----
/scsi_vhci/disk@g600d0230006c1c4c0c50be27386c4900
(Vendor = ADVUNI Model = OXYGENRAID 416F4 Rev. = 347B VolID = 27386C49)
/pci@7b,0/pci10de,5d@e/pci1077,142@0/fp@0,0 220000d0232c50be,2 ONLINE
/pci@7b,0/pci10de,5d@d/pci1077,142@0/fp@0,0 210000d0231c50be,2 ONLINE
/scsi_vhci/disk@g600d0230006c1c4c0c50be6456ac0d00
(Vendor = ADVUNI Model = OXYGENRAID 416F4 Rev. = 347B VolID = 6456AC0D)
/pci@7b,0/pci10de,5d@e/pci1077,142@0/fp@0,0 220000d0232c50be,1 ONLINE
/pci@7b,0/pci10de,5d@d/pci1077,142@0/fp@0,0 210000d0231c50be,1 ONLINE
[... rest omitted ...]
You may even reprobe devices using "-p" as an option. Option "-i" sends an SCSI inquiry to each device to look up its vendor and product id.
When I have some time I will add Controller names instead of their PCI path. In my example, you see two different FibreChannel controller ports (each residing on a separate controller):
-
/pci@7b,0/pci10de,5d@d/pci1077,142@0/fp@0,0
- /pci@7b,0/pci10de,5d@e/pci1077,142@0/fp@0,0You may find this utility on my vhci_stat-Page.
I would be glad to get feedback from you!

Leave a comment