Search the VMware Knowledge Base (KB)
View by Article ID

Increasing the disk timeout values for a Linux 2.6 virtual machine (1009465)

  • 15 Ratings
Language Editions

Symptoms

  • Inconsistent Linux operating system performance when disks are located on SAN-based datastores.
  • The Linux guest operating system may experience intermittent issues when stored on SAN-based datastores.
  • During a host storage path failover, a Linux guest operating system reports a system error or file system error, encounters a kernel panic, or becomes unresponsive.

Purpose

These issues occur when the guest operating system timeout values are exceeded for attached storage disks. This may be caused by an underlying storage problem or due to brief transient pauses during normal operations (such as path failover). To accommodate transient events, the VMware Tools increases the SCSI disk timeout to 60 seconds for Virtual Infrastructure 3 and 180 seconds for vSphere 4 and higher.

If the default increase is insufficient for a given environment or if an increase is desired and the VMware Tools is not or cannot be installed, the SCSI device timeout within the Linux guest operating system can be increased manually.

Note: Increasing the SCSI Timeout value is to alleviate the issue of slow Failover/Transient storage conditions. It is not designed to mitigate prolonged underlying storage conditions such as APD/PDL.  There may be underlying SAN storage problems that require addressing if:

Resolution

Starting with Linux 2.6.13 kernels the timeout value for a Linux block device can be set using the sysfs interface. This does not affect kernels below 2.6.13. Increasing the disk timeout value for every disk attached to the virtual machine can prevent the issue from recurring.

  • Check the current timeout for every generic SCSI device in Linux sysfs using the command:

    find /sys/class/scsi_generic/*/device/timeout -exec grep -H . '{}' \;

  • The timeout value for an individual disk can be modified using the sysfs interface. For example:

    echo 180 > /sys/block/ sdc/device/timeout

    Note: This change does not persist across reboots.

  • The VMware Tools installer creates a udev rule at /etc/udev/rules.d/99-vmware-scsi-udev.rules that sets the timeout for each VMware virtual disk device and reloads the udev rules so that it takes effect immediately. This rule is applied during each subsequent startup. For example, this is the udev rule from vSphere 4.x:

    # Redhat systems
    ACTION=="add", BUS=="scsi", SYSFS{vendor}=="VMware, " , SYSFS{model}=="VMware Virtual S", RUN+="/bin/sh -c 'echo 180 >/sys$DEVPATH/device/timeout'"

    # Debian systems
    ACTION=="add", SUBSYSTEMS=="scsi", ATTRS{vendor}=="VMware " , ATTRS{model}=="Virtual disk ", RUN+="/bin/sh -c 'echo 180 >/sys$DEVPATH/device/timeout'"

    # SuSE / Ubuntu systems
    ACTION=="add", SUBSYSTEMS=="scsi", ATTRS{vendor}=="VMware, " , ATTRS{model}=="VMware Virtual S", RUN+="/bin/sh -c 'echo 180 >/sys$DEVPATH/device/timeout'"

Additional Information

Tags

disk-time-out-linux-vm

See Also

Update History

01/17/2013 - Added ESXi 5.0 and 5.1 to Products 02/27/2015 - Added VMware ESXi 5.5.x to Products

Request a Product Feature

To request a new product feature or to provide feedback on a VMware product, please visit the Request a Product Feature page.

Feedback

  • 15 Ratings

Did this article help you?
This article resolved my issue.
This article did not resolve my issue.
This article helped but additional information was required to resolve my issue.

What can we do to improve this information? (4000 or fewer characters)




Please enter the Captcha code before clicking Submit.
  • 15 Ratings
Actions
KB: