VMware PowerCLI 命令/脚本,用于查看虚拟机是否可以在资源池中运行



是否有 PowerCLI 脚本(或一系列命令)可用于确定虚拟机资源池是否有足够的可用资源来启动虚拟机,而不会触发 vSphere 错误?

出于性能测试的原因,我们使用具有最大 RAM 和 CPU 的资源池。 池中的每个 VM 都有一个针对 CPU 和 RAM 的预留集。 测试时,测试自动化将尝试在池中启动尽可能多的 VM。 当启动 VM 超过允许的资源量时,CLI 将返回错误。 发生这种情况时,vSphere 控制台上会显示错误"资源不足"。 而不是不断启动 VM、失败并生成错误 - 有没有办法检查是否有足够的空间?

不确定 CPU 使用率,但您可以在内存上使用 PowercLI get-stat 并围绕它建立一些逻辑。快速示例:

connect-viserver my_vc
$active = (get-stat -entity (get-cluster cluster_name | get-resourcepool Low) -stat mem.active.average -maxsamples 1 -realtime).Value
$granted = (get-stat -entity (get-cluster cluster_name | get-resourcepool Low) -stat mem.granted.average -maxsamples 1 -realtime).Value
$active
$granted
$pctused = ($active / $granted)*100
$pctused
# 4445929
# 31797248
# 13.9821188299063

我想您可以在构建之前运行它并在条件语句中使用$pctused例如 if ($pctused -lt 98) { # build } else { # stop gracely }

最新更新