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

17

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

leeand00
источник
1
Несколько хороших ответов ниже. Также приобретите копию RVTools, если вы поддерживаете vCenter.
Jscott

Ответы:

11

Звучит как работа для 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
HopelessN00b
источник
1
Это отличный ответ. Я получил много пользы от PowerCLI, но если Powershell вам не подходит, PowerCLI (и этот ответ, в частности) является отличным примером клиента API vSphere, поэтому не стесняйтесь проверять документы API vSphere для вашего выбора языка!
gWaldo
16

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

Вы можете просмотреть пространство, занимаемое моментальными снимками ( что, вероятно, вам действительно интересно знать ), используя вкладку «Представления хранилища» на уровне кластера в клиенте vSphere.

введите описание изображения здесь

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

ewwhite
источник
Это было удалено из клиента vSphere: kb.vmware.com/s/article/2112085
CitizenRon
1
Какашки. Я ненавижу, когда они делают это.
ewwhite
7

Ответ 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или отфильтровать или что-то еще.

Марк Хендерсон
источник
4

Вот скрипт, который мы используем для выгрузки списка всех виртуальных машин со снимками, работает в 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
Джастин
источник
3

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

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

Henk
источник
1

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

lampim
источник
0

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

Откройте vCenter с vSphere Client. Перейдите к

Категория "Datastore and Datastore Cluster"

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

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

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

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

Нажмите Поиск.

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

R-Click на снимок и «Перейти к папке»

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

Джуанад Куреши
источник