Instantâneos: abordagem preferencial
-
Crie uma VM base em sua máquina. Para os seus propósitos, você estará perfeitamente bem usando um arquivo de imagem de disco com provisionamento compacto / thin, portanto, não use um arquivo de tamanho fixo.
-
Encerre sua instância da VM base. (Suspender / hibernar é não suficiente.)
-
Tire uma foto instantânea.
-
Distribua para os desenvolvedores após ter tirado o instantâneo.
-
Quando chegar a hora, inicie a VM base e atualize-a. Quaisquer alterações feitas serão gravadas em novos arquivos "delta", que serão tão grandes quanto as alterações acumuladas feitas desde que você tirou o instantâneo. Como você tirou um instantâneo, esse arquivo de imagem de disco enorme permanecerá 100% inalterado.
-
Encerre sua instância da VM base. (Suspender / hibernar é não suficiente.)
-
Se você tiver feito grandes alterações (por exemplo, instalando um service pack grande), considere obter um instantâneo adicional now para não precisar transferir novamente o instantâneo atual ao criar sua próxima atualização.
-
Durante a noite, (a) reinicialize cada máquina do desenvolvedor ou elimine programaticamente o processo do hipervisor em cada máquina do desenvolvedor (não, os desenvolvedores
lembrarão de fechá-los) e então (b copie os arquivos alterados usando ROBOCOPY / MIR ou algo semelhante.
É claro que, para que isso funcione, você precisará transferir todos arquivos alterados associados à VM, o que pode incluir arquivos de configuração contendo metadados sobre os instantâneos, além do instantâneo / delta arquivos próprios. Você também precisará garantir que, em cada máquina de desenvolvedor, a VM seja armazenada exatamente no mesmo local em que está em sua própria máquina.
Rsync: abordagem alternativa
Uma abordagem alternativa seria usar discos virtuais de tamanho fixo, não snapshots e um cliente / servidor rsync como DeltaCopy para copiar apenas as partes alteradas. Esta não é a abordagem preferida porque:
-
Seria necessário instalar o software rsync em cada máquina do desenvolvedor.
-
O processo de cópia real levaria mais tempo, apesar de não haver mais dados sendo transferidos, porque o rsync precisaria analisar todo o arquivo de disco virtual para determinar quais partes precisam ser transferidas.
Conclusão: Você poderia usar o rsync para isso, mas parece um exagero se o seu hipervisor suportar snapshots.