Obtendo uma lista de todos os snapshots em VMs gerenciadas pelo vCenter?

15

Temos vários servidores ESXi gerenciados por um vCenter; Existe uma maneira de obter uma lista de todos os instantâneos em todas as VMs?

    
por leeand00 13.11.2014 / 17:10

7 respostas

10

Parece um trabalho para o PowerCLI! Bem, a partir de uma estação de trabalho do Windows, enfim, é o que eu tenho.

Get-Snapshot

O blog do Surly Admin tem até um script que você pode copiar -pasta para obter todos os instantâneos para todas as VMs em seu ambiente , cuja carne vou postar abaixo para sua conveniência.

$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
    
por 13.11.2014 / 17:41
13

Grrr ... Instantâneos do VMware. Se eu fosse do meu jeito, eles existiriam apenas para fins de backup e para testar mudanças.

Você pode visualizar o espaço consumido pelos instantâneos ( que provavelmente é o que realmente deseja saber ) usando a guia "Exibições de armazenamento" no nível do cluster em seu cliente vSphere.

Comece por aí e faça drill down para as VMs individuais. As entradas que possuem valores em Bytes (B) significam essencialmente que não há snapshots.

    
por 13.11.2014 / 17:33
7

A resposta da HopelessNoob é ótima para um relatório legível por humanos. Às vezes eu prefiro analisar o meu em outros objetos PS. É muito parecido com HopelessNoob - acho que nós dois começamos do mesmo trecho de código para construir nossos scripts:

$ 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

Dá:

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

Você pode canalizar isso para Remove-Snapshot ou filtrá-lo ou o que for.

    
por 14.11.2014 / 02:34
4

Aqui está o script que usamos para descarregar uma lista de todas as VMs com snapshots, funciona no PowerCLI. É muito simples e limpo. Ele irá descarregar os resultados para o seu desktop local através de um arquivo .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
    
por 10.02.2016 / 19:37
3

Mesmo que uma resposta seja aceita, gostaria de chamar a atenção para check_vmware_snapshots .
É um plug-in Nagios / Icinga , para verificar a idade e contar para snapshots de VMs em um ambiente VMWare ESXi / vSphere.

Depende do Perl / VMware :: VIRuntime do "VMware-vSphere-CLI-5.5.0", portanto, não há PowerCLI ou -shell neste momento. : -)

    
por 19.11.2014 / 21:13
1
Infelizmente, o thick client para o Vcenter não tem esse recurso desde 6.0, mas aqui está outra opção se você quiser fazê-lo facilmente em uma GUI. No 6.0 ou 6.5, inicie o cliente web vcenter (versão flash). No lado esquerdo (janela do navegador), selecione vcenter, um data center ou um cluster e, em seguida, selecione para visualizar as VMs. No lado direito à esquerda da caixa "filtro" há um pequeno ícone quadrado (passando o mouse sobre ele "Mostrar e ocultar os filtros rápidos". Clique no ícone quadrado e, em seguida, clique em "tem instantâneo" e clique em "sim". A visualização agora exibirá apenas VMs com instantâneos. Aproveite!

    
por 07.12.2017 / 14:48
0

Ou execute a seguinte consulta no MS SQL (a consulta é baseada no sql2008 e no 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
    
por 15.04.2016 / 10:21