获取由vCenter管理的VM中所有快照的列表?


17

我们有多个由vCenter管理的ESXi服务器;有没有办法获取所有VM中所有快照的列表?


1
以下是一些好的答案。如果您支持vCenter,请同时获取一份RVTools副本。
jscott 2014年

Answers:


11

听起来像是PowerCLI的工作!好吧,无论如何,这是从Windows工作站上获得的。

Get-Snapshot

Surly Admin的博客甚至包含一个脚本,您可以复制该脚本以获取环境中所有VM的所有快照,为方便起见,我将在下面发布其内容。

$Report = Get-VM | Get-Snapshot | Select VM,Name,Description,@{Label="Size";Expression={"{0:N2} GB" -f ($_.SizeGB)}},Created
If (-not $Report)
{  $Report = New-Object PSObject -Property @{
      VM = "No snapshots found on any VM's controlled by $VIServer"
      Name = ""
      Description = ""
      Size = ""
      Created = ""
   }
}
$Report = $Report | Select VM,Name,Description,Size,Created | ConvertTo-Html -Head $Header -PreContent "<p><h2>Snapshot Report - $VIServer</h2></p><br>" | Set-AlternatingRows -CSSEvenClass even -CSSOddClass odd

1
这是一个很好的答案。我从PowerCLI中获得了很多好处,但是如果PowerShell不是您的事,那么PowerCLI(尤其是这个答案)就是vSphere API Client的一个很好的例子,请随时查看vSphere API文档。供您选择的语言!
gWaldo 2014年

16

Grrr ... VMware快照。如果可以的话,它们仅存在于备份目的和测试更改。

您可以通过在vSphere Client中的群集级别使用“存储视图”选项卡来查看快照占用的空间(这可能是您真正想知道的)。

在此处输入图片说明

从那里开始,然后深入到各个VM。值以字节(B)为单位的条目实质上意味着没有快照。


此内容已从vSphere Client中删除:kb.vmware.com/s/article/2112085
CitizenRon,

1
船尾。我讨厌他们这样做。
ewwhite

7

HopelessNoob的答案非常适合人类阅读的报告。有时我更喜欢将我的解析为其他PS对象。这与HopelessNoob的非常相似-我猜我们俩都是从相同的代码片段开始构建脚本的:

$ VIServer =“ vsphere.ad.example.com”

If (-not (Get-PSSnapin VMware.VimAutomation.Core))
{  Try { Add-PSSnapin VMware.VimAutomation.Core -ErrorAction Stop }
   Catch { Write-Host "Unable to load PowerCLI, is it installed?" -ForegroundColor Red; Break }
}

Connect-VIServer $VIServer -Credential (Get-Credential) | Out-Null

Get-VM | Get-Snapshot | Select VM,Name,Description,@{Label="Size";Expression={"{0:N2} GB" -f ($_.SizeGB)}},Created | FT

给出:

VM                              Name                            Description                     Size                            Created
--                              ----                            -----------                     ----                            -------
ENETSXS2                        VEEAM BACKUP TEMPORARY SNAPSHOT Please do not delete this sn... 19.28 GB                        8/11/2014 8:42:18 AM
ENETSDFS-BS                     VEEAM BACKUP TEMPORARY SNAPSHOT Please do not delete this sn... 16.30 GB                        8/11/2014 5:24:44 AM

然后,您可以将其通过管道传递Remove-Snapshot或过滤,或进行其他操作。


4

这是我们用于转储带有快照的所有VM列表的脚本,可在PowerCLI中使用。这是非常简单和干净的。它将通过.csv文件将结果转储到本地桌面。

#  Possible "Select-Object -Property" variables: Description, Created, Quiesced, PowerState, VM, VMId, Parent, ParentSnapshotId, ParentSnapshot, Children, SizeMB, SizeGB, IsCurrent, IsReplaySupported, ExtensionData, Id, Name, Uid, Client


get-vm | get-snapshot | Select-Object -Property vm,created,sizeGB,name,description | Export-Csv -Path C:\Users\$env:username\Desktop\snapshots.csv

3

即使答案已经被接受,我也要指出您check_vmware_snapshots
它是Nagios / Icinga 插件,用于检查VMWare ESXi / vSphere环境中的VM快照的寿命和计数。

它取决于“ VMware-vSphere-CLI-5.5.0”中的Perl / VMware :: VIRuntime,因此这次没有PowerCLI或-shell。:-)


1

不幸的是,我相信自6.0以来,用于Vcenter的胖客户端就没有此功能,但是如果您想在GUI中轻松实现,这是另一种选择。在6.0或6.5中,启动vcenter Web客户端(Flash版本)。在左侧(导航器窗口)中,选择vcenter,数据中心或群集,然后选择以查看VM。在“过滤器”框左侧的右侧,有一个小正方形图标(悬停在上面,上面显示“显示和隐藏快速过滤器”。单击该正方形图标,然后单击“具有快照”,然后单击“是”。视图现在将仅显示具有快照的VM。


0

或在MS SQL中运行以下查询(查询基于sql2008和vcenter 5.1)

select t.ID, t.NAME as VMName, s.SNAPSHOT_NAME as SnapshotName
from [VCDB].[dbo].[VPX_SNAPSHOT] s, [VCDB].[dbo].[VPX_ENTITY] t
where s.VM_ID = t.ID order by t.ID

0

使用vSphere Client打开vCenter。导航

“数据存储和数据存储群集”类别

要在其中找到快照的“ R-Click on Datastore”。(如果有多个数据存储,则必须进入每个数据存储)

您将看到文件夹和搜索选项卡。

单击以查看搜索选项卡的图像

单击搜索,然后从下拉列表中选择“虚拟机快照”

单击搜索。

它将显示存储在该数据存储中的所有快照。

R单击快照,然后单击“转到文件夹”

它将带到已拍摄快照的VM文件夹中。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.