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)
4 thoughts on “Monitorando a exclusão de Snapshots no VSphere.”
Arles, muito bom seu post.
A minha pergunta é: Qual o risco de parar esse processo no meio?
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.
boa tarde! eu excluir o snpshots da vmware 12 e perdir 80% dos dados do sistema, a uma possibilidade de recuperar?
VocÊ está se referindo ao VMware Workstation, dependendo das condições e do tipo de armazenamento pode ser que seja possível, mas é um caso que necessita ser avaliado.