VCenterによって管理されている複数のESXiサーバーがあります。すべてのVMのすべてのスナップショットのリストを取得する方法はありますか?
PowerCLIの仕事のように聞こえます!まあ、とにかく、Windowsワークステーションからです。
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
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
にパイプするか、それをフィルタリングするか、何でもできます。
以下は、スナップショットを含むすべての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
回答が承認された場合でも、 check_vmware_snapshots を示します。
これはNagios/Icingaプラグインであり、VM VMWare ESXi/vSphere環境のスナップショットの数と数をチェックします。
「VMware-vSphere-CLI-5.5.0」のPerl/VMware :: VIRuntimeに依存しているため、今回はPowerCLIまたは-Shellを使用しません。 :-)
残念ながら、Vcenterのシッククライアントには6.0以来この機能がありませんでしたが、GUIで簡単に実行したい場合は、ここに別のオプションがあります。 6.0または6.5では、vcenter Webクライアント(フラッシュバージョン)を起動します。左側(ナビゲーターウィンドウ)で、vcenter、データセンター、またはクラスターのいずれかを選択し、VMの表示を選択します。 「フィルター」ボックスの左側の右側に小さな正方形のアイコンがあります(その上にカーソルを合わせると「クイックフィルターの表示と非表示」と表示されます。その正方形のアイコンをクリックし、[スナップショットあり]をクリックして[はい]をクリックします。ビューには、スナップショットを持つVMのみが表示されます。
または、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
VSphere ClientでvCenterを開きます。案内する
「データストアおよびデータストアクラスタ」カテゴリ
スナップショットを見つけたい場所の「R-Click on Datastore」。 (複数のデータストアの場合、各データストアに移動する必要があります)
フォルダと検索タブが表示されます。
[検索]をクリックし、ドロップダウンから[仮想マシンのスナップショット]を選択します
検索をクリックします。
そのデータストアに保存されているすべてのスナップショットが表示されます。
スナップショットを右クリックして「フォルダに移動」
VMスナップショットが取られるフォルダにかかります。