Nos Domínios da Paravirtualização

A virtualização é um recurso usado para simplificar, esconder ou mascarar detalhes de funcionamento infra-estruturais de um hardware ou de um software. Sua função é fazer um componente simular ou se comportar como outro tipo de equipamento. Desta forma, o que é executado sobre a plataforma virtualizada passa a dar mais foco à sua super-estrutura, ou seja, à lógica de negócio.

Fica mais fácil entender quando classificamos alguns tipos interessantes de virtualização:

  • Driver de dispositivo: esconde detalhes de um dispositivo específico criando uma representação virtual de um dispositivo genérico. É uma das formas mais populares de virtualização.
  • Virtualização de hardware: trata-se de um software que simula todos os aspectos de um computador, incluindo firmware e dispositivos.
  • Virtualização de sistema operacional: provê interfaces genéricas que podem ser usadas por uma ou várias aplicações simultânea-mente. É uma das virtualizações mais completas, mais usadas e a que é menos associada à idéia de virtualização.
  • Virtualização de Servidor de Aplicações: idêntica em todos os aspectos a de SO, mas provê APIs e serviços de ordem mais abstrata. SOs modernos como Linux e Windows já incluem esta camada como parte das funcionalidades que provêem. Como exemplo, temos J2EE e várias outras APIs no universo Linux e .NET no mundo Windows.
  • Grid: pode ser visto como um novo sistema operacional cujas interfaces simplificam, escondem e automaticamente gerenciam uma malha de recursos computacionais heterogêneos e distribuídos.

Poderíamos citar outros tipos, mas o importante agora é entender que o objetivo maior do uso de virtualização é a independência e separação lógica entre camadas de funcionalidades diferentes, melhor gestão de políticas de segurança e melhor aproveitamento de recursos computacionais.

A virtualização de hardware é especialmente prática porque permite manipular o que antes era metal e silício físicos, como informação que pode ser gravada numa mídia e até mesmo transportada via rede. Mas a separação lógica entre a máquina virtual hóspede e o sistema operacional hospedeiro não lhes permite cooperar de forma mais eficiente. Por exemplo, o hospedeiro não sabe como o seu hóspede está usando a memória física. Assim, pode haver um retrabalho em tarefas comuns como gerência de memória virtual.

A paravirtualização, a princípio, parece uma virtualização de hardware, mas propõe que o sistema operacional hóspede saiba que ele está sendo executado na camada virtual e possa interagir com ela. Isso implica em alterações no sistema operacional hóspede, mas garante uma cooperação sem precedentes entre as duas camadas. O ganho imediato desta cooperação é a maior performance do conjunto.

O datacenter do futuro, vislumbrado com tecnologias de paravirtualização do presente, será todo virtual. Muitos dos produtos que hoje são executados em servidores físicos dedicados, sem virtualização, passarão para servidores paravirtuais. Isso acontecerá pois a perda de performance da paravirtualização tende a zero, e ao mesmo tempo ganha-se muita flexibilidade de operação, benefício típico da virtualização em geral.

A máquina paravirtual passa a ser como um líquido que se adapta a qualquer recipiente, podendo ser migrada a quente para outro equipamento com apenas milissegundos de indisponibilidade real, armazenada em backup ou fazer parte de uma infra-estrutura de alta-disponibilidade de máquinas virtuais.

O primeiro sistema operacional moderno que implementou essas modificações para paravirtualização foi o Linux, com o projeto Xen. A idéia se popularizou e aderiram a ela vários fabricantes. Hoje há um diálogo bem sucedido na indústria sobre padronização das interfaces hóspede-hospedeiro.

Com essa padronização se concretizando e com os benefícios que a paravirtualização oferece, podemos dizer que nos próximos anos ela substituirá por completo a tradicional virtualização de hardware.

7 thoughts on “Nos Domínios da Paravirtualização”

  1. Desculpe-me, mas não entendi o comentário sobre o Linux ser o primeiro sistema operacional a implementar virtualização… e com Xen?! E o VMware, por exemplo? É consideravelmente mais antigo que o Xen e está disponível em Linux e Windows (em Mac também mais recentemente).

    Ou entendi mal o comentário — o que é até provável, já que estou dormindo ainda…

  2. Rob, me referia as modificações para a paravirtualização.

    Modifiquei o texto para ficar mais claro.

    Obrigado.

  3. Roberto,

    Esse artigo se refere a paravirtualização realizada pelo Xen. O VMWare é outro tipo de virtialização, virtualização completa. Por isso o Xen é o primeiro.

Leave a Reply to Avi Cancel reply

Your email address will not be published. Required fields are marked *