A virtualização é o ato de criar uma versão virtual sobre algo real. Quando citamos a utilização de servidores virtuais, estamos nos referindo a simular hardware, fazendo assim que tenhamos maior compatibilidade com sistemas operacionais, dispositivos de entrada e saída e equipamentos de rede.
Com a virtualização é possível explorar melhor os recursos de hardware disponíveis na máquina. Utilizando somente um computador, podemos executar várias máquinas virtuais, executar diversos sistemas operacionais simultaneamente, e com fins de utilização diferente. O virtualizador fica responsável por fazer o intermédio entre suas máquinas virtuais (hóspedes) e o hardware. Ele pode fazer o gerenciamento de recursos de hardware, como utilização do processador, da memória e dos dispositivos de armazenamento, limitando ou liberando mais conforme à sua necessidade ou configuração. Uma máquina virtual dificilmente vai influenciar em outra, a menos que esse seja o objetivo da aplicação, ou tenha ocorrido um erro de configuração.
Outra vantagem de se utilizar um servidor virtualizado é a facilidade de configuração de clusters, entre as máquinas virtuais e entre outros servidores. A maioria dos virtualizadores tem ferramentas de snapshot (backup a quente, sem necessidade de desligar a máquina), isso faz com que se tenha mais segurança nas aplicações que rodam no servidor, e agilidade na restauração de um eventual problema. Lembrando que o backup da máquina virtual pode ser enviado para outro servidor dando mais segurança, a velocidade disso depende da comunicação de rede.
Essas duas metodologias de virtualização são um pouco diferentes e podem trazer resultados diferentes. Basicamente a virtualização com contêineres tem uma camada de sistema a menos que o hypervisor.
No hypervisor, cada máquina virtual tem seu próprio kernel e suas próprias bibliotecas de sistema, e o kernel da máquina virtual precisa acessar uma API do hypervisor, e esta faz o controle de acesso ao hardware. Isto facilita a implementação de sistemas com versões de kernel diferente, isolamento de dependências das máquinas virtuais. Exemplos de hypervisor são VmWare Esxi, Proxmox, Xen server.
Já no caso dos contêineres, as máquinas virtuais compartilham o mesmo kernel e as mesmas bibliotecas de acesso ao hardware que o hospedeiro. Isso não torna menos segura a utilização, somente é necessário tomar cuidado com as versões do kernel do hospedeiro em relação ao hóspede. Por exemplo, não é possível fazer o backup de um contêiner com kernel 4.9 e restaurar o backup em um kernel 4.1. A preparação é mais rápida e fácil de uma máquina contêiner, visto que o sistema base já esta pronto para rodar a aplicação na maioria dos casos. Exemplos de hospedeiros contêineres são Docker, Proxmox (LXC).
No esquema abaixo, ao lado esquerdo temos um exemplo de aplicação com hypervisor, ao lado direito temos um exemplo de aplicação com contêineres.
Repare que neste caso não existe uma melhor alternativa, tudo depende do cenário e do objetivo das aplicações que vão rodar.
O IXC já foi testado nas duas formas, como Conteiner (Proxmox versão 5.0 ou superior) e como máquina virtual (Proxmox, Xen, Vmware Exsi).
Se tiver em dúvida sobre qual virtualizador escolher recomendamos o Proxmox, pois tivemos sucesso na implementação interna. A manutenção é muito simplificada, a interface web do Proxmox funciona muito bem e dificilmente será necessário acessar o console. O Proxmox consegue trabalhar com contêineres e com hypervisors, possui ferramentas de clusterização e backup, ideal para quem está iniciando ou tem pouca experiência com os temas sistemas virtuais, Linux, ou sistemas operacionais. O Proxmox também é gratuito e open source.
Hypervisor ou VMW é uma camada entre o Hardware e o Sistema Operacional.
Originalmente lançados no início da década de 1970 possuem a principal intenção de reduzir custos onde se consolidavam vários computadores de diferentes departamentos da empresa em uma única grande máquina —o mainframe— capaz de servir a múltiplos setores.
Ao correr múltiplos sistemas operacionais de uma vez, o hipervisor permite uma consolidação dando robustez e estabilidade ao sistema. Uma de suas vantagens é o fato ainda que um dos sistemas operacionais colapse, os outros continuarão trabalhando sem falhas.
O hypervisor é responsável pela criação de novas VM's e também por fornecer ao sistema operacional visitante a abstração da máquina virtual. É o hypervisor que controla o acesso dos sistemas operacionais visitantes aos dispositivos de hardware compartilhando virtualmente seus recursos como memória, disco e processamento.
É interessante ressaltar que o VMM não executa em modo usuário, pois é ele que deve executar, ou simular a execução, das instruções privilegiadas requisitadas pelo sistema operacional visitante.
Geralmente, existem dois tipos de hypervisors. Os hipervisores de tipo 1, chamados “bare metal" e os hipervisores de tipo 2, chamados “hosted”, abaixo uma pequena explicação sobre ambos:
BARE METAL:
Nessa modalidade o hypervisor tem contato direto com o hardware. A imagem abaixo simplifica a ideia.
Aqui temos a seguinte “sequencia”: HARDWARE > HYPERVISOR > MAQUINAS VIRTUAIS, ou seja, a virtualização bare metal está executando um sistema operacional virtual na parte superior de um hipervisor (uma plataforma na qual vários sistemas operacionais virtuais podem ser executados), que fica bem em cima do hardware. Os Virtualizadores Citrix XenServer, Hyper-v, Proxmox e VMWare ESX Server são exemplos de soluções virtuais bare-metal.
Obviamente, a vantagem para o bare metal é que ele é mais rápido e eficiente, sendo que o sistema operacional tem apenas dois níveis acima do hardware físico. Algumas outras vantagens do bare-metal são a escalabilidade, os recursos corporativos e a alta disponibilidade do data center. As desvantagens das soluções bare metal são que as boas não serão gratuitas e não serão executadas em estações de trabalho de usuários. Essa é a opção mais indicadas a meio empresarial ou crítico.
HOSTED:
Na arquitetura de virtualização hosted, o monitor da máquina virtual (VMM) é instalado diretamente sobre o sistema operacional. Segue imagem representativa:
Aqui temos a seguinte “sequencia”: MAQUINA VIRTUAL > VMM > SISTEMA OPERACIONAL DO HOST > HARDWARE. Neste caso o sistema operacional virtualizado irá ser executado sob o sistema operacional do host que, está operando no hardware físico.
As vantagens das soluções de SO hospedadas são que elas geralmente são software livre e podem ser executadas em estações de trabalho de usuários. Existem muitas desvantagens nas soluções de SO hospedadas. Isso inclui as licenças do SO necessárias, é mais lento do que as soluções bare metal e os recursos corporativos são limitados.
Segue abaixo algumas das principais vantagens e desvantagens de se ter um hypervisor em seu servidor:
VANTAGENS:
DESVANTAGENS:
Virtualização Hypervisor segue crescendo cada vez mais devido a todos os fatores positivos que a mesma os proporciona como redução de equipamentos em rack e maior usabilidade de hardware, sendo possível aproveitar ao máximo o uso de seu servidor.
Embora todos os aspectos positivos, o que ainda limita seu uso é o fato de ser necessário especializar-se para estar fazendo uso de forma correta, sem contar que é necessário fazer um estudo antes de implantar essa técnica devido ao impacto que o mesmo gera a TI.
Outro ponto a ser destacado é a forma em como irá aplicar a virtualização em seu servidor se o mesmo será da forma bare metal ou hosted e qual a opção de hypervisor que irá usar. NO mercado hoje existem inúmeras opções de virtualizador tais como: HYPER-V, PROXMOX, CITRIX XENSERVER, VMWARE entre outros, todos com suas particularidades.
Em suma, virtualização é uma solução atraente mas que antes de sua total aplicação deve ser avaliada para não haver prejuízos a sua TI já existente, avaliar todos os pontos positivos e negativos e todos os impactos que vão gerar ao seu provedor antes de estar efetuando a implantação.