Monitorando a exclusão de Snapshots no VSphere.

Monitorando a exclusão de Snapshots no VSphere.

O uso de Snapshots com certeza é um dos grandes benefícios da virtualização, podemos cria-los antes de aplicar uma atualização, algum patch ou testar alguma alteração crítica no sistema operacional, etc.

 

O grande problema é que geralmente eles são esquecidos e por muitas vezes só nos lembramos deles quando já se passou muito tempo, quando estamos com pouco espaço em disco, quando a performance da máquina virtual está sofrível ou quando é acionado um alerta com a mensagem “Virtual machine disks consolidation is needed”.

A grande questão é que em muitos casos quando se opta por deletar todos os Snapshots ou consolidar, a barra de status simplesmente congela em 99%  transmitindo a impressão que o processo travou, ou as vezes rapidamente se atinge os 100%, porém quando olhamos a configuração da máquina virtual e selecionamos o disco virtual, verificamos que o nome do arquivo termina com algo parecido à: “-000002.vmdk”, indicando que a máquina ainda continua executando sobre um arquivo de Snapshot.

 

Todavia, se desejar acompanhar a deleção ou consolidação dos Snapshots, basta utilizar através de uma sessão SSH o comando: vim-cmd, por exemplo:

#vim-cmd vimsvc/task_list

 

A saída deverá ser semelhante à abaixo:

(ManagedObjectReference) [

'vim.Task:haTask-46-vim.VirtualMachine.consolidateDisks-5356225',

'vim.Task:haTask--vim.OverheadService.downloadVMXConfig-5356279',

'vim.Task:haTask-ha-host-vim.host.ServiceSystem.start-5356324',

'vim.Task:haTask-ha-host-vim.host.ServiceSystem.updatePolicy-5356330'

 

Se observarmos, a primeira linha indica nossa tarefa de consolidação em execução, para obtermos mais detalhes, basta executar o seguinte comando:

#vim-cmd vimsvc/task_info haTask-46-vim.VirtualMachine.consolidateDisks-5356225

 

A saída trará os detalhes da tarefa, semelhante à abaixo:

key = "haTask-46-vim.VirtualMachine.consolidateDisks-5356225",

task = 'vim.Task:haTask-46-vim.VirtualMachine.consolidateDisks-5356225',

description = (vmodl.LocalizableMessage) null,

name = "vim.VirtualMachine.consolidateDisks",

descriptionId = "VirtualMachine.consolidateDisks",

entity = 'vim.VirtualMachine:46',

entityName = "DB_MySQL_SERVER",

state = "running",

cancelled = false,

cancelable = true,

error = (vmodl.MethodFault) null,

result = <unset>,

progress = 78,

reason = (vim.TaskReasonUser) {

userName = "vpxuser"

},

queueTime = "2017-10-10T17:54:50.470238Z",

startTime = "2017-10-10T17:54:50.47092Z",

completeTime = <unset>,

eventChainId = 5356225,

changeTag = <unset>,

parentTaskKey = <unset>,

rootTaskKey = <unset>,

activationId = <unset>,

}

Aqui temos as seguintes informações:

O descrição da tarefa, neste caso uma consolidação:

descriptionId = "VirtualMachine.consolidateDisks"

 

O nome da máquina virtual que está sendo afetada pela tarefa:

entityName = "DB_MySQL_SERVER"

 

Que a tarefa ainda está sendo executada:

state = "running"

 

E finalmente o progresso da tarefa em percentual:

progress = 78

 

Geralmente o processo de consolidação ou de exclusão dos Snapshots consome um tempo considerável e, além disso, geram uma quantidade significativa de I/O no subsistema de Storage. A pergunta que recebo com certa frequência: Como tornar o processo mais rápido? Infelizmente não existe uma maneira, o que de fato ajuda é antes de iniciar o processo e quando for possível, desligar a máquina virtual antes. Quando se opta por excluir um snapshot com a máquina ligada, um Snapshot adicional é criado para acomodar o I/O gerado durante a execução da máquina virtual enquanto os Snapshots são aplicados ao disco virtual base, ao final deste processo, o Snapshot temporário criado para acomodar as escritas durante o processo é aplicado ao disco virtual base e finalmente é excluído. Adicionalmente com a máquina desligada, temos uma quantidade menor de I/O sendo gerado no sistema de Storage.

 

A dica para evitar situações como essa é: crie um alarme do tipo “Snapshot size on disk” e coloque um valor baixo, eu usualmente coloco 1 GB, assim fica difícil de esquecer de apagar o Snapshot após uma manutenção ou alteração na máquina virtual.

 

Referências:

Snapshot removal task stops at 99% in ESXi/ESX (1007566)

How to monitor snapshot deletion using the vim-cmd command (2146185)

Consultor veterano na área de Tecnologia da Informação, com passagem em grandes empresas, graduado em Ciência da Computação com especialização em microeletrônica e gestão de projetos, detentor de diversas certificações de mercado (Microsoft, Cisco, Brocade, Vmware, etc.).

4 thoughts on “Monitorando a exclusão de Snapshots no VSphere.

    1. Edson,

      O processo de deleção é digamos “atômico”, o arquivo de delta só é apagado após a atualização de todos os blocos no arquivo de disco original, ou seja, se você cancelar, não irá perder dados, mas ainda assim você continuará trabalhando em um Snapshot e mais cedo ou mais tarde você terá que efetuar a deleção do Snapshot (merge). Na minha experiência, nunca vi problemas em cancelar o processo, todavia posteriormente a deleção necessitou ser feita, por dois motivos, o primeiro o uso (espaço) em disco e o segundo pelo impacto severo na performance.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *