vSphere 在默认情况下提供了一种机制,可为每个虚拟机文件创建调度队列。每个文件(例如 .vmdk)可获得自己的带宽控制。可以使用 vSphere Clientesxcli 命令关闭此机制。

此机制可确保特定虚拟机文件的 I/O 进入其自己单独的队列中,且可避免干扰其他文件的 I/O。

vSphere Client 中编辑按文件 I/O 调度

VMkernel.Boot.isPerFileSchedModelActive 高级参数控制 VMFS 和 NFS 3 数据存储上的按文件 I/O 调度机制。在 ESXi 主机上,该机制默认处于打开状态。可以使用高级系统设置对话框关闭该机制。

如果您关闭每个文件 I/O 调度模型,主机将恢复到旧版调度机制。旧版调度机制只为每个虚拟机和存储设备对维护一个 I/O 队列。虚拟机及其虚拟磁盘之间的所有 I/O 都将移到此队列。因此,来自不同虚拟磁盘的 I/O 在共享带宽时可能会相互干扰并影响彼此的性能。

注: 如果您为高速本地设备配置了 HPP 插件和延迟敏感阈值参数,请不要停用每个文件调度。关闭每个文件调度可能会导致出现不可预测的行为。

过程

  1. vSphere Client 中,导航到 ESXi 主机。
  2. 单击配置选项卡。
  3. 系统下,单击高级系统设置
  4. 编辑 VMkernel.Boot.isPerFileSchedModelActive 参数的值。
    选项 描述
    True 打开每个文件调度机制。默认情况下,该参数处于激活状态。
    False 停用每个文件调度机制。
  5. 重新引导主机以使更改生效。

使用 esxcli 命令编辑按文件 I/O 调度

可以使用 esxcli 命令更改 ESXi 主机上 VMFS、NFS 3 和 NFS 4.1 数据存储的 I/O 调度功能。默认情况下打开此功能。

前提条件

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

过程

  • 要设置或编辑按文件 I/O 调度,请运行以下命令:
    选项 描述
    esxcli system settings kernel set -s isPerFileSchedModelActive -v FALSE 对 VMFS 和 NFS 3 关闭按文件 I/O 调度。
    esxcli system settings kernel set -s isPerFileSchedModelActive -v TRUE 对 VMFS 和 NFS 3 打开按文件 I/O 调度。
    esxcli system module parameters list -m nfs41client 显示基于 NFS 4.1 文件的调度程序的当前状态。
    esxcli system module parameters set -m nfs41client -p fileBasedScheduler=0 对 NFS 4.1 关闭基于文件的调度程序。
    esxcli system module parameters set -m nfs41client -p fileBasedScheduler=1 为 NFS 4.1 打开基于文件的调度程序。