通过硬件加速,ESXi 主机可以与块存储设备、光纤通道或 iSCSI 集成,并使用包括完整复制、块置零和硬件辅助锁定在内的存储阵列操作。

ESXi 硬件加速支持以下阵列操作:

  • 完全复制,也称为克隆块或复制卸载。存储阵列可以对阵列内的数据进行完全复制,而无需使主机读取和写入数据。此操作可减少在克隆虚拟机、从模板进行置备或使用 vMotion 进行迁移时所耗费的时间和网络负载。
  • 块置零,也称为同写。存储阵列可以将大量块置零以提供新分配的存储(不包含先前写入的数据)。此操作可减少在创建虚拟机和格式化虚拟磁盘时所耗费的时间和网络负载。
  • 硬件辅助锁定,也称为原子测试和设置 (ATS)。支持离散虚拟机锁定,而不使用 SCSI 预留。此操作允许按扇区进行磁盘锁定,取代了使用 SCSI 预留对整个 LUN 进行磁盘锁定。

请向您的供应商确认是否提供硬件加速支持。某些存储阵列要求在存储端激活该支持。

在主机上,默认情况下可以使用硬件加速功能。如果存储不支持硬件加速,可以将其停用。

除了硬件加速支持外,ESXi 还支持阵列精简置备。有关信息,请参见ESXi 和阵列精简置备

停用块存储设备的硬件加速

在主机上,块存储设备的硬件加速功能在默认情况下处于激活状态。可以使用 vSphere Client 高级设置来停用硬件加速操作。

与任何高级设置一样,在停用硬件加速之前,请咨询 VMware 支持团队。

过程

  1. vSphere Client 中,导航到 ESXi 主机。
  2. 单击配置选项卡。
  3. 系统下,单击高级系统设置
  4. 要停用硬件加速,请将以下选项的值更改为 0:
    • VMFS3.HardwareAcceleratedLocking
    • DataMover.HardwareAcceleratedMove
    • DataMover.HardwareAcceleratedInit

管理块存储设备上的硬件加速

为了与块存储阵列集成,vSphere 使用称为 Storage APIs - Array Integration (VAAI) 的 ESXi 扩展。通过此集成,vSphere 可以使用阵列硬件操作。

在 vSphere 5.x 及更高版本中,这些扩展是以 T10 SCSI 命令形式实现的。因此,通过支持 T10 SCSI 标准的设备,ESXi 主机可以直接通信而不需要 VAAI 插件。

如果设备不支持 T10 SCSI 或提供部分支持,则 ESXi 将恢复使用安装在主机上的 VAAI 插件。主机也可以组合使用 T10 SCSI 命令和插件。VAAI 插件是特定于供应商的,可能是 VMware 或合作伙伴开发的。要管理支持 VAAI 的设备,主机可将 VAAI 筛选器和特定于供应商的 VAAI 插件附加到该设备。

有关存储是否需要 VAAI 插件或通过 T10 SCSI 命令支持硬件加速的信息,请参见《《VMware 兼容性指南》》或联系存储供应商。

可以使用多个 esxcli 命令查询存储设备,以获取硬件加速支持信息。对于需要 VAAI 插件的设备,也可以使用声明规则命令。有关 esxcli 命令的信息,请参见《ESXCLI 入门》

显示硬件加速插件和筛选器

要与不支持 T10 SCSI 标准的设备进行通信,主机需要使用单个 VAAI 筛选器和特定于供应商的 VAAI 插件。使用 esxcli 命令可查看当前加载到系统中的硬件加速筛选器和插件。

前提条件

安装 ESXCLI。请参见《ESXCLI 入门》。要进行故障排除,请在 ESXi Shell中运行 esxcli 命令。

过程

  • 运行 esxcli storage core plugin list --plugin-class=value 命令。
    对于 value,输入以下参数之一:
    • 键入 VAAI 可显示插件。
      此命令的输出与以下示例类似:
      #esxcli storage core plugin list --plugin-class=VAAI
      Plugin name         Plugin class
      VMW_VAAIP_EQL       VAAI
      VMW_VAAIP_NETAPP    VAAI
      VMW_VAAIP_CX        VAAI
      
    • 键入 Filter 可显示筛选器。
      此命令的输出与以下示例类似:
      esxcli storage core plugin list --plugin-class=Filter
      Plugin name  Plugin class 
      VAAI_FILTER  Filter

验证硬件加速支持状态

使用 esxcli 命令可验证特定存储设备的硬件加速支持状态。

前提条件

安装 ESXCLI。请参见《ESXCLI 入门》。要进行故障排除,请在 ESXi Shell中运行 esxcli 命令。

过程

  • 运行 esxcli storage core device list -d=device_ID 命令。
    输出显示硬件加速(或 VAAI)状态,该状态可以为未知、受支持或不受支持。
    # esxcli storage core device list -d naa.XXXXXXXXXXXX4c
    naa.XXXXXXXXXXXX4c
     Display Name: XXXX Fibre Channel Disk(naa.XXXXXXXXXXXX4c)
     Size: 20480
     Device Type: Direct-Access
     Multipath Plugin: NMP
     XXXXXXXXXXXXXXXX
     Attached Filters: VAAI_FILTER
     VAAI Status: supported
     XXXXXXXXXXXXXXXX
    

验证硬件加速支持详细信息

使用 esxcli 命令查询块存储设备是否提供硬件加速支持。

前提条件

安装 ESXCLI。请参见《ESXCLI 入门》。要进行故障排除,请在 ESXi Shell中运行 esxcli 命令。

过程

  • 运行 esxcli storage core device vaai status get -d=device_ID 命令。
    如果由 VAAI 插件管理该设备,则输出会显示连接到该设备的插件的名称。此外,输出还会显示每个基于 T10 SCSI 的原语的支持状态(如果可用)。输出如以下示例中所示:
    # esxcli storage core device vaai status get -d naa.XXXXXXXXXXXX4c
    naa.XXXXXXXXXXXX4c
     VAAI Plugin Name: VMW_VAAIP_SYMM
     ATS Status: supported
     Clone Status: supported
     Zero Status: supported
     Delete Status: unsupported

列出硬件加速声明规则

VAAI 插件管理的每个块存储设备都需要两个声明规则。一个声明规则指定硬件加速筛选器,另一个指定设备的硬件加速插件。可以使用 esxcli 命令列出硬件加速筛选器和插件声明规则。

过程

  1. 要列出筛选器声明规则,请运行 esxcli storage core claimrule list --claimrule-class=Filter 命令。
    在此示例中,筛选器声明规则指定 VAAI_FILTER 筛选器声明的设备。
    # esxcli storage core claimrule list --claimrule-class=Filter
    Rule Class   Rule   Class   Type   Plugin      Matches                    XCOPY Use Array Reported Values  XCOPY Use Multiple Segments  XCOPY Max Transfer Size KiB
    Filter       65430  runtime vendor VAAI_FILTER vendor=EMC model=SYMMETRIX                           False                        False                            0
    Filter       65430  file    vendor VAAI_FILTER vendor=EMC model=SYMMETRIX                           False                        False                            0
    Filter       65431  runtime vendor VAAI_FILTER vendor=DGC model=*                                   False                        False                            0
    Filter       65431  file    vendor VAAI_FILTER vendor=DGC model=*                                   False                        False                            0
  2. 要列出 VAAI 插件声明规则,请运行 esxcli storage core claimrule list --claimrule-class=VAAI 命令。
    在此示例中,VAAI 声明规则指定 VAAI 插件声明的设备。
    esxcli storage core claimrule list --claimrule-class=VAAI
    Rule Class   Rule   Class   Type    Plugin         Matches                   XCOPY Use Array Reported Values  XCOPY Use Multiple Segments  XCOPY Max Transfer Size KiB
    VAAI         65430  runtime vendor  VMW_VAAIP_SYMM vendor=EMC model=SYMMETRIX                          False                        False                            0
    VAAI         65430  file    vendor  VMW_VAAIP_SYMM vendor=EMC model=SYMMETRIX                          False                        False                            0
    VAAI         65431  runtime vendor  VMW_VAAIP_CX   vendor=DGC model=*                                  False                        False                            0
    VAAI         65431  file    vendor  VMW_VAAIP_CX   vendor=DGC model=*                                  False                        False                            0

添加硬件加速声明规则

要为新的阵列配置硬件加速,请添加两个声明规则:一个用于 VAAI 筛选器,另一个用于 VAAI 插件。为了激活新声明规则,请先定义规则,然后将其加载到系统中。

前提条件

安装 ESXCLI。请参见《ESXCLI 入门》。要进行故障排除,请在 ESXi Shell中运行 esxcli 命令。

过程

  1. 运行以下命令为 VAAI 筛选器定义新的声明规则:esxcli storage core claimrule add --claimrule-class=Filter --plugin=VAAI_FILTER
  2. 运行以下命令为 VAAI 插件定义新的声明规则:esxcli storage core claimrule add --claimrule-class=VAAI
  3. 运行以下命令加载这两个声明规则:
    esxcli storage core claimrule load --claimrule-class=Filter

    esxcli storage core claimrule load --claimrule-class=VAAI

  4. 使用以下命令运行 VAAI 筛选器声明规则:esxcli storage core claimrule run --claimrule-class=Filter
    注: 只需运行筛选器类规则。当 VAAI 筛选器声明设备时,会自动查找要附加的适当 VAAI 插件。

示例: 定义硬件加速声明规则

此示例显示如何为使用 VMW_VAAIP_T10 插件的 IBM 阵列配置硬件加速。按以下顺序运行命令。有关命令使用的选项的信息,请参见添加多路径声明规则

# esxcli storage core claimrule add --claimrule-class=Filter --plugin=VAAI_FILTER --type=vendor --vendor=IBM --autoassign

# esxcli storage core claimrule add --claimrule-class=VAAI --plugin=VMW_VAAIP_T10 --type=vendor --vendor=IBM --autoassign

# esxcli storage core claimrule load --claimrule-class=Filter

# esxcli storage core claimrule load --claimrule-class=VAAI

# esxcli storage core claimrule run --claimrule-class=Filter

配置 XCOPY 参数

XCOPY 是 VAAI 基本类型之一,用于将任务卸载到存储阵列。例如,可以使用 XCOPY 将诸如虚拟机迁移或克隆等操作卸载到阵列,从而不必使用 vSphere 资源来执行这些任务。

可以将 XCOPY 机制与所有支持 VMW_VAAIP_T10 插件(由 VMware 开发,基于 SCSI T10)的存储阵列结合使用。要启用 XCOPY 机制,请创建 VAAI 类的声明规则。

前提条件

安装 ESXCLI。请参见《ESXCLI 入门》。要进行故障排除,请在 ESXi Shell中运行 esxcli 命令。

过程

  • 使用以下命令并输入 XCOPY 选项:
    esxcli storage core claimrule add --claimrule-class=VAAI

    有关命令使用的选项的信息,请参见添加多路径声明规则

    选项 描述
    -a|--xcopy-use-array-values 将阵列报告的值用于 XCOPY 命令。
    -s|--xcopy-use-multi-segs 将多个段用于 XCOPY 命令。仅当指定 --xcopy-use-array-values 时才有效。
    -m|--xcopy-max-transfer-size 使用不同于阵列所报告的传输大小时 XCOPY 命令的最大传输大小 (MB)。仅当指定 --xcopy-use-array-values 时才有效。
    -k|--xcopy-max-transfer-size-kib 使用不同于阵列所报告的传输大小时 XCOPY 命令的最大传输大小 (KiB)。仅当指定 --xcopy-use-array-values 时才有效。

    -e | --extended-xcopy-support

    使用 extended XCOPY 命令可优化位于不同存储阵列中的数据存储之间的数据复制。

示例: 配置 XCOPY

  • # esxcli storage core claimrule add -r 914 -t vendor -V XtremIO -M XtremApp -P VMW_VAAIP_T10 -c VAAI -a -s -k 64
  • # esxcli storage core claimrule add -r 65430 -t vendor -V EMC -M SYMMETRIX -P VMW_VAAIP_SYMM -c VAAI -a -s -m 200

使用扩展 XCOPY 参数优化数据复制

扩展 XCOPY 参数可优化两个不同阵列中数据存储之间的数据复制。通过该参数,可以迁移和克隆工作负载,从而在两个不同的阵列之间卸载 XCOPY。

扩展 XCOPY 的特性:
  • 在声明规则中使用新的扩展 XCOPY 选项。

    esxcli storage core claimrule add -t vendor -V vendor -M model name -P VMW_VAAIP_T10 -c VAAI --autoassign -e

    例如:

    esxcli storage core claimrule add -t vendor -V DellEMC -M PowerStore -P VMW_VAAIP_T10 -c VAAI --autoassign -e

  • 仅 T10 插件支持扩展 XCOPY。
过程
  1. 使用以下命令检查扩展的 XCOPY 状态。
    esxcli storage core device vaai status get -d device
    例如:
    [root@tpp-h127:~] esxcli storage core device vaai status get -d naa.68ccf098007f554c61148eb1786e6749
    naa.68ccf098007f554c61148eb1786e6749
       VAAI Plugin Name: VMW_VAAIP_T10
       ATS Status: supported
       Clone Status: supported
       Zero Status: supported
       Delete Status: supported
       Ex Clone Status: supported"
    
  2. 为支持的存储阵列启用扩展 XCOPY。
    1. 验证是否已添加 VAAI_FILTER 插件设备。
      esxcli storage core claimrule list -c Filter
    2. 如果没有为 VAAI_FILTER 插件添加设备,请使用以下命令。
      esxcli storage core claimrule add -t vendor -V vendor -M model name -P VAAI_FILTER -c Filter --autoassign
    3. 加载 VAAI_FILTER声明规则。
      esxcli storage core claimrule load -c Filter
    4. 使用 T10 插件添加扩展 XCOPY 声明规则。
      esxcli storage core claimrule add -t vendor -V vendor -M model name -P VMW_VAAIP_T10 -c VAAI --autoassign -e
      注:
      • 步骤 d 中的声明规则将对 XCOPY 命令使用 ESXi 默认传输大小和单个分段。要使用包含不同传输大小和多个分段的阵列报告值,请在上述命令中使用可选参数 -a-s-m|-k
      • 扩展的 XCOPY 设置可跨不同的阵列运行。
      • 为源设备和目标设备添加包含可选参数(如 -a-s-m|-k)的声明规则。在这种情况下,数据传输将考虑源阵列和目标阵列的最小传输大小。

        源设备:

        esxcli storage core claimrule add -t vendor -V vendor -M model name -P VMW_VAAIP_T10 -c VAAI --autoassign -a -s

        目标设备:

        esxcli storage core claimrule add -t vendor -V vendor -M model name -P VMW_VAAIP_T10 -c VAAI --autoassign -a -s -e
    5. 加载 VAAI_T10 插件。
      esxcli storage core claimrule load -c VAAI
    6. 运行新添加的声明规则选项。
      esxcli storage core claimrule run --claimrule-class=Filter

删除硬件加速声明规则

使用 esxcli 命令可删除现有硬件加速声明规则。

前提条件

安装 ESXCLI。请参见《ESXCLI 入门》。要进行故障排除,请在 ESXi Shell中运行 esxcli 命令。

过程

  • 运行以下命令:
    esxcli storage core claimrule remove -r claimrule_ID --claimrule-class=Filter

    esxcli storage core claimrule remove -r claimrule_ID --claimrule-class=VAAI