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 10×3.4 (para começar) você vai despender 3.4 + 10x 400MB o que é uma economia absurda convenhamos.
10×3.4GB = 34GB
10×400=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 (9)

  1. Robson Matos says:

    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 !

  2. Pablo Weyne says:

    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

  3. Breiner Queiroz says:

    SHOW DE BOLA DEMAIS.

    GRATO.

    ATTE.

    BREINER

  4. delduca@msn.com says:

    marcos este espaço pode ser de grande utilidade para vc.

  5. Robson says:

    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.

  6. Tiago says:

    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

  7. Rafael Granado says:

    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

  8. Daniel Schaeffer says:

    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.

  9. Bruno says:

    Fiz todos os passos, mas quando faço a configuração da VM apontando para o Differencing Disk, não carrega a mini setup, mas sim o windows 2003 que eu instalei…

    O que pode ser isso?

    R: Bom, se voce fez o sysprep com sucesso nao seria possivel a maquina iniciar direto sem o mini-setup, entao eu sugiro voce dar uma olhada denovo no passo do sysprep.

    []s
    Robson