powercli 限制新快照一次创建一个
powercli limit new-snapshot to create one at a time
我有几个脚本可以为一组服务器创建和删除快照。当我删除快照时,它一次只做一个,但当我创建快照时,它会尝试一次全部完成,这往往会使主机过载。有谁知道我遗漏了一个让它一次创建一个快照的选项?
这是我用来创建快照的内容
get-vm -location “Test-Env” | New-Snapshot -Memory -Quiesce -Name Snap1
这是我用来删除快照的方法
get-vm -location “Test-Env” | Get-Snapshot -Name Snap1 | Remove-Snapshot
您可以简单地使用 Start-Sleep
cmdlet 等待,或使用 do/while 循环直到您检查快照的完成,使用诸如:
$VMS = get-vm -location “Test-Env”
foreach ($VM in $VMS)
{
$Snapshot = $VM | New-Snapshot -Memory -Quiesce -Name Snap1
do {
sleep 1
}
until (Get-Snapshot $Snapshot)
}
问题是您使用的 location 是一个集合(可能是资源池),因此它会尝试一次完成所有操作。
New-Snapshot 命令应该 运行 每个并等待您在每个 VM 中引用它。使用 RunAsync 命令停止它等待每一个,默认是关闭的。
https://www.vmware.com/support/developer/PowerCLI/PowerCLI41U1/html/New-Snapshot.html
所以你不需要睡觉
$VMS = get-vm -location “Test-Env”
foreach ($VM in $VMS)
{
$Snapshot = $VM | New-Snapshot -Memory -Quiesce -Name Snap1
}
我有几个脚本可以为一组服务器创建和删除快照。当我删除快照时,它一次只做一个,但当我创建快照时,它会尝试一次全部完成,这往往会使主机过载。有谁知道我遗漏了一个让它一次创建一个快照的选项?
这是我用来创建快照的内容
get-vm -location “Test-Env” | New-Snapshot -Memory -Quiesce -Name Snap1
这是我用来删除快照的方法
get-vm -location “Test-Env” | Get-Snapshot -Name Snap1 | Remove-Snapshot
您可以简单地使用 Start-Sleep
cmdlet 等待,或使用 do/while 循环直到您检查快照的完成,使用诸如:
$VMS = get-vm -location “Test-Env”
foreach ($VM in $VMS)
{
$Snapshot = $VM | New-Snapshot -Memory -Quiesce -Name Snap1
do {
sleep 1
}
until (Get-Snapshot $Snapshot)
}
问题是您使用的 location 是一个集合(可能是资源池),因此它会尝试一次完成所有操作。
New-Snapshot 命令应该 运行 每个并等待您在每个 VM 中引用它。使用 RunAsync 命令停止它等待每一个,默认是关闭的。
https://www.vmware.com/support/developer/PowerCLI/PowerCLI41U1/html/New-Snapshot.html
所以你不需要睡觉
$VMS = get-vm -location “Test-Env”
foreach ($VM in $VMS)
{
$Snapshot = $VM | New-Snapshot -Memory -Quiesce -Name Snap1
}