16 de março de 2011

Servidores virtuais com hypervisor

No final de 2009 a Microsoft liberou o segundo release do Windows Server 2008 que usa o mesmo núcleo que o Windows 7. Com este lançamento, a Microsoft assume de vez que seus sistemas estão prontos para virtualização em produção, pois o novo release vem "de fábrica" com o Hyper-V.

Mas... O que é esse tal de Hyper-v?

A maior parte dos sistemas de virtualização para desktop como VMware Workstation, VirtualBox, Microsoft Virtual PC e mesmo as versões para servidores como o VMware Server e Microsoft Virtual Server funcionam como aplicativos "emuladores(?)" que simplesmente simulam a presença de um hardware muito específico onde os sistemas virtuais podem rodar.


Virtualização em desktops com emulação própria de hardware.

Na prática esses aplicativos operam de forma independente do hardware, o que traz algumas vantagens como por exemplo:
  • Podem rodar praticamente qualquer sistema operacional, desktop ou servidor, compatível com o hardware virtual;
  • Pode ser instalado em um PC originalmente não preparado para virtualização;
  • Facilita o backup e a replicação de máquinas virtuais já prontas em outros computadores;
  • Facilidade de instalação, configuração e uso, ótimo para iniciantes e estudantes.
Mas nem tudo são flores! A virtualização de "alto nível" disponibilizada por estes aplicativos tem alguns grandes inconvenientes:
  • Usa muita memória RAM, já que precisamos suprir o sistema principal (host), os sistemas virtualizados (guest) o software de virtualização (VM) e todos os outros aplicativos e serviços que estão rodando no host e nos guests;
  • Usa muito espaço em disco, da mesma forma que a RAM, apesar da maioria das VMs poder operar com discos dinâmicos de menor desempenho;
  • Limitações no acesso direto ao hardware, o que pode dificultar o uso de alguns dispositivos. Isso é evidente com equipamentos USB, WiFi e principalmente com o hardware de vídeo que nas VMs é bem limitado.
Isso implica em um consumo exagerado de recursos do sistema, bem maior que a soma dos recursos necessários para os sistemas host e guest funcionar.

Eram justamente estas "falhas" que afastavam as VMs dos ambientes de produção em maior escala, quando precisamos de várias VMs operando com bom desempenho e economia de recursos em servidores. Mas, com a evolução da virtualização, metodologias mais eficientes foram criadas para tirar o máximo proveito dos hardwares atuais, principalmente com os poderosos, porém subutilizados sistemas de 64 bits. E um destes conceitos é o hypervisor.

Também chamado de VMM (Virtual Machine Monitor), o hypervisor é um software que deve ser instalado previamente em um sistema que sabidamente operará com virtualização. Sua função é servir de base para as VMs, ligando-as com os processadores e com o hardware do sistema (middleware), mas diferente das VM independentes, que tem seu próprio hardware abstrato, o hypervisor usa o próprio hardware "real" do sistema como base para os sistemas virtualizados.


O hypervisor é uma camada adicional entre hardware e sistema operacional.

As vantagens disso?
  • Melhor aproveitamento do hardware com consequente melhoria no desempenho individual de cada VM;
  • As VMs passam a ter acesso ao nível mais baixo do hardware;
  • Os processadores atuais, que contam com recursos de virtualização como o Intel VT-xe o AMD-v tem o seu potencial totalmente aproveitado;
  • As aplicações de 64 bits rodam com maior aproveitamento;
  • Pode-se aumentar o número de VMs rodando simultaneamente.
Na prática, o hypervisor cria uma camada de monitoramento entre os sistemas operacionais e o hardware, controlando todo o fluxo de comunicação entre esses e assim diferenciando as VMs que acessam cada recurso com melhor aproveitamento possível.

Claro que o hypervisor tem desvantagens como:
  • Dificuldade de backup e replicação das VMs em sistemas diferentes por causa da "intimidade" entre VM e hardware;
  • Incompatibilidade com sistemas operacionais que não estão preparados para virtualização como os desktops. Isso porque a maioria dos sistemas prevê a instalação diretamente na camada de hardware, sem a interferência de outro sistema com um hypervisor. Isso impede que sistemas com este recurso rodem diretamente as versões desktop do Windows e de outros sistemas e até sistemas operacionais servidores mais antigos;
  • Uso mais intenso do HD, já que com o hypervisor, cada VM tem que operar em sua própria partição, independente das unidades dos outros sistemas;
  • Maior conhecimento; diria que é necessária uma boa especialização do profissional que vai instalar, configurar e manter sistemas virtualizados sobre VMMs.
No mais, em um ambiente produtivo essas desvantagens podem ser amenizadas na relação custo-benefício, tão importante em ambientes corporativos. A possibilidade de rodar diversos servidores com alto desempenho e disponibilidade, sem ter que investir em hardwares complexos é muito vantajosa se levarmos em conta fatores como consumo de energia, espaço físico, mão de obra, administração etc.

Cabe apenas mais um esclarecimento: "hypervisor" não é o nome de um software, mas de uma plataforma, de um formato de virtualização. Diversos fabricantes de sistemas já investem em seus próprios "hypervisores", como é o caso do VMware ESXi, do Xen Hypervisor da Citrix e do Microsoft Hyper-v que citei acima.
Com a chegada do Hyper-v já embutido no Windows Server 2008 R2, mesmo os profissionais mais arredios às novidades, normalmente fãs fissurados da Microsoft terão argumentos para investir mais em virtualização.
Como sempre, assim que possível, votarei ao assunto. Então, aproveite para comentar...
Referências:
Esta é uma edição revisada, ampliada e atualizada. A versão anterior não está mais disponível na Internet.

3 comentários neste post

Ótimo Post! Parabéns!!
Abraço!

Hummm... artigos curtinhos, focados e objetivos, heim! Acho que está se inspirando em alguém... &;-D

Comentário de
Walton Em 11 de janeiro de 2012 15:43.

Muito bom o post.Alé de esclarecedor, muito objetivo e claro na explanação.
Parabéns!

Postar um comentário

Atenção comentarista!
  • Todos os comentários serão rigidamente moderados;
  • Identifique-se! Comentários anônimos não são recomendados;
  • Comentários com três ou mais links serão removidos;
  • Comentários escritos em miguxês ou excesso de gírias serão removidos;
  • Comentários escritos com predominância de maiúsculas serão removidos;
  • Por favor, prove que você é coerente, educado e bem informado: conheça o restante do site, saiba quem somos, sobre o que, para quem e como escrevemos antes de comentar futilidades;
  • Respeite as opiniões dos autores e dos outros comentaristas. Seja breve e sem ofensas;
  • Escreva comentários relevantes e que contribuam de alguma forma para o bem da humanidade;
  • Não seja um inútil social. Lembre-se que o mundo não gira ao seu redor.