Virtualização

menu icon

Virtualização

A virtualização é um processo que permite a utilização mais eficiente do hardware físico do computador e é a base da computação em cloud.

O que é virtualização?

A virtualização usa software para criar uma camada de abstração sobre o hardware do computador que permite que os elementos de hardware de um único computador, como processadores, memória, armazenamento e muito mais, sejam divididos em vários computadores virtuais, comumente chamados de máquinas virtuais (VMs). Cada VM executa seu próprio sistema operacional (SO) e se comporta como um computador independente, apesar de estar em execução em apenas uma parte do efetivo hardware de computador subjacente.

Conclui-se que a virtualização possibilita uma utilização mais eficiente do hardware físico do computador e permite um maior retorno sobre o investimento da empresa em hardware.

Nos dias de hoje, a virtualização é uma prática padrão na arquitetura de TI corporativa. É também a tecnologia que impulsiona a economia da computação em cloud. A virtualização possibilita que os provedores de cloud atendam aos usuários com seu hardware físico de computador existente, permite que usuários da cloud adquiram apenas os recursos de computação que precisam, quando precisam e que ajustem a escala desses recursos com uma boa relação custo-benefício à medida que suas cargas de trabalha aumentam.

Para obter uma visão geral adicional de como a virtualização funciona, veja nosso vídeo "Virtualização explicada" (5:20):

Benefícios da virtualização

A virtualização traz vários benefícios aos operadores de data centers e provedores de serviços:

  • Eficiência de recursos: Antes da virtualização, cada servidor de aplicativos necessitava de sua própria CPU física dedicada. A equipe de TI teria que comprar e configurar um servidor separado para cada aplicativo que desejavam executar. (A TI preferia um aplicativo e um sistema operacional (SO) por computador por motivos de confiabilidade.) Invariavelmente, cada servidor físico seria subutilizado. Em contraste, a virtualização do servidor permite executar vários aplicativos, cada um em sua própria VM com seu próprio SO, em um único computador físico (geralmente um servidor x86) sem sacrificar a confiabilidade. Isso possibilita aproveitar ao máximo a capacidade de computação do hardware físico.
  • Gerenciamento facilitado: Substituir computadores físicos por VMs definidas por software facilita o uso e o gerenciamento de políticas escritas em software. Isso permite a criação de fluxos de trabalho automatizados de gerenciamento de serviços de TI. Por exemplo, ferramentas automatizadas de implementação e de configuração permitem que os administradores definam coleções de máquinas virtuais e aplicativos como serviços, em modelos de software. Isso significa que eles podem instalar esses serviços de maneira repetida e consistente sem configurações manuais complicadas, demoradas e propensas a erros. Os administradores podem usar políticas de segurança de virtualização para designar determinadas configurações de segurança com base na função da máquina virtual. As políticas podem até aumentar a eficiência de recursos ao desativar máquinas virtuais não utilizadas para economizar espaço e capacidade de computação.
  • Mínimo tempo de inatividade: Travamentos de SO e de aplicativos podem causar tempo de inatividade e interferir na produtividade do usuário. Os administradores podem executar várias máquinas virtuais redundantes ao lado umas das outras e executar failover entre elas quando surgirem problemas. A execução de vários servidores físicos redundantes é mais caro.
  • Provisionamento mais rápido: Comprar, instalar e configurar hardware para cada aplicativo é demorado. Contanto que o hardware já esteja no local, o provisionamento de máquinas virtuais para executar todos os seus aplicativos é significativamente mais rápido. É até mesmo possível automatizá-lo usando software de gerenciamento e desenvolvê-lo em seus fluxos de trabalho existentes.

Para uma análise mais aprofundada sobre os potenciais benefícios, consulte "5 Benefícios da virtualização".

Soluções

Várias empresas oferecem soluções de virtualização que abrangem tarefas específicas de data center ou cenários de virtualização de desktop focados no usuário final. Exemplos mais conhecidos incluem o VMware, que especializa-se em virtualização de servidor, área de trabalho, rede e armazenamento. O Citrix, que tem um nicho em virtualização de aplicativos, mas também oferece soluções de virtualização de servidor e de desktop virtual. A Microsoft, cuja solução de virtualização Hyper-V é fornecida com o Windows e foca em versões virtuais de computadores de servidor e desktop.

Máquinas virtuais (VMs)

As máquinas virtuais (VMs) são ambientes virtuais que simulam um computador físico em forma de software. Elas normalmente compreendem vários arquivos contendo a configuração da VM, o armazenamento para o disco rígido virtual e algumas capturas instantâneas da VM que preservam o seu estado em um determinado ponto no tempo.

Para uma visão geral completa de VMs, consulte "O que é uma máquina virtual?"

Hypervisores

Um hypervisor é a camada de software que coordena VMs. Ele serve como uma interface entre a VM e o hardware físico subjacente, garantindo que cada um tenha acesso aos recursos físicos que precisa para executar. Ele também garante que as VMs não interfiram umas nas outras ao invadir o espaço de memória ou ciclos de computação uma da outra.

Há dois tipos de hipervisores:

  • Tipo 1 ou Hipervisores "bare-metal" interagem com os recursos físicos subjacentes, substituindo por completo o sistema operacional tradicional. Eles aparecem mais comumente em cenários de servidor virtual.
  • Hipervisores do tipo 2 são executados como um aplicativo em um SO existente. Mais comumente usados em dispositivos de terminais para executar sistemas operacionais alternativos, eles carregam uma sobrecarga de desempenho porque devem usar o SO host para acessar e coordenar os recursos de hardware subjacentes.

"Hypervisores: Um guia completo" fornece uma visão geral abrangente de tudo sobre hipervisores.

Tipos de virtualização

Até esse ponto discutimos a virtualização de servidor, mas muitos outros elementos da infraestrutura de TI podem ser virtualizados para oferecer vantagens significativas aos gerentes de TI (em particular) e à empresa como um todo. Nesta seção, cobriremos os tipos de virtualização a seguir:

  • Virtualização da área de trabalho
  • Virtualização de rede
  • Virtualização de armazenamento
  • Virtualização de dados
  • Virtualização de aplicativos
  • Virtualização de data center
  • Virtualização de CPU
  • Virtualização de GPU
  • Virtualização de Linux
  • Virtualização de cloud

Virtualização da área de trabalho

A virtualização da área de trabalho permite executar vários sistemas operacionais de área de trabalho, cada um em sua própria VM no mesmo computador.

Existem dois tipos de virtualização de área de trabalho:

  • Virtual Desktop Infrastructure (VDI) executa várias áreas de trabalho nas VMs em um servidor central e as transmite para usuários que efetuam o login em dispositivos de thin client. Desta forma, a VDI permite que uma organização forneça aos seus usuários acesso a uma variedade de SOs a partir de qualquer dispositivo, sem instalar SOs em qualquer dispositivo. Consulte "What is Virtual Desktop Infrastructure (VDI)?" para uma explicação mais abrangente.
  • A Virtualização de desktop local executa um hypervisor em um computador local, permitindo ao usuário executar um ou mais SOs adicionais naquele computador e alternar de um SO para outro conforme necessário sem que o SO primário seja alterado de forma alguma.

Para obter informações adicionais sobre desktops virtuais, consulte "Desktop-as-a-Service (DaaS)."

Virtualização de rede

A virtualização de rede usa um software para criar uma "visualização" da rede que um administrador pode utilizar para gerenciar a rede a partir de um único console. Ela abstrai elementos e funções de hardware (por exemplo, conexões, comutadores, roteadores, etc.) e ela o faz em software em execução em um hypervisor. O administrador de rede pode modificar e controlar esses elementos sem tocar os componentes físicos subjacentes, simplificando drasticamente o gerenciamento de rede.

Tipos de virtualização de rede incluem rede definida por software (SDN), que virtualiza o hardware que controla o roteamento de tráfego de rede (chamado de "plano de controle"), e virtualização da função de rede (NFV), que virtualiza um ou mais dispositivos de hardware que fornecem uma função de rede específica (por exemplo, um firewall, balanceador de carga ou analisador de tráfego), facilitando a configuração, o provisionamento e o gerenciamento desses dispositivos.

Virtualização de armazenamento

A virtualização de armazenamento possibilita que todos os dispositivos de armazenamento na rede, estejam eles instalados em servidores individuais ou em unidades de armazenamento independentes, sejam acessados e gerenciados como um único dispositivo de armazenamento. Especificamente, a virtualização de armazenamento concentra todos os blocos de armazenamento em um único conjunto compartilhado a partir do qual eles podem ser designados a qualquer VM na rede conforme necessário. A virtualização de armazenamento facilita o provisionamento de armazenamento para VMs e aproveita ao máximo todo o armazenamento disponível na rede.

Para uma análise mais detalhada da virtualização de armazenamento, acesse "What is Cloud Storage?"

Virtualização de dados

Empresas modernas armazenam dados de vários aplicativos, usando diversos formatos de arquivo, em múltiplos locais, que vão desde a cloud até sistemas de hardware e de software locais. A virtualização de dados permite que qualquer aplicativo acesse todos esses dados, independentemente da origem, formato ou local.

Ferramentas de virtualização de dados criam uma camada de software entre os aplicativos acessando os dados e os sistemas que armazena esses dados. A camada converte uma solicitação ou consulta de dados de um aplicativo conforme necessário e retorna resultados que podem abranger vários sistemas. A virtualização de dados pode ajudar a quebrar silos de dados quando outros tipos de integração não são viáveis, desejáveis ou financeiramente acessíveis.

Virtualização de aplicativos

A virtualização de aplicativos executa um software de aplicativo sem instalá-lo diretamente no SO do usuário. Isso difere da virtualização de desktop completa (mencionada acima) porque apenas o aplicativo é executado em um ambiente virtual, sendo que o SO no dispositivo do usuário final é executado como de costume. Existem três tipos de virtualização de aplicativos:

  • Virtualização de aplicativos locais: O aplicativo inteiro é executado no dispositivo de terminal, porém é executado em um ambiente de tempo de execução em vez de no hardware nativo.
  • Fluxo de aplicativos: O aplicativo reside em um servidor que envia pequenos componentes do software para serem executados no dispositivo do usuário final quando necessário.
  • Virtualização de aplicativos com base em servidor: O aplicativo é executado inteiramente em um servidor que envia apenas sua interface de usuário para o dispositivo do cliente.

Virtualização de data center

A virtualização de data center abstrai a maior parte do hardware de um data center em software, permitindo de forma eficaz que um administrador divida um único data center físico em vários data centers virtuais para diferentes clientes.

Cada cliente pode acessar a sua própria infraestrutura como um serviço (IaaS), que seria executada no mesmo hardware físico subjacente. Os data centers virtuais oferecem um meio de acesso fácil à computação com base em cloud, permitindo que uma empresa configure de forma rápida um ambiente completo de data center sem adquirir hardware de infraestrutura.

Virtualização de CPU

A virtualização de CPU (unidade central de processamento) é a tecnologia fundamental que viabiliza hypervisores, máquinas virtuais e sistemas operacionais. Ela permite que uma única CPU seja dividida em várias CPUs virtuais para uso por várias VMs.

A princípio, a virtualização de CPU era inteiramente definida por software, mas muitos dos processadores de hoje em dia incluem conjuntos de instruções estendidos que oferecem suporte à virtualização de CPU, que melhora o desempenho da VM.

Virtualização de GPU

Uma GPU (unidade de processamento gráfico) é um processador multicore (de vários núcleos) especial que melhora o desempenho geral da computação ao assumir o processamento gráfico ou matemático pesado. A virtualização de GPU permite que várias VMs utilizem todo ou parte do poder de processamento de uma única GPU para vídeo, inteligência artificial (IA) e outros aplicativos intensivos de gráficos ou matemática mais rápidos.

  • As GPUs de passagem disponibilizam toda a GPU para um único SO convidado.
  • As vGPUs compartilhadas dividem núcleos da GPU física entre várias GPUs virtuais (vGPUs) para uso por VMs com base em servidor.

Virtualização de Linux

O Linux inclui o seu próprio hypervisor, chamado de máquina virtual com base em kernel (KVM), que oferece suporte às extensões do processador de virtualização da Intel e da AMD de modo que seja possível criar VMs com base em x86 a partir de dentro de um SO Linux convidado.

Como um SO de software livre, o Linux é altamente customizável. É possível criar VMs executando versões do Linux customizadas para cargas de trabalho específicas ou versões reforçadas em termos de segurança para aplicativos mais sensíveis.

Virtualização de cloud

Como observado acima, o modelo de computação em cloud depende da virtualização. Ao virtualizar servidores, armazenamento e outros recursos de data centers físicos, provedores de computação em cloud podem oferecer uma variedade de serviços aos clientes, incluindo os seguintes:

  • Infrastructure as a service (IaaS): Recursos de servidor, armazenamento e rede virtualizados que podem ser configurados com base em seus requisitos.
  • Platform as a service (PaaS): Ferramentas de desenvolvimento, bancos de dados e outros serviços com base em cloud virtualizados que podem ser usados para desenvolver seus próprios aplicativos e soluções com base em cloud.
  • Software as a service (SaaS):Aplicativos de software usados na cloud. O SaaS é o serviço com base em cloud mais abstraído do hardware.

Se você gostaria de saber mais sobre esses modelos de serviço em cloud, veja nosso guia: “IaaS vs. PaaS vs. SaaS.”

Virtualização vs. conteinerização

A virtualização do servidor reproduz um computador inteiro em hardware, que então executa um SO inteiro. O SO executa um aplicativo. Isso é mais eficiente do que não haver virtualização alguma, mas ainda duplica código e serviços desnecessários para cada aplicativo que você deseja executar.

Contêineres usam uma abordagem alternativa. Eles compartilham um kernel do SO subjacente, executando apenas o aplicativo e as coisas nas quais ele depende, como bibliotecas de software e variáveis de ambiente. Isso torna os contêineres menores e mais rápidos para implementar.

Para um detalhamento sobre em contêineres e conteinerização, acesse “Containers: A Complete Guide" e “Containerization: A Complete Guide.”

Acesse a postagem do blog "Containers vs. VMs: What's the difference?" para uma comparação mais detalhada.

No vídeo a seguir, Sai Vennam detalha o básico sobre a conteinerização e como ela se compara à virtualização por meio de VMs (8:09):

VMware

VMware cria software de virtualização. A VMware começou por oferecer apenas a virtualização de servidor, seu hypervisor ESX (agora ESXi) foi um dos primeiros produtos de virtualização comercialmente bem-sucedidos. Hoje o VMware também oferece soluções para virtualização de rede, de armazenamento e de desktop.

Para um detalhamento sobre tudo que envolve o envolve o VMware, consulte "VMware: A Complete Guide."

Segurança

A virtualização oferece alguns benefícios de segurança. Por exemplo, VMs infectadas com malwares podem ser recuperadas a um momento (chamado de captura instantânea) quando a VM estava estável e não infectada; elas também podem ser mais facilmente excluídas e recriadas. Não é sempre possível desinfectar um SO não virtualizado, uma vez que o malware está muitas vezes profundamente integrado aos componentes principais do SO, persistindo além de recuperações do sistema.

A virtualização também apresenta alguns desafios de segurança. Se um invasor compromete um hypervisor, eles potencialmente possuem todas as VMs e sistemas operacionais convidados. Uma vez que os hypervisores também podem permitir que VMs se comuniquem entre si sem tocar na rede física, pode ser difícil visualizar o seu tráfego e, portanto, detectar atividade suspeita.

Um hypervisor tipo 2 em um SO convidado também é suscetível ao comprometimento do SO.

O mercado oferece uma variedade de produtos de segurança de virtualização que podem varrer e corrigir VMs quanto a malwares, criptografar discos virtuais inteiros da VM e controlar e auditar o acesso à VM.

Virtualização e a IBM

A IBM Cloud oferece um complemento completo de soluções de virtualização com base em cloud, abrangendo os serviços de cloud pública por meio de ofertas de cloud privada e híbrida. É possível usá-la para criar e executar infraestruturas virtuais e também aproveitar os serviços que vão desde a IA com base em cloud até a migração de carga de trabalho do VMware com o IBM Cloud for VMware Solutions.

Inscreva-se hoje uma conta da IBM Cloud.