Customizing disk timeout values for HA Settings on Various Operating Systems

Issue

The default disk timeout values on the client platform might cause I/O to timeout while operations, such as ElastiStor HA takeover and giveback, resulting in unavailability of data.

Solution

Revise the default disk timeout values on the client OS that you use to facilitate smooth ElastiStor HA operations (before the timeout). Read the following Knowledge Base article that explains how to revise disk timeout values on various client platforms.

For Windows XP, Windows 7, Windows 8, Windows Server 2008, and Windows Server 2012

If you increase the timeout value, it increases the time before which the SCSI timeout occurs on the Windows machine you use.

  1. On Windows, click Start > Run and in the text box, enter regedit.
  2. Click OK. The Registry Editor opens.
  3. Go to the following location: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Disk.
  4. disk_timeout

  5. Double-click TimeOutValue.
  6. Change the key TimeOutValue in the Edit dialog box.
  7. Restart the system to make the changes effective.

For Open SUSE 11, Ubuntu 12.10, CentOS 6, and RHEL 6 (64 bit)

By default, the timeout is set to 30 seconds. To revise,

  1. Check the current timeout for every generic SCSI device in Linux Sysfs using the following command:find /sys/class/scsi_generic/*/device/timeout -exec grep -H . '{}' \;
  2. To modify the timeout value for an individual disk, use the Sysfs interface as shown in the following example: echo 180 > /sys/block/sda/device/timeout
  3. Note: This change does not persist across reboots.

VMware ESX 5.X

The procedures involve modifying the disk timeout values for

  1. The VM (that you use). For details, see For Windows virtual machine/For Linux virtual machine.
  2. VMware ESX/VMware vSphere ESXi . For details, see For VMware ESX/VMware vSphere ESXi

For Windows virtual machine

  1. On Windows VM, click Start > Run.
  2. In the Run text box, type regedit in and then click OK. The Registry Editor opens.
  3. Navigate to the following registry key: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet
  4. Select CurrentControlSet and then click Edit menu and then select Find.
  5. In the Find dialog box, type MaxRequestHoldTime and then click Find.
  6. Double-click MaxRequestHoldTime registry value and then modify the default value.
  7. Exit the registry editor.
  8. Restart the server for the update to take effect.

For Linux virtual machine

By default, the timeout is set to 30 seconds. To revise,

  1. Check the current timeout for every generic SCSI device in Linux Sysfs using the following command: find /sys/class/scsi_generic/*/device/timeout -exec grep -H . '{}' \;
  2. To modify the timeout value for an individual disk, use the Sysfs interface as shown in the following example: echo 180 > /sys/block/sda/device/timeout
  3. Note: This change does not persist across reboots.

For VMware ESX/VMware vSphere ESXi

  1. Log in to your ESXi/ESX host with root privileges using the console or an SSH session.

    Note: If you are unable to connect to an ESX host using Secure Shell (SSH), check for network and services issues.

  2. Go to the following location: /etc/opt/vmware/vpxa/vpxa.cfg. If you are using ESXi 5.0, the path is /etc/vmware/vpxa/vpxa.cfg
  3. Back up the vpxa.cfg elsewhere.
  4. In /vpxa, open the vpxa.cfg file in a text editor.
  5. Add the following code inside the <task> and</task> tags. <timeout>10800</timeout>
  6. Add the following code inside the <vmomi> and </vmomi> tags: <soapStubAdapter> <blockingTimeoutSeconds>10800</blockingTimeoutSeconds> </soapStubAdapter>
  7. Restart the management services on your ESXi/ESX host.

For VMWare ESX 5.0 (for iSCSI only)

  1. Go to Storage Adapters > iSCSI Software Adapter > Properties.
  2. Select Advanced and scroll down to LoginTimeout.
  3. To adjust the iSCSI login timeout in ESXi 5.x, run the following command from the command line: esxcli iscsi adapter param set -A adapter_name -k LoginTimeout -v value_in_sec. For example: esxcli iscsi adapter param set -A vmhba33 -k LoginTimeout -v 60

Disk Timeout settings for Oracle Solaris 10

  1. Edit /etc/system and either add or modify (if not present) the sd setting as follows: set sd:sd_io_time = 0x3c (which is 60 in hexadecimal)