Como economizar um absurdo de espaço em disco no seu ambiente utilizando o recurso Disk Differencing do Hyper-V

Na ultima semana foi questionado por um amigo sobre como ele poderia ter varias virtual machines sem gastar muito espaço em disco e eu expliquei para ele como a funcionalidade do Disk Differencing poderia ajudá-lo a economizar até 80% do espaço em disco requerido pelo sistema base para uma VM.

Em termos bem resumidos, o recurso do Hyper-V chamado Disk Differencing é um tipo de disco que requer um Parent disk para leitura e só grava a diferença entre os 2. Ou seja, se você fizer uma instalação de um Windows Server 2003 R2 que consome em media 3.4GB você pode ter vários Disk Differencing de aproximadamente 400mb depois do mini setup.

Fazendo a conta da economia:
Imagine que você precise simular um ambiente de Active Directory com Exchange e mais 8 servidores no Hyper-V, ao invés de ter que despender 10x3.4 (para começar) você vai despender 3.4 + 10x 400MB o que é uma economia absurda convenhamos.
10x3.4GB = 34GB
10x400=4GB + 3.4 do Parent Disk = 7.4
Ou seja, 80% de economia de disco !

Agora que você já conhece a teoria, vamos a pratica, com esse guia passo a passo que eu montei para que você consiga preparar com sucesso um disco para ser utilizado como parent e como montar a primeira maquina utilizando o Disk Differencing. Espero que gostem!

Passo Zero:
Instale o sistema operacional base, com os service packs e tudo aquilo que você tem certeza que será útil em todas as suas VMS. (Se você tem alguma dúvida sobre como fazer esse passo dê uma olhada no meu post que ensina como instalar o Windows Server 2008 com Hyper-V).

Passo 1:
Rode o sysprep para remover as configurações únicas da maquina, para que você consiga montar um domínio com várias máquinas apontando para o mesmo parent disk sem ter problemas.

Passo2:
Assim que rodar o sysprep desligue a maquina e não ligue mais essa maquina, esse é seu Parent Disk e não deve mais ser religado.

Passo3:
Utilizando o Hyper-V Manager, selecione New e depois clique em Hard Disk e Next

Passo4:
Selecione a opção Differencing e clique em Next

Passo5:
Digite o Nome e a localização do disco que será criado. Eu recomendo que você coloque esse disco em um disco diferente do Parent Disk, para que a performance de I/O fique melhor

Passo6:
Nesse ponto você deve selecionar o Parent Disk (Aquele disco da VM em que rodamos o sysprep no passo n.1 e selecionar Next

Passo7:
Confira os dados e selecione Finish

Passo8:
Crie a nova VM, selecionando New e depois Virtual Machine.
Preencha o Nome e localização da VM e depois clique em Next

Passo9:
Assinale a quantidade de memória que será utilizada e clique em Next

Passo10:
Selecione a Rede que será utilizada e clique em Next

Passo11:
Selecione a opção Use an existing virtual hard disk e em Location aponte para o disco que criamos no passo7. Clique em Next

Passo12:
Confira os dados e clique em Finish

Passo13:
Inicie sua VM e complete o mini setup.

Pronto você tem um servidor que utiliza menos que 500mb de espaço!

Para as proximas VMs, você só precisa efetuar os passos de 8 a 13, o que normalmente não leva mais do que 10 minutos !

Abraços !

Robson Silva

Comments

  • Anonymous
    March 26, 2009
    Robson, Como fica a questão de performace neste caso?, perde-se algo significativo em termos de performace quando se utiliza este tipo de disco?. Abraços e post interessante!.   R: Para garantir uma boa performance, trabalhe com um sistema de RAID que priorize READ no disco que for o host do disco inicial. E trabalhe com VHDs com FIXED SIZE, pois elas tem melhor performance. Abraços !

  • Anonymous
    March 26, 2009
    Muito bom! E o backup dessas máquinas virtuais, como você aconselha? Por exemplo, quero ter 6 máquinas virtuais em um mesmo servidor, e preciso de backup diário delas. É melhor usar o backup padrão dos arquivos e jogando em fita, ou você sugere outro ?   R: Fala Pablo, eu estou recebendo varios pedidos para falar sobre backup de Hyper-V e vou colocar isso em um proximo post, porque responder aqui em poucas linhas vai ficar incompleto. Nesse meio tempo, faça o backup dos VHDs.

    []s
    Robson

  • Anonymous
    March 26, 2009
    The comment has been removed

  • Anonymous
    March 26, 2009
    marcos este espaço pode ser de grande utilidade para vc.

  • Anonymous
    March 27, 2009
    Olá Robson, Muito bacana teu post, irá me ajudar muito com meus laboratórios. Já estava ficando sem espaço devido a grande quantidade de máquinas virtuais que preciso criar para os labs. Forte abraço.

  • Anonymous
    March 31, 2009
    Robson, No passo 0, na instalação do sistema operacional base deve ser instalado em fixed disk?
    R: você pode usar tanto fixed quanto dinamic. Como ele utiliza realmente esse disk differencing em todas as VMs? Obrigado.
    R: Para cada VHD novo que você cria, ele somente consulta os dados do VHD parent e por isso ele só grava a diferença, proporcionando um save enorme de espaço em disco.  []s
    Robson

  • Anonymous
    April 02, 2009
    Vale lembrar que esse recurso já existe no Virtual Server 2005 R2 SP1. Não seria interessante colocar o vhd parent como read-only? É verdade que o recurso existia no Virtual Server, mas a performance desse recurso no Hyper-V melhorou muito, principalmente no R2, vale a pena testar.
    É interessante sim colocar o VHD parent como read-only, ótima dica.

    []s
    Robson

  • Anonymous
    April 04, 2009
    Olá Robson, Parabéns pelo post, me ajudou bastante. Acabei de testar a solução e funciona perfeitamente! Meu HD agora agradeçe pelo espaço poupado... Abraço.

  • Anonymous
    May 19, 2009
    The comment has been removed