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 completa | Paravirtualização | |
Características |
|
|
Vantagens |
|
|
Desvantagens |
|
|
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.