Power5/6/7: VIO configuration to support HDLM boot disks

This document describes the procedure to configure the HDLM driver and SAN disks on multiple VIO servers for the purpose of serving virtual "rootvg" boot disks to client LPARs. This procedure requires multiple parameter settings that must be performed in a specific sequence in order for the values to take effect.

NOTE: This procedure assumes an entire HDLM disk is used as the backend device, not a logical volume on an HDLM disk.


Login to the VIO server as "padmin" and change to the "root" prompt. From the VIO "root" prompt, switch to korn shell 93:

oem_setup_env
ksh93


Install the following HDLM software on each VIO Server:

DLManager.rte           5.60.1.100
Hitachi.aix.support.rte   5.0.52.1

If the Hitachi MPIO driver is installed, remove it.


Remove any vhost adapter configuration setttings:

for (( i=0; i<=48; ++i ))
do
  /usr/ios/cli/ioscli rmdev -pdev vhost${i}
done


Remove all HDLM disks:

for i in $( lsdev -Cc disk -F name | grep dlmfdrv )
do
  rmdev -Rdl ${i}
done


Remove all hdisks except for hdisk0 and hdisk1 - assumed to be rootvg:

for i in $( lsdev -Cc disk -F name | grep hdisk | egrep -v 'hdisk0$|hdisk1$' )
do
    rmdev -Rdl ${i}
done


If an HDLM unconfig file exists, rename it :

[[ -f /usr/DynamicLinkManager/drv/dlmfdrv.unconf ]] &&
    mv /usr/DynamicLinkManager/drv/dlmfdrv.unconf /usr/DynamicLinkManager/drv/$( date +"%Y%m%d").dlmfdrv.unconf
ls /usr/DynamicLinkManager/drv


Set fast fail parameter for SCSI adapters and reconfigure FC adapters:

chdev -l fscsi0 -a fc_err_recov=fast_fail
chdev -l fscsi1 -a fc_err_recov=fast_fail
cfgmgr -vl fcs0
cfgmgr -vl fcs1


Change HDLM settings:

cd /usr/DynamicLinkManager/bin
print y | ./dlmodmset -e on
print y | ./dlmodmset -b 68608


Rediscover HDLM disks:

./dlmcfgmgr


Turn off reserve settings:

./dlnkmgr set -rsv on 0 -s


Remove HDLM disks:

for i in $( lsdev -Cc disk -F name | grep dlmfdrv )
do
  rmdev -Rdl ${i}
done


Change reserve policy on hdisks to "no_reserve":

for i in $( lsdev -Cc disk -F name | grep hdisk | egrep -v 'hdisk0$|hdisk1$' )
do
  chdev -l ${i} -a reserve_policy=no_reserve
done


Rediscover HDLM disks:

./dlmcfgmgr


Make sure all HDLM disks have a PVID:

for i in $( lsdev -Cc disk -F name | grep dlmfdrv )
do
  chdev -l ${i} -a pv=yes
done


Configure bootable vhost adapters, the following command are only an example. The actual commands will be dependent upon the SAN disks allocated to the the VIO server, and the LPAR's being configured:

/usr/ios/cli/ioscli rmdev -pdev vhost0
/usr/ios/cli/ioscli rmdev -pdev vhost1
/usr/ios/cli/ioscli rmdev -pdev vhost2
/usr/ios/cli/ioscli rmdev -pdev vhost3
/usr/ios/cli/ioscli rmdev -pdev vhost4
/usr/ios/cli/ioscli rmdev -pdev vhost5
/usr/ios/cli/ioscli rmdev -pdev vhost6
/usr/ios/cli/ioscli rmdev -pdev vhost7
/usr/ios/cli/ioscli rmdev -pdev vhost8
/usr/ios/cli/ioscli rmdev -pdev vhost9
/usr/ios/cli/ioscli rmdev -pdev vhost10
/usr/ios/cli/ioscli rmdev -pdev vhost11

/usr/ios/cli/ioscli mkvdev -vdev dlmfdrv0 -vadapter vhost0 -dev vdlmfdrv0
/usr/ios/cli/ioscli mkvdev -vdev dlmfdrv1 -vadapter vhost1 -dev vdlmfdrv1
/usr/ios/cli/ioscli mkvdev -vdev dlmfdrv2 -vadapter vhost2 -dev vdlmfdrv2
/usr/ios/cli/ioscli mkvdev -vdev dlmfdrv3 -vadapter vhost3 -dev vdlmfdrv3
/usr/ios/cli/ioscli mkvdev -vdev dlmfdrv4 -vadapter vhost4 -dev vdlmfdrv4
/usr/ios/cli/ioscli mkvdev -vdev dlmfdrv5 -vadapter vhost5 -dev vdlmfdrv5
/usr/ios/cli/ioscli mkvdev -vdev dlmfdrv6 -vadapter vhost6 -dev vdlmfdrv6
/usr/ios/cli/ioscli mkvdev -vdev dlmfdrv7 -vadapter vhost7 -dev vdlmfdrv7
/usr/ios/cli/ioscli mkvdev -vdev dlmfdrv8 -vadapter vhost8 -dev vdlmfdrv8
/usr/ios/cli/ioscli mkvdev -vdev dlmfdrv9 -vadapter vhost9 -dev vdlmfdrv9
/usr/ios/cli/ioscli mkvdev -vdev dlmfdrv10 -vadapter vhost10 -dev vdlmfdrv10
/usr/ios/cli/ioscli mkvdev -vdev dlmfdrv11 -vadapter vhost11 -dev vdlmfdrv11

/usr/ios/cli/ioscli lsmap -vadapter vhost0
/usr/ios/cli/ioscli lsmap -vadapter vhost1
/usr/ios/cli/ioscli lsmap -vadapter vhost2
/usr/ios/cli/ioscli lsmap -vadapter vhost3
/usr/ios/cli/ioscli lsmap -vadapter vhost4
/usr/ios/cli/ioscli lsmap -vadapter vhost5
/usr/ios/cli/ioscli lsmap -vadapter vhost6
/usr/ios/cli/ioscli lsmap -vadapter vhost7
/usr/ios/cli/ioscli lsmap -vadapter vhost8
/usr/ios/cli/ioscli lsmap -vadapter vhost9
/usr/ios/cli/ioscli lsmap -vadapter vhost10
/usr/ios/cli/ioscli lsmap -vadapter vhost11


On each LPAR enable the hcheck_interval parameter to perform automated health checks for all disks on all LPAR's:

for i in $( lsdev -Cc disk -F name )
do
  chdev -l ${i} -a hcheck_interval=20 -P
done
shutdown -Fr