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.