Description
There have been issues seen with the (then current) methods of performing IO retry when SCSI Inquiry succeeds and IO to the device fails. This section of IO recovery has been significanlty changed as of the release of 5.1SP1. New Tunables have been introduced to allow configuration of IO recovery options. Note: These examples are NOT recommendations. They are simply usage examples. Settings for your environment may differ or need some tuning for your particular environment.
dmp_lun_retry_timeout
dmp_retry_delay
The tunables can be modified with settune. The values are in seconds.
# vxdmpadm settune dmp_lun_retry_timeout=10
Tunable value will be changed immediately
# vxdmpadm settune dmp_retry_delay=2
Tunable value will be changed immediately
This tunable will show up in ‘
vxdmapdm gettune [all]’ CLI (Command Line Interface). The sample output is as follows.
#
vxdmpadm gettune
Tunable Current Value Default Value
------------------------------ ------------------- ------------------
//…
dmp_lun_retry_timeout 0 0
//…
One enclosure level tunable is introduced.
#
vxdmpadm setattr enclosure <enclr-name> dmp_lun_retry_timeout=<lun-retry-timeout>
A user can retrieve the tunable that was set with
getattr as well.
# vxdmpadm getattr enclosure <enclr-name> dmp_lun_retry_timeout
ENCLR_NAME DEFAULT CURRENT
============================================
aluadisk0 0 0
The new tunable in
vxdmpadm getattr enclosure <enclr-name> output is shown below:
#
vxdmpadm getattr enclosure fas2700
ENCLR_NAME ATTR_NAME DEFAULT CURRENT
============================================================================
//…
fas2700 dmp_lun_retry_timeout 0 0
To specify the timeout value, use the existing CLI:
#
vxdmpadm setattr <arrayname | arraytype | enclosure> <component_name> recoveryoption=timebound iotimeout=300
Timeout values can be displayed using the following existing CLI interface.
#
vxdmpadm getattr <arrayname | arraytype | enclosure> <component_name> recoveryoption
output will appear as below.
testhost.Veritas.com:/>
vxdmpadm getattr enclosure aluadisk0 recoveryoption
ENCLR-NAME RECOVERY-OPTION DEFAULT[VAL] CURRENT[VAL]
===============================================================
aluadisk0 Throttle Nothrottle[0] Nothrottle[0]
aluadisk0 Error-Retry Timebound[300] Timebound[300]
Note about the iotimeout value when the Timebound option is used:
This value should be high enough to allow the underlying SCSI driver to fail a path to a device before the iotimeout expires. If the iotimeout expires before the path is failed ( unresponsive device due to SAN fabic failure, etc.) alternate paths are not tried and the DMP node will be disabled. There are certain OS configurations where the SCSI driver will not fail a device for at least 300 seconds, so a value of more than 300 would be required to ensure the other paths are tried before the device is disabled. See 000015039 for a specifc example of a Solaris configuration that has this issue. Note that Timebound[300] (300 second iotimeout value) is the default.