Virtualização ao Nível do Sistema Operativo Explicada


Este tipo de virtualização de servidores é uma técnica onde o núcleo (kernel) de um sistema operativo permite a existência de múltiplas ocorrências de espaços de utilizador isolados. Essas ocorrências correm sobre um sistema operativo anfitrião e fornecem um conjunto de bibliotecas com as quais as aplicações interagem, dando-lhes a ilusão de que elas estão a ser executadas numa máquina dedicada ao seu uso. As ocorrências são conhecidas como Contentores, Servidores Virtuais Privados ou Ambientes Virtuais.

Virtualização ao Nível do Sistema Operativo

A virtualização ao nível do sistema operativo é obtida através da execução, pelo sistema anfitrião, de um único kernel do sistema operativo e do seu controlo de funcionalidade do sistema operativo hóspede. Nesta virtualização do kernel partilhado, cada um dos sistemas virtuais hóspedes tem o seu próprio sistema de arquivos mas partilham o kernel do sistema operativo anfitrião.


Este é um caso especial de virtualização hospedada (Hosted Virtualization) onde o hipervisor (o contentor) tem uma funcionalidade muito limitada, contando com o sistema operativo anfitrião para agendamento da CPU e gestão de memória. Se preferirem, este método, que utiliza a virtualização ao nível do SO, nem sequer inclui a utilização de um verdadeiro hipervisor; em vez disso, as capacidades de virtualização fazem parte do sistema operativo de anfitrião que executa todas as funções do hipervisor.

Virtualização ao Nível do Sistema Operativo

Por outras palavras, a virtualização ao nível do SO é baseada na criação de contentores ou partições isoladas num único servidor físico e a utilização de diversas ocorrências do SO para que cada ambiente de aplicação hóspede possa trabalhar de forma independente das outras partições. Com esta técnica, instala-se a camada de software de virtualização em cima do sistema operativo e todos os sistemas hóspedes correm sobre esta camada, usando o mesmo SO que o sistema operativo anfitrião, mas tendo cada hóspede os seus próprios recursos e funcionando em completo isolamento de outros hóspedes.

Pode-se argumentar que isto não é virtualização no sentido estrito do termo, mas sim uma técnica que permite apenas para a consolidação de máquinas.

Exemplos de virtualização de nível de SO são OpenVZ, Virtuozzo ou Solaris Zones.

Vantagens da virtualização ao nível do SO

     
  • Esta forma de virtualização geralmente impõe pouca ou nenhuma sobrecarga garantindo assim a disponibilidade da maioria dos recursos da máquina para as aplicações em execução nos contentores;

  • Esta é uma solução barata e eficiente para a criação de clientes semelhantes, mas é prática apenas para determinadas situações. É a abordagem ideal para empresas de hospedagem da web que têm vários servidores web virtuais numa única máquina. Isto é muito conveniente porque os patches ou modificações podem ser feitas para o servidor anfitrião e serão imediatamente aplicadas a todos os contentores. Outro exemplo seria uma empresa que tem de gerir várias bases de dados SQL ou qualquer outro cenário, onde muitos servidores semelhantes ou idênticos precisam estar hospedados ou geridos no mesmo centro de dados.

Limitações da virtualização ao nível do SO


Esta abordagem tipicamente limita a escolha do sistema operativo. A contentorização normalmente significa que cada sistema operativo hóspede deve ser idêntico, ou similar, ao anfitrião em termos de número de versão e nível de patch. Por exemplo, com o Linux como sistema operativo anfitrião, apenas distribuições Linux podem ser executados como sistemas operativos hóspedes porque partilham o mesmo kernel. Isto pode causar problemas se desejarmos executar diferentes aplicações nos contentores já que as aplicações são muitas vezes certificadas apenas para um determinado SO e para um certo nível de patch. Não é possível um sistema hóspede Linux projectado para a versão 3.0.9 do kernel ser executado sobre um sistema anfitrião com kernel 3.1.1.