Получение списка всех снимков в VMs, управляемом vCenter?

У нас есть несколько серверов ESXI, управляемых vCenter; существует ли способ получить список всех снимков во всем VMs?

17
задан 13 November 2014 в 18:10
10 ответов

Звучит как работа для PowerCLI! Ну, с рабочей станции Windows, так или иначе, что у меня есть.

Get-Snapshot

Блог 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
11
ответ дан 2 December 2019 в 20:27

Даже если ответ был принят, я хотел бы указать вам на check_vmware_snapshots .
Это плагин Nagios / Icinga для проверки возраста и подсчета моментальных снимков виртуальных машин в среде VMWare ESXi / vSphere.

Это зависит от Perl / VMware :: VIRuntime из "VMware-vSphere-CLI-5.5.0" ", поэтому на этот раз никаких PowerCLI или -shell. : -)

3
ответ дан 2 December 2019 в 20:27

Гррр... Снимки VMware. Если бы у меня был свой путь, они существовали бы только для целей резервного копирования и тестирования изменений.

Вы можете просмотреть пространство, потребляемое снимками (что, вероятно, является тем, что вам действительно интересно знать), используя вкладку "Storage Views" на кластерном уровне в вашем клиенте vSphere.

enter image description here

Начните с этого, а затем сверлитесь с отдельными ВМ. Элементы, которые имеют значения в байтах (B), по сути, означают, что снимков нет.

.
16
ответ дан 2 December 2019 в 20:27

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 или отфильтровать его или что-то в этом роде.

.
7
ответ дан 2 December 2019 в 20:27

Вот сценарий который мы используем для вывода списка всех виртуальных машин со снимками состояния, работает в 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
4
ответ дан 2 December 2019 в 20:27

Или выполните следующий запрос в 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
ответ дан 2 December 2019 в 20:27

К сожалению, толстый клиент для Vcenter не имел этой функции с 6.0, я полагаю, но вот еще один вариант, если вы хотите легко сделать это в графическом интерфейсе. В 6.0 или 6.5 запустите веб-клиент vcenter (флэш-версия). В левой части (окно навигатора) выберите vcenter, центр обработки данных или кластер, затем выберите для просмотра виртуальных машин. С правой стороны слева от поля «фильтр» есть небольшой квадратный значок (при наведении курсора на него указано «Показать и скрыть быстрые фильтры». Щелкните этот квадратный значок, затем нажмите «есть снимок», затем нажмите «Да». Ваш в представлении теперь отображаются только виртуальные машины со снимками состояния. Наслаждайтесь!

1
ответ дан 2 December 2019 в 20:27

Откройте vCenter с помощью vSphere Client. Перейдите в

«Хранилище данных и кластер хранилищ данных». Категория

«R-щелкните хранилище данных», где вы хотите найти моментальный снимок. (Если в каждом хранилище данных должно быть несколько хранилищ данных)

Вы увидите вкладку «Папка и поиск».

Нажмите, чтобы увидеть изображение вкладки «Поиск»

Нажмите «Поиск», затем в раскрывающемся списке выберите «Снимок виртуальной машины»

Щелкните «Поиск».

Он покажет все снимки, хранящиеся в этом хранилище данных.

R-щелкните снимок и «Перейти в папку»

Он перейдет в папку виртуальной машины, из которой был сделан снимок.

1155134]

0
ответ дан 2 December 2019 в 20:27

Это сработало для меня в vSphere 6.7 (веб-клиент):

  • Перейдите в хранилище и щелкните хранилище данных
  • Перейдите на вкладку файлов
  • Введите «snap» в поле поиска файлов
  • будут перечислены файлы моментальных снимков, и вы сможете определить виртуальные машины на основе имени файла моментального снимка.
2
ответ дан 25 May 2020 в 23:52

Простой нативный метод для этого - просто используйте следующую строку на целевом хосте 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

Удачи!

0
ответ дан 7 July 2020 в 06:10

Теги

Похожие вопросы