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

问题描述

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

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

Enter image description here

在这里参考了 govc API 的命令,但同样,我找不到任何东西。应该为特定的 VM 设置 cpu 关联性,并且应该有一个 cpu 编号参数,用逗号或连字符 (-) 分隔,我想:

govc usage

如何使用 VMware ESXi 和 govc 解决此问题?

解决方法

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

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

,

作为 Kyle Ruddy stated,它无法通过 govc 完成,但可以通过在 ESXi 数据存储上为您的相应虚拟机找到您的 .VMX 文件并将此行添加到您的 .vmx文件。

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

您可以通过选择虚拟机并进入其设置来仔细检查您的 ESXi,您将看到您通过 VMX 文件设置的 CPU 调度关联范围

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