O que é virtualização, funcionamento, vantagens e usos?

A criação e desenvolvimento da virtualização, permitiu a criação de novas possibilidades e novas perspectivas, na área de informática.

O seu uso e disseminação se faz sentir em uma série de situações quotidianas, ainda que a maioria das pessoas não saibam, nem percebam.

Quer conhecer o que é, como funciona e os muitos avanços nos quais ela está presente?

Então se junte a nós nesse bate-papo!

O que é virtualização?

A virtualização é uma tecnologia, por meio da qual é possível reservar recursos (memória RAM, núcleos de processamento, espaço de armazenamento, etc) de um hardware e destiná-los para a criação de ambientes virtuais, nos quais é possível instalar um sistema operacional e que pode funcionar como se fosse um computador separado.

Ou seja, é como se tivéssemos um computador independente, funcionando dentro de outro.

Porém, como se trata de uma simulação, que só é possível por meio de um software / sistema especialmente destinado a essa finalidade, que se diz que o ambiente criado dentro do outro, é um ambiente virtual e não um ambiente real, concreto ou físico.

Daí o processo resultante ser chamado de virtualização.

Cada máquina criada a partir desse processo, é chamado de máquina virtual.

A depender da disponibilidade de recursos de hardware no ambiente principal e físico, é possível criar mais de um ambiente virtual.

É graças à virtualização, que é possível criar em um servidor, no qual é comum dispor de hardware poderoso (muitos núcleos de processamento, grande quantidade de memória RAM, bastante espaço em disco, etc), várias máquinas virtuais e nelas, ter por exemplo, diferentes sistemas operacionais.

E conforme mencionamos, pelo fato de cada VM (Virtual Machine, ou máquina virtual, em português) ser independente das demais e, inclusive ser também logicamente independente do próprio servidor no qual foi feita cada instância de virtualização, cada máquina virtual pode ser destinada a um uso diferente.

Sendo assim, desde que o hardware permita, a partir de um único servidor, pode-se simular 2, 3, 5 ou até mais computadores independentes.

Aliás, esse é o mesmo princípio que permitiu a criação dos VPSs (Virtual Private Server), que é a sigla de servidor virtual privado.

Explicando a virtualização por analogia

Mas se toda essa explicação ainda é muito complicada e repleta de termos que você não domina, podemos recorrer a uma simples analogia.

Pense nos galpões e pavilhões onde ocorrem feiras, aquelas repletas de muitos stands de diferentes empresas / expositores e que equivalem ao servidor que abrigará as máquinas virtuais.

Alguns stands são grandes, alguns são médios e outros, menores. Cada qual com diferentes conteúdos e propostas, mas sempre compartilhando de uma mesma infraestrutura (espaço, energia elétrica, cobertura, segurança e controle de acesso, estacionamento, etc). Nesse caso, cada stand / expositor, corresponde a uma VM.

Tudo isso fica sob a administração e controle da organização do evento (o software / sistema de virtualização), que deve zelar pelo correto uso dos recursos e pelo bom andamento do evento.

Ao fim do evento, tudo é desmontado e fica disponível para outro evento, com novos stands, empresas e utilizações diferentes. É quando as VMs são encerradas, mas o hardware físico continua existindo.

Pois é algo análogo que é feito com a virtualização, usando a capacidade de oferecer recursos de uma máquina e dividindo / compartilhando com “porções” menores, mas sob a supervisão de um sistema.

Como funciona tudo isso, é o que veremos a seguir...

Como funciona a virtualização?

O funcionamento da virtualização, ocorre a partir do que se chama de camada de abstração entre o hardware físico e os sistemas ou aplicativos que utilizam os recursos de hardware (processamento, memórias, etc) e que é obtido por meio de software, o sistema de virtualização.

Essa camada, conhecida também como hipervisor (ou virtual machine monitor, cuja sigla é VMM), é que permite a instalação e uso de múltiplos sistemas operacionais (SOs) ou ambientes virtuais, que compartilharão os recursos de hardware que foram reservados e destinados à VM.

Sendo assim, o hipervisor é considerado a base ou o coração do processo de virtualização, já que ele é o responsável por fazer a gestão do ambiente e a alocação dos recursos físicos (CPU, RAM, armazenamento) de cada VM criada para as máquinas virtuais (VMs).

Existem dois tipos principais de hipervisor, de acordo com o hardware disponível e com os usos ou destinações:

Virtualização Bare Metal

Também conhecida como virtualização Tipo 1 ou baseada em hipervisor, é quando o processo ocorre diretamente no hardware físico, o chamado servidor bare metal, uma vez que não há outros softwares e nem mesmo qualquer sistema operacional instalados na máquina física.

Ou seja, o primeiro sistema instalado, é o que permitirá criar os ambientes virtuais e neles instalar o que for necessário.

Esse tipo é mais eficiente em termos de uso dos recursos físicos, pois não há nenhum sistema operacional funcionando de intermediário com o hardware e tampouco há “concorrência” pelo uso dos recursos com esse sistema operacional.

Outro benefício desse tipo, é o controle total que se tem do hardware, já que o sistema está diretamente sobre ele.

É mais comum o seu uso em data centers.

Os principais exemplos de soluções para esse tipo, são o VMware ESXi, o Microsoft Hyper-V e o Xen, KVM.

Virtualização Hosted

Também conhecida como virtualização Tipo 2 ou baseada em hospedagem, o sistema responsável pela virtualização, roda sobre um sistema operacional (ex.: Windows, Linux) e, portanto, é como qualquer outro programa sendo executado a partir do sistema operacional principal da máquina.

Esse tipo de virtualização é mais comum em ambientes destinados a testes e desenvolvimento de software.

Como é de se supor, geralmente o desempenho costuma ser pior, pois o sistema operacional onde está instalado, representa uma camada de intermediação entre a VM e o hardware.

Os exemplos mais populares desse tipo, são o VMware Workstation e Oracle VirtualBox.

Criação de Máquinas Virtuais (VMs)

Uma vez que as máquinas virtuais são criadas, em quaisquer dos tipos vistos, elas funcionam como um ambiente isolado, no qual se pode instalar um sistema operacional convidado (ex.: Windows, Linux), o qual conseguirá utilizar os recursos físicos necessários, por meio do hipervisor.

Nessa etapa, o ambiente terá disponíveis também, os chamados discos virtuais que simulam HDs e que aparecem como arquivos como .vmdk ou .qcow2 e que é dentro de onde estarão na verdade, todos os arquivos do sistema instalado.

Alocação de Recursos

A etapa seguinte, consiste do hipervisor distribuir os demais recursos do hardware físico entre as VMs:

  • CPU – pode alocar e destinar os núcleos físicos do processador do hardware virtualizado ou usar virtualização por meio de recursos específicos do processador (tecnologias Intel VT-x e AMD-V);

  • Memória RAM – a memória RAM usada em cada VM, pode ser alocada dinamicamente, ou seja, de acordo com a demanda, ou então de forma reservada por parte do hipervisor;

  • Armazenamento e rede – são criados discos virtuais dentro do espaço anteriormente reservado, bem como adaptadores de rede virtuais e que consiste de simular o funcionamento de placas de rede físicas (NICs ou Network Interface Card) em um computador ou servidor.

Isolamento e Segurança

Outro aspecto essencial no funcionamento das máquinas virtuais, é o isolamento de tal forma, que as VMs criadas não interferem umas nas outras.

Em outras palavras, tanto o funcionamento, quantos os eventuais problemas que ocorrem em uma, não afetam o funcionamento das demais. Ou seja, graças ao isolamento das VMs, ao mesmo tempo que é possível ter uma comprometida por um ataque malicioso, ter outra totalmente íntegra, segura e funcional.

Para que isso seja possível, o hipervisor gerencia o acesso direto ao hardware, evitando conflitos e interferência mútua de cada ambiente virtual.

Snapshots e Migração

Outra funcionalidade essencial, são os snapshots e cuja função é permitir uma restauração rápida da VM, se algum problema afetar seu funcionamento.

Pode ser visto como uma espécie de backup de estado da máquina virtual.

Isso porque, um snapshot (foto instantânea, em tradução literal) nada mais é, do que uma cópia de todas as condições exatas (estado) de uma máquina virtual, em um determinado momento e que inclui:

  • Memória RAM (estado atual dos processos);

  • Configurações do sistema (CPU, rede, discos);

  • Dados do disco virtual (arquivos, sistemas operacionais, aplicativos).

É a partir desse conjunto de informações, que é possível restituir um ambiente virtual a uma mesma condição anterior a ocorrência de um problema.

Outra possibilidade, é efetuar a migração da VM para outro servidor físico e continuar seu uso / funcionamento, sem que a VM fique offline (sem downtime).

Exemplos de usos de virtualização

O desenvolvimento e popularização da virtualização, permitiu uma série de usos práticos, sendo que é bastante comum encontrarmos ambientes virtualizados.

Eis alguns dos exemplos mais comuns:

  • VPS – uma das implementações mais conhecidas e populares, graças à virtualização, são os servidores VPS, conforme já mencionamos, possibilitando dispor de um ambiente exclusivo, privado e poderoso, mas por um custo inferior aos servidores dedicados, entre outras vantagens;

  • Testes – a característica de isolamento, permite criar ambientes de testes independentes do sistema principal;

  • Computação em nuvem – outro exemplo que consta entre os mais populares, é a computação em nuvem (cloud computing), a qual entre muitas possibilidades, permite obter infraestrutura sob demanda (Google Cloud, AWS, Microsoft Azure, etc);

  • Virtualização de Desktop – é possível rodar sistemas operacionais diferentes em um mesmo computador, sem que seja necessário um segundo computador, para diferentes usos e propósitos;

  • CloudLinux – já há sistemas operacionais que incorporam recursos de virtualização e que são muito úteis para determinados usos, como é o caso do CloudLinux e que consiste de uma distribuição Linux bastante usada em infraestrutura de hospedagem de sites;

  • Contêineres – os contêineres, como o Docker, por exemplo, são ambientes isolados, os quais contêm tudo o que é necessário para executar uma aplicação, ou seja, neles estão contidos o código da aplicação, as bibliotecas e as configurações necessárias;

  • Microserviços – a virtualização contribui para criar tantos microserviços quantos forem necessários, os quais por sua vez, consistem de uma abordagem pela qual uma aplicação maior, pode é dividida em serviços independentes e menores, sendo que cada um é responsável por função específica;

  • Armazenamento – muito útil para quando é necessário armazenar elevados volumes de dados, pois agrega vários dispositivos de armazenamento em um único recurso lógico, ou seja, o sistema “enxerga” várias unidades de armazenamento, físicas e independentes, como se fosse uma só;

  • Rede de computadores – nesse tipo de utilização, a abstração ocorre em relação aos equipamentos (hardware) normalmente necessários e presentes em redes de computadores, como roteadores e switches, passando a serem fornecidos como software.

Vantagens da virtualização

Os muitos usos nos quais a tecnologia está presente, já seriam suficientes para concluirmos sobre os benefícios que ele entrega, mas em termos mais objetivos, podemos listar as seguintes vantagens:

  • Otimização – é possível ter um uso mais otimizado do hardware disponível, com um melhor aproveitamento de equipamentos que eventualmente estejam ociosos;

  • Estabilidade e segurança – o isolamento e a independência dos ambientes virtuais, acarreta maior estabilidade e segurança de cada VM;

  • Redução de custos – ao se conseguir ambientes dedicados e máquinas virtuais para as mais diversas finalidades, bem como pela otimização do hardware disponível, assim como uma maior estabilidade e segurança, ganha-se também na redução de custos;

  • Confiabilidade – a facilidade de recuperação e de migração, graças aos snapshots e aliados à estabilidade e segurança maior dos ambientes virtuais, fazem com que os ambientes virtuais sejam mais confiáveis e com melhores índices de uptime;

  • Escalabilidade – além de ser rápido e fácil alocar recursos para a criação de novas VMs, também é mais simples destinar recursos adicionais para as existentes;

  • Administração – os administradores podem criar, modificar e transferir VMs de maneira rápida e com razoável facilidade, de acordo com as necessidades.

Conclusão

A virtualização é uma tecnologia essencial e que viabiliza uma série de situações importantes no quotidiano das empresas e dos usuários finais.

Comentários ({{totalComentarios}})