在 VMware vSphere 9.0 与 VCF 9.0 的结合应用中,vGPU 和 DirectPath 配置文件是实现虚拟化环境 GPU 资源高效分配的核心。随着企业对 AI 算力和虚拟化性能的需求提升,手动在 UI 中查看配置文件已无法满足自动化运维的需求。本文将以通俗易懂的方式,讲解如何通过 vSphere 9.0 API 检索 vGPU 配置文件、DirectPath 配置文件,以及查看 DirectPath 配置文件的使用率,同时提供可直接运行的 PowerCLI 示例,帮助运维和自动化开发人员快速掌握实操方法,提升资源管理效率。
一、vSphere 9.0 中 vGPU 与 DirectPath 配置文件核心说明
vSphere 9.0 针对 vGPU 和 DirectPath 配置文件进行了功能增强,不仅在可视化界面中优化了展示效果,还通过 API 开放了完整的操作能力,支持自动化批量查询、管理。其中:
vGPU 配置文件:用于为虚拟机分配虚拟化 GPU 资源,适配不同的 GPU 算力、显存需求;
DirectPath 配置文件:实现虚拟机直通物理 PCI 设备,提升设备访问性能,常用于高吞吐、低延迟的业务场景;
本文核心围绕检索配置文件和查看使用率两大核心场景,讲解 API 的具体使用方式。
二、检索 vGPU 配置文件实操
(一)核心 API 与原理
获取 vGPU 配置文件的核心是调用QueryConfigTarget() API,该 API 的核心作用是返回指定资源范围(vSphere 集群 / 单台 ESXi 主机)的硬件和功能支持信息。其执行流程为:
确定资源作用范围(集群或主机);
获取环境浏览器(EnvironmentBrowser)管理器实例;
调用 QueryConfigTarget () 获取 ConfigTarget 对象;
从 ConfigTarget 对象中提取 vGPU 相关配置信息(VgpuProfileInfo)。
(二)操作步骤
连接 vSphere 环境:通过 PowerCLI 连接到 vCenter Server 或 ESXi 主机;
确定资源作用范围:选择目标 vSphere 集群或 ESXi 主机对象;
获取环境浏览器引用:通过作用域对象获取 EnvironmentBrowser 管理器;
调用 API 并提取结果:执行 QueryConfigTarget (),从返回的 ConfigTarget 中获取 VgpuProfileInfo 属性,即为可用的 vGPU 配置文件列表。
(三)PowerCLI 示例代码
# 连接vCenter Server(替换为实际地址、账号、密码)
Connect-VIServer -Server "vcenter.example.com" -User "admin" -Password "password"
# 选择目标vSphere集群(替换为实际集群名称)
$cluster = Get-Cluster -Name "Your-Cluster-Name"
# 获取环境浏览器管理器
$envBrowser = Get-View $cluster.ExtensionData.EnvironmentBrowser
# 调用QueryConfigTarget API获取配置目标信息
$configTarget = $envBrowser.QueryConfigTarget($null)
# 提取并输出vGPU配置文件信息
Write-Host "===== 可用vGPU配置文件 =====" -ForegroundColor Cyan
$configTarget.VgpuProfileInfo | Select-Object Name, Description, VendorName | Format-Table -AutoSize
# 断开vCenter连接
Disconnect-VIServer -Confirm:$false
低版本兼容提示:若使用 vSphere 7.0 及以上版本,可通过 DynamicPassthrough 属性查看 DirectPath 设备信息;vSphere 7.0 Update 3 及以上支持 VgpuProfileInfo 属性;vSphere 8.0 及以上支持 VendorDeviceGroupInfo 属性,可根据实际版本调整查询内容。
三、检索 DirectPath 配置文件实操
(一)核心 API 与原理
DirectPath 配置文件的检索依赖DirectPathProfileManager对象,核心调用其DirectPathProfileManagerList() API 方法,该方法会直接返回当前环境中已创建的所有 DirectPath 配置文件详情。
(二)操作步骤
连接 vSphere 环境:通过 PowerCLI 连接到 vCenter Server;
获取 DirectPath 配置文件管理器实例:通过 vCenter 的 ExtensionData 获取管理器;
调用 List API:执行 DirectPathProfileManagerList () 获取配置文件列表;
格式化输出:整理返回结果,展示配置文件的名称、关联设备、适用范围等信息。
(三)PowerCLI 示例代码
# 连接vCenter Server(替换为实际信息)
Connect-VIServer -Server "vcenter.example.com" -User "admin" -Password "password"
# 获取DirectPath配置文件管理器
$dpProfileManager = Get-View -Id "DirectoryPathProfileManager"
# 调用API获取所有DirectPath配置文件
$dpProfiles = $dpProfileManager.DirectPathProfileManagerList()
# 输出配置文件信息
Write-Host "===== 可用DirectPath配置文件 =====" -ForegroundColor Cyan
$dpProfiles | Select-Object Name, DeviceId, VendorId, Description | Format-Table -AutoSize
# 断开连接
Disconnect-VIServer -Confirm:$false
四、查看 DirectPath 配置文件使用率实操
(一)核心 API 与原理
查看 DirectPath 配置文件的使用率,需继续使用DirectPathProfileManager对象,调用DirectPathProfileManagerQueryCapacity() API,该 API 会返回配置文件的总容量、已使用容量、剩余容量等核心使用率数据。
(二)操作步骤
连接 vSphere 环境:通过 PowerCLI 连接到 vCenter Server;
获取 DirectPath 配置文件管理器实例:同检索配置文件的步骤;
调用容量查询 API:执行 DirectPathProfileManagerQueryCapacity ();
解析使用率数据:整理总资源、已用资源、空闲资源等信息,直观展示配置文件使用情况。
(三)PowerCLI 示例代码
# 连接vCenter Server(替换为实际信息)
Connect-VIServer -Server "vcenter.example.com" -User "admin" -Password "password"
# 获取DirectPath配置文件管理器
$dpProfileManager = Get-View -Id "DirectoryPathProfileManager"
# 调用API获取使用率信息
$dpUsage = $dpProfileManager.DirectPathProfileManagerQueryCapacity()
# 输出使用率数据
Write-Host "===== DirectPath配置文件使用率 =====" -ForegroundColor Cyan
$dpUsage | Select-Object @{Name="配置文件名称"; Expression={$_.ProfileName}},
@{Name="总容量"; Expression={$_.TotalCapacity}},
@{Name="已使用容量"; Expression={$_.UsedCapacity}},
@{Name="剩余容量"; Expression={$_.FreeCapacity}} | Format-Table -AutoSize
# 断开连接
Disconnect-VIServer -Confirm:$false
五、实操注意事项
权限要求:执行 API 操作需具备 vSphere 环境的只读及以上权限,建议使用管理员账号操作;
版本适配:低版本 vSphere 虽支持部分 API,但属性和功能有限,需根据实际版本调整代码;
环境验证:执行代码前,需确认 vCenter Server 和 ESXi 主机的网络连通性,避免连接失败;
结果解析:API 返回的结果为结构化对象,可根据实际需求筛选、过滤或导出数据(如导出为 CSV 文件)。
通过以上实操步骤,即可快速通过 vSphere 9.0 API 实现 vGPU 与 DirectPath 配置文件的自动化检索和使用率查看,替代手动在 UI 中操作的繁琐流程,大幅提升虚拟化环境的资源管理效率。