Dica: VMWARE - Listando os Snapshots existentes via PowerCli

PowerCLI: get-vm | get-snapshot

Snapshots são recursos úteis, pois preservam o estado das máquinas virtuais no momento em que estes são gerados. É indicado que sejam utilizados antes do administrador realizar modificações em servidores, sejam elas reconfigurações, instalações ou migrações pois, ocorrendo uma falha no processo, um incidente, ou mesmo um comportamento inesperado, o administrador conseguirá retornar ao estado da VM antes da modificação (são marcadores de percurso para pontos de recuperação).

Entretanto, é importante que o administrador seja muito atento e criterioso quando utilizar esse recurso em servidores de Bancos de Dados, ou Servidores Domain Controllers. Nesses ecossistemas o recurso de snapshot é pouco recomendado; diante dos riscos envolvidos com a inconsistência dos dados versus a linha do tempo.
PowerCLI

Para identificar e documentar os snapshots criados em VMs baseadas em infraestrutura de nuvem VMWare ESXi o administrador poderá utilizar scripts via PowerCli, de maneira a obter essas informações de forma rápida. (Mais dicas em vSphere PowerCLI – Administração da infra VMware através de scripts).

Para obter a lista de VMs e Snapshots existentes no ambiente:

Executar, via PowerCli, o comando: get-vm | get-snapshot

PowerCLI: get-vm | get-snapshot

Nota-se na imagem acima que o comando get-vm | get-snapshot traz as informações de NOME, DESCRIÇÃO e STATUS dos snapshots.
Para um maior detalhamento, também via PowerCLI, executar o comando:

get-vm | get-snapshot | format-list

Nesse comando "format-list", serão exibidos 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 (geralmente por questões de auditoria), é interessante que o administrador obtenha a identificação do usuário que tenha criado determinado snapshot.
Como os comandos acima não trazem essa informação, é possível utilizar o script abaixo para exibir esse dado adicional (além de todas as informações já exibidas pelo comando "format-list").

$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

Links úteis:
Download vSphere PowerCLI
Documentação PowerCLI
vSphere PowerCLI – Administração da infra VMware através de scripts

Essa foi mais uma dica do parceiro Paulo Santanna: VMWare ESXi – Listando os snapshots existentes

Visite Sinco.com.br