Symantec logo

Configuring the response to I/O failures

By default, DMP is configured to retry a failed I/O request up to 5 times for a single path. To display the current settings for handling I/O request failures that are applied to the paths to an enclosure, array name or array type, use the vxdmpadm getattr command:

# vxdmpadm getattr \

  {enclosure enc-name|arrayname name|arraytype type} \

  recoveryoption

See "Displaying recovery option values" on page 169.

The following example displays the I/O request failure setting for the paths to the enclosure enc0:

# vxdmpadm getattr enclosure enc0 recoveryoption

The vxdmpadm setattr command can be used to configure how DMP responds to failed I/O requests on the paths to a specified enclosure, disk array name, or type of array.

The following form of the command sets a limit for the number of times that DMP will attempt to retry sending an I/O request on a path:

# vxdmpadm setattr \

  {enclosure enc-name|arrayname name|arraytype type} \

  recoveryoption=fixedretry retrycount=n

The value of the argument to retrycount specifies the number of retries to be attempted before DMP reschedules the I/O request on another available path, or fails the request altogether.

As an alternative to specifying a fixed number of retries, the following version of the command specifies how long DMP should allow an I/O request to be retried on a path:

# vxdmpadm setattr \

  {enclosure enc-name|arrayname name|arraytype type} \

  recoveryoption=timebound iotimeout=seconds

The value of the argument to iotimeout specifies the time in seconds that DMP waits for an outstanding I/O request to succeed before it reschedules the request on another available path, or fails the I/O request altogether. The effective number of retries is the value of iotimeout divided by the sum of the times taken for each retry attempt. DMP abandons retrying to send the I/O request before the specified time limit has expired if it predicts that the next retry will take the total elapsed time over this limit.

The default value of iotimeout is 10 seconds. For some applications, such as Oracle, it may be desirable to set iotimeout to a larger value, such as 60 seconds.


  Note   The fixedretry and timebound settings are mutually exclusive.


The following example configures time-bound recovery for the enclosure enc0, and sets the value of iotimeout to 60 seconds:

# vxdmpadm setattr enclosure enc0 recoveryoption=timebound \

  iotimeout=60

The next example sets a fixed-retry limit of 10 for the paths to all Active/Active arrays:

# vxdmpadm setattr arraytype A/A recoveryoption=fixedretry \

  retrycount=10

Specifying recoveryoption=default resets DMP to the default settings corresponding to recoveryoption=fixedretry retrycount=5, for example:

# vxdmpadm setattr arraytype A/A recoveryoption=default

This command also has the effect of configuring I/O throttling with an I/O timeout value of 10 seconds on the paths.

See "Configuring the I/O throttling mechanism" on page 168.


  Note   The response to I/O failure settings is persistent across reboots of the system.