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 cinco áreas distintas: servidores, storage (armazenamento), network (rede), aplicação e desktops, além dos 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 servidores online entre hardware físicos diferentes, sem desligar a máquina virtual, 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”.
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 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 comercial amplamente adotada foi estabelecido 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 mais automatizadas, 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 múltiplas versões 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 é 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 simultâneo.
A grande utilidade nesse caso é para desenvolvedores, para terem acesso a diferentes versões do sistema operacional para testar o aplicativo. Um exemplo de software para virtualização de Desktop é 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.
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.
5 Comentários
Ótimo artigo, simples e direto…A única queixa que tenho a fazer e a falta de artigos técnicos voltados a profissionais,visto que o nome do site e ProfissionaisTI, alguns artigos são explanados de maneira muito simplória.
Mas de qualquer forma ótimo artigo!!!
Oi Mateus, esse é o primeiro artigo de 7 que escrevi sobre Virtualização. Os demais estarão publicados em breve, fique de olho aqui no PTI.
Otimo artigo Fernando!!!
Embora seja um tanto ultrapassado, porque hoje acredito que muita coisa ja mudou em relação a virtualização, o seu artigo demonstra uma base técnica para que precisa entender e aplicar o conceito virtualização, seja em pequenas ou medias empresas…
Parabéns…
Pingback: O que é virtualização? | Gamma Tecnologia
Ótimo artigo!! Apesar de ter sido escrito há dois anos atrás, me auxiliou bastante no meu curso de TI! Estou no primeiro ano, faço integrado e não tenho muito tempo fazer grandes pesquisas. Ótima base!!!