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.
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
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 !!!!