Virtualização em Linux

Virtualizar passou a ser obrigatório nos dias de hoje e ferramentas de código aberto são, muito provavelmente, das mais usadas para esse efeito. Mas, afinal, o que é virtualização, por que é que se deve usar e que tipos há?

Em ciência da computação, virtual significa ‘um ambiente de hardware ou físico que não é real’. O que acontece é que as funções do hardware físico são duplicadas e “apresentadas” a um sistema operativo. A tecnologia utilizada para criar esse ambiente pode ser chamada de ‘tecnologia de virtualização’ ou ‘virtualização’. O sistema físico que executa o software de virtualização (hipervisor) é designado de ‘host’ (hospedeiro) e as máquinas virtuais instaladas na parte superior do hipervisor são as ‘guests’ (convidadas).

Por quê usar virtualização em Linux?
Actualmente, há uma grande variedade de opções de virtualização disponíveis em Linux, que ajudam a converter um único computador, em vários. As soluções populares de virtualização Linux são a KVM (Kernel-based Virtual Machine), a Xen (zen), a QEMU e a VirtualBox. Um pouco mais à frente neste artigo será dada uma explicação melhor sobre estas soluções.

Alguns dos principais factores que contribuem para um maior uso de virtualização em Linux são a abertura, a flexibilidade e o desempenho. Por quâ? Assim como em qualquer outro software de código aberto, o software de virtualização para Linux é desenvolvido de maneira colaborativa, recebendo mais contribuições da comunidade em comparação com o código fechado. Além disso, ajuda indirectamente a reduzir os custos de pesquisa e desenvolvimento, melhora a eficiência, o desempenho e a produtividade. O modelo de código aberto incentiva sempre à inovação.

As sete vantagens da virtualização
1 – Consolidação do servidor: ajuda a economizar energia, reduz a área ocupada por todo o datacenter e o número de servidores físicos (bem como os seus componentes), ajuda economizar mais dinheiro e também a aproveitar melhor a energia. Outra vantagem é provisionar várias máquinas virtuais com a quantidade exacta de recursos de CPU, memória e armazenamento, garantindo assim um melhor aproveitamento da utilização do hardware.

2 – Isolamento de serviços: ao contrário de um cenário físico, a virtualização de um servidor ajuda ao isolamento de aplicações e também remove problemas de compatibilidade, agrupando muitas dessas máquinas virtuais em menos servidores físicos, o que simplifica a administração desses serviços.

3 – Aprovisionamento mais rápido: preparar um sistema físico consome algum tempo, mesmo se houver um processo automatizado no caminho. Gerar uma máquina virtual a partir de modelos de imagens é bem mais rápido e não temos de nos preocupar com a configuração de recursos físicos.

4 – Recuperação em caso de desastres: ter um datacenter virtualizado permite tirar partido dos snaptshots das máquinas virtuais e ter rapidamente uma máquina “limpa”, a funcionar e fazer migração de VM (virtual machines) – é um plano melhor, mais fácil de aplicar e com uma taxa de sucesso mais alta.

5 – Balanceamento de carga dinâmico: vai depender muito das políticas definidas, mas se um servidor está sobrecarregado com várias máquinas virtuais é mais fácil fazer uma (migração ao vivo) para um servidor ou servidores com menos carga. A maioria das soluções de virtualização incluem essas políticas para o utilizador.

6 – Desenvolvimento mais rápido e ambiente de teste: criar um ambiente de testes e de desenvolvimento temporário é fácil. Exemplo disso é o uso do Multipass, em que para criar uma máquina virtual para testes, com base no Ubuntu, basta usar um comando. Isto ajuda a eliminar conflitos de bibliotecas causados ​​por várias instalações, algo mais complicado em servidores físicos.

7 – Sistema mais seguro e confiável: Uma solução de virtualização adiciona uma camada de abstração entre a máquina virtual e o hardware físico. É comum que os dados do disco rígido físico sejam corrompidos por algum motivo e que afectem todo o servidor.

No entanto, se estiver armazenado num disco rígido de uma máquina virtual, o disco rígido físico do sistema host ficará intacto e não haverá necessidade de se preocupar com a substituição do disco rígido virtual.

Quem fala em discos, fala também de memória ou de outro componente físico. Trabalhar num ambiente isolado de virtualização é mais seguro e flexível. Por exemplo, vamos imaginar que uma determinada VM não precisa de acesso à Internet ou a outras redes de produção: aqui, a máquina virtual pode ser facilmente configurada para aceder apenas a uma rede completamente isolada e restringir o acesso a outros utilizadores.

Virtualizaçao total e paravirtualização
A virtualização total simula o hardware físico existente, que por sua vez é emulado numa máquina virtual, com outro sistema operativo instalado, mantendo assim, um ambiente isolado do host principal. Exemplos de projetos de código aberto são o KVM (Kernel-based Virtual Machine), a Virtualbox e o Xen – este último faz também paravirtualizção.

Na paravirtualização, não existe emulação do hardware físico existente no host, mas sim as VM. Estes dois vão comunicar directamente com o hardware do host, através do hypervisor, o que implica a alteração do código fonte das VM, ou das máquinas guest. Uma das vantagens é o maior desempenho.

Virtualização do Tipo 1 e Tipo 2
A instalação do Tipo 1 é feita directamente num servidor físico – exemplos disso são o Microsoft Hyper V, o VMware Esxi, o Xen e o Proxmox. Já as instalações do Tipo 2, são usadas para correr maquinas virtuais em cima de um sistema operativo instalado, seja ele Windows , Linux ou macOS: Virtualbox, Qemu e Vmware Workstation Player.

Conclusão:
Virtualizar não é propriamente uma novidade de 2020, mas é, sem dúvida o melhor caminho a seguir e o caminho que as empresas continuam a traçar, sendo uma mais-valia aprender a virtualizar, ter uma ideia de como é feito e que ferramentas são usadas.