关于 VMware Private AI (GPU & Model Serving)
用于 vSphere 9.x / VCF 9.1 和 Private AI Service 的 GPU 基础设施与模型服务运维 beta 版 MCP 服务及命令行工具,面向管理 GPU 资源、vGPU 分配、利用率和 PAIS 模型的团队;唯一写入操作带有安全限制。
主要功能
- 01盘点 GPU 主机、设备和使用者
- 02查看利用率与就绪状态
- 03浏览 vGPU 和 DirectPath 配置文件
- 04通过安全检查分配 vGPU 配置
- 05查询 PAIS 模型和知识库
- 06估算 LLM 的 GPU 与存储需求
适用场景
- 01查找空闲 GPU 并查看使用者
- 02检查主机就绪情况和配置选项
- 03更改已关机虚拟机的 vGPU 配置
- 04查看 PAIS 提供的模型和数据源
MCP 相关
提供 18 个 GPU 与 PAIS 运维工具:17 个只读工具和一个受保护的 vGPU 分配写入工具。支持本地 stdio 客户端和带认证的 HTTPS 访问,并可限制对外提供的工具。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
17收录的工具列表 · 更新于 1 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| model | any | 否 | 包含大小的模型名称,例如 “llama-3-70b” 或 “27B”。 |
| precision | string | 否 | fp16 | bf16 | fp8 | int8 | int4(默认 fp16)。 |
| kv_overhead | number | 否 | KV 缓存和激活值的乘数(默认值为 1.3;长上下文/高 QPS 场景可提高至 1.5-2.0)。 |
| model_billions | any | 否 | 以十亿为单位的参数量(例如 70)。优先于 `model`。 |
详细介绍
VMware Private AI(Foundation with NVIDIA)——GPU 与模型服务运维
VMware 技能系列中面向 GPU / AI 基础设施 的部分——GPU 主机和设备清单、vGPU 使用者、GPU 实时利用率、vGPU / DirectPath 配置文件目录、vGPU 分配,以及由 Private AI Service(PAIS) 提供服务的模型和知识库——通过 vSphere 9.x / VCF 9.1 Web Services API(pyVmomi)和 PAIS REST API 提供。MCP 服务 + CLI。
免责声明:这是一个由社区维护的开源项目,与 VMware, Inc.、Broadcom Inc. 或 NVIDIA Corporation 无关,也未获其认可或赞助。“VMware”“vSphere”和“VCF”是 Broadcom 的商标;“NVIDIA”和“vGPU”是 NVIDIA 的商标。源代码遵循 MIT 许可证,可在 github.com/vmware-skills/VMware-PrivateAI 审查。
状态:beta。 这是该系列的第 15 个技能,采用独立的版本线。每条 API 路径在使用前都经过官方 Broadcom / NVIDIA 文档验证(参见
tests/eval/spec/privateai_endpoints.py)——没有凭记忆编写的端点。GET 响应的字段名称和确切的 PAIS 路径仍采用防御性处理,等待在真实的 9.x 硬件上验证(参见skills/vmware-privateai/SKILL.md中的 beta 注意事项)。由该系列的测试框架管理(审计 + 策略 + 教学错误);读写授权由 vCenter 服务账户的 RBAC 角色决定。
升级到 2.0
2.0 重命名了所有 MCP 工具,使每个名称都以动词开头(例如,directpath_profile_list → list_directpath_profiles、gpu_consumer_list → list_gpu_consumers、gpu_device_list → list_gpu_devices)。完整的新旧名称对照表见
RELEASE_NOTES.md。其他一切保持不变:工具、参数、安全门禁和 CLI 命令均相同。如果 Agent 提示词、脚本或 ~/.vmware/rules.yaml 中列出了工具名称,请更新它们——不过,使用旧名称编写的拒绝规则在 vmware-policy ≥ 1.18 时仍然有效(vmware-audit policy 会列出因重命名而扩大匹配范围的规则),而 vmware-pilot ≥ 1.13 会在已保存的工作流中转换旧名称。
如果低于 2.0 的安装也共用该 rules.yaml,请同时将其 vmware-policy 升级到 ≥ 1.18.2:该版本会分别匹配每条规则的新旧名称,因此一个文件即可供两者使用。
功能(18 个 MCP 工具 — 17 个读取 / 1 个写入)
| 类别 | 工具 | 读取/写入 |
|---|---|---|
| GPU 清单 | 主机列表 / 详情、设备列表、vGPU 使用者列表 | 4 个读取 |
| GPU 利用率 | 每个 vGPU VM 的实时利用率(GPU %、内存 %、温度) | 1 个读取 |
| GPU 就绪状态 | 每台主机的 vGPU/PAIS 就绪判定 + 阻止原因 | 1 个读取 |
| 配置文件目录 | vGPU 配置文件列表、DirectPath 配置文件列表 | 2 个读取 |
| 配置文件验证 | 更改 vGPU 配置文件前的只读预检查(电源状态 + 主机是否提供该配置文件) | 1 个读取 |
| vGPU 分配 | 设置 VM 的 vGPU 配置文件(VM 必须已关机) | 1 个写入 |
| Private AI Service | 正在提供服务的模型、模型目录、知识库、数据源 | 4 个读取 |
| PAIS 监控 | 集群 GPU 概况(利用率/内存/温度、繁忙/空闲、最繁忙项) | 1 个读取 |
| 容量规划与隔离网络 | 大模型 GPU/存储容量规划顾问、本地 pais.yml 镜像清单 | 2 个读取 |
| 访问自检 | 服务使用的账号,以及该账号是否拥有每项工具所需的 vSphere 权限(根文件夹) | 1 个读取 |
读取操作严格来说不会产生破坏性影响。唯一的写入操作(assign_vgpu)会预览影响范围,拒绝对已开机的
VM 执行操作,绝不会自行关闭 VM,在 CLI 上要求二次确认,并将操作记录到 ~/.vmware/audit.db;
请先使用 validate_vgpu_profile 进行预检查。
assign_vgpu 接受 confirm(默认值为 false)。不提供该参数时,调用会返回 blast_radius ——
包括 VM 的名称和 ID、当前和目标配置文件、vGPU 设备是被修改还是新增、电源状态、blockers 和
unmeasured,且不会进行任何更改。对于已开机或已挂起的 VM、多个 VM 共有的名称,以及无法读取电源状态或设备的
VM,confirm=true 会被拒绝。
get_pais_model_catalog / list_pais_data_sources 使用尚未确认的 PAIS 控制平面路径(陷阱 #36:404
会返回基础 URL 提示,而非程序错误);advise_pais_sizing / verify_pais_bundle 无需连接
(纯计算 / 本地文件解析)。
快速开始
uv tool install vmware-privateai
vmware-privateai version
vmware-privateai gpu host-list # first read command — lists the hosts that have GPUs
配置位于 ~/.vmware-privateai/config.yaml(目标 + 可选的 pais: 部分);密码和
PAIS bearer token 位于 ~/.vmware-privateai/.env(chmod 600)。请参阅
skills/vmware-privateai/references/setup-guide.md。
常见工作流
1. 查找空闲 GPU 并更改 VM 的 vGPU 配置文件
vmware-privateai gpu device-list --vendor NVIDIA # vm_count 0 = idle
vmware-privateai gpu consumer-list # who holds a vGPU, with which profile
vmware-privateai vgpu profile-list --host esx-07 # profiles this host can assign
vmware-privateai gpu vgpu-assign fin-train-01 grid_a100-4c --dry-run # preview
# power the VM off with vmware-aiops first, then:
vmware-privateai gpu vgpu-assign fin-train-01 grid_a100-4c # double-confirm + audit
失败分支:遇到“VM is powered on”时,先使用 vmware-aiops 的 power_off_vm 关闭 VM(CLI:
vmware-aiops vm power-off fin-train-01);如果主机不提供该配置文件或内存不足,请使用 vmware-privateai gpu host-get <that host> 检查
有效配置文件。
2. 全机群 GPU 利用率扫描
vmware-privateai gpu utilization --top 10
失败分支:metrics unavailable 并非错误 — NVIDIA 主机 GPU 驱动程序没有公开该 VM 的
计数器。vSphere 不提供更深入的每 SM / MIG 切片遥测数据(这需要 NVIDIA DCGM)。
3. 查看 PAIS 正在提供哪些服务
vmware-privateai pais model-list
vmware-privateai pais kb-list
失败分支:HTTP 404 通常表示基础 URL 不匹配(/api/v1 前缀因部署而异,且 beta 版中尚未确认)— 请检查
pais.endpoint;HTTP 401/403 表示 VMWARE_PRIVATEAI_PAIS_TOKEN 已过期或权限不足 — 请获取新 token。
配套技能
- vmware-aiops — AI 工作负载背后的 vCenter VM(电源/快照/克隆/迁移)
- vmware-vks — 支持 GPU 的 Tanzu Kubernetes
- vmware-monitor — 只读 vSphere 健康状态
此技能为以上三者提供 GPU 视角。
安全
请参阅仓库根目录中的 SECURITY.md。要点:凭据仅存放在 .env 中(chmod 600,使用 b64: 混淆);默认启用 TLS
验证;所有 vSphere/PAIS 文本都会通过 vmware_policy.sanitize() 进行提示词注入防护;
读取/写入授权交由 vCenter RBAC 管理;assign_vgpu 受关机状态限制 + 二次确认 + 审计。
远程访问(HTTPS)和限制工具
默认情况下,vmware-privateai mcp 通过 stdio 与一个本地客户端通信,并提供所有工具。以下两个选项可以改变这一点
(vmware-policy ≥ 1.21.0)。
通过 HTTPS 提供服务,以便其他机器上的客户端连接。每个调用方都需要一个 bearer token:
vmware-audit token create alice # prints the token once; give it to alice
vmware-audit token list # names only
vmware-audit token revoke alice # refused from its next request, no restart
vmware-privateai mcp --transport https --host 0.0.0.0 --port 8443 \
--cert /etc/vmware-mcp/server.pem --key /etc/vmware-mcp/server-key.pem \
--public-name mcp.example.com
连接客户端(此处以 Claude Code 为例;任何支持 streamable HTTP 和自定义请求头的 MCP 客户端都适用):
claude mcp add --transport http vmware-privateai https://mcp.example.com:8443/mcp \
--header "Authorization: Bearer $VMWARE_MCP_TOKEN"
{
"mcpServers": {
"vmware-privateai": {
"type": "http",
"url": "https://mcp.example.com:8443/mcp",
"headers": { "Authorization": "Bearer ${VMWARE_MCP_TOKEN}" }
}
}
}
- 如果没有 token,服务将无法启动;它会拒绝
--public-name之外的 Host/Origin 值,并在绑定前检查未认证请求是否会收到 401。请使用客户端信任的、适用于这些名称的证书。 - 如果在同一台机器上使用 TLS 终止反向代理,请使用
--transport http --host 127.0.0.1 --public-name mcp.example.com,并透传Authorization请求头。 - 如果负载均衡器或网关位于另一台机器上,请保留
--transport https(自签名证书也可以),在--public-name中列出负载均衡器发送的 Host 主机名,并让它转发Authorization。它的健康探测可以使用GET /healthz,该请求无需 token,且只返回{"status": "ok"}(vmware-policy ≥ 1.23.0)。 - 每次请求都发送
traceparent或X-Request-ID,即可将其记录到审计行中; 随后运行vmware-audit log --correlation-id ID,即可查找同一平台请求对应的调用。 - 在此服务器上读取或写入文件的工具(此处为
verify_pais_bundle清单)绝不会触及服务器的配置、token、审计日志或 TLS 密钥;通过网络访问时,除非VMWARE_MCP_FILE_ROOT指定了供这些工具使用的目录,否则这些工具默认关闭 (vmware-policy ≥ 1.23.1)。 - 审计日志会将每个调用方记录为
token:<name>。调用会并行运行,即使针对同一目标也不例外:服务器会为每个目标保留至多VMWARE_MCP_POOL_SIZE(默认值为 2)个会话,每个会话都是登录到该目标的一次连接;调用最多等待 300 s 以获取空闲会话(vmware-policy ≥ 1.22.0)。 - 所有能够访问此端点的人都会使用此服务器的账户执行操作。 Token 用于识别调用方;它们不会授予任何平台权限。请为每个权限级别运行一个端点。
vmware-privateai access-info会显示该账户及其可执行的操作。 - **在同一端点上服务多个用户或角色:**运行一次
vmware-audit roles enable,然后为每个 token 指定一个角色(vmware-audit token create NAME --role reader,或在roles.yaml中设置包含工具和目标的角色;vmware-policy ≥ 1.24.0)。角色会限制此端点上的 token 可调用哪些工具,但不能授予超出账户本身权限的访问权。请参阅 vmware-policy 的 README 中的“网络调用方的角色”。
仅提供只读工具,以及你选择的写入工具:
vmware-privateai mcp --expose read --allow-write assign_vgpu
# or: VMWARE_PRIVATEAI_MCP_EXPOSE=read VMWARE_PRIVATEAI_MCP_ALLOW_WRITE=assign_vgpu vmware-privateai mcp
未提供的工具不会出现在客户端的工具列表中。无效值或未知的写入工具会导致服务停止 (退出码为 2)。这只会限制向客户端提供哪些工具;它不代表授权,因此账户本身应遵循最小权限原则。
详情:skills/vmware-privateai/references/setup-guide.md(“通过 HTTPS 提供 MCP 服务”和“限制提供的工具”)。
许可证
MIT
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。