ImaginarTI

sábado, 29 de maio de 2010

Trielo de Hypervisors (Windows Guest)

E aí, pessoal? Faz tempo, né?
Hoje eu resolvi escrever sobre um assunto que eu tenho comentado e vivido bastante, ultimamente: Máquinas Virtuais (ou hypervisors). E achei melhor fazer na forma de um trielo. Por que trielo?? Porque são três "competidores", se fossem dois seria um duelo. :-)

Eu testei o Microsoft Virtual PC, o VMWare Player e o Oracle VirtualBox. E como eu disse antes, foi uma comparação nada técnica. Eu não usei softwares de benchmarking, não medi tempos com ferramentas automáticas, muito menos carga de CPU, memória, etc. Tudo o que vou contar é simplesmente a minha impressão sobre os produtos. Se isso te ajuda, read on. Senão, sorry mate.

Eu instalei os três produtos no meu desktop. É um Athlon 64 3800+, 2Gb de RAM, HD interno 160Gb SATA, HD 500Gb SATA em um case USB, placa de vídeo NVidia GeForce 6200 com dois monitores (LG W1942S na VGA e Samsung P2470HN na DVI). As três VM foram instaladas no HD externo e os softwares para instalação também estavam neste HD externo.

A máquina física roda WinXP sp3 e tem só 2Gb. Para rodar três VMs com 512Mb cada uma, não sobrou quase nada o host OS, tadinho. A terceira VM a rodar (o VirtualPC) só subiu depois de parar vários serviços no host (entre eles SQL Server, terminal remoto, etc.). Depois de conseguir subir as 3 VM's, o host OS ficou insuportavelmente lento. Aliás, escrever este post não está sendo nada fácil...

Apesar de não ter nenhum critério técnico nesta comparação, procurei ser imparcial ao máximo. A tarefa consistia em instalar o sistema operacional (Windows XP Professional English sp2), instalar o Service Pack 3, instalar o Guest OS Additions (específico de cada produto), instalar o AVG Free, instalar o Zone Alarm e desinstalar componentes desnecessários do Windows (wallpaper, ponteiros de mouse, games, etc.). As instalações foram executadas nas 3 VM's simultaneamente (descontando o tempo de mover o mouse para a outra VM e clicar no botão). Eu pretendia instalar o Visual Studio 2010 Express, mas já gastei muito tempo e o VS vai ficar para outro dia.

E depois de algumas horas executando essas tarefas, eis as minhas impressões:

Preço
Todos os três são grátis. :-)

Contato Inicial
O VirtualPC parece ser mais fácil de operar. Talvez por ser obviamente mais simples (menos opções, menos funcionalidades), talvez por ter mais a cara (look 'n feel) do Windows, é o que oferece maior conforto para um usuário iniciante.

O VirtualPC também tem o esquema mais simples de Shared Folder (uma pasta no host que é compartilhada no guest como um drive mapeado ou um network share, para facilitar troca de arquivos entre o host e o guest).

Performance
O VirtualBox é disparado o mais performático. Iniciei algumas tarefas primeiro no VirtualPC, outras iniciei primeiro no VirtualBox e outras iniciei primeiro no VMWare Player. Em absolutamente todos os casos o VirtualBox terminou primeiro. É razoavelmente mais rápido que o VirtualPC e muito mais rápido que o VMWare Player. A diferença é absurda (usei sempre as configurações default). Na hora de instalar o SP3 do Windows foi o ápice: iniciei a instalação no VMWare Player. 5 minutos depois, comecei no VirtualPC. Passados mais 5 minutos, iniciei no VirtualBox. Quase uma hora depois, o VirtualBox terminou antes dos demais e ficou parado esperando os outros. Em seguida veio o VirtualPC e muito tempo depois o VMWare Player cruzou a linha de chegada, se rastejando. Aliás, depois de um tempo com o Windows paradinho, sem fazer nada, o VMWare Player continua acessando HD, CD e rede sem parar, enquanto os outros só acessam (muito) de vez em quando.

Usabilidade
Neste ponto eu considero um empate técnico com ligeira vitória para o VirtualBox. Todos os três produtos são bem similares, as diferenças são bem sutis. O VirtualPC tem o esquema mais simples para usar um arquivo .ISO como um drive de CD. Ponto para ele porque é realmente simples e rápido. Os outros são bem mais flexíveis, permitem ter uma biblioteca de .ISO's pré-configurada, o que permite alternar rapidamente entre as imagens ISO. Mesmo assim prefiro a facilidade do VirtualPC.

Outro ponto que achei interessante (e dessa vez ponto para o VirtualBox) é a integração com o ponteiro do mouse. Achei fantástico. Enquanto no VirtualPC e no VMWare você tem que clicar uma vez para ativar a janela (se ela não estiver ativa) e outra vez para acionar o controle (clicar em um botão, um checkbox, etc.). Já no VirtualBox o mesmo clique aciona a janela (se for necessário) e aciona o controle, tudo de uma vez só. Isso deixa a experiência do usuário particularmente confortável quando há necessidade de muitas interações dentro e fora da VM, como quando eu estava desinstalando componentes desnecessários do Windows. Nessa hora eu precisei marcar e desmarcar vários checkboxes simultaneamente nas 3 VM's.

Flexibilidade
Nesta questão, o VMWare é melhor do que o VirtualBox... e dá couro no VirtualPC. No VirtualPC há uma tecla fixa para liberar o ponteiro do mouse (quendo foi capturado pelo guest OS e a integração de ponteiro não está instalada). No VirtualBox e no VMWare esta tecla pode ser configurada (e é bem fácil de fazer).

As bibliotecas de imagens .ISO's que existem no VirtualBox e no VMWare são um conceito interessante. Facilitam na troca de mídia no CD "virtual", o que é ótimo se você precisa instalar várias VM's com a mesma mídia... Ou se precisa ficar alternando mídias (bota um disco, bota outro disco, bota um disco, bota outro disco, ...). O mesmo não dá para fazer com o VirtualPC. E se as mídias .ISO estiverem em pastas diferentes, a tarefa fica bem tediosa.

O VirtualBox e o VMWare reconheceram de cara os dispositivos USB ligados no host (o HD externo e o leitor de cartões, que apesar de interno, é USB). Reconheceram até a marca (JMicro) e modelo (JM20336) do case que contém o HD (o HD externo é esse case + HD de notebook). Ambos os softwares ofereceram menus para ligar os dispositivos USB (e acessá-los diretamente). Além dessa opção no menu, também há essa opção através de ícones na barra de ferramentas na parte inferior da janela da VM (um atalho). O VMWare chegou a me oferecer isso através de uma janela (com botões "sim" e "não"). O VirtualPC passou longe de saber que há algum USB espetado, embora afirme que é possível conectar as COM e a LPT do host. Eu não usei essas opções, mas achei interessante a possibilidade.

Outros aspectos
O reconhecimento da placa de som é bem transparente nos três produtos e mapeamento da placa virtual para a física ocorreu sem problemas.

O hardware virtual disponibilizado pelo VMWare reportou suportar PAE (Physical Address Extension). Os outros produtos não reportaram PAE.

Quando se cria uma VM com o VMWare, ele te pergunta se você quer criar o HD virtual como um arquivo único ou se quer dividir em arquivos de (no máximo 2Gb). É ótimo ter a opção de escolher (principalmente se você precisar copiar o HD virtual entre computadores diferentes), mas a maneira do VirtualPC (arquivo único) é bem mais simples. O VMWare tem um monte de arquivos, dá a impressão de ser meio confuso. O VirtualBox criar os HDs virtuais como arquivos únicos e permite compartilhar um mesmo HD Virtual entre várias VM's. Flexibilidade total e um recurso interessante, mas é um conteito muito estranho para quem nunca tinha ouvido falar, que era o meu caso. Levei um tempinho até entender como a coisa funciona.

O VMWare tem um recurso muito interessante para auxiliar na instalação de um sistema operacional. Ele é tão esperto que pode interagir com o programa de instalação e fornecer informações (previamente fornecidas por você ou baseadas no default do programa) de forma que a instalação pode acontecer de forma não assistida. Por isso, instalar o Windows XP no VMWare é muito mais rápido que qualquer outro: enquanto os concorrentes ficam esperando você informar a CD-KEY ou clicar em "configurações padrão" (na instalação da rede), o VMWare se vira sozinho e não fica esperando por você. Resultado: menor tempo de instalação, menos tempo que você "perde".

Há um recurso no VirtualBox e no VMWare (novamente o VirtualPC ficou de fora) que deixa o uso bem interessante: é a possibilidade de executar uma determinada aplicação sem exibir o desktop virtual (a janela da aplicação rodando no guest é exibida diretamente no host). Assim, dá a impressão que a aplicação está rodando no host (já que só a aplicação é visível e deixa de estar restrita ao tamanho do desktop do guest), mas na verdade ainda é uma máquina virtual. Esse recurso é chamado de unity no VMWare e modo seamless no VirtualBox. Vale a pena experimentar.

Com relação ao consumo de memória do host, o VirtualBox passa a impressão de ir obtendo memória à medida que o guest for precisando. O VirtualPC e o VMWare, ao contrário, reservam a quantidade de RAM que a VM precisa, logo que a VM é iniciada. Sem ferramentas fica difícil comprovar essa teoria (também não achei nada a esse respeito na documentação), mas é fácil acompanhar a quantidade de memória em uso pelo processo, usando o Gerenciador de Tarefas do Windows host. A medida que a VM vai iniciando processos, esta VM vai aumentando o consumo de memória no host. Já no VirtualPC e no VMWare, o consumo de memória é fixo. Isso é um aspecto muito interessante porque, dependendo do que a VM for executar e da quantidade de memória disponível no host, o uso do VirtualBox pode não deixar o host tão lento.

Rodar três VM's no mesmo HD externo... Dá para fritar um ovo no chassi do HD externo.


Conclusão
Diante de todos os aspectos que eu experimentei, eu penso que o VirtualPC é muito básico. Serve apenas se você tem muito pouca necessidade de rodar uma máquina virtual e se ela for Windows. Por exemplo: se você precisa executar uma versão anterior do IE, ou uma tarefa básica assim, VirtualPC 2007 te cai bem.

O VMWare Player é um produto bastante robusto e acho que ele serve bem se você precisa usar uma VM para fins profissionais (mesmo com o apetite por I/O). Com esta versão free, você pode ter várias VM's, mas só pode rodar uma de cada vez. Tem excelente suporte a hardware e se você tem uma CPU com suporte a virtualização assistida por hardware.

O Oracle VirtualBox é outra excelente opção, principalmente se você rodar mais de uma VM por vez. É o produto que eu mais gostei pela perfeita integração com o ponteiro do mouse, pelo consumo moderado de memória do host, pela possibilidade de rodar mais de uma VM. O que ele eventualmente perde para o VMWare Player não chega a fazer falta. É por isso que vou ficar com este produto.

Vejam uma foto do meu desktop com as três VM's rodando ao mesmo tempo.


Vale ressaltar que eu não testei Microsoft Virtual Server, nem o Virtual PC para Windows Seven (e o famoso XP Mode), nem o Oracle VM Server, nem o VMWare Workstation (nem irmãos "maiores"). Também não testei XEN e outros produtos famosos do mercado. Testei apenas os que eu tinha à mão e que são alguns dos mais comuns.


Espero que minhas impressões possam ajudar alguém por aí.

Forte abraço e até a próxima.

Marcadores: , , ,

0 Comentários:

Postar um comentário

Assinar Postar comentários [Atom]



<< Página inicial