在 ESXi 中禁用 Hardware Accelerated Locking (ATS)
search cancel

在 ESXi 中禁用 Hardware Accelerated Locking (ATS)

book

Article ID: 301287

calendar_today

Updated On:

Products

VMware vSphere ESXi

Issue/Introduction

免责声明:本文为 Disabling hardware accelerated locking (ATS) in ESXi (2146451) 的翻译版本。尽管我们会不断努力为本文提供最佳翻译版本,但本地化的内容可能会过时。有关最新内容,请参见英文版本。

本文介绍了在不同级别禁用 ATS 的步骤。
在共享存储环境中,当多个主机访问同一个 VMFS 数据存储时,使用特定锁定机制。这些锁定机制阻止多个主机同时对元数据执行写入操作并确保不发生数据损坏。

VMFS 支持 SCSI 预留及原子测试和设置 (ATS) 锁定。

仅限 ATS 是指 VMFS-5 数据存储上的 VAAI 原语,其支持启用 VAAI 的阵列,在 LUN 上执行所有锁定操作而不使用 SCSI 预留。如果环境中的存储阵列设备不支持硬件加速功能,或者未正确响应 VAAI 原语,则您可能希望禁用 VAAI。
注意:
  • 当从支持 VAAI 卸载 (ATS) 的存储阵列移动到不支持 VAAI 卸载 (ATS) 的存储阵列或固件版本时,应禁用此选项。
  • 禁用 ATS 前应先关闭数据存储上运行的虚拟机。


Environment

VMware vSphere ESXi 5.5
VMware vSphere ESXi 6.0
VMware vSphere ESXi 6.5

Resolution

可在以下不同级别禁用 ATS:


注意:根据配置和基础存储类型,VMFS 数据存储可以单独使用原子测试和设置锁定机制(仅限 ATS),也可以组合使用 ATS 和 SCSI 预留 (ATS+SCSI)。使用 ATS+SCSI 机制的数据存储包括从 VMFS3 升级的 VMFS5 数据存储。另外,存储设备上不支持 ATS 的新 VMFS5 数据存储使用 ATS+SCSI 机制。

要显示 VMFS 锁定机制的相关信息,请运行以下命令:

esxcli --server=server_name storage vmfs lockmode list


按 ESXi 主机级别禁用 ATS

对非仅限 ATS 的 VMFS 数据存储禁用 ATS


要在非仅限 ATS 的卷上禁用 ATS,请运行以下 ESXCLI:

esxcli system settings advanced set --int-value 0 --option /VMFS3/HardwareAcceleratedLocking

注意:
  • 此选项立即生效,且不需要重新引导或挂载/卸载卷。
  • 应在访问 VMFS 数据存储的所有 ESXi 主机上禁用这些选项,以使所有 ESXi 主机使用一致的锁定模式。注意,ESXi 没有这样的要求,但对阵列而言,当在来自多个主机的同一 LUN 上处理 SCSI 预留以及 ATS 命令时,可能会出现一些潜在问题。请咨询阵列供应商以了解更多详细信息。
对仅限 ATS 的 VMFS 数据存储禁用 ATS


要在仅限 ATS 的卷上禁用 ATS,请运行以下 ESXCLI:

esxcli system settings advanced set --int-value 0 --option /VMFS3/HardwareAcceleratedLocking

注意:
&newline;
  • 尽管此选项会立即反映值,但只有在卸载并重新挂载数据存储后此选项才有效。
  • 此选项需要在群集中的所有 ESXi 主机上重置。
  • 完成后,在所有 ESXi 主机上逐个挂载/卸载数据存储。
  • 如果重新引导 ESXi 主机以实现卸载/重新挂载,则可能出现混用,即重新引导所有主机前一直采用 ATS + SCSI 锁定,不建议采用此操作。因此,您必须手动卸载/重新挂载。
  • 如果您运行的是 vSphere55U2 和 vsphere55p09 之间的 ESXi 版本,则您还需要使用以下 ESXCLI 在 VMFS 检测信号中单独禁用 ATS 使用:

    esxcli system settings advanced set --int-value 0 --option /VMFS3/UseATSForHBOnVMFS5

按 VMFS 数据存储禁用 ATS

对非仅限 ATS 的 VMFS 数据存储禁用 ATS

无法/无需在这种数据存储上禁用 ATS,如之前所述,关闭 ESXi 主机上的 ATS 支持(副作用是对该主机上的所有数据存储禁用 ATS)即可。

对仅限 ATS 的 VMFS 数据存储禁用 ATS

要对仅限 ATS 的 VMFS 数据存储禁用 ATS,请执行以下操作:

  1. 从使用 VMFS 数据存储的所有 ESXi 主机中卸载该数据存储。为此,您可能需要停止 SIOC。有关详细信息,请参见 Troubleshooting Storage I/O Control (1022091)
  2. 执行以下命令,以在 VMFS 数据存储上禁用 ATS:

    vmkfstools --configATSOnly 0 /vmfs/volumes/VMFS-volume-name

    或者,自 vSphere 6.0 起,您也可以使用以下 ESXCLI:

    esxcli storage vmfs lockmode set -s|--scsi -l|--volume-label= VMFS label -u|--volume-uuid= VMFS UUID.

    禁用 ATS 后,您的数据存储将与 按 ESXi 主机级别禁用 ATS 部分提及的数据存储类似,这时候您可以快速在 ESXi 主机级别禁用 ATS 支持。

  3. 在所有 ESXi 主机上重新挂载数据存储。

仅对 VMFS 检测信号禁用 ATS 使用

自 vSphere55u2 起,相较于早先版本中的纯 scsi 写入,VMFS 使用 ATS 更新其检测信号。

要禁用 ATS 检测信号,请运行以下 ESXLI 命令:

esxcli system settings advanced set -i 0 -o /VMFS3/UseATSForHBOnVMFS5

注意:除非您在 vmkernel.log 文件中看到下面一组日志,否则不建议禁用 ATS 检测信号:

ATS Miscompare detected between test and set HB images at offset XXX on vol YYY


Additional Information

注意:
  • ATS 是指一种 SCSI 命令,如果受支持,则可用于对磁盘上的扇区内容进行原子级更新,并且可用于不同用例。
  • ATS 本身不提供任何锁定,但对于使用磁盘上锁定实现元数据一致性和访问同步的 ESXi 中的 VMFS 来说,则使用 ATS 命令实现锁定语义。
  • 自 vSphere55u2 起,相较于较低版本中的 scsi 写入,VMFS 使用 ATS 更新其检测信号(每 3 秒一次)。
Disabling hardware accelerated locking (ATS) in ESXi