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
RobsonAnonymous
March 26, 2009
The comment has been removedAnonymous
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
RobsonAnonymous
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
RobsonAnonymous
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