O que é virtualização e para que serve?

folder_openVirtualização
access_time

6 min

Update 2020: atualização de tecnologias e exemplos

Virtualização (em computação) é a criação de uma versão virtual de alguma coisa, como um sistema operacional, um servidor, um dispositivo de armazenamento (storage) ou recurso de rede.

Funciona dividindo um recurso de hardware físico em partes, que podem ser usadas para fins distintos de forma isolada.

Normalmente o termo virtualização é mais aplicado para virtualização de sistemas operacionais também chamado de virtualização de servidores, onde é instalado um software chamado hypervisor, que permite executar diversos sistemas operacionais ao mesmo tempo.

A tecnologia de virtualização iniciou-se com os mainframes a décadas atrás, mas ganhou força e conhecimento público a partir de 1996, quando a VMware  lançou sua primeira versão de hypervisor para a plataforma x86 (processadores Intel e AMD compatíveis).

Alguns anos depois, a virtualização já era realidade no mundo empresarial, ajudando a TI a ganhar produtividade, economizar recursos de servidores e  melhorando a gestão do ambiente.

No mundo corporativo moderno a virtualização está presente em seis áreas distintas, mas interconectadas pela tecnologia ou método empregado:

  • servidores
  • storage (armazenamento)
  • network (rede)
  • aplicação
  • desktops
  • containers

Virtualização de Servidores ou Virtualização de Sistema Operacional:

A virtualização de servidores permite executar diversos sistemas operacionais simultaneamente no mesmo hardware, que são chamados de máquinas virtuais.

Uma das características é o mascaramento dos recursos físicos (incluindo processadores, quantidade de memória, interfaces de rede), o que facilita a administração de drivers nas máquinas virtuais pois o “hardware virtual” normalmente é padronizado e suportado de fábrica pelos desenvolvedores de sistemas operacionais (Linux, Windows, BSD, etc.).

Outro ganho é a possibilidade de transferir uma máquina virtual entre servidores físicos diferentes sem se preocupar com o hardware (normalmente apenas copiando os arquivos da máquina virtual), e até a possibilidade de migrar a máquina virtual entre hardwares físicos diferentes sem desligar a mesma, técnica chamada de vMotion, XenMotion ou Live Migration, dependendo do fabricante.

O hypervisor em si roda sobre um sistema operacional que tem todos os drivers para suportar o hardware, mas ele abstrai toda essa camada para o sistema operacional “hospedado”, ou seja, da máquina virtual.

Algumas versões otimizadas de hypervisor não tem nem interface gráfica, para aproveitar ao máximo os recursos do hardware.

Os principais hypervisors da atualidade para virtualização de servidores são: VMware vSphere (ESX), Microsoft Hyper-V, Citrix XenServer, Oracle Virtual Box, RedHat KVM e o Parallels para MacOS.

Na Amazon AWS as máquinas virtuais rodam sobre os recursos de EC2 (Elastic Compute Cloud), enquanto que na Microsoft Azure são chamadas de Virtual Machines e no Google Cloud são chamadas de Instâncias.

Virtualização de Storage

A virtualização de storage se aplica normalmente a equipamentos específicos, conhecidos como Storages, o que permite que múltiplos equipamentos sejam reconhecidos e gerenciados como um só.

Normalmente também acompanha recursos avançados, como a abstração dos HDs dentro desses equipamentos, permitindo movimentar os dados entre tipos de HDs diferentes ou RAIDs diferentes, para aumentar a performance ou espaço disponível conforme necessidade.

Ainda em virtualização de Storage, outra funcionalidade é a possibilidade de usar vários hardware físicos como se fosse um único hardware virtual, unindo a capacidade de armazenamento e processamento, o que também facilita a administração do conjunto.

A virtualização de storage ainda pode ser implementada via software, sendo que alguns permitem compartilhar recursos de múltiplos servidores para criar um único pool de armazenamento, aumentando a performance geral e a resiliência contra problemas.

Mais detalhes nessa matéria.

Um exemplo de virtualização de storage via software é o VMware VSAN.

Exemplos de Storages físicos com tecnologia de virtualização são o Dell Equallogic, Dell Compellent, HP EVA, IBM V9000, entre outros.

Na AWS podemos considerar o EBS (Elastic Block Store) como um Storage Virtual, pois ele tem as características de expandir tamanho e ajustar performance sob demanda, mascarando o hardware existente.

Também, algumas implementações de Sistemas de Arquivos Distribuídos podem ser considerados Virtualização de Storage, pois colocam uma camada sobre o filesystem original a partir da qual os arquivos podem ser replicados ou distribuídos em vários hardwares, sendo que a aplicação que consumir esses arquivos verá apenas um filesystem normal.

Exemplos de Filesystems distribuídos são o GlusterFS , o Ceph e o AWS S3.

Virtualização de Rede

A virtualização de rede consiste em separar uma camada física de rede (um conector ou cabo por exemplo) em diversas camadas lógicas, isoladas entre si, para fins distintos.

A primeira implementação amplamente adotada foi estabelecida pelo IEEE 802.1q, comercialmente chamada de VLAN.

Ela permite a criação de diversas camadas dentro de uma rede física, que podem ser propagadas entre os switches, isolando e priorizando tráfegos específicos, como VoIP, sistemas críticos de banco de dados e rede de backup.

Com o advento das placas de 10Gbits e 40Gbits, se popularizou uma técnica chamada de partition por alguns fabricantes, que consiste em dividir logicamente essas interfaces em várias camadas, que aparecem para o sistema operacional como interfaces de redes distintas.

Cada interface do partition pode ter uma parte da banda reservada, com endereçamento físico exclusivo, o que permite a criação do que é chamado de infraestrutura de rede convergente.

Além da capacidade de divisão da rede física em camadas lógicas, existem novas implementações que visam facilitar a gerência dessas redes, abstraindo todo o tráfego dos switches e transferindo a configuração para interfaces de forma mais automatizada, como o VMware NSX.

Virtualização de Aplicação

Na virtualização de aplicação, uma camada de software instalado entre o sistema operacional e a aplicação virtualizada fica responsável pela abstração do sistema operacional, bibliotecas e drivers.

O principal uso da virtualização de aplicações é para evitar a necessidade de instalação do aplicativo e a necessidade de validar todas as bibliotecas necessárias para a execução do mesmo.

Um aplicativo virtualizado normalmente é empacotado em um único arquivo, chamado de conteiner, que contém todas as bibliotecas necessárias para executar aquele aplicativo e permite executar em computadores diferentes sem a necessidade de instalar todas as bibliotecas.

A virtualização de aplicativos também permite a coexistência de versões diferentes do mesmo aplicativo ao mesmo tempo no mesmo computador, por exemplo, por questões de compatibilidade de sites, algumas empresas precisam executar uma versão específica e antiga do Internet Explorer.

Usando a virtualização de aplicativos é possível configurar para que a URL daquele site execute uma versão do Internet Explorer virtualizada, enquanto que as estações podem ser atualizadas para sempre rodar a última versão nos demais sites, garantindo a segurança.

Exemplos de software para virtualizar aplicativos: VMware ThinApp e Citrix XenApp.

Virtualização de Desktops

A virtualização de Desktops não é muito diferente da virtualização de Sistema Operacional, consiste em executar o sistema operacional do Desktop (Windows 10 por exemplo) em uma máquina virtual.

Pode ser executada dentro do próprio computador do usuário, mas isso exige que o computador tenha maiores recursos de CPU, espaço em disco e memória para permitir executar dois ou mais sistemas operacionais em simultâneo.

A grande utilidade nesse caso é para desenvolvedores, para terem acesso a diferentes versões do sistema operacional para testar o aplicativo. Exemplos de software para virtualização de Desktop são o VMware Workstation e VMware Player.

Normalmente no ambiente empresarial a virtualização de Desktops é executada nos servidores, ou seja, o sistema operacional é executado no Datacenter e o usuário final tem um hardware do desktop “cliente” mais modesto, como um Thinclient ou um Chromebook.

A vantagem nesse caso é o ganho de performance dos desktops (que podem ser executados em servidores de alta performance e com maior conectividade), melhora na gerência, centralização dos recursos, melhora na segurança, conectividade em qualquer lugar, compatibilidade com dispositivos móveis como tablets e smartphones, entre outras.

Exemplos de softwares para fazer virtualização de Desktops são o VMware Horizon View e o Citrix Xen Desktop.

O Windows Terminal Services ou Windows Remote Desktop Services também pode ser considerado uma forma de virtualização de Desktop, embora ele execute por padrão sobre um sistema operacional de servidor, o que pode limitar sua aplicabilidade.

“Conteinerização”

Containers” são aplicativos que executam em ambientes isolados dentro de um sistema operacional. São uma forma mais avançada de Virtualização de Aplicação.

Os softwares que fazem gestão de containers isolam os componentes do sistema operacional, tais como CPU, memória e arquivos de disco e oferecem para a Aplicação um ambiente separado e minimalista com as características que a mesma precisa para executar.

Por exemplo, em um ambiente Windows, um container pode oferecer um diretório distinto do c:\windows\system para uma aplicação que precisa de versões específicas de uma DLL que poderia conflitar com as bibliotecas existentes no sistema operacional nativo.

São muito utilizados em ambientes de desenvolvimento, pois, assim como a Virtualização de Aplicações, facilitam a instalação de múltiplas versões de aplicativos, ideal para executar testes durante o desenvolvimento e criar ambientes de homologação sem a complexidade de instalar diferentes softwares.

A grande diferença entre Containers e Virtualização de Aplicação é que as soluções de Containers normalmente incluem técnicas para satisfazer as bibliotecas necessárias para rodar as aplicações automaticamente.

Exemplos de aplicativos para gerenciar Containers são o Docker e o Vagrant.

Conclusão

A virtualização já é uma realidade dentro das empresas, software houses e até mesmo em ambientes domésticos, pois permite a automatização de processos, facilidade de gerenciamento, uso adequado de recursos e a possibilidade de contabilizar exatamente quanto cada usuário ou departamento utiliza dos recursos computacionais.

O objetivo principal da virtualização é centralizar tarefas administrativas, conseguir escalabilidade de aplicações, responder mais rápido às necessidades do negócio e facilitar a vida dos gestores de TI e administradores de redes, storages e servidores.

A virtualização de servidores junto com capacidade de conexão da Internet é uma peça chave para a adoção da computação em nuvem pelas empresas.

Related Posts

Menu