====== MPIO vs SDDPCM multipathing for disk ======
The **recommended multi-path driver** to use on IBM AIX and VIOS when attached to SVC and Storwize storage devices running microcode levels V7.6.1 and later is **changing from the SDDPCM to the default AIX PCM**.
We recommend that new AIX deployments use the default AIXPCM.
For existing deployments clients can chose to migrate to the AIXPCM or remain on SDDPCM.
This includes VIO servers providing storage resources to IBMi lpars.
**SDDPCM is not supported on Power9 servers.**
Prerequisite OS Levels
AIX 7.1 TL3
AIX 7.2 any TL
VIOS 2.2.4.0
New commands:
lsmpio : Display information about the MultiPath I/O (MPIO) storage devices.
lsmpio [ -l device_name ]
lsmpio -S [ -l device_name ] [ -d ]
lsmpio -z [ -l device_name ]
lsmpio -q [ -l device_name ]
lsmpio -a [ -r ] [ -e ] [ -z ]
lsmpio -h
devrsrv : Queries and breaks the single-path and persistent reservations on a device.
devrsrv -c query [-e] | release | prin -s sa | (prout -s sa -r rkey -k sa_key -t prtype) -l devicename
devrsrv -f -l devicename
devrsrv -d
**Note1:** Removing SDDPCM will set the queue to the default value of 20. Any modification made to the queue depth prior to removal will need to be reapplied.
**Note2:** The default path selection algorithm for AIXPCM is "fail_over". The AIX PCM supports the "shortest_queue" algorithm which is similar to SDD PCM's "load_balance" algorithm. The chdev command may be used to set the algorithm, though it may also be necessary to set the reserve policy when changing the algorithm. For example, to set hdisk5 to use the "shortest_queue" algorithm, execute this command:
chdev -l hdisk5 -a algorithm=shortest_queue -a reserve_policy=no_reserve
**Note3:** Multipath management commands differ between AIXPCM and SDDPCM. If the SDDPCM is removed from your system any scripts that have been generated that utilize these commands will need to be modified to use the corresponding AIXPCM commands.
===== Use AIX MPIO instead of SDDPCM =====
The official way to migrate from SDDPCM to AIXPCM is documented here:
a) Confirm the system is using SDDPCM for MPIO.
# manage_disk_drivers -l | grep -i svc
IBMSVC NO_OVERRIDE NO_OVERRIDE,AIX_AAPCM,AIX_non_MPIO
SDDPCM command
# pcmpath query device
Total Dual Active and Active/Asymmetric Devices : 2
DEV#: 3 DEVICE NAME: hdisk2 TYPE: 2145 ALGORITHM: Load Balance
SERIAL: 60050768017F00362000000000000346 VENDOR: IBM SIZE: 30.00 GB
==========================================================================
Path# Adapter/Path Name State Mode Select Errors
0* fscsi0/path0 OPEN NORMAL 50 0
1 fscsi0/path1 OPEN NORMAL 9343 0
2* fscsi1/path2 OPEN NORMAL 51 0
3 fscsi1/path3 OPEN NORMAL 9236 0
AIX MPIO command
# lsmpio -are
# lsdev -Cc disk
hdisk2 Available 42-T1-01 MPIO FC 2145
hdisk3 Available 42-T1-01 MPIO FC 2145
# lspath
Enabled hdisk2 fscsi0
Enabled hdisk3 fscsi0
Enabled hdisk2 fscsi0
Enabled hdisk3 fscsi0
Enabled hdisk2 fscsi1
Enabled hdisk3 fscsi1
Enabled hdisk2 fscsi1
Enabled hdisk3 fscsi1
b) Run the manage_disk_drivers command to switch to AIX PCM and reboot the system.
# manage_disk_drivers -d IBMSVC -o AIX_AAPCM
********************** ATTENTION *************************
For the change to take effect the system must be rebooted
# shutdown –Fr
c) Check changes
After the reboot, AIX PCM is now in control of MPIO on this system.
# manage_disk_drivers -l | grep -i svc
IBMSVC AIX_AAPCM NO_OVERRIDE,AIX_AAPCM,AIX_non_MPIO
# lsmpio -are
Adapter Driver: fscsi0 -> AIX PCM
Adapter WWPN: c0507607e05e0078
Link State: Up
Connection Errors
Last 10 Minutes: 0
Last 60 Minutes: 0
Last 24 Hours: 0
Total Errors: 0
Connection Errors
Last 10 Last 60 Last 24
Minutes Minutes Hours
50050768011006c4 0 0 0
500507680110062b 0 0 0
Adapter Driver: fscsi1 -> AIX PCM
Adapter WWPN: c0507607e05e007a
Link State: Up
Connection Errors
Last 10 Minutes: 0
Last 60 Minutes: 0
Last 24 Hours: 0
Total Errors: 0
Connection Errors
Last 10 Last 60 Last 24
Minutes Minutes Hours
50050768011006c4 0 0 0
500507680110062b 0 0 0
See which path is optimized/non optimized, selected for IO, active/passive, Reserved, Failes, Closed, Degraded
s82861p22:/ #
# pcmpath query device
No device file found
# lsmpio
name path_id status path_status parent connection
hdisk2 0 Enabled Non fscsi0 50050768011006c4,0
hdisk2 1 Enabled Opt fscsi0 500507680110062b,0
hdisk2 2 Enabled Non fscsi1 50050768011006c4,0
hdisk2 3 Enabled Sel,Opt fscsi1 500507680110062b,0
hdisk3 0 Enabled Opt fscsi0 50050768011006c4,1000000000000
hdisk3 1 Enabled Non fscsi0 500507680110062b,1000000000000
hdisk3 2 Enabled Sel,Opt fscsi1 50050768011006c4,1000000000000
hdisk3 3 Enabled Non fscsi1 500507680110062b,1000000000000
d) Remove unused packages
Uninstall SDDPCM
# genkex | grep sddpcm
f1000000c0128000 a9000 /usr/lib/drivers/sddpcmke
# stopsrc -s pcmsrv
# installp -u devices.sddpcm.72.rte devices.fcp.disk.ibm.mpio.rte
//For info//
You can rollback to SDDPCM after the reboot, by using the following command and reboot again
# manage_disk_drivers -d IBMSVC -o NO_OVERRIDE
e) Best practice for attributes:
Here are the better parameters to reproduce SDDPCM behaviour with AIXPCM, when using IBM storage V7000, V5000 or SVC.
For each disk, change the default vaules:
# chdev -l hdiskX -a algorithm=shortest_queue -a reserve_policy=no_reserve –a queue_depth=32 -a hcheck_interval=60 -U
You can also change default ODM definitions using:
# odmget -q uniquetype="disk/fcp/mpioosdisk" PdAt | grep -p "queue_depth"
# chdef -a queue_depth=32 -c disk -s fcp -t mpioosdisk
# odmget -q uniquetype="disk/fcp/mpioosdisk" PdAt | grep -p "reserve_policy"
# chdef -a reserve_policy="no_reserve" -c disk -s fcp -t mpioosdisk
# odmget -q uniquetype="PCM/friend/fcpother" PdAt | grep -p "algorithm"
# chdef -a algorithm="shortest_queue" -c PCM -s friend -t fcpother
===== MPIO statistics =====
Statistics per path:
# lsmpio -l hdisk1 -S
Disk: hdisk1
Path statistics since Tue Nov 27 11:44:42 CET 2018
Path 0: (fscsi0:500507680c139f19,2000000000000)
Path Selections: 0
Adapter Errors: 0
Command Timeouts: 0
Reservation Conflicts: 0
SCSI Queue Full: 0
SCSI Busy: 0
SCSI ACA Active: 0
SCSI Task Aborted: 0
SCSI Aborted Command: 0
SCSI Check Condition: 8
Last Error: SCSI Check Condition
Last Error Time: Tue Nov 27 11:45:16 CET 2018
Path Failure Count: 0
Last Path Failure: N/A
Last Path Failure Time: N/A
Disk: hdisk1
Path statistics since Tue Nov 27 11:44:42 CET 2018
Path 1: (fscsi0:500507680c139eb6,2000000000000)
Path Selections: 36
Adapter Errors: 0
Command Timeouts: 0
Reservation Conflicts: 0
SCSI Queue Full: 0
SCSI Busy: 0
SCSI ACA Active: 0
SCSI Task Aborted: 0
SCSI Aborted Command: 0
SCSI Check Condition: 8
Last Error: SCSI Check Condition
Last Error Time: Tue Nov 27 11:45:16 CET 2018
Path Failure Count: 0
Last Path Failure: N/A
Last Path Failure Time: N/A
Statistics per adapter:
# lsmpio -ar
Adapter Driver: fscsi0 -> AIX PCM
Adapter WWPN: c050760824990001
Link State: Up
Paths Paths Paths Paths
Remote Ports Enabled Disabled Failed Missing ID
500507680c139f19 5 0 0 0 0xb52d00
500507680c139eb6 5 0 0 0 0xbf2d00
Adapter Driver: fscsi1 -> AIX PCM
Adapter WWPN: c050760824990002
Link State: Up
Paths Paths Paths Paths
Remote Ports Enabled Disabled Failed Missing ID
500507680c239f19 5 0 0 0 0xb62d00
500507680c239eb6 5 0 0 0 0xc02d00
https://www-01.ibm.com/support/docview.wss?uid=ssg1S1010218
https://www.ibm.com/support/knowledgecenter/ssw_aix_72/com.ibm.aix.cmds3/lsmpio.htm
https://www.ibm.com/support/knowledgecenter/ssw_aix_72/com.ibm.aix.cmds2/devrsrv.htm
**Old links:**
[[aix:mpio_sddpcm|SDDPCM for DS8k SVC]]
[[aix:aix_migrate_sddpcm|Upgrade SDDPCM after AIX upgrade, when using SAN boot]]