O que é virtualização?

A virtualização de componentes de hardware, software, de armazenamento e de rede permitem que recursos de TI possam ser abstraídos, para que sejam mais bem utilizados.

Definição de virtualização

A virtualização abstrai recursos físicos da tecnologia da informação (TI), para que eles possam ser distribuídos de forma mais flexível, de acordo com cada necessidade, garantindo a melhor utilização possível destes mesmos recursos. Tanto componentes de hardware quanto componentes de software podem ser abstraídos. Já componentes criados a partir de um processo de virtualização costumam ser chamado de componentes virtuais ou lógicos — eles funcionam da mesma forma que o seu equivalente físico.

Uma das principais vantagens da virtualização é sua camada de abstração, localizada entre o recurso físico e a imagem virtual. Ela serve de base para diferentes tipos de serviços de nuvem, cada vez mais importantes no mundo dos negócios. Apesar de compartilharem semelhanças, também é importante que você entenda que virtualização é diferente de simulação e de emulação.

Diferença entre virtualização, simulação e emulação

Qualquer pessoa que estude ou trabalhe com virtualização inevitavelmente se deparará com os termos “simulação” e “emulação”. Geralmente considerados sinônimos, eles são tecnicamente diferentes, além de também divergirem do conceito de virtualização:

  • Simulação: Diz-se da replicação completa do comportamento de um sistema por um software. Dizemos “completa”, pois não somente funções de interação com outros sistemas são imitadas, mas todos os componentes do sistema simulado, assim como a lógica interna. Simuladores costumam ser usados para compilar, em um sistema de teste, programas desenvolvidos para um sistema específico, antes que estes sejam implementados de fato.
  • Emulação: Enquanto a simulação tem por objetivo imitar sistemas, a emulação concentra-se em replicar fielmente componentes de hardware e de software de um sistema, mas não a lógica interna. O objetivo de um processo de emulação é obter exatamente os mesmos resultados que seriam alcançados por o sistema simulado, ou seja, pela contraparte real. Assim, diferentemente de simuladores, emuladores são capazes de substituir completamente o sistema emulado.

Na prática, simuladores e emuladores são comumente usados em três situações:

  • Ambientes de hardware costumam ser simulados/emulados para que possam executar sistemas operacionais desenvolvidos para uma plataforma com um processador diferente.
  • Sistemas operacionais são simulados/emulados para que possam executar aplicações que, na verdade, foram desenvolvidas para outros sistemas operacionais.
  • Ambientes de hardware para softwares obsoletos são simulados/emulados quando componentes originais não se encontram mais disponíveis.

Soluções de software que simplesmente oferecem uma camada de compatibilidade para superar incompatibilidades entre componentes de hardware e software não devem ser consideradas emuladores nem simuladores, já que elas não replicam um sistema inteiro, mas apenas parte dele, como uma interface, por exemplo. Entre as soluções que oferecem camadas de compatibilidade estão o Wine (acrônimo de Wine Is Not an Emulator) e o Cygwin.

Funcionamento da virtualização

Apesar de o conceito de virtualização aproximar-se dos conceitos de simulação e emulação, a virtualização tem uma finalidade diferente. Simuladores e emuladores implementam um modelo de sistema de computador por meio de um software, para que incompatibilidades sejam eliminadas. Na virtualização, por outro lado, espera-se que o mínimo possível precise ser simulado ou emulado. Na prática, tecnologias de virtualização devem somente ocupar-se de estabelecer uma camada de abstração que seja capaz de disponibilizar recursos de TI independentemente de uma base física.

Por exemplo, se uma ou mais versões virtuais do Windows 10 tiverem de ser executadas, para fins de teste, em um computador que também usa o sistema operacional Windows 10, um software de virtualização pode ser uma alternativa. No entanto, se você quiser iniciar duas versões virtuais do Ubuntu em um computador Windows, precisará de um software de virtualização capaz de superar incompatibilidades entre os sistemas Windows e Linux, o tendo que recorrer a um processo de emulação.

Em contextos de virtualização, diversas soluções de software são usadas em combinação com emuladores, o que significa que essas tecnologias podem ser combinadas.

Tecnologias de virtualização

No atual contexto de tecnologia da informação, diversas formas de virtualização podem ser realizadas, como abstrações de recursos de software, de memória, de dados e de componentes de rede. Por esse motivo, algumas distinções são feitas:

  • Virtualização de hardware
  • Virtualização de software
  • Virtualização de armazenamento
  • Virtualização de dados
  • Virtualização de rede

Virtualização de hardware

O termo virtualização de hardware faz referência a tecnologias de software que oferecem componentes de hardware independentes de uma base física. O principal exemplo prático de virtualização de hardware é a máquina virtual (VM).

Uma máquina virtual nada mais é que um computador virtual que se comporta, com o usuário final, como um computador físico, composto de um hardware e de um sistema operacional. Em virtualizações de hardware, hipervisores são os responsáveis por criar a camada de abstração entre a base física e o sistema virtual.

Nota

O hipervisor, também chamado de monitor de máquina virtual (VMM), é o software que possibilita a operação de vários sistemas convidados em um sistema host.

Hipervisores gerenciam os recursos de hardware fornecidos pelo sistema host, como o CPU, a memória RAM, o espaço em disco rígido e os periféricos, dividindo-os entre os sistemas convidados. Tecnicamente, o processo pode ser feito tanto por virtualização completa quanto por paravirtualização.

  • Virtualização completa: Em uma virtualização completa, o hipervisor disponibiliza um ambiente de hardware completo para cada máquina virtual. Nela, cada VM recebe o próprio contingente de recursos de hardware virtual, por meio do hipervisor, podendo executar aplicações a partir desse processo. O hardware físico do sistema host, contudo, permanece oculto para o sistema operacional convidado, o que possibilita a operação de sistemas convidados não modificados. Os softwares mais populares que realizam virtualizações completas são o Oracle VM VirtualBox, o Parallels Workstation, o VMware Workstation, o Microsoft Hyper-V e Microsoft Virtual Server.
  • Paravirtualização: A virtualização completa fornece um ambiente de hardware virtual próprio para cada VM. Já em um processo de paravirtualização, o hipervisor disponibiliza apenas uma interface de programação de aplicações (API). É por meio dela que os sistemas operacionais convidados acessam o hardware físico do sistema host, fato que confere à paravirtualização um melhor desempenho quando comparada à virtualização completa. Entretanto, para que uma paravirtualização seja possível, o núcleo (kernel) do sistema operacional convidado tem de ser portado para a API. Consequentemente, somente sistemas convidados modificados podem ser paravirtualizados.

Usuários finais não conseguem distinguir máquinas virtuais de computadores físicos. Assim sendo, a virtualização de hardware costuma ser a tecnologia utilizada para disponibilizar um grande número de servidores virtuais a diferentes usuários que necessitam de uma plataforma computacional de alto desempenho — essa é, inclusive, a descrição do conceito do popular modelo de hospedagem compartilhada.

Nota

Na hospedagem compartilhada, o provedor de hospedagem opera e mantém a máquina física em um centro de dados otimizado para essa finalidade, oferecendo aos usuários recursos de hardware virtualizados como sistemas convidados independentes.

Também é comum que empresas façam uso de virtualizações de hardware para consolidar servidores em ambientes corporativos. O processo oferece três grandes vantagens:

  • Melhora a utilização do processador do servidor.
  • Distribui mídias de armazenamento de forma mais eficaz.
  • Consome menos energia na operação e no resfriamento.

A virtualização de hardware é uma tecnologia de virtualização comparativamente segura, já que cada sistema convidado é executado isoladamente pelo próprio ambiente de hardware virtual. Assim, se um dos sistemas convidados for infiltrado por hackers ou tiver suas funções prejudicadas por um malware, o fato muito provavelmente não prejudicará os demais sistemas convidados que compartilham o mesmo sistema host.

Vantagens e desvantagens da virtualização de hardware:

Vantagens Desvantagens
No contexto da consolidação de servidores, recursos de hardware podem ser alocados dinamicamente e utilizados com mais eficiência. A replicação de um ambiente de hardware com o respectivo sistema operacional pode gerar sobrecargas.
Hardwares consolidados são operados com mais eficiência energética do que computadores individuais. O desempenho de uma máquina virtual pode ser prejudicado por outras máquinas virtuais em um mesmo sistema host.
VMs oferecem graus comparativamente altos de isolamento, isolando cargas de trabalho de maneira relativamente segura.

Virtualização de software

Em uma virtualização de software, componentes de software são virtualizados, ao invés de componentes de hardware. Geralmente, virtualizações de software servem à:

  • Virtualização de aplicações
  • Virtualização de desktops
  • Virtualização de sistemas operacionais

Virtualização de aplicações

A virtualização de aplicações abstrai aplicações individuais do sistema operacional subjacente, possibilitando a execução de programas em ambientes de tempo de execução isolados e a distribuição destes para diferentes sistemas, sem que o sistema operacional ou os arquivos locais dos respectivos registros tenham de ser alterados.

Virtualizar aplicações é ideal para o uso local, por exemplo, para proteger o sistema operacional subjacente de possíveis códigos maliciosos. Alternativamente, aplicações virtualizadas podem ser fornecidas, em um servidor, para vários clientes em uma rede. Em casos assim, usuários finais conseguem acessar as aplicações virtualizadas por application streaming, por exemplo. O encapsulamento de aplicações, incluindo de ambientes de tempo de execução, também permite que programas sejam copiados para mídias de armazenamento portáteis (como para pen drives) e nelas executados.

O objetivo da virtualização de aplicações é dissociar programas do sistema operacional subjacente, para que estes possam ser portados e mantidos de forma centralizada. Em contextos corporativos, o conceito é ideal para a disponibilização de aplicações Office.

Vantagens e desvantagens da virtualização de aplicações

Vantagens Desvantagens
Softwares de aplicações podem ser implantados, gerenciados e mantidos de forma centralizada. Aplicações totalmente integradas a sistemas operacionais ou que exigem acesso a drivers de dispositivos especiais não podem ser virtualizadas.
Ao isolar aplicações, o sistema subjacente fica protegido contra códigos maliciosos. A virtualização de aplicações levanta questões relacionadas a licenciamentos.
O software pode ser removido do sistema sem deixar resíduos.

Virtualização de desktops

A virtualização de desktops disponibiliza ambientes de desktop de forma centralizada, podendo estes serem acessados por rede. Em especial, essa abordagem é amplamente utilizada em contextos corporativos.

Virtualizações de desktops são baseadas em estruturas cliente-servidor, nas quais dados são transferidos, entre o servidor e o cliente, por protocolos de exibição remota. Dependendo de onde o poder de computação for usado para a disponibilização de um desktop virtual, uma distinção entre a abordagem baseada em host e a abordagem baseada no cliente será feita.

  • Virtualização de desktops baseada em host: A virtualização de desktops baseada em host abarca todas as abordagens que executam desktops virtuais diretamente no servidor. Nesse tipo de virtualização, toda capacidade de computação para o fornecimento de um ambiente de desktop e para a execução de uma aplicação é disponibilizada pelo hardware deste mesmo servidor. Usuários podem acessar desktops virtuais baseados e host por qualquer dispositivo cliente conectado à rede. A virtualização de desktops baseada em host pode ser implementada por meio das seguintes abordagens:
    • Máquina virtual baseada em host: Nessa abordagem de virtualização, cada usuário se conecta à sua própria máquina virtual no servidor, por meio de um dispositivo cliente. Aqui, dois conceitos aparecem: o de virtualização de desktop persistente, no qual usuários se conectam à mesma VM a cada sessão, e o de virtualização não persistente, no qual máquinas virtuais são alocadas aleatoriamente a cada sessão.
    • Serviço de terminal: Quando um cliente é usado somente como dispositivo de exibição para ambientes de desktop centralmente hospedados, ele ganha o nome de serviço de terminal, também chamado de virtualização de apresentação. Esse tipo de serviço é fornecido por um servidor de terminal.
    • Servidor blade: Se usuários finais tiverem de acessar remotamente máquinas físicas individuais, eles devem fazer uso de um servidor blade: servidor modular ou gabinete de servidor que contém vários computadores de placa única, chamados blades.
  • Virtualização de desktop baseada no cliente: Na virtualização de desktop baseada no cliente, os recursos necessários para a operação do ambiente de desktop são fornecidos pelo respectivo dispositivo cliente.
  • Máquinas virtuais baseadas no cliente: Nessa abordagem de virtualização, que geralmente faz uso de um hipervisor, o ambiente de desktop é executado em uma máquina virtual no dispositivo cliente.
  • Transmissão de sistema operacional: Na abordagem de transmissão de sistema operacional, o sistema operacional do ambiente de desktop é executado pelo hardware local. Somente o processo de inicialização é realizado remotamente no servidor, por meio de uma imagem.

Vantagens e desvantagens da virtualização de desktops

Vantagens Desvantagens
A virtualização de desktops permite que ambientes de desktop sejam administrados remotamente. Ela é mais adequada a infraestruturas homogêneas.
Usuários podem acessar desktops virtuais por diferentes dispositivos finais. Algumas abordagens exigem uma conexão de rede constante.
A virtualização de desktops permite a realização de backups centrais. Servidor, capacidade de armazenamento e largura de banda possuem altas demandas.

Virtualização de sistemas operacionais

A virtualização de sistemas operacionais baseia-se em funções nativas do kernel de sistemas operacionais unixóides para executar, paralelamente, várias instâncias isoladas do espaço do usuário. Ao contrário do que ocorre na virtualização de hardware, na virtualização de sistemas operacionais nenhum sistema convidado completo e nem o kernel são replicados. Pelo contrário: aplicações virtualizadas no nível do sistema operacional compartilham o kernel do sistema host.

Nota

Por questão de segurança, sistemas operacionais modernos fazem distinção entre memórias virtuais relativas ao espaço do kernel e relativas ao espaço do usuário. Enquanto processos usados para operar o kernel e outros componentes principais são executados no espaço do kernel, o espaço do usuário é disponibilizado às aplicações dos usuários. Em sistemas operacionais unixóides, várias instâncias virtuais do espaço do usuário podem ser executadas em paralelo — recurso base da virtualização de sistemas operacionais.

Cada instância de espaço do usuário representa um ambiente de tempo de execução virtual autônomo, chamado de jail ou de container, partition, virtualization engine (VE), a depender da tecnologia utilizada. Graças à virtualização de sistemas operacionais, plataformas de contêineres, como o Docker, puderam se reinventar. Hoje em dia, existem alternativas tão robustas quanto o Docker para a virtualização de contêineres. Entre elas estão rtk, OpenVZ/Virtuozzo e runC.

Instâncias de espaço do usuário são geralmente virtualizadas por mecanismos como o chroot, disponíveis em sistemas operacionais unixóides. Chroot (abreviação de change root) é uma chamada de sistema que possibilita a alteração do diretório raiz de um processo em execução. Processos terceirizados a um diretório raiz virtual só conseguem acessar arquivos dentro desse mesmo diretório quando implementados corretamente. Por outro lado, o chroot sozinho não é capaz de encapsular processos suficientes. Embora ele ofereça funções básicas de virtualização, o mecanismo não foi planejado para proteger processos. Portanto, tecnologias de contêineres devem combinar o chroot a outras funções nativas do kernel, como ao Cgroups ao e namespaces, para disponibilizar aos processos um ambiente de tempo de execução isolado e com acesso limitado aos recursos de hardware — a isso dá-se o nome de processo contêinerizado.

  • Cgroups: Grupos de controle para o gerenciamento de recursos capazes de limitar o acesso de processos a recursos de hardware.
  • Namespaces: Usados para identificar sistemas e processos, bem como para possibilitar a comunicação entre processos e recursos de rede. Namespaces podem ser usados para restringir um processo e os respectivos processos filhos a uma seção específica do sistema subjacente.

Contêineres de software, por sua vez, costumam conter aplicações com todas as respectivas dependências (como bibliotecas, programas auxiliares e arquivos de configuração). Eles permitem que aplicações sejam transferidas de um sistema para outro sem que haja a necessidade de se fazer ajustes adicionais. Justamente por isso, a grande vantagem dos contêineres é a capacidade que eles têm de implementar aplicações em uma rede (deployment).

Quando contêineres são usados no contexto da arquiteturas de microsserviços, usuários também se beneficiam da possibilidade de alta escalabilidade.

Vantagens e desvantagens da virtualização de sistemas operacionais:

Vantagens Desvantagens
A virtualização de sistemas operacionais não requer um hipervisor, estando, por isso, associada a perdas mínimas. A virtualização de sistemas operacionais é voltada para arquiteturas de microsserviços. Se for usada para operar aplicações com estruturas monolíticas, essa tecnologia de contêineres não é vantajosa (por exemplo, em termos de escalabilidade).
Se contêineres forem usados para aplicações que se baseiam na combinação de diferentes microsserviços, usuários se beneficiam da alta escalabilidade. Ao contrário do que ocorre com máquinas virtuais, contêineres são executados diretamente no kernel do sistema operacional host, o que demanda certas condições técnicas. Essa demanda limita a portabilidade dos contêineres: por exemplo, contêineres do Linux não podem ser executados em sistemas Windows sem que haja um processo de emulação.
Contêineres podem ser implementados diretamente, sem que processos de instalação complexos tenham de ser realizados. Contêineres dispõem de bem menos isolamento que VMs. Portanto, virtualizar contêineres não é adequado à implementação de conceitos de segurança.

Virtualização de armazenamento

A virtualização de armazenamento (storage virtualization) mapeia e abstrai os vários recursos físicos de armazenamento utilizados por uma empresa, como unidades de disco rígido, memórias flash e unidades de fita, para disponibilizá-los como um pool de armazenamento único, que tem a vantagem de poder ser administrado centralmente e de ser capaz de distribuir cotas e aplicações.

Apesar de passarem por um processo de virtualização, os dados virtualizados por essa tecnologia continuam podendo ser acessados pelos mesmos caminhos de arquivo, mesmo que o local do armazenamento físico seja eventualmente alterado. Isso ocorre justamente por causa da capacidade de mapeamento e gerenciamento de mídias dos softwares de virtualização de armazenamento, que contam com unidades lógicas, comumente chamadas de volumes.

Em contextos corporativos, a virtualização de armazenamento costuma ser implementada com base em blocos. Em armazenamento em bloco, dados são divididos em blocos de igual tamanho. Cada bloco recebe um endereço exclusivo, que é armazenado pelo software de virtualização na forma de uma tabela de mapeamento central (mapping-table). Na prática, virtualizações baseadas em blocos podem ser implementadas tanto em hosts quanto em dispositivos e redes.

A virtualização implementada em hosts geralmente é utilizada em conjunto com máquinas virtuais. Um sistema host apresenta recursos de armazenamento virtualizados a um ou mais sistemas convidados (como ocorre na virtualização de hardware), criando uma camada de abstração. Já o hardware é acessado diretamente pelos drivers de dispositivo do sistema host.

Ainda, ao ser implementado em host, esse tipo de virtualização não requer um hardware adicional, além de ser compatível com qualquer dispositivo de armazenamento e poder ser configurado com mínimos esforços. A tecnologia também tem melhor desempenho que conceitos concorrentes, pois ela consegue endereçar dispositivos de armazenamento de forma direta, sem latência. Por outro lado, usuários que optam pela virtualização implementada em host devem estar cientes de que ela se limita ao próprio host, o que impossibilita a otimização da utilização do armazenamento.

Matrizes de disco (disk arrays), dispositivos de armazenamento em massa que podem ser usados para disponibilizar discos rígidos em uma rede, também são capazes de virtualizar recursos de armazenamento. Contudo, elas implementam esse tipo de virtualização em dispositivos por meio de esquemas RAID (redundant array of independent disks). Nesse conceito de armazenamento de dados, várias unidades físicas são combinadas para que uma plataforma de armazenamento virtual seja formada.

Dica

Se você quer saber mais sobre matrizes de disco e esquemas RAID, acesse o nosso artigo especializado sobre NAS (network attached storage).

Virtualizações de armazenamento baseadas em dispositivos também apresentam bons índices de desempenho, graças à baixa latência de E/S (entrada/saída) — além das matrizes de disco que devem ser conectadas, outros componentes de hardware não se fazem necessários.

A virtualização de armazenamento implementada em rede é particularmente adequada a situações em que recursos de armazenamento de sistemas heterogêneos devem ser combinados em um único pool de armazenamento virtual. Em contextos corporativos, essa abordagem geralmente é implementada como parte de uma SAN (storage area network).

Vantagens Desvantagens
Recursos físicos de armazenamento são utilizados com mais eficiência. A virtualização de armazenamento vem sempre associada a uma sobrecarga, que resulta da necessidade de se gerar e processar metadados.
Recursos de armazenamento físico combinados em uma unidade lógica podem ser gerenciados de forma centralizada. O processamento de solicitações de E/S pode se tornar um gargalo em situações de intensa utilização, tornando todo o sistema de armazenamento mais lento.

Virtualização de dados

A virtualização de dados combina várias tecnologias de virtualização em um contexto de análise de data warehouse. Ela tem como objetivo fornecer, às aplicações, acesso a dados abstraídos de condições físicas. Para tanto, a virtualização de dados cria uma cópia mestre, que nada mais é que uma imagem virtual de todo o banco de dados.

Pode-se afirmar, portanto, que a virtualização de dados é um conceito de integração de informações. Diferentemente do processo de ETL (E xtract, T ransform, L oad), que é usado para integrar informações extraindo dados de fontes com diferentes estruturas e padronizando os formatos para serem armazenados no banco de dados de destino, a virtualização de dados permite que dados de diferentes fontes sejam lidos e manipulados sem que estes precisem ser fisicamente movidos (eles permanecem nos locais de origem). Na virtualização de dados, dados são integrados somente em nível virtual, o que possibilita acessos em tempo real.

Vantagens e desvantagens da virtualização de dados:

Vantagens Desvantagens
Reduz requisitos de armazenamento em cópias de dados físicos. Diferentemente da abordagem de data warehouse, a virtualização de dados não é adequada para registrar e armazenar instantâneos históricos de um conjunto de dados.
Extrações demoradas de dados (por exemplo, por ETL) não são necessárias. Novas fontes de dados podem ser conectadas por meio de ferramentas de business intelligence (BI) de autoatendimento, mesmo por quem não tem conhecimentos técnicos específicos.
Dados virtualizados podem ser processados por diferentes ferramentas de gerenciamento de dados.

Virtualização de rede

A virtualização de rede adota diferentes abordagens para que os recursos de uma rede possam ser abstraídos de suas bases físicas, tanto em nível de hardware quanto em nível de software. Na maioria das vezes, esse tipo de virtualização é usado em contextos de conceitos de segurança, para dois objetivos principais:

  • Combinar recursos físicos de rede em uma unidade lógica, por um processo de virtualização.
  • Dividir recursos físicos de rede em várias unidades virtuais, por um processo de virtualização.

Um exemplo prático de virtualização de rede é a VPN (virtual private network), que nada mais é que uma rede virtual baseada em uma rede física. Na prática, VPNs são usadas para o estabelecimento de conexões seguras em linhas inseguras — por exemplo, para que um funcionário externo acesse, pela internet, a rede privada da empresa onde trabalha.

Outro conhecido exemplo de virtualização de rede é a VLAN (virtual local area network): sub-rede virtual baseada em uma rede física de computadores.

O conceito de SDN (software-defined networking) permite que recursos de uma rede virtual sejam controlados de forma centralizada, sem que os componentes da rede física precisem ser acessados manualmente. Para tanto, ele dissocia o plano de controle virtual (control plane) do plano da rede física, responsável por encaminhar pacotes de dados (data plane).

Vantagens e desvantagens da virtualização de rede:

Vantagens Desvantagens
Economiza custos pela utilização múltipla da infraestrutura da rede física. A operação de várias sub-redes virtuais por uma rede física exige componentes de hardware de alto desempenho.
Recursos de rede podem ser gerenciados de forma centralizada, facilmente dimensionados e alocados dinamicamente em nível virtual. Em alguns casos, ela exige uma infraestrutura de rede física redundante para garantir a flexibilidade.
A virtualização de rede abarca várias abordagens interessantes à implementação de conceitos de segurança em nível de rede e no lado do software, fazendo isso de forma mais econômica.
Este artigo foi útil?
Para melhorar a sua experiência, este site usa cookies. Ao acessar o nosso site, você concorda com nosso uso de cookies. Mais informações
Page top