web-dev-qa-db-ja.com

vCenterで管理されているVMのすべてのスナップショットのリストを取得していますか?

VCenterによって管理されている複数のESXiサーバーがあります。すべてのVMのすべてのスナップショットのリストを取得する方法はありますか?

18
leeand00

PowerCLIの仕事のように聞こえます!まあ、とにかく、Windowsワークステーションからです。

Get-Snapshot

Surly管理者のブログには、環境内のすべての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
11
HopelessN00b

Grrr ... VMwareスナップショット。私のやり方があれば、それらはバックアップの目的と変更のテストのためだけに存在していました。

クラスターの[ストレージビュー]タブを使用して、スナップショットによって消費されたスペースを表示できます(これはおそらくあなたが本当に知りたいものです)。 vSphereクライアントのレベル。

enter image description here

そこから開始して、個々のVMにドリルダウンします。バイト(B)の値を持つエントリは、基本的にスナップショットがないことを意味します。

16
ewwhite

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にパイプするか、それをフィルタリングするか、何でもできます。

8
Mark Henderson

以下は、スナップショットを含むすべての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
5
Justin

回答が承認された場合でも、 check_vmware_snapshots を示します。
これはNagios/Icingaプラグインであり、VM VMWare ESXi/vSphere環境のスナップショットの数と数をチェックします。

「VMware-vSphere-CLI-5.5.0」のPerl/VMware :: VIRuntimeに依存しているため、今回はPowerCLIまたは-Shellを使用しません。 :-)

3
Henk

残念ながら、Vcenterのシッククライアントには6.0以来この機能がありませんでしたが、GUIで簡単に実行したい場合は、ここに別のオプションがあります。 6.0または6.5では、vcenter Webクライアント(フラッシュバージョン)を起動します。左側(ナビゲーターウィンドウ)で、vcenter、データセンター、またはクラスターのいずれかを選択し、VMの表示を選択します。 「フィルター」ボックスの左側の右側に小さな正方形のアイコンがあります(その上にカーソルを合わせると「クイックフィルターの表示と非表示」と表示されます。その正方形のアイコンをクリックし、[スナップショットあり]をクリックして[はい]をクリックします。ビューには、スナップショットを持つVMのみが表示されます。

1
lampim

または、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
eloy

VSphere ClientでvCenterを開きます。案内する

「データストアおよびデータストアクラスタ」カテゴリ

スナップショットを見つけたい場所の「R-Click on Datastore」。 (複数のデータストアの場合、各データストアに移動する必要があります)

フォルダと検索タブが表示されます。

クリックして[検索]タブの画像を表示

[検索]をクリックし、ドロップダウンから[仮想マシンのスナップショット]を選択します

検索をクリックします。

そのデータストアに保存されているすべてのスナップショットが表示されます。

スナップショットを右クリックして「フォルダに移動」

VMスナップショットが取られるフォルダにかかります。

0
Junead Qureshi