Home / Dicas e Tutoriais / Introdução à Virtualização

Introdução à Virtualização

Olá Pessoal!!!

Tenho falado bastante de virtualização de Sistemas Operacionais, então decidi juntar aqui o que eu encontrei para descrever alguns conceitos e exemplos.

Vamos lá?

Hypervisor – O que é?

(“Hipervisor” em português)

Um hipervisor ou monitor de máquina virtual é um plataforma que permite aplicar diversas técnicas de controle de virtualização para utilizar, ao mesmo tempo, diferentes sistemas operacionais (sem modificar ou modificá-los em caso de paravirtualização) no mesmo computador. É uma extensão de termo anterior, «supervisor», que se aplicava aos kernels dos sistemas operacionais.

História

Os hipervisores foram originalmente lançado no inicio da década de 1970 quando, para reduzir custos, se consolidavam vários computadores destacadas a diferentes departamentos da empresa em uma única máquina mas grande —o mainframe— capaz de servir a múltiplos setores. Ao correr múltiplos sistemas operativos de uma vez, o hipervisor permite uma consolidação dando robustez e estabilidade ao sistema; ainda que um dos sistemas operativos colapsa, os outros continuarão trabalhando sem falhas.

O primeiro computador desenhado especificamente para a virtualização foi o mainframe IBM S/360 Modelo 67. Esta característica de virtualização é considerado uma norma da linha que seguiu IBM S/370 e suas sucessoras, incluindo a série atual.

A necessidade de consolidar os diferentes servidores de hoje e de uma administração simplificada têm feito renovar o interesse na tecnologia de hipervisores. A imensa maioria de vendedores de sistemas Unix, incluindo Sun MicrosystemsHPIBM e SGI têm estado vendendo hardware virtualizado desde a década de 2000. Estes sistemas são eficientes mas extremamente onerosos.

Um dos primeiros hipervisores de PC foi lançado no meio da década de 1990, e se chamou Vmware. A arquitetura x86 usada na grande maioria dos sistemas de PC é particularmente difícil de virtualizar (Virtualização x86). Mas as grandes companhias, como AMD e Intel, estão incorporando extensões que redirecionarão as partes ineficientes ou deficientes de virtualização de x86, proporcionando um apoio adicional ao hipervisor. Este permite um código simples de virtualização e um maior rendimento para uma virtualização completa.

Tipos

Os hypervisors podem classificar-se em dois tipos:

  • Hipervisor tipo 1:

Também denominado nativounhosted (não hospedado) ou bare metal (sobre o metal nu), é software que se executa diretamente sobre o hardware, para oferecer a funcionalidade descrita.
Geralmente já é um sistema operacional pronto que você instala em seu hardware e começa a criar as Máquinas virtuais.

hipervisor1Imagem acima – Exemplo de Virtualização Bare Metal – Produto Hypervisor: Xen

Alguns dos hipervisores tipo 1 mais conhecidos são as seguintes: VMware ESXi (grátis), VMWare V-Sphere e ESX (Software comercial), Xen (livre), Citrix XenServer (grátis), Microsoft Hyper-V Server.

  • Hipervisor tipo 2:

Também denominado hosted (hospedado), é software que se executa sobre um sistema operacional.
Ao contrário do tipo 1, você tem que instalar este software em seu sistema operacional (Windows, Linux Mac e etc), e começar a criar as máquinas virtuais com ele.

hipervisor2Imagem acima – Exemplo de Virtualização Hosted – Produto Hypervisor: VMWare Workstation

Alguns dos hipervisores tipo 2 mais utilizados são os seguintes: Oracle: VirtualBox (grátis), VMware: Workstation (comercial), VMWare Player (grátis), QEMU (livre), Microsoft Virtual PC.

Técnicas

Existem vários tipos de técnicas de virtualização que oferecem recursos semelhantes, mas diferem no grau de abstração e os métodos utilizados para a virtualização.

1 – Máquinas virtuais (VMs) hospedadas.

(Usa Tipo 2 – hospedada)

As máquinas virtuais emulam algum hardware real ou fictício, que por sua vez requer recursos reais do hospedeiro (a máquina que executa o VMs). Esta abordagem, utilizada pela maioria dos emuladores de sistema, permite que o emulador execute um sistema operacional convidado sem modificações porque Sistema Operacional hóspede não sabe que ele está sendo executado em hardware não real. Nesta abordagem algumas instruções de CPU requerem privilégios adicionais e não podem ser executadas no espaço do usuário exigindo, portanto, um monitor de máquinas virtuais (VMM), também chamado de hypervisor, para analisar código executado e torná-lo seguro enquanto a máquina virtual está no ar. Esta abordagem de emulação de hardware é usada pelos produtos VMware, VirtualBox, QEMU, Parallels e Microsoft Virtual Server.

virtualboxOracle Virtualbox – gratuito

vmware-workstationVMWare Workstation

2 – Paravirtualização.

(Usa o Tipo 1 – Bare Metal)

Esta técnica também requer um Hypervisor ou VMM, mas a maioria do seu trabalho é realizado no código do sistema operacional convidado, que por sua vez é modificado para suportar este VMM e evitar o uso desnecessário de instruções privilegiadas. A técnica de paravirtualização também permite executar diferentes sistemas operacionais em um único servidor, mas exige que eles sejam portados, ou seja, devem saber que estão funcionando sob o hypervisor. A abordagem de paravirtualização é usada por produtos como o XenServer, e o Xen presente no SUSE Enterprise Linux e openSUSE.

xen_project_logo_dualcolor_1000x416

Em outras palavras, a paravirtualização é um aprimoramento da tecnologia de virtualização em que um sistema operacional convidado é recompilado antes da instalação dentro de uma máquina virtual. Paravirtualização permite uma interface de máquina virtual que pode diferir ligeiramente daquele do hardware utilizado. Esta capacidade minimiza a sobrecarga e otimiza o desempenho do sistema, apoiando o uso de máquinas virtuais que seriam subutilizados em virtualização convencional ou completo.

A paravirtualização é uma expansão de uma tecnologia que já existe há anos na IBM OS conhecido como VM. Xen, um projeto de software open-source, incorpora paravirtualização.

Xen_Arch_DiagramImagem Acima – Arquitetura do Xen Simplificada

O termo Domain0 se refere ao domínio especial que provê o ambiente de gerenciamento. Ele pode ser rodado tanto em ambiente gráfico como em linha de comando.

xen_master_fong_a
Imagem acima – Arquitetura do Xen Detalhada

xen_fullscreen
Imagem acima – Exemplo de gerenciamento de máquinas virtuais Xen no SUSE Enterprise / openSUSE

Vídeo acima – Exemplo de uso do Xen no SUSE Enterprise / openSUSE, instalando uma VM Windows Server 2008 x64

3 – Virtualização por Contêiner.

(Usa o Tipo 1 – Bare Metal + OpenVZ)

É a virtualização no nível do sistema operacional, também é conhecida como “virtualização por contêiner”.

A maioria dos aplicativos executados em um servidor pode facilmente compartilhar uma máquina com os outros, se pudessem ser isolados e protegidos. Além disso, na maioria das situações, vários sistemas operacionais iguais de mesma versão não seriam necessários no mesmo servidor, e sim, meramente múltiplas instâncias de um único sistema operacional. Sistemas de virtualização em nível de sistema operacional foram projetados para proporcionar o isolamento e segurança ao executar vários aplicativos ou cópias do mesmo sistema operacional (mas diferentes distribuições do sistema operacional) no mesmo servidor. Utiliza OpenVZ, Virtuozzo, Solaris Zones, FreeBSD jails. Os conteineres são exemplos de virtualização em nível de sistema operacional.

openvz-vpsO que é o OpenVZ:

OpenVZ, (Open Virtuozzo) é uma tecnologia de virtualização em nível de sistema operacional baseada no kernel do Linux e do sistema operacional. É um software livre de código aberto, disponível sob a licença GNU GPL.
Permite que um servidor físico execute várias instâncias do sistema operacional isoladas, chamados de contêineres, servidores virtuais privados (VPSs) ou ambientes virtuais (VEs) melhorando a utilização do servidor e assegurando que as aplicações não entrem em conflito. Cada contêiner realiza e executa exatamente como um servidor autônomo; um recipiente pode ser reiniciado de forma independente e ter acesso root, os usuários, os endereços IP, memória, processos, arquivos, aplicações, bibliotecas do sistema e arquivos de configuração. OpenVZ é semelhante ao FreeBSD jails e Solaris Containers.

O Software OpenVZ consiste de um kernel customizado do Linux e ferramentas de linha de comando (principalmente vzctl). Os desenvolvedores do kernel da OpenVZ trabalharam muito para mesclar muitas funcionalidades de container para o kernel Linux, tornando a equipe do OpenVZ a maior contribuinte para o Kernel de Linux Containers (LXC), com recursos como PID e rede namespaces, controlador de memória, “checkpoint-restore” e muito mais. A OpenVZ recomenda o uso do kernel OpenVZ para a segurança, estabilidade e funcionalidades.

 Algumas empresas oferecem serviço de máquinas virtuais na nuvem para criação de servidores usando esta tecnologia de virtualização. Como é o exemplo da BudgetVM, Parallels Virtuozzo Containers.

 

parallels-virtuozzo1

Comparação Resumida

As três técnicas diferem em complexidade de implementação, amplitude de apoio operacional, desempenho em comparação com o servidor independente, e o nível de acesso aos recursos comuns. Por exemplo,

1 – VMs têm maior alcance de uso, mas pior desempenho.

2 – VMs Paravirtualizadas podem ter um desempenho melhor, mas podem suportar menos Sistemas Operacionais porque tem de se modificar o sistema operacional original.

3 – A virtualização no nível do sistema operacional oferece o melhor desempenho e escalabilidade em comparação com outras abordagens. Diferença de desempenho de tais sistemas pode ser tão baixa quanto 1 a 3%, comparando com o de um servidor independente. Ambientes virtuais são geralmente também muito mais simples de administrar, como todos eles podem ser acessados ​​e administrados a partir do sistema Hospedeiro ou de uma console web de um desktop da rede. Geralmente, esses sistemas são a melhor escolha para a consolidação de servidores de mesma carga de trabalho do sistema operacional.

Produtos de Mercado – (Comparação feita pela Proxmox).

Virtualizacao - comparativo

Hoje temos uma variedade de empresas que vendem máquinas virtuais na Nuvem para que você escolha o tipo de máquina e tipo de servidor de virtualização.

salvandoImagem acima – site da empresa iweb.com

 

Exemplos de Interfaces dos Hipervisores Corporativos:

Microsoft Hyper-V

hyper-v final

VMWare V-Sphere

VMware-vSphere-Web-Client

Proxmox

screen-startpage-with-cluster

Citrix XenServer

xencenter2

xencenter

É isso aí!

Qual sua empresa usa?

Ainda não começou?
Que tal começar em sua máquina com Virtualbox?
Ou em um servidor com o XenServer?
Ou em um servidor com o Proxmox?

Abraços,

Cleuber

Fontes:
http://en.wikipedia.org/wiki/OpenVZ
http://openvz.org/Main_Page
http://pt.wikipedia.org/wiki/Proxmox
http://pt.wikipedia.org/wiki/Hipervisor
http://en.wikipedia.org/wiki/Paravirtualization
https://www.suse.com/products/vmdriverpack/features/
http://www.gta.ufrj.br/ensino/eel879/trabalhos_vf_2010_2/luizaugusto/tipos_arq.html#Topic2

About Cleuber

Cleuber Silva Hashimoto. Administrador

Leave a Reply

x

Check Also

Elementary OS 6 Odin Lançado – Confira as Novidades

Desenvolver um sistema operacional não é ...