Update 2020: atualização de exemplos, melhorias de leitura e na explicação sobre over provisioning
Virtualização de Servidores, como já explicamos nesse outro artigo, é uma forma de dividir os recursos de um servidor físico em vários servidores virtuais, também chamados de máquinas virtuais, de modo que possa executar diversos sistemas operacionais no mesmo hardware físico, isolados entre si.
Funciona da seguinte forma:
1. Aquisição do servidor
Um servidor físico vem com recursos físicos instalados de fábrica, entre eles: CPU, memória, discos, conexões de rede e conexões a SAN:
Um servidor moderno pode ter muito mais recursos do que os softwares são projetados para usar e é comum recursos como CPU e memória ficarem ociosos em alguns servidores, enquanto outros servidores tem demandas por esses recursos não utilizados.
Aí entra em cena a virtualização, no lugar de vários servidores de pequeno porte para diversas aplicações, é possível investir em um servidor de maior porte e compartilhar os recursos entre os servidores virtuais sob demanda.
2. Instalação do Hypervisor
No servidor físico é instalado um sistema operacional básico, que possui a capacidade de dividir o hardware em pequenas partes. Esse sistema operacional é chamado de hypervisor.
Quanto menor for o espaço em disco e memória usada por esse hypervisor, mais recursos sobram para as máquinas virtuais, menor é a chance de ter problemas de código no hypervisor e menor são as paradas para manutenção do mesmo.
Por isso, muitos hypervisors modernos não tem nem interface gráfica, a configuração é feita por um cliente instalado em um computador remoto, para maximizar os recursos do ambiente virtualizado.
Os principais hypervisors para servidores no mercado são o VMware vSphere (ESX), o Microsoft Hyper-V, o Citrix XenServer, RedHat KVM e Oracle.
3. Criar as Máquinas Virtuais
O hypervisor simula dentro de cada “fatia” do hardware um novo hardware, que são chamadas de máquinas virtuais. Os discos ficam armazenados em arquivos dentro do sistema operacional do hypervisor, enquanto que a CPU e memória são alocados sob demanda.
Cada máquina virtual pode ter capacidades diferentes de acordo com a necessidade, enquanto uma pode ter mais memória, a outra mais processador e a outra mais espaço em disco, cada uma dividindo uma fração do servidor original.
Na configuração de rede dos hypervisors mais avançados é possível dividir e priorizar o tráfego de rede de acordo com a máquina virtual.
As máquinas virtuais podem ter mais recursos do que os existentes no servidor físico, por exemplo, um servidor físico com 8 CPUs e 128Gb de RAM pode muito bem ter um total de máquinas virtuais usando 20 CPUs e 200Gb de RAM, isso é chamado de over provisioning.
O que não pode acontecer é todas as máquinas virtuais precisarem dos recursos ao mesmo tempo, isso gerará competição pelos recursos e lentidão no ambiente, mas se cada máquina virtual fizer pouco uso dos recursos e apenas ocorrerem pequenos momentos de pico, essa é uma configuração bastante funcional e encorajada para otimização dos recursos.
4. Instalação do Sistema Operacional dentro das Máquinas Virtuais
Dentro de cada máquina virtual pode ser instalado um sistema operacional diferente, de acordo com a necessidade. Cada um estará isolado dos demais, enxergará apenas os recursos que lhe foram dedicados e se comportará como se estivesse instalado em uma máquina física comum:
O hypervisor fica responsável por dividir os recursos entre as máquinas virtuais.
5. Conectar a uma SAN (Storage Area Network)
Em um ambiente empresarial com Alta Disponibilidade, as máquinas virtuais ficam armazenadas em uma SAN, que nada mais é do que um local de armazenamento (Storage) compartilhado entre os servidores. A SAN pode ser virtual, nesse caso é chamada de VSAN.
Uma SAN pode ser implementada também com um Storage dedicado, nesse caso, o equipamento possui toda a redundância necessária para garantir a alta disponibilidade do ambiente.
O fato de agregar os discos em um ponto único permite algumas facilidades de gerenciamento, além de poder distribuir a performance mais uniformemente e definir prioridades entre as máquinas virtuais.
6. Usando a SAN para manutenção programada de servidores
A SAN armazena os arquivos das máquinas virtuais, sendo assim, as máquinas virtuais podem ser desligadas de um servidor e ligadas em outro servidor sem necessidade de reinstalar o sistema operacional e aplicativos, ou de copiar arquivos entre os servidores físicos.
Também, dependendo da configuração e licenciamento, é possível migrar a máquina virtual entre um servidor e outro sem desligar, esse recurso é chamado de vMotion, Live Migration ou XenMotion de acordo com o fabricante do hypervisor e permite a manutenção de um servidor físico sem downtime (parada) do ambiente.
7. Crescendo o ambiente
Quando o ambiente cresce, basta adicionar mais servidores ou espaço de Storage e todo o ambiente se beneficia. Pode-se crescer o ambiente em quantidade de máquinas virtuais, capacidade das máquinas virtuais, servidores físicos ou espaço no Storage.
Cada servidor físico novo adiciona mais poder de processamento, memória e conectividade com a rede, enquanto que mais discos no Storage adicionam espaço em disco e mais performance de IOPS.
8. Resiliência do ambiente contra quebras
No caso da quebra física de um dos servidores, as máquinas virtuais podem ser acessadas e ligadas nos demais servidores; se estiver corretamente configurado, esse processo acontece automaticamente, sem necessidade do operador intervir, esse recurso é chamado de HA (High Avaliability) ou Alta Disponibilidade e permite que as máquinas virtuais voltem ao trabalho em poucos minutos.
Conclusão
Esses são apenas alguns dos benefícios da virtualização de servidores.
Para ver mais, leia a matéria sobre os 12 Benefícios da Virtualização no Datacenter.