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.
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
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: