Звучит как работа для PowerCLI! Ну, с рабочей станции Windows, так или иначе, что у меня есть.
Блог Surly Admin даже имеет скрипт, который вы можете скопировать-паста, чтобы получить все снимки для всех ВМ в вашей среде, о которых я напишу ниже для вашего удобства.
$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
Даже если ответ был принят, я хотел бы указать вам на check_vmware_snapshots .
Это плагин Nagios / Icinga для проверки возраста и подсчета моментальных снимков виртуальных машин в среде VMWare ESXi / vSphere.
Это зависит от Perl / VMware :: VIRuntime из "VMware-vSphere-CLI-5.5.0" ", поэтому на этот раз никаких PowerCLI или -shell. : -)
Гррр... Снимки VMware. Если бы у меня был свой путь, они существовали бы только для целей резервного копирования и тестирования изменений.
Вы можете просмотреть пространство, потребляемое снимками (что, вероятно, является тем, что вам действительно интересно знать), используя вкладку "Storage Views" на кластерном уровне в вашем клиенте vSphere.
Начните с этого, а затем сверлитесь с отдельными ВМ. Элементы, которые имеют значения в байтах (B), по сути, означают, что снимков нет.
.HopelessNoob's answer is great for a human readable report. Иногда я предпочитаю разобрать свой на другие PS объекты. Он тоже очень похож на HopelessNoob's - думаю, мы оба начинали с одного и того же фрагмента кода, чтобы собрать наши скрипты:
$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
Gives:
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
или отфильтровать его или что-то в этом роде.
Вот сценарий который мы используем для вывода списка всех виртуальных машин со снимками состояния, работает в 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
Или выполните следующий запрос в 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
К сожалению, толстый клиент для Vcenter не имел этой функции с 6.0, я полагаю, но вот еще один вариант, если вы хотите легко сделать это в графическом интерфейсе. В 6.0 или 6.5 запустите веб-клиент vcenter (флэш-версия). В левой части (окно навигатора) выберите vcenter, центр обработки данных или кластер, затем выберите для просмотра виртуальных машин. С правой стороны слева от поля «фильтр» есть небольшой квадратный значок (при наведении курсора на него указано «Показать и скрыть быстрые фильтры». Щелкните этот квадратный значок, затем нажмите «есть снимок», затем нажмите «Да». Ваш в представлении теперь отображаются только виртуальные машины со снимками состояния. Наслаждайтесь!
Откройте vCenter с помощью vSphere Client. Перейдите в
«Хранилище данных и кластер хранилищ данных». Категория
«R-щелкните хранилище данных», где вы хотите найти моментальный снимок. (Если в каждом хранилище данных должно быть несколько хранилищ данных)
Вы увидите вкладку «Папка и поиск».
Нажмите, чтобы увидеть изображение вкладки «Поиск»
Нажмите «Поиск», затем в раскрывающемся списке выберите «Снимок виртуальной машины»
Щелкните «Поиск».
Он покажет все снимки, хранящиеся в этом хранилище данных.
R-щелкните снимок и «Перейти в папку»
Он перейдет в папку виртуальной машины, из которой был сделан снимок.
1155134]
Простой нативный метод для этого - просто используйте следующую строку на целевом хосте ESXi после того, как вы подключитесь по SSH. это и он покажет вам идентификатор виртуальной машины и детали ее моментального снимка ниже:
SSH к ESXi и запустите это:
for i in $(seq 1 60); do echo 'VM Id:' $i && vim-cmd vmsvc/get.snapshotinfo $i; done
Как только вы получите идентификатор виртуальной машины из приведенной выше команды, выполните приведенную ниже команду, чтобы получить все виртуальные машины. идентификаторы и сведения, чтобы получить точное имя виртуальной машины.
vim-cmd vmsvc/getallvms
Удачи!