Performance de VHDs de tamanho Dinamicos x Fixos
Eu já havia lido na documentação do finado Virtual Server 2005 que discos fixos eram mais rápidos que discos com tamanho dinamico, o que sempre fez sentido. Também havia a indicação que discos diferenciais (aqueles que são alterações sobre um disco usado como base) também eram um problema, mesmo que fosse tamanho fixo. E por fim, sempre se dizia que discos fisicos (RAW) nem se comparava a performance dos VHDs.
Em um post dos blogs do TechNet Brasil (http://download.microsoft.com/download/0/7/7/0778C0BB-5281-4390-92CD-EC138A18F2F9/WS08_R2_VHD_Performance_WhitePaper.docx) foi publicado um arquivo com as especificações detalhadas sobre performance de VHD em tamanho fixo e dinamico, seja ele diferencial ou não. Vou comentar o que achei interessante e as conclusões que tirei, claro que alguns podem não concordar, comentem no post.
- Baseado no gráfico 1 a frase "discos virtuais dinamicos são muito mais lentos que fixos" deixou de ser verdade no Windows 2008 R2, ainda existe uma perda consideravel de performance entre os discos fisicos (RAW) e um disco dinamico, porem note que é absurdamente melhor do que era no Windows 2008. Ou seja, no Windows 2008 R2 vale a pena usar discos de tamanho dinamico quando for necessário.
- Baseado no gráfico 2 vemos que no Windows 2008 R2 o uso de discos fisicos, VHD na maquina fisica e VHD na máquina virtual são quase que identicos, o ganho de performance chega a ser irrisório. Então fazer dual boot com VHD e utilizar VMs não incorre em perda de performance.
- Baseado no gráfico 3 acabou o mito que disco diferencial é um matador. Note que estranhamento, no exemplo de aplicação DSS, o diferencial chega a ser mais rápido que o disco fisico (!!!!!).
Gráfico 1: Comparação de disco fisico (RAW) com VHD dinamico
Gráfico 2: Comparação de disco fisico (RAW) com discos VHD locais e VHD em VMs
Gráfico 3: Comparação de disco fisico (RAW) com VHDs Diferenciais
Notas:
1) O documento completo traz variações de tipos de aplicações, mas peguei como exemplo os que representam situações mais comuns e demonstram melhor as distorções de conteidos anteriores.
2) Os dados referentes aos Windows 2008 valem para o Windows Vista, os dados referentes ao Windows 2008 R2 valem para o Windows 7.
Windows Virtual PC: "Parent VHD missing" ao mover um VHD parent
Quem utiliza o Virtual PC nunca teve problemas com essa questão, já que quando um VHD é movido de um disco para o outro e o disco diferencial não encontra o disco parent ele abre uma caixa de dialogo para escolher o novo.
Mas alguem já notou que não temos esta tela no Windows 7 Virtual PC??? Pois é...
Não encontrei como resolver o problema, então peguei um script do "VirtualPC Guy" que era antigo e muito simples (não funcionava mais) e adaptei para funcionar com o Virtual Server, VirtualPC e Windows 7 Virtual PC (incluindo o XP Mode).
O script está publicado no Microsoft Script Center:
http://gallery.technet.microsoft.com/ScriptCenter/en-us/0b59c408-7d06-4453-89b3-eae5b766c8d9
Ferramenta para converter HD fisico (em uso) para VHD
A ferramente já existia mas era necessário que fosse um disco fora de uso para fazer a criação (http://technet.microsoft.com/en-us/sysinternals/ee656415.aspx)
A nova versão do Disk2VHD agora permite que façamos a conversão do disco em uso, ou seja, o disco do próprio SO.
Eu, por exemplo, converti uma partição onde tinha o dual boot para Windows 2008 R2 em VHD e ficou perfeito em apenas 15 minutos !!!!

Boot no Windows 7 e Windows 2008 com VHD
A um tempo atrás comentei que o Windows 7 e o Windows 2008 permitiam o uso nativo de discos virtuais (VHD): http://www.marcelosincic.eti.br/Blog/post/Virtual-Hard-Disk-(VHD-e-WIM)-no-Windows-7-e-Windows-2008.aspx
Porem, como fazer boot por eles?
Existem duas formas. A primeira é mais simples, mas cria um boot primario. A segunda é um pouco mais detalhada.
Segue o primeiro método, passo-a-passo:
- Siga os passos do post acima para acrescentar o VHD na lista de discos
- Acesse o command prompt (administrador no Windows 7)
- Digite a seguencia:
- cd <letra>:\Windows\System32
bcdboot <letra>:\Windows
Este método é simples porque acrescenta uma entrada de boot baseada nos dados do diretório windows do VHD.
Segue o segundo método, passo-a-passo:
- Siga os passos do post acima para acrescentar o VHD na lista de discos
- Acesse o command prompt (administrador no Windows 7)
- Digite a seguencia:
Este segundo método primeiro cria um clone do SO que já existe, altera o nome e a localização apontando para o VHD e liga o detector de hardware.
Deletando a entrada no BOOT
Utilize os dois comandos abaixo, o primeiro para descobrir o CLSID e o segundo para deletá-lo:
- bcdedit (irá listar, veja o que quer deletar e copie o CLSID
- bcdedit /delete {CLSID}
OBSERVAÇÃO IMPORTANTE:
O fato de VHDs poderem ser criados no VirtualPC, Virtual Server, Hyper-V ou VirtualBox não quer dizer que você pode subir a maquina virtual nestes programas, instalar o SO e depois utilizar para Dual-Boot normalmente. O problema neste caso é que estes virtualizadores trabalham com drivers de hardware "virtuais" o que pode não funcionar na maquina fisica.
Virtual Hard Disk (VHD e WIM) no Windows 7 e Windows 2008
Um interessante novo recurso do Windows 7 é permitir que se utilizei discos virtuais criados pelo IMAGEX (WDS) ou pelo VirtualPC/Virtual Server diretamente como um disco local da maquina. Este recurso é valioso por alguns motivos:
-
Permitir ter um arquivo único com os arquivos de usuário em um disco externo
-
Ler diretamente dados de uma máquina virtual sem a necessidade de subir o VPC ou VS
-
Fazer o backup dos dados com o processo de backup de imagem de um disco do próprio utilitário do Windows
Eu pessoalmente utilizei este recurso em meu disco externo para guardar dados. Criei um disco VHD e copiei nele dados antigos e desmontei. Quando preciso acessar conecto o disco externo e remonto o VHD com a letra T:. Ao usar este método não misturo arquivos de meus backups costumeiros com os arquivos históricos que possuo.
Como criar um VHD?
1) Abra o Computer Manager
2) Abra o Disk Management
3) Abra o menu More Actions e escolha a opção Create VHD ou Attach VHD se tem o arquivo
O restante do processo é o mesmo que utilizado para um disco fisico comum. Lembre-se de que ser for um disco externo deverá desmontá-lo e remontá-lo antes de desligar ou após reconectar o disco externo. O mesmo vale caso seja local e deseje para de usá-lo.
Importante: A cada reinicialização dá maquina o VHD estará desconectado, então vc poderá criar um script pelo DiskPart para reativar o disco.
Nota: Muito legal é vc pegar o DVD de um outro SO como o Windows 2008 ou o mesmo SO e rodar o setup, escolhendo instalar em outro disco. O VHD irá aparecer na lista e vc instala normalmente !!!
Todo o processo de desmonte e remonte do disco virtual tambem pode ser feito pelo aplicativo DiskPart.