0

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

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

在此处输入图像描述

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

政府使用情况

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

4

2 回答 2

1

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

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

于 2021-01-21T14:12:54.033 回答
1

正如Kyle Ruddy 所说,这无法通过 govc 完成,但可以通过在 ESXi 数据存储上为您的相应 VM 找到您的 .VMX 文件并将这一行添加到您的.vmx 文件中来完成。

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

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

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

于 2021-01-28T21:34:37.307 回答