The following settings should be done:
- 1 chdev -l fcsX -a link_speed=2G (optional)
- 2 chdev -l fscsiX -a dyntrk=yes -a fc_err_recov=fast_fail
- 3 chdev -l hdiskX -a reserve_policy=no_reserve
- 4 chdev -l hdiskX -a hcheck_interval=30
Explanation of the settings:
- link_speed=2G (hard codes the link speed to 2GB, instead of using auto-negotiate)
* dyntrk=yes If Dynamic Tracking of FC Devices is enabled, the FC adapter driver will detect when the Fibre Channel N_Port ID of a device changes and then re-route traffic destined for that device to the new address while the devices are still online. {{{ * fc_err_recov=fast_fail Fast I/O failure may be desirable in situations where multipathing software is being used. Setting 'fc_err_recov' to 'fast_fail' may decrease the I/O fail times due to link loss between the storage device and switch and allow faster failover to alternate paths. In single-path configurations, especially configurations with a single-path to a paging device, the default 'delayed_fail' setting is the recommended setting. * reserve_policy=no_reserve In a similar fashion to stand-alone systems sharing disks when we assign a lun to one host and make it part of a volume group a reservation is set by that host. That reservation will lock the device and not allow other hosts to make changes to the volume. In turn, in order to have a lun be managed by multiple VIO servers we must not allow that reservation to be set.
Setting the dyntrk attribute to “yes” makes AIX tolerate cabling changes in the SAN.
Additional testing changes….
Increase Queue Depth of hdisk devices + increase max_transfer to a higher #. 0x40000 = 256KB.
chdev -l hdiskX -a queue_depth=32 -a max_transfer=0x100000 (1MB).
Troubleshooting
On occasion, when one attempts to modify the attributes of a hdisk device, it will give an error. This typically means that the hdiskX device, has to changed from “Available” to “Defined”. This is accomplished by doing a rmdev -l hdiskX
. Once it is in a defined state, you should be able to change the required attributes.
chdev -l hdisk3 -a hcheck_interval=30 Method error (/etc/methods/chgdisk): 0514-062 Cannot perform the requested function because the specified device is busy.
or when attempting to rmdev the device:
rmdev -l hdisk3 Method error (/etc/methods/ucfgdevice): 0514-062 Cannot perform the requested function because the specified device is busy.
In this case, there are two options available to alleviate the problem:
- 1) Do the requested change appending a -P, so that it takes affect on next reboot (ex.
chdev -l hdisk3 -a hcheck_interval=30 -P
) - 2) If a reboot, isn’t really an option, then it has to be removed from the vhost. You can see if via checking with lsmap.
lsmap -all SVSA Physloc Client Partition ID --------------- -------------------------------------------- ------------------ vhost3 xxxxxxxxxxxxxxxxxxxxxxxxx 0x00000005 VTD test01_rootvg Status Available LUN 0x5300000000000000 Backing device hdisk3 Physloc xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Mirrored false
As you can see from the above example, there is an entry in there for hdisk3. The VTD (Virtual Target Device) has to be removed before we can edit hdisk3’s attributes, and then added back in.
$ rmdev -dev vhost3 Some error messages may contain invalid information for the Virtual I/O Server environment. Method error (/etc/methods/ucfgdevice): 0514-029 Cannot perform the requested function because a child device of the specified device is not in a correct state.
The above error happens if you try to remove the vhost3 device, as it has a child device (test01_rootvg). The proper methodology is to remove that VTD, and then you can safely edit hdisk3. This is accomplished with the following steps: (as padmin user)
rmdev -dev vtrend_rootvg chdev -dev hdisk3 -attr hcheck_interval=30 chdev -dev hdisk3 -attr reserve_policy=no_reserve
Note, this had to be done in two lines, as multiple -attr’s wouldn’t work.
You can then confirm it changed, and if so, re-create the VTD.
lsdev -dev hdisk3 -attr (then look at hcheck_interval and reserve_policy fields for confirmation) mkvdev -vdev hdisk3 -vadapter vhost3 -dev test01_rootvg
Now the hdiskX device has been updated with the proper attributes, and a reboot wasn’t required.