Migrating from SDDPCM to AIXPCM (the easy way)

For a while now, IBM have diverted their efforts in storage multipathing from SDDPCM to the default AIX PCM [1]. This brings a few advantages, but specifically for me, it means the driver is now updated as part of the AIX system maintenance, and is no longer something I need to maintain separately. All significant functionality that SDDPCM provides, can now be provided by the default AIX PCM driver.

For those currently using SDDPCM, removing the driver can be somewhat complicated, and even more so when the boot LUN (rootvg LUN) is being managed by SDDPCM. Buried deep in the Multipath Subsystem Device Driver User’s Guide is a command called manage_disk_drivers. The manage_disk_drivers command can be used to display a list of storage families, and the driver that manages or supports each family. This allows us to easily (with a reboot if you boot from an SDDPCM managed device) switch the driver from SDDPCM to AIXPCM (or vice versa).

Below I detail how to switch from SDDPCM to AIXPCM when using LUN’s presented to the host via SVC.

Existing driver manging IBMSVC.

From the man page for manage_disk_drivers

If the present driver attribute is set to NO_OVERRIDE, the AIX operating system selects an alternate path control module (PCM), such as Subsystem Device Driver Path Control Module (SDDPCM), if it is installed.

# manage_disk_drivers -l
Device              Present Driver        Driver Options
2810XIV             AIX_AAPCM             AIX_AAPCM,AIX_non_MPIO
DS4100              AIX_SDDAPPCM          AIX_APPCM,AIX_SDDAPPCM
DS4200              AIX_SDDAPPCM          AIX_APPCM,AIX_SDDAPPCM
DS4300              AIX_SDDAPPCM          AIX_APPCM,AIX_SDDAPPCM
DS4500              AIX_SDDAPPCM          AIX_APPCM,AIX_SDDAPPCM
DS4700              AIX_SDDAPPCM          AIX_APPCM,AIX_SDDAPPCM
DS4800              AIX_SDDAPPCM          AIX_APPCM,AIX_SDDAPPCM
DS3950              AIX_SDDAPPCM          AIX_APPCM,AIX_SDDAPPCM
DS5020              AIX_SDDAPPCM          AIX_APPCM,AIX_SDDAPPCM
DCS3700             AIX_APPCM             AIX_APPCM
DCS3860             AIX_APPCM             AIX_APPCM
DS5100/DS5300       AIX_SDDAPPCM          AIX_APPCM,AIX_SDDAPPCM
DS3500              AIX_APPCM             AIX_APPCM
XIVCTRL             MPIO_XIVCTRL          MPIO_XIVCTRL,nonMPIO_XIVCTRL
2107DS8K            NO_OVERRIDE           NO_OVERRIDE,AIX_AAPCM,AIX_non_MPIO
IBMFlash            NO_OVERRIDE           NO_OVERRIDE,AIX_AAPCM,AIX_non_MPIO
IBMSVC              NO_OVERRIDE           NO_OVERRIDE,AIX_AAPCM,AIX_non_MPIO

Switch to using AIXPCM (and reboot).

# manage_disk_drivers -d IBMSVC -o AIX_AAPCM
 ********************** ATTENTION *************************
  For the change to take effect the system must be rebooted

After reboot, you will now see AIX_AAPCM as the present driver being used.

# manage_disk_drivers -l
Device              Present Driver        Driver Options
2810XIV             AIX_AAPCM             AIX_AAPCM,AIX_non_MPIO
DS4100              AIX_SDDAPPCM          AIX_APPCM,AIX_SDDAPPCM
DS4200              AIX_SDDAPPCM          AIX_APPCM,AIX_SDDAPPCM
DS4300              AIX_SDDAPPCM          AIX_APPCM,AIX_SDDAPPCM
DS4500              AIX_SDDAPPCM          AIX_APPCM,AIX_SDDAPPCM
DS4700              AIX_SDDAPPCM          AIX_APPCM,AIX_SDDAPPCM
DS4800              AIX_SDDAPPCM          AIX_APPCM,AIX_SDDAPPCM
DS3950              AIX_SDDAPPCM          AIX_APPCM,AIX_SDDAPPCM
DS5020              AIX_SDDAPPCM          AIX_APPCM,AIX_SDDAPPCM
DCS3700             AIX_APPCM             AIX_APPCM
DCS3860             AIX_APPCM             AIX_APPCM
DS5100/DS5300       AIX_SDDAPPCM          AIX_APPCM,AIX_SDDAPPCM
DS3500              AIX_APPCM             AIX_APPCM
XIVCTRL             MPIO_XIVCTRL          MPIO_XIVCTRL,nonMPIO_XIVCTRL
2107DS8K            NO_OVERRIDE           NO_OVERRIDE,AIX_AAPCM,AIX_non_MPIO
IBMFlash            NO_OVERRIDE           NO_OVERRIDE,AIX_AAPCM,AIX_non_MPIO
IBMSVC              AIX_AAPCM             NO_OVERRIDE,AIX_AAPCM,AIX_non_MPIO

From here, you can do one of two things. Leave the SDDPCM driver installed, as this will allow for easy rollback should you experience performance issues, or other driver related problems. Or completely remove the SDDPCM driver from the LPAR.

A few things to keep in mind.

  • If you’ve modified the queue_depth attribute on the hdisk, this will be reset to the AIXPCM default of 20. There is already a good write up on best practises and considerations when working with the default AIXPCM driver [2].
  • When using SDDPCM, you would have used the pcmpath command to display and manage devices. As above, someone has already written a good write up on resiliency and problem determination, and some common lsmpio commands you’ll want to know [3]

Taking the IBM recommendations into account, I’ll set the hdisk attributes accordingly.

# lsdev -Cc disk -F name | while read line; do chdev -l ${line} -a queue_depth=32 -a reserve_policy=no_reserve -a algorithm=shortest_queue -P; done
hdisk0 changed
hdisk1 changed

Another handy command, which isn’t related to the overall driver migration, is using chdef to change the default values of the predefined attributes in ODM. Any future LUN’s presented to the host will now have the queue_depth, reserve_policy, and algorithm set to the values I want.

# chdef -a queue_depth=32 -c disk -s fcp -t mpioosdisk
queue_depth changed
# chdef -a reserve_policy=no_reserve -c disk -s fcp -t mpioosdisk
reserve_policy changed
# chdef -a algorithm=shortest_queue -c disk -s fcp -t mpioosdisk
algorithm changed

Rollback

Should you need to go back to using SDDPCM as the driver, and haven’t removed it, you can use manage_disk_drivers to flip back and reboot.

# manage_disk_drivers -d IBMSVC -o NO_OVERRIDE
 ********************** ATTENTION *************************
 For the change to take effect the system must be rebooted

[1] – https://www-01.ibm.com/support/docview.wss?uid=ssg1S1010218
[2] – https://www.ibm.com/developerworks/aix/library/au-aix-mpio/index.html
[3] – https://www.ibm.com/developerworks/aix/library/au-aix-multipath-io-mpio/index.html

5 thoughts on “Migrating from SDDPCM to AIXPCM (the easy way)

  1. Hi Kristian,

    A client has found your site, and told me about today, first of all I wanted to thank you for your contribution to the community, any blog, tips, and tricks are well appreciated, and also wanted to give a little bit of an update in regards to best practices of removing SDDPCM.

    I just talked to AIX storage development today, and their response is “manage_disk_drivers” is an old piece of code, clients shouldn’t rely on it when removing SDDPCM.

    Instead, recommended and supported method is to open a PMR with SDDPCM support, and ask for the removal script, which is documented here:

    How To Migrate SDDPCM to AIXPCM
    https://www-01.ibm.com/support/docview.wss?uid=ssg1S1010646

    I hope this note finds its way to the interested parties, and can help others looking for the same information.

    Merry Christmas, and happy holidays!

    Turgut Genc
    IBM Systems Lab Services UKI

    • Hi Turgut,

      Appreciate the follow up – good information to know.
      It would be easier if IBM just made the scripts public, to save chasing them down via a PMR.

      -Kristian

  2. Hi Kristian, thanks for your excellent work on your blog.

    I received feedback from the AIX team lead for MPIO and our AIX development subject matter expert on the SDDPCM to AIXPCM transition. He reviewed this subject and discussed his thoughts with me. He commented:

    “There are multiple procedures/instructions that can be used to effectively migrate from SDDPCM to AIXPCM. The use of manage_disk_drivers command one supported means. SDDPCM has put together different set of procedures to accomplish this transition. The recommendation from SDDPCM to not use manage_disk_drivers command presumable comes from their lack of experience and familiarity with this method. SDDPCM is going to recommend procedures that they are most familiar with and comfortable using. However AIX development is familiar with the procedures described in Chris’s charts and blog (using manage_disk_drivers) and are comfortable that these are supported and effective in transitioning from SDDPCM to AIXPCM”.

    So long story, short, you are OK to use manage_disk_drivers for SDDPCM to AIXPCM migration.

    Chris Gibson
    IBM Systems Lab Services

  3. This is a great port, I was trying to add my P9’s HBAs to the storage but the FC WWNs would not show up, that is until I found this blog and switched IBMSVC to using AIXPCM and rebooted. The V7000 GEN3 would not see P9’s HBAs at all until this was done which was interesting, i guess SSDPCM isn’t supported in the newer hardware. I didn’t try to manually add the WWNs while in SSDPCM mode.

Leave a Reply

Your email address will not be published. Required fields are marked *


*

This site uses Akismet to reduce spam. Learn how your comment data is processed.