Publicação

Virtualização completa e paravirtualização

foto de
André Rodrigues CONTEÚDO EM DESTAQUE

Virtualização por método VMM

Nesta artigo falo sobre duas arquiteturas de virtualização que utilizam o modelo VMM (Virtual Machine Monitor - Monitor de Máquina Virtual).

O VMM, também conhecido como  hypervisor, é programa implementado no sistema operacional do computador hospedeiro que cria e roda maquinas virtuais. O hypervisor fornece ao sistema operacional visitante a abstração da máquina virtual e gerencia a execução de tais sistemas operacionais convidados, controlando o acesso aos dispositivos de hardware.

Tipos de Virtualização de Servidores VMM 

Existem vários tipos diferentes de arquitetura de virtualização, e cada um deles têm diferentes pontos fortes e fracos. Este artigo apresenta duas diferentes arquiteturas do tipo VMM, assim como respectivos prós e contras.

Arquiteturas de virtualização: total e paravirtualização.

Resumo comparativo


Virtualização completaParavirtualização
Características
  • Fornece ao sistema operacional visitante uma réplica do hardware virtualizado.
  • Dispensa a necessidade de modificar o SO convidado
  • as instruções não críticas são executadas diretamente no hardware
  • instruções críticas são interceptadas e executadas pela VMM
  • Requer a modificação do SO convidado
  • o hóspede recorre ao hypervisor quando requer instrução privilegiada 
  • Dispensa necessidade de o VMM testar instrução por instrução
  • Lida com instruções no momento da compilação
Vantagens
  • Independência
  • Facilita a migração de máquinas virtuais entre servidores físicos
  •  A segurança é facilitada pelo isolamento entre as máquinas virtuais
  • Ganho significativo de desempenho.
  • Facilita o uso de dispositivos de E/S, 
Desvantagens
  • O desempenho da virtualização deixa a desejar
  • Dificuldade de emular o funcionamento dos dispositivos de E/S
  • O custo da manutenção de SOs paravirtualizados pode ser alto
  • a vantagem de desempenho da paravirtualização varia muito

Virtualização completa

Como o próprio nome sugere, a virtualização completa realiza toda a abstração do sistema físico, com o objetivo de fornecer ao sistema operacional hóspede uma réplica do hardware  virtualizado pelo hospedeiro. Este tipo dispensa a necessidade de modificar o SO convidado, que trabalha desconhecendo que há virtualização.

Com a virtualização total, as instruções não críticas são executadas diretamente no hardware, enquanto as instruções críticas são interceptadas e executadas pela VMM ¹. O sistema operacional visitante, no entanto, sequer tem o conhecimento de que está sendo executado sobre o VMM.

¹ Virtual Machine Monitoring: o mesmo que hipervisor, ou monitor de máquina virtual. 

Vantagens da virtualização completa

Independência

Esse tipo de virtualização facilita a migração de máquinas virtuais entre servidores físicos, porque há total independência das aplicações e dos recursos físicos do servidor.

Segurança

O isolamento entre as máquinas virtuais é um fator positivo de segurança, já que cada instância da máquina virtual é um processo do SO nativo.

Desvantagem da da virtualização completa

Pior Desempenho

O desempenho da virtualização total pode não ser ideal, pois conforme apresentei na introdução, o hipervisor precisa fazer uma intermediação que o consome bastante processamento.

Perceba que o VMM acaba perdendo em otimização. Como o sistema operacional visitante não foi modificado (ele nem sequer tem conhecimento de que está sendo executado sobre o VMM), então as instruções executadas por ele precisam ser testadas pelo VMM para que depois sejam executadas diretamente no hardware, ou executadas pelo VMM e simuladas para o sistema visitante. 

Problemas com dispositivos de entrada e saída

Outra desvantagem é a dificuldade de emular o funcionamento dos dispositivos de E/S. Por conta da diversidade dos dispositivos existentes, podem haver falhas de compatibilidade quando usado o modelo de virtualização total.

Paravirtualização

A paravirtualização requer a modificação do SO convidado. O sistema operacional visitante é modificado e passa a ter conhecimento que está rodando sobre a VMM. O hóspede modificado, então, não executa instruções privilegiadas diretamente, mas recorre ao hypervisor quando necessitar delas.

Vantagens da paravirtualização

Melhor Desempenho

Este modelo dispensa a necessidade de o VMM testar instrução por instrução, o que representa um ganho significativo de desempenho.

Modificando o SO visitante, a paravirtualização tenta reduzir a sobrecarga da virtualização, e assim aumenta o desempenho.

Um SO convidado paravirtualizado tem a assistência de um compilador inteligente que atua na substituição de instruções de SO não virtualizáveis por hiperchamadas (hypercalls) quando for executar uma instrução sensível. Tal procedimento poupa o desempenho, quando comparado ao que foi descrito na virtualização total. 

Reduz problemas com dispositivos de entrada e saída

Em relação aos dispositivos de E/S, a paravirtualização permite que as máquinas virtuais usem os drivers do dispositivo físico real sob o controle do hipervisor, o que reduz os problemas de compatibilidade.

Desvantagens da paravirtualização

Maior custo de manutenção

SOs paravirtualizados geralmente demandam por altos custos de manutenção mais por conta da necessidade de modificações no kernel do SO.

Variabilidade de desempenho

Comparada com a virtualização total, a paravirtualização costuma apresentar melhor desempenho, por funcionar de maneira mais simples e prática. Mas tal desempenho, entretanto, não é garantidamente alto e pode variar em função de diferentes aspectos técnicos e cargas de trabalho. 

Comentários