增加 Linux 2.6 虚拟机的磁盘超时值
search cancel

增加 Linux 2.6 虚拟机的磁盘超时值

book

Article ID: 341043

calendar_today

Updated On:

Products

VMware vSphere ESXi

Issue/Introduction

连接的存储磁盘超过客户机操作系统超时值时,会出现这些问题。这可能是因基础存储问题或因正常操作(如路径故障切换)期间的暂时性短暂停引起的。为满足暂时性事件的需求,VMware Tools 会将 Virtual Infrastructure 3 的 SCSI 磁盘超时增加 60 秒,将 vSphere 4 及更高版本的 SCSI 磁盘超时增加 180 秒。

如果给定环境的默认增加值不足,或者需要增加但未安装或无法安装 VMware Tools,则可以手动增加 Linux 客户机操作系统内的 SCSI 设备超时。

注意:增加 SCSI 超时值是为了缓解故障切换/暂时性存储缓慢的情况,而不是为了改善 APD/PDL 等长期潜在存储状况。如果出现以下情况,则可能存在需要解决的基础 SAN 存储问题:



Symptoms:
免责声明:本文为 Increasing the disk timeout values for a Linux 2.6 virtual machine (1009465) 的翻译版本。尽管我们会不断努力为本文提供最佳翻译版本,但本地化的内容可能会过时。有关最新内容,请参见英文版本。


  • 磁盘位于基于 SAN 的数据存储上时,Linux 操作系统性能不一致。
  • Linux 客户机操作系统存储在基于 SAN 的数据存储上时,可能遇到间歇性问题。
  • 主机存储路径故障切换期间,Linux 客户机操作系统会报告系统错误或文件系统错误、出现内核不稳定或者无响应。


Environment

VMware ESX Server 3.0.x
VMware ESXi 4.0.x Embedded
VMware ESX 4.0.x
VMware vSphere ESXi 5.0
VMware ESXi 3.5.x Embedded
VMware ESXi 4.0.x Installable
VMware ESXi 4.1.x Embedded
VMware vSphere ESXi 5.5
VMware vSphere ESXi 5.1
VMware ESXi 3.5.x Installable
VMware ESX 4.1.x
VMware ESXi 4.1.x Installable
VMware ESX Server 3.5.x

Resolution

从 Linux2.6.13内核开始,可以使用sysfs接口设置 Linux 块设备的超时值。该功能不适用于 2.6.13 以下版本的内核。为连接到虚拟机的每个磁盘增加磁盘超时值可以防止问题反复出现。

  • 使用以下命令查看 Linuxsysfs中每个通用 SCSI 设备的当前超时值:

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

  • 单个磁盘的超时值可以使用sysfs接口修改。例如:

    echo180> /sys/block/sdc/device/timeout

    注意:此更改在重新引导后不会保留。

  • VMware Tools 安装程序会在为每个 VMware 虚拟磁盘设备设置超时的/etc/udev/rules.d/99-vmware-scsi-udev.rules中创建udev规则,并重新加载udev规则使之立即生效。此规则适用于后续每次启动。例如,以下是 vSphere 4.x 中的udev规则:

    # 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

有关详细信息,请参见 Storage path failover might cause kernel panic in Linux kernels if using a virtual LSILogic adapter (Parallel or SAS) (1010759)Increasing the disk timeout values for a Linux 2.6 virtual machine