it-swarm.com.de

Abrufen einer Liste aller Snapshots in VMs, die von vCenter verwaltet werden?

Wir haben mehrere ESXi-Server, die von einem vCenter verwaltet werden. Gibt es eine Möglichkeit, eine Liste aller Snapshots in allen VMs abzurufen?

18
leeand00

Klingt nach einem Job für PowerCLI! Na ja, von einer Windows-Workstation jedenfalls, was ich habe.

Get-Snapshot

Der Blog von Surly Admin enthält sogar ein Skript, mit dem Sie Pasta kopieren können, um alle Schnappschüsse für alle VMs in Ihrer Umgebung zu erhalten. , dessen Fleisch ich unten zur Vereinfachung veröffentlichen werde.

$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
11
HopelessN00b

Grrr ... VMware-Snapshots. Wenn es nach mir ginge, würden sie nur zu Sicherungszwecken und zum Testen von Änderungen existieren.

Sie können den von Snapshots belegten Speicherplatz ( anzeigen, was Sie wahrscheinlich wirklich wissen möchten ), indem Sie die Registerkarte "Speicheransichten" im Cluster verwenden Ebene in Ihrem vSphere-Client.

(enter image description here

Beginnen Sie dort und führen Sie dann einen Drilldown zu den einzelnen VMs durch. Die Einträge mit Werten in Bytes (B) bedeuten im Wesentlichen, dass keine Snapshots vorhanden sind.

16
ewwhite

Die Antwort von HopelessNoob ist großartig für einen von Menschen lesbaren Bericht. Manchmal ziehe ich es vor, meine in andere PS-Objekte zu analysieren. Es ist auch HopelessNoob sehr ähnlich - ich denke, wir haben beide mit demselben Code-Snippet begonnen, um unsere Skripte zu erstellen:

$ 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

Gibt:

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

Sie können das dann in Remove-Snapshot Weiterleiten oder filtern oder was auch immer.

8
Mark Henderson

Hier ist das Skript, mit dem wir eine Liste aller VMs mit Snapshots sichern, das in PowerCLI funktioniert. Es ist sehr einfach und sauber. Die Ergebnisse werden über eine CSV-Datei auf Ihrem lokalen Desktop gespeichert.

#  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
5
Justin

Selbst wenn eine Antwort akzeptiert wurde, möchte ich Sie auf check_vmware_snapshots verweisen.
Es ist ein Nagios/Icinga-Plugin , mit dem Sie das Alter überprüfen und auf VM Snapshots in einer VMWare ESXi/vSphere-Umgebung) zählen können.

Es hängt von Perl/VMware :: VIRuntime ab "VMware-vSphere-CLI-5.5.0" ab, daher diesmal keine PowerCLI oder -Shell. :-)

3
Henk

Leider hat der Thick Client für Vcenter diese Funktion seit 6.0 nicht mehr, glaube ich, aber hier ist eine weitere Option, wenn Sie dies einfach in einer GUI tun möchten. Starten Sie in 6.0 oder 6.5 den vcenter Web Client (Flash-Version). Wählen Sie auf der linken Seite (Navigatorfenster) entweder vcenter, ein Rechenzentrum oder einen Cluster aus, um VMs anzuzeigen. Auf der rechten Seite links neben dem Feld "Filter" befindet sich ein kleines quadratisches Symbol (darüber befindet sich "Schnellfilter ein- und ausblenden"). Klicken Sie auf dieses quadratische Symbol, dann auf "Schnappschuss" und dann auf "Ja" In der Ansicht werden jetzt nur VMs mit Snapshots angezeigt. Viel Spaß!

1
lampim

Oder führen Sie die folgende Abfrage in MS SQL aus (die Abfrage basiert auf sql2008 und 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
eloy

Öffnen Sie vCenter mit vSphere Client. Navigieren Sie zu

Kategorie "Datenspeicher und Datenspeichercluster"

"R-Click on Datastore", in dem Sie Snapshot suchen möchten. (Wenn mehrere Datenspeicher vorhanden sind, müssen diese in jedem Datenspeicher gespeichert werden.)

Sie sehen Ordner und Suchregisterkarte.

Klicken, um das Bild der Registerkarte "Suche" anzuzeigen

Klicken Sie auf Suchen und wählen Sie dann in der Dropdown-Liste "Virtual Machine Snapshot" aus.

Klicken Sie auf Suchen.

Es werden alle in diesem Datenspeicher gespeicherten Snapshots angezeigt.

R-Klick auf Schnappschuss und "Gehe zu Ordner"

Es dauert bis VM Ordner, von dem Snapshot genommen wird.

0
Junead Qureshi