Solaris SAN Storage Multipath and Messages Check Script

Hi everybody,

i am working on the new script , its job discover the Storage Env ( especially MultiPATH ) and FC cards for solaris 11 sparc systems for now..
script is seem working ( but may contain any mistakes or bug ) on the oracle Qlogic fc cards on Emc_VMAx systems and Solaris 11 Sparc_64 systems...

examples ?

1-) interactive menu
---------------------

# ./solaris_san_fc_check n 

--> selectable menu view ( can see some usable parameters in below )

      -------------------------------------------------
      | SOLARIS SPARC MPATH/HBA/SAN/DISK INFORMATIONs |
      -------------------------------------------------
      1-) HBA states [online/offline]:
      2-) HBA-LUN-PORT General Informations:
      3-) HBA-LUN-PORT-PATH Specific Informations: (WWN)

      4-) Storage[EMC/IBM/HITACHI] Disks [MPxIO]: (LABEL_NAME or DISK ID)
      5-) Storage[EMC/IBM/HITACHI] Disks [LABEL -> DISK ID MATCH]: (LABEL_NAME)
      6-) Storage[EMC/IBM/HITACHI -> Host WWN ]: (WWN)
      7-) Storage[EMC/IBM/HITACHI -> Remote WWN ]: (PWWN)
      8-) Storage[EMC/IBM/HITACHI -> WWN_PWWN_LUN ]: (LABEL_NAME or DISK ID)
      9-) Non MPxIO Disks List:
     10-) Disks Errors: (LABEL_NAME)
     11-) Extendend Infos [LUN-WWN-RWWN-NWWN-PATHS (ONLINE/OFFLINE)]: (LABEL_NAME or DISK ID)

     12-) Inq Infos [[EMC/IBM/HITACHI Device-Serial-WWN-Label]: (LABEL_NAME or DISK ID)
     13-) Inq Infos [DEVICE-VEND-PROD-REV-SER NUM-CAP(kb)]: (DISK ID)
     14-) Inq HBA Infos [HBA-Vendor-Port Type-Speed]: (Host WWN)

     15-) DMESG ERROR ANALYZER: '[dd][fs][mm][ ,;][dd][fs][mm]'

     [ ALL parameters is OPTIONAL (AVALIABLE PARAMETERS SPECIFIED in the PARENTHESES) ]
================================================================================

Usage -> ./solaris_san_fc_check [y|ny|yy|n : Re-Scan the system force [y]es or [n]o] [menu_nr: (1-15)] [parameters]
================================================================================

Select Storage Informations ... [1-15] [q/x] ?

NOTE : script tries to getting some informations from system on FIRST execution therefore maybe its take long time !! ( ex : 3-4-11 )

2-) non-interactive ( command-line )
-------------------------------------

# ./solaris_san_fc_check n 2 
	--> no \( use NO for getting the new infos \) -> use OLD informations but but if there is OLD informations.. \( which cached in tmp dir \)
# ./solaris_san_fc_check 2 
	--> default \( use OLD \( DEFAULT : if OLD informations usable then use it \) informations..
# ./solaris_san_fc_check y 2 
--> yes \( use YES for getting new infos but if there is NOT OLD informations \) -> 
# ./solaris_san_fc_check yy 2 
--> yesyes \( FORCE use YES for getting new infos \) -> non-interactive with NEW informations

......

Some outputs :

# ./solaris_san_fc_check n 2

System HBA Info
-----------------------------------------------------------------
                      8 X FC_port ( Total )
                       [ c3 c7 c8 c9 c10 c21 c22 c23 ]

                      8 X FC_port ( Connected )
                       [ c3 c7 c8 c9 c10 c21 c22 c23 ]

                      2 X FC_port inactive ( Unconfigure )
                       [ c3 c8 ]

                      2 X FC_port disconnected ( Disconnected )
                       [ c3 c8 ]

                      6 X FC_port initialized state ( Configured )
                       [ c7 c9 c10 c21 c22 c23 ]

						...........................
# ./solaris_san_fc_check 3|more

FC Port WWN XXXXXXXXXXXXXXXX  -> PCIE3.[1] <-   ( online )
##############################################################################################################
FC HBA (Host)           Path             Remote                             LUN:                      Label
Port WWN             Channel                WWN
##############################################################################################################
XXXXXXXXXXXXXXXX          c7         YYYYYYYYYYYYYYYY      c0t60000xxxxxxxxxxxxxxxxxxxxxxxxxxxxd0s2   testLBL1
                                                           c0t60000xxxxxxxxxxxxxxxxxxxxxxxxxxxxd0s2   testLBL1
                                                           c0t60000xxxxxxxxxxxxxxxxxxxxxxxxxxxxd0s2   testLBL1
														   ...........................
# ./solaris_san_fc_check 4|more
###############################################################################################################
Disk/Vendor_Product/Size                     Label Name         WWPN,LUN                WWN             STATE
###############################################################################################################
============================================
c0t60000xxxxxxxxxxxxxxxxxxxxxxxxxxxd0         testLBL1                       8 x Path
[EMC_SYMMETRIX]
(262147.500 MB)
============================================
/devices/pci@380/pci@1/pci@0/pci@7/SUNW,qlc@0/fp@0,0          YYYYYYYYYYYYYYYY,f    xxxxxxxxxxxxxxxx    ONLINE
/devices/pci@380/pci@1/pci@0/pci@7/SUNW,qlc@0/fp@0,0          YYYYYYYYYYYYYYYY,f    xxxxxxxxxxxxxxxx    ONLINE
/devices/pci@380/pci@1/pci@0/pci@7/SUNW,qlc@0/fp@0,0          YYYYYYYYYYYYYYYY,f    xxxxxxxxxxxxxxxx	ONLINE
/devices/pci@380/pci@1/pci@0/pci@7/SUNW,qlc@0/fp@0,0          YYYYYYYYYYYYYYYY,f    xxxxxxxxxxxxxxxx	ONLINE
...........................
# ./solaris_san_fc_check 5 testLBL1

testLBL1 (8 x disk device)
===========================
c0t60000xxxxxxxxxxxxxxxxxxxxxxxxxxxd0
c0t60000xxxxxxxxxxxxxxxxxxxxxxxxxxxd0
c0t60000xxxxxxxxxxxxxxxxxxxxxxxxxxxd0
c0t60000xxxxxxxxxxxxxxxxxxxxxxxxxxxd0
c0t60000xxxxxxxxxxxxxxxxxxxxxxxxxxxd0
c0t60000xxxxxxxxxxxxxxxxxxxxxxxxxxxd0
c0t60000xxxxxxxxxxxxxxxxxxxxxxxxxxxd0
c0t60000xxxxxxxxxxxxxxxxxxxxxxxxxxxd0

( my favourite )

# ./solaris_san_fc_check 11 testLBL1
.....
.....

Disk Boundary
--------------------------------------------------------------------------------------------------------------
MPATH LUN ID                                  Vendor                          Size                  Label_Name
--------------------------------------------------------------------------------------------------------------
c0t60000xxxxxxxxxxxxxxxxxxxxxxxxxxxd0s2       EMC_SYMMETRIX                 524295.000 MB            testLBL1
==============================================================================================================

================================================================================
PCI Addres    Path              HBA Device
HBA           Channel                Path
================================================================================
PCIE7[1]      /dev/cfg/c10  /devices/pci@340/pci@1/pci@0/pci@6/SUNW,qlc@0,1/fp@0,0
================================================================================
                                                  |
                                                  |
                                                  ===================================================
                                                  Host WWN                Remote WWN           Status
                                                  ===================================================
                                                  210000xxxxxxxxxx     50000yyyyyyyyyyy,xx     ONLINE
                                                  210000xxxxxxxxxx     50000yyyyyyyyyyy,xx     ONLINE
                                                  210000xxxxxxxxxx     50000yyyyyyyyyyy,xx     ONLINE
                                                  210000xxxxxxxxxx     50000yyyyyyyyyyy,xx     ONLINE

...............
..................

-> messages parser

# ./solaris_san_fc_check 15 1/mar

Error Message part
--------------------------------------------------------------------------------

Mar 15 04:45:42 xxxxxxx scsi: [ID 107833 kern.warning] WARNING: /scsi_vhci/ssd@gc0t60000xxxxxxxxxxxxxxxxxxxxxxxxxxx (ssd108):
Mar 15 04:45:42 xxxxxxx         drive offline
----------------------------------------------------------------------


----------------------------------------------------------------------------------------
                         ->>>>>> ERROR ANALYSIS ->>>>>>
----------------------------------------------------------------------------------------

Logical Path
==================================================
Disk logical path cannot be found for [ c0t60000xxxxxxxxxxxxxxxxxxxxxxxxxxx ] !!
======================================================================

Disk Label
==================================================
Disk label not detected [ c0t60000xxxxxxxxxxxxxxxxxxxxxxxxxxx ] !!
======================================================================

SSD/Disk
==================================================
Disk ctd name not detected [ ssd108 ] !!
======================================================================
						
	
                END_END_END_END_END
----------------------------------------------------------------------

  • i think and wonder , when it works on the other systems , will it get the some errors ( big probably ) ??

->> if you have a system like below

	* Solaris \( Sparc \) 10 on older systems \( sun fire / fujitsu / netra / sun blade env \) and maybe other Solaris \( x86 -&gt; rackmount / netra \) platforms ?
	* have other storage systems \( fujitsu , hitachi , dell ... \)
	* have other hba cards \( native drivers \( like non-oracle emulex triggers may be gives some errors related "luxadm errors" ? \) 
	* have other raid cards \( i dont know which utility runs for the "non-LSI SCSI raid controller \( which i have "sas2ircu" \)  cards ? \)

i want to share this for that may will be usefull some points and we can improves together..
can you test it for functions of the script and can you share if you get the errors while testing this functions..

thanks already all @unix.com family
ygemici @unix.com