Introdução à Virtualização

O que é Virtualização

Neste artigo vamos falar sobre uma das tecnologias mais importantes e promissoras da atualidade: a Virtualização. Essa tecnologia - ou conjunto de tecnologias, para ser mais exato - encontra aplicação em inúmeras áreas da TI moderna, sendo o pilar sobre o qual, por exemplo, a Computação em Nuvem é constituída.

A finalidade da Virtualização é fornecer uma versão virtual de tecnologias essenciais em computação, como Hardware, Armazenamento e Redes.

  • Hardware: Essa é a aplicação mais comum da tecnologia de Virtualização, na qual um sistema operacional é instalado sobre outro sistema, com seus recursos de hardware representados por software.
  • Armazenamento: Uma camada de software é criada entre os discos físicos e os dispositivos que acessam esses discos, de modo a tornar o acesso mais flexível, personalizável e gerenciável. Também é conhecido como SDS - Software Defined Storage (Armazenamento Definido por Software).
  • Rede: Também podemos criar uma infraestrutura lógica de rede sobre uma rede física, que permita a configuração e personalização de acordo com nossas necessidades. Também chamada de SDN - Software Defined Networking (Rede Definida por Software).

Quando usamos técnicas de virtualização, portanto, os dispositivos físicos são representados por entidades de software:

  • Servidores e estações de trabalho se tornam Máquinas Virtuais (VMs / Virtual Machines)
  • Rede e Storage podem ser virtualizados, transformando-se em SDN e SDS.
  • Assim, é possível construir o que chamamos de SDDC - Software Defined Data Center (Data Center Definido por Software).

Virtualização de Hardware

A virtualização de hardware é uma combinação da engenharia de hardware e software que visa a criação de Máquinas Virtuais. Uma máquina virtual, ou VM, é uma abstração do hardware de computadores que permite a uma única máquina física agir como se fosse várias, ou seja, executando diversos sistemas operacionais simultaneamente e de forma isolada entre si.

Três são os componentes principais em um sistema de hardware virtualizado:

  • Hospedeiro (Host)
  • Convidado (Guest)
  • Camada de Virtualização (Hypervisor)

A figura a seguir ilustra a relação entre esses três componentes:

Camadas da Virtualização

Motivos para usar Virtualização

Porque deveríamos implantar técnicas de virtualização em uma empresa? Vários são os motivos que apontam nessa direção. Podemos citar, por exemplo:

  • Aproveitamento da capacidade de computação e performance
  • Economia de energia elétrica
  • Diminuição de espaço físico ocupado
  • Redução de custos administrativos e de gerenciamento
  • Rapidez na implantação de novos sistemas
  • Aumento na disponibilidade de sistemas

Devido a esses motivos, e outros, a Virtualização encontra inúmeras aplicações na TI atual, tais como:

  • Criação de ambientes seguros, personalizáveis e isolados.
  • Emulação de ambientes de execução separados
  • Construção de sistemas escaláveis e elásticos.
  • Otimização de Storage
  • Automação do processo de instalação de SOs (Clonagem, Appliances, etc)
  • Isolamento de Sistemas (Sandboxing)
  • Cloud Computing

E muitas outras aplicações.

Benefícios da Virtualização

A Virtualização traz inúmeros benefícios para a TI moderna, sendo que os trÊs citados a seguir se destacam:

  • Permite um uso mais eficiente da capacidade dos servidores físicos - Com a virtualização podemos rodar várias máquinas virtuais sobre um hardware existente, de modo a otimizar o uso, por exemplo, do poder de processamento das CPUs.
  • Permite um uso mais eficiente do espaço físico em um Datacenter - Esse espaço costuma ser muito caro, principalmente em locais privilegiados em grandes cidades. Ao usarmos menos hardware físico, temos menor necessidade de espaço físico para acomodá-lo.
  • Permite realizar consumo de energia mais eficiente - Com menos dispositivos físicos necessários, podemos reduzir substancialmente a necessidade de energia elétrica e, consequentemente, os gastos com essa energia.

Além disso, o uso da virtualização também traz outros benefícios, tais como:

  • Consolidação de Appliances: Servidores de produção geralmente rodam poucas ou uma única aplicação, o que acarreta o uso estimado de apenas 5 a 10% do hardware disponível.
  • Assim, ao virtualizar vários servidores em um ("consolidar"), podemos reduzir a quantidade de equipamentos físicos, o que leva à redução de:
    • Custos de Hardware
    • Manutenção de Data Center
    • Eletricidade
    • Custos com Pessoal
  • Podemos alcançar taxas de consolidação médias de 10:1 em casos extremos, o que significa que 10 servidores físicos poderiam ser substituídos por um único servidor rodando máquinas virtuais.

E, além de todos esses benefícios citados, ao empregarmos sistemas virtualizados também encontraremos aplicações para:

  • Desenvolvimento e Testes de Aplicações
  • Testes de Upgrades de Software e Sistemas
  • Treinamento e Educação

Limitações da Virtualização

Claro que essa tecnologia não é nenhuma bala de prata, não resolvendo todos os problemas existentes em TI, e também possui suas limitações. Podemos citar, entre outras:

  • Escalabilidade limitada
  • Sistemas relativamente pesados, pois cada SO virtualizado possui seu próprio kernel (se forem executados apenas SOs iguais, existem soluções para resolver essa limitação, como o uso de Contêineres)
  • Degradação de Performance - o convidado pode sofrer latências altas por conta da camada de abstração
  • Ameaças e Falta de Segurança

Conceito de Máquina Virtual

As Máquinas virtuais são criadas sobre uma camada de software denominada Hypervisor, que pode rodar sobre um sistema operacional hospedeiro na máquina, ou ainda ser executado de forma autônoma. Assim, é possível emular componentes de hardware como CPU, Discos, RAM, Redes e também instalar sistemas operacionais convidados.

Uma máquina virtual é, em última instância, apenas um arquivo gravado em um disco no servidor que contém todo um sistema operacional com seu kernel, bibliotecas, interfaces e aplicações de usuário.

Com o uso de máquinas virtuais é possível criar múltiplos sistemas operacionais na mesma máquina física e executá-los simultaneamente. Por exemplo, podemos ter em um mesmo servidor uma máquina virtual Linux, uma Windows Server 2012 R2 e um sistema FreeBSD rodando ao mesmo tempo.

Hypervisor

Um Hypervisor é o software utilizado para realizar o gerenciamento das máquinas virtuais. Também são conhecidos como VMM - Virtual Machine Manager (Gerenciador de Máquina Virtual). Os hypervisors foram desenvolvidos a partir do início dos anos 70 para rodar em mainframes, e são disponibilizados para PCs por diversos fabricantes atualmente.

Existem dois tipos principais de hypervisores disponíveis: Tipo 1 e Tipo 2.

Tipos de Hypervisores

Há dois tipos de Hypervisors principais:

  • Tipo 1: Nativo (Bare Metal): O software do hypervisor roda diretamente sobre a plataforma de hardware na função de um programa de controle para os sistemas virtualizados; os exemplos mais populares são o VMWare ESXi e o Citrix XenServer.
  • Tipo 2: Hospedado (Hosted): Neste caso o software do hypervisor é executado dentro do ambiente de um sistema operacional como um software de controle para os sistemas virtualizados. Neste caso, o hypervisor é apenas um programa que é executado sobre um sistema operacional já presente na máquina. Sistemas operacionais “Convidados” (Guests) são instalados sobre essa camada do Hypervisor. Exemplos comuns incluem o Oracle Virtualbox, VMWare Workstation e o Qemu.

A figura a seguir ilustra a arquitetura básica de um hypervisor tipo 1 (bare metal, "na lata"):

Virtualização - Hypervior Tipo 1 - Bare Metal

 

E na figura seguinte, um hypervisor tipo 2 (hosted, "hospedado"):

Virtualização - Hypervisor Tipo 2

 

Hypervisor "Híbrido"

Alguns hypervisors não são facilmente classificáveis, devido ao modo como são executados. Exemplos:

  • KVM (Kernel-based Virtual Machine) no Linux;
  • bhyve, no FreeBSD

Ambos são módulos do kernel, que convertem o SO hospedeiro em um hypervisor Tipo 1. Porém, os sistemas Linux e FreeBSD são sistemas operacionais de propósito geral, com diversas outras aplicações rodando concomitantemente, de modo que os hypervisors acima podem ser considerados como sendo de Tipo 2 também.

Exemplos de Hypervisors

A lista abaixo traz os nomes de alguns dos hypervisors mais populares e utilizados atualmente. Não se trata de uma lista completa, mas apenas uma pequena listagem ilustrativa do ecossistema de softwares para virtualização:

  • VMware ESXi
  • Citrix XenServer
  • Microsoft Hyper-V
  • KVM
  • Oracle VirtualBox
  • VMware Workstation
  • Parallels
  • Qemu

Links de Referência

Nos links a seguir você poderá obter mais informações sobre os sistema de virtualização citados anteriormente:

VMware: www.vmware.com

XenServer: xenserver.org

Qemu: wiki.qemu.org

KVM: www.linux-kvm.org

Oracle VirtualBox: www.virtualbox.org

Citrix: www.citrix.com

É isso aí pessoal! Nos próximos artigos vamos explorar mais a fundo o conceito de virtualização, aprender a utilizar os softwares citados neste artigo, e também vamos conhecer outras tecnologias correlatas e derivadas, com Computação em Nuvem (Cloud Computing), Appliances e Contêineres.

Até!

Sobre Fábio dos Reis (1256 Artigos)
Fábio dos Reis trabalha com tecnologias variadas há mais de 25 anos, tendo atuado nos campos de Eletrônica, Telecomunicações, Programação de Computadores e Redes de Dados. É um entusiasta de Unix, Linux e Open Source em geral, adora Eletrônica e Música, e estuda idiomas, além de ministrar cursos e palestras sobre diversas tecnologias em São Paulo e outras cidades do Brasil.
Contato: Website

1 Comentário em Introdução à Virtualização

  1. Excelente artigo!
    Muito obrigado, Fábio!

1 Trackbacks & Pingbacks

  1. O que é Cloud Computing (Computação em Nuvem)?

Escreva um comentário

Seu e-mail não será divulgado


*