Solaris MultiPathing options
This is a simple post to check if any of the Solaris Multipathing Software (MPxIO/STMS), Veritas Dynamic Multi-Pathing (VxDMP) or EMC PowerPath Data Protection Software is installed and active on a given Solaris system.
MPxIO/STMS
Enabling MPxIO
Check the MPxIO/STMS configuration file to see if Solaris multipathing is enabled.
Solaris 10 is the easier, because the mpxio capability is built-in. You just need to turn it on! To enable it, edit the file /kernel/drv/fp.conf file. At the end it should say:
mpxio-disable="yes";
Just change yes to no and it will be enabled:
mpxio-disable="no";
For Solaris 9 and earlier the steps are the same as for Solaris 10, it's just that the files are different. Edit /kernel/drv/scsi_vhci.conf and change the line that says:
mpxio-disable="yes";
Just change yes to no and it will be enabled:
mpxio-disable="no";
For Solaris 9 you may also need to download and install the SAN Foundation Kit (Go to Sun's download site and then look for "StorEdge SAN 4.#".)
Note: This file can be manually edited without performing a reboot, so this may not be a reliable method to check MPxIO is active.
If you make changes to the configuration file, then you will need to perform a reconfiguration boot to allow Solaris to create the multipathed devices.
Disable individual ports
Enabling MPxIO enables it everywhere. This includes the internal devices if they are fibre-attached. To disable any port, use the same configuration file and add a line similar to the following:
Solaris 10
name="fp" parent="/pci@8,600000/SUNW,qlc@2" port=0 mpxio-disable="yes";
Solaris 9
name="qlc" parent="/pci@8,600000" unit-address="2" mpxio-disable="yes";
Checking devices
Before multipathing, you should see two copies of each disk in format. Afterwards, you'll just see the one copy.
With MPxIO enabled, any disk controlled with MPxIO will have a pseudo device under /dev/rdsk
with the format c#t#d#s#
. Where the t#
is a 32 character hex string:
# ll /dev/rdsk | awk '{print$9}' [...] c6t600C0FF000000000086AB238B2AF0600d0s0 c6t600C0FF000000000086AB238B2AF0600d0s1 c6t600C0FF000000000086AB238B2AF0600d0s2 c6t600C0FF000000000086AB238B2AF0600d0s3 c6t600C0FF000000000086AB238B2AF0600d0s4 c6t600C0FF000000000086AB238B2AF0600d0s5 c6t600C0FF000000000086AB238B2AF0600d0s6 c6t600C0FF000000000086AB238B2AF0600d0s7 [...]
Non-MPxIO real disk (SAN disk)
# ll /dev/rdsk/c2t5006048449AFAC72d0s0 lrwxrwxrwx 1 root root 79 Jun 14 2007 /dev/rdsk/c2t5006048449AFAC72d0s0 -> \ ../../devices/pci@8,600000/fibre-channel@1/fp@0,0/ssd@w5006048449afac72,0:a,raw
MPxIO pseudo disk
# ll /dev/rdsk/c4t6006048000028775185753594D303030d0s0 lrwxrwxrwx 1 root root 67 Jun 14 2007 /dev/rdsk/c4t6006048000028775185753594D303030d0s0 -> \ ../../devices/scsi_vhci/ssd@g6006048000028775185753594d303030:a,raw
VxDMP
To check if VxDMP is installed and enabled we have to check if the VxDMP module is loaded in the kernel or not)
# modinfo | grep vxdmp 22 102f680e 1b23c 223 1 vxdmp (VxVM 3.5s_p2.8 DMP Driver)
If MPxIO is enabled, VxDMP may be present and active but it will only see one path (the MPxIO pseudo device), and therefore is not particularly interesting:
To show which devices VxDMP is enabled for, run:
vxdmpadm listctlr all
For example:
# vxdmpadm listctlr all CTLR-NAME ENCLR-TYPE STATE ENCLR-NAME ===================================================== c1 EMC_CLARiiON ENABLED EMC0 c2 EMC_CLARiiON ENABLED EMC0 c3 SENA ENABLED SENA0 c4 EMC ENABLED EMC1 c5 EMC ENABLED EMC1
PowerPath
To check if PowerPath is installed and enabled we have to check if the kernel module is loaded:
modinfo | grep -i emcp
For example:
# modinfo | grep -i emcp 47 78172000 6b3bd 238 1 emcp (PowerPath Driver 3.0.3) 48 781de000 c3a8 - 1 emcpcg (PowerPath CG Ext 3.0.3) 49 781ea000 1d30d - 1 emcpmpc (PowerPath MPC Ext 3.0.3) 50 7820a000 15ccd - 1 emcpmp (PowerPath MP Ext 3.0.3) 51 78222000 7bbc - 1 emcppn (PowerPath PN Ext 3.0.3) 52 78189c3d 690 - 1 emcpioc (PowerPath PIOC 3.0.3)
To verify that disks are under PowerPath control:
powermt display dev=all
For example:
# pwermt display dev=all # powermt display dev=all Pseudo name=emcpower37a VNX ID=CKM00114901418 [Golf05] Logical device ID=600601600BE02A00046526A7567FE211 [GOLF05-nlcd04_apps] state=alive; policy=CLAROpt; queued-IOs=0 Owner: default=SP B, current=SP B Array failover mode: 4 ============================================================================== --------------- Host --------------- - Stor - -- I/O Path -- -- Stats --- ### HW Path I/O Paths Interf. Mode State Q-IOs Errors ============================================================================== 3072 pci@9,600000/SUNW,qlc@1/fp@0,0 c2t5006016F3EA044D4d0s0 SP B7 active alive 0 0 3072 pci@9,600000/SUNW,qlc@1/fp@0,0 c2t500601673EA044D4d0s0 SP A7 active alive 0 0 3072 pci@9,600000/SUNW,qlc@1/fp@0,0 c2t5006016E3EA044D4d0s0 SP B6 active alive 0 0 3072 pci@9,600000/SUNW,qlc@1/fp@0,0 c2t500601663EA044D4d0s0 SP A6 active alive 0 0 3074 pci@9,600000/SUNW,qlc@2/fp@0,0 c4t5006016D3EA044D4d0s0 SP B5 active alive 0 0 3074 pci@9,600000/SUNW,qlc@2/fp@0,0 c4t500601653EA044D4d0s0 SP A5 active alive 0 0 3074 pci@9,600000/SUNW,qlc@2/fp@0,0 c4t5006016C3EA044D4d0s0 SP B4 active alive 0 0 3074 pci@9,600000/SUNW,qlc@2/fp@0,0 c4t500601643EA044D4d0s0 SP A4 active alive 0 0 Pseudo name=emcpower38a VNX ID=CKM00114901418 [Golf05] Logical device ID=600601600BE02A008E15833B5D7FE211 [GOLF05-chr] state=alive; policy=CLAROpt; queued-IOs=11 Owner: default=SP B, current=SP B Array failover mode: 4 ============================================================================== --------------- Host --------------- - Stor - -- I/O Path -- -- Stats --- ### HW Path I/O Paths Interf. Mode State Q-IOs Errors ============================================================================== 3074 pci@9,600000/SUNW,qlc@2/fp@0,0 c4t5006016D3EA044D4d1s0 SP B5 active alive 2 0 3074 pci@9,600000/SUNW,qlc@2/fp@0,0 c4t5006016C3EA044D4d1s0 SP B4 active alive 2 0 3074 pci@9,600000/SUNW,qlc@2/fp@0,0 c4t500601643EA044D4d1s0 SP A4 active alive 0 0 3074 pci@9,600000/SUNW,qlc@2/fp@0,0 c4t500601653EA044D4d1s0 SP A5 active alive 0 0 3072 pci@9,600000/SUNW,qlc@1/fp@0,0 c2t5006016E3EA044D4d1s0 SP B6 active alive 4 0 3072 pci@9,600000/SUNW,qlc@1/fp@0,0 c2t5006016F3EA044D4d1s0 SP B7 active alive 3 0 3072 pci@9,600000/SUNW,qlc@1/fp@0,0 c2t500601663EA044D4d1s0 SP A6 active alive 0 0 3072 pci@9,600000/SUNW,qlc@1/fp@0,0 c2t500601673EA044D4d1s0 SP A7 active alive 0 0 Pseudo name=emcpower39a VNX ID=CKM00114901418 [Golf05] Logical device ID=600601600BE02A002296F5E1ED7FE211 [GOLF05-golf05_tmp] state=alive; policy=CLAROpt; queued-IOs=0 Owner: default=SP B, current=SP B Array failover mode: 4 ============================================================================== --------------- Host --------------- - Stor - -- I/O Path -- -- Stats --- ### HW Path I/O Paths Interf. Mode State Q-IOs Errors ============================================================================== 3074 pci@9,600000/SUNW,qlc@2/fp@0,0 c4t5006016C3EA044D4d2s0 SP B4 active alive 0 0 3074 pci@9,600000/SUNW,qlc@2/fp@0,0 c4t5006016D3EA044D4d2s0 SP B5 active alive 0 0 3074 pci@9,600000/SUNW,qlc@2/fp@0,0 c4t500601653EA044D4d2s0 SP A5 active alive 0 0 3074 pci@9,600000/SUNW,qlc@2/fp@0,0 c4t500601643EA044D4d2s0 SP A4 active alive 0 0 3072 pci@9,600000/SUNW,qlc@1/fp@0,0 c2t5006016E3EA044D4d2s0 SP B6 active alive 0 0 3072 pci@9,600000/SUNW,qlc@1/fp@0,0 c2t5006016F3EA044D4d2s0 SP B7 active alive 0 0 3072 pci@9,600000/SUNW,qlc@1/fp@0,0 c2t500601663EA044D4d2s0 SP A6 active alive 0 0 3072 pci@9,600000/SUNW,qlc@1/fp@0,0 c2t500601673EA044D4d2s0 SP A7 active alive 0 0