使用 govc CLI 为 VMware ESXI 上的特定虚拟机设置 CPU 关联

Set CPU affinity for specific VM on VMware ESXI using govc CLI

我有 shell 脚本,用于以编程方式配置我的 VMware ESXi 主机上的虚拟机 (VM) .我使用“govc”命令行界面 (CLI),它提供了一套命令来配置我的虚拟机 运行 在我的 ESXI 上(即开机、设置ram 等...)

我现在正在尝试为我的一些虚拟机设置 CPU 亲和力(即,VM #2 应该使用 CPUs 9- 16 而 VM#1 应该使用 CPU 2-8)。 但是,我无法找到任何 govc 命令以编程方式执行此操作,尽管我可以非常清楚地看到如何在基于 web 的 ESXI GUI 中执行此操作:

我在此处参考了 govc API 的命令,但同样,我找不到任何东西。 CPU affinity 应该为特定的 VM 设置,并且应该有一个 CPU 数字的参数,用逗号或连字符 (-) 分隔一个范围,我想:

govc usage

如何解决 VMware ESXi 和 govc 的这个问题?

正如 Doug 在 your issue 中提到的那样,这不是在 govc 级别启用的配置。

或者,您可以使用其他 CLI,例如基于 PowerShell 的 PowerCLI,它的覆盖范围更大,可以执行更深入的任务,或者 govmomi SDK,它具有完整的 API 覆盖范围.

作为 ,它无法通过 govc 完成,但可以通过在 ESXi 数据存储上找到您各自 VM 的 .VMX 文件并简单地将此行添加到您的 .vmx 文件.

sched.cpu.affinity = 1,2,3,4,5 // Values are separated by commas

您可以通过选择 VM 并进入其设置来仔细检查您的 ESXi,您将看到您通过 VMX 设置的CPU 预定关联范围文件。

当然,如果你有很多 CPUs,你可以有一些带有 for 循环的脚本(Bash,等等)填充以逗号分隔的 CPU 值。