VMWare ESXi – Listando os snapshots existentes

Snapshot é um recurso bastante útil pois preserva o estado da máquina virtual no momento em que este é feito. Muito utilizado antes da realização de modificações em servidores, como configurações, instalações, migrações e etc, pois em caso de falha, incidente ou comportamente inesperado, o administrador consegue retornar o estado da máquina antes da modificação realizada. Não deve ser utilizado em Bancos de Dados ou Servidores Domain Controllers.

Para identificar e documentar os snapshots criados em VMs baseadas em Infraestrutura de nuvem VMWare ESXi podemos utilizar scripts via PowerCli podemos obter essa informação de forma rápida. Ano passado publiquei um Post sobre PowerCli, leiam aqui.

Para simplesmente exibir a lista de VMs e Snapshots existentes no ambiente, no PowerCli, execute o comando abaixo:

get-vm | get-snapshot

snap

Para obter informações mais detalhadas execute: 

get-vm | get-snapshot | format-list

O comando acima exibe os seguintes itens referentes aos snapshots:

Description
Created
Quiesced
PowerState
VM
VMId
Parent
ParentSnapshotId
ParentSnapshot
Children
SizeMB
IsCurrent
IsReplaySupported
ExtensionData
Id
Name
Uid

Em algumas situações, até mesmo por questões de auditoria, pode ser interessante saber qual usuário criou o snapshot. Como o cmdlet Get-VM | Get-Snapshot não fornece esta informação podemos utilizar o script abaixo, que exibe todas as informações com este adicional que comentei.

$myVMs = Get-VM
$VMsWithSnaps = @()
foreach ($vm in $myVMs) {
    $vmView = $vm | Get-View
    if ($vmView.snapshot -ne $null) {
        Write-Host "VM $vm has a snapshot"
        $SnapshotEvents = Get-VIEvent -Entity $vm -type info -MaxSamples 1000 | Where { 
            $_.FullFormattedMessage.contains("Create virtual machine snapshot")}
        try {
        $user = $SnapshotEvents[0].UserName
        $time = $SnapshotEvents[0].CreatedTime
        } catch [System.Exception] {
            $user = $SnapshotEvents.UserName
            $time = $SnapshotEvents.CreatedTime
        }
        $VMInfo = “” | Select "VM","CreationDate","User"
        $VMInfo."VM" = $vm.Name
        $VMInfo."CreationDate" = $time
        $VMInfo."User" = $user
        $VMsWithSnaps += $VMInfo
    }
}
$VMsWithSnaps | Sort CreationDate

 

 

 

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: