Estou usando a diskshadow para fazer backup de máquinas Hyper-V ao vivo em um servidor Windows 2008.
O backup consiste em 3 scripts, o primeiro criará as cópias de sombra e as expõe, o segundo usa robocopy para copiá-las para um local remoto e o terceiro expõe as cópias de sombra novamente.
O primeiro script - o que é executado corretamente, mas falha ao fazer o que deve:
# DiskShadow script file to backup VM from a Hyper-V host
# First, delete any shadow copies of the drives. System Drives needs to be included.
Delete Shadows volume C:
Delete Shadows volume D:
Delete Shadows volume E:
#Ensure that shadow copies will persist after DiskShadow has run
set context persistent
# make sure the path already exists
set verbose on
begin backup
add volume D: alias VirtualDisk
add volume C: alias SystemDrive
# verify the "Microsoft Hyper-V VSS Writer" writer will be included in the snapshot
# NOTE: The writer GUID is exclusive for this install/machine, must be changed on other machines!
writer verify {66841cd4-6ded-4f4b-8f17-fd23f8ddc3de}
create
end backup
# Backup is exposed as drive X: make sure your drive letter X is not in use
Expose %VirtualDisk% X:
Exit
O próximo é apenas um robocopy
e, em seguida, um unexpose
.
Agora, quando executo o script acima, não recebo nenhum erro, exceto que o gravador "BITS" foi excluído porque nenhum de seus componentes está incluído. Tudo bem, porque eu realmente só preciso do escritor do Hyper-V. Também verifiquei o GUID para o gravador, está correto.
Durante o tempo em que o gravador do Hyper-V se torna ativo, duas coisas acontecerão nas máquinas convidadas:
- A máquina Debian / Linux irá para um estado salvo e restaurará quando terminar, tudo bem.
- Os convidados do Windows "criarão vss snapshop-sets" ou algo similar.
Então X: fica exposto e eu posso copiar os arquivos .vhd.
O problema é que, por algum motivo, os arquivos VHD que eu recebo parecem ser cópias antigas, eles perdem arquivos, usuários e atualizações que são nas máquinas reais.
Eu também tentei colocar as máquinas em um estado salvo manualmente, não alterei o resultado.
Espero que alguém aqui tenha uma ideia de como resolver isso.