Mendapatkan daftar semua snapshot di VM yang dikelola oleh vCenter?

18

Kami memiliki beberapa server ESXi yang dikelola oleh vCenter; apakah ada cara untuk mendapatkan daftar semua snapshot di semua VM?

Leandand00
sumber
1
Beberapa jawaban bagus di bawah ini. Dapatkan sendiri salinan RVTools jika Anda mendukung vCenter.
jscott

Jawaban:

11

Kedengarannya seperti pekerjaan untuk PowerCLI! Yah, dari workstation Windows, bagaimanapun, itulah yang saya miliki.

Get-Snapshot

Blog Surly Admin bahkan memiliki skrip yang dapat Anda salin-tempel untuk mendapatkan semua snapshot untuk semua VM di lingkungan Anda , daging yang akan saya posting di bawah ini untuk kenyamanan Anda.

$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
HopelessN00b
sumber
1
Ini jawaban yang bagus. Saya mendapatkan banyak manfaat dari PowerCLI, tetapi jika Powershell bukan pilihan Anda, PowerCLI (dan jawaban ini khususnya) adalah contoh yang bagus dari Klien API vSphere, jadi silakan memeriksa dokumen API vSphere untuk bahasa pilihan Anda!
gWaldo
16

Grrr ... snapshot VMware. Jika saya punya cara saya, mereka hanya ada untuk tujuan cadangan dan untuk menguji perubahan.

Anda dapat melihat ruang yang dikonsumsi oleh snapshot ( yang mungkin Anda benar-benar tertarik untuk mengetahuinya ) dengan menggunakan tab "Storage Views" di tingkat cluster di klien vSphere Anda.

masukkan deskripsi gambar di sini

Mulai dari sana, kemudian telusuri masing-masing VM. Entri yang memiliki nilai dalam Bytes (B) pada dasarnya berarti bahwa tidak ada snapshot.

putih
sumber
Ini telah dihapus dari vSphere Client: kb.vmware.com/s/article/2112085
CitizenRon
1
Buritan. Aku benci ketika mereka melakukan itu.
ewwhite
8

Jawaban HopelessNoob sangat bagus untuk laporan yang dapat dibaca manusia. Kadang-kadang saya lebih suka mengurai tambang ke objek PS lainnya. Ini sangat mirip juga HopelessNoob - saya kira kita berdua mulai dari potongan kode yang sama untuk membangun skrip kami:

$ 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

Memberi:

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

Anda kemudian dapat menyalurkannya ke Remove-Snapshotatau menyaringnya atau apa pun.

Mark Henderson
sumber
5

Berikut ini skrip yang kami gunakan untuk membuang daftar semua VM dengan snapshots, berfungsi di PowerCLI. Ini sangat sederhana dan bersih. Ini akan membuang hasilnya ke desktop lokal Anda melalui file .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
Justin
sumber
3

Bahkan jika jawaban telah diterima, saya ingin mengarahkan Anda ke check_vmware_snapshots .
Ini adalah plugin Nagios / Icinga , untuk memeriksa usia dan menghitung snapshot VM di lingkungan VMWare ESXi / vSphere.

Itu tergantung pada Perl / VMware :: VIRuntime dari "VMware-vSphere-CLI-5.5.0", jadi tidak ada PowerCLI atau -shell kali ini. :-)

Henk
sumber
1

Sayangnya klien tebal untuk Vcenter belum memiliki fitur ini sejak 6,0 saya percaya tetapi inilah pilihan lain jika Anda ingin melakukannya dengan mudah di GUI. Di 6.0 atau 6.5 meluncurkan klien web vcenter (versi flash). Di sisi kiri (jendela navigator) pilih vcenter, pusat data, atau cluster lalu pilih untuk melihat VM. Di sisi kanan ke kiri kotak "filter" ada ikon kotak kecil (melayang di atasnya bertuliskan "Tampilkan dan sembunyikan filter cepat". Klik ikon kotak itu, lalu klik "punya foto" lalu klik "ya". tampilan sekarang hanya akan menampilkan VM dengan snapshot.

lampim
sumber
0

Atau jalankan kueri berikut dalam MS SQL (kueri didasarkan pada sql2008 dan 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
eloy
sumber
0

Buka vCenter dengan vSphere Client. Navigasi ke

Kategori "Datastore dan Datastore Cluster"

"R-Klik pada Datastore" di mana Anda ingin menemukan Snapshot. (Jika beberapa Datastore maka harus masuk di setiap Datastore)

Anda akan Lihat Folder dan Tab Pencarian.

Klik untuk Lihat Gambar dari Tab Pencarian

Klik pada Search, Kemudian dari Drop Down pilih "Virtual Machine Snapshot"

Klik Cari.

Ini akan menampilkan semua Snapshot yang tersimpan di datastore itu.

R-Klik Snapshot dan "Pergi ke Folder"

Ini akan membawa ke Folder VM yang Snapshot diambil.

Junead Qureshi
sumber