Infra - Virtualização

Virtualização de Servidores

Gostaria de falar um pouco sobre um tema que está em alta há alguns anos e que a cada dia esquenta mais no Brasil: VIRTUALIZAÇÃO.

por Marcelo Braga Silva



Introdução

Gostaria de falar um pouco sobre um tema que está em alta há alguns anos e que a cada dia esquenta mais no Brasil: VIRTUALIZAÇÃO.

Uma vez que este assunto é relativamente novo em comparação a outras tecnologias, é comum que o termo seja confundido com outras tecnologias já há muito conhecidas. Para tanto, quero começar esclarecendo a diferença que há entre Virtualização, Emulação e Simulação.

Virtualização não é “emulação”, ou fazer uso de um software Emulador!

Um emulador faz com que um sistema funcione se comportando como se fosse um outro. É como um software de 64 bits funcionando em um ambiente de 32 bits.

Um exemplo disso é quando nós temos um aplicativo de DOS/Windows95 e desejamos rodá-lo no Windows 7. O que fazemos então? Ativamos um recurso “emulador” no sistema operacional, conhecido como “Modo de Compatibilidade”, que faz com esse SO que é de 32/64 bits consiga rodar um programa de 16bits, por um processo de emulação, abrindo inclusive processos de separação de memória, por meio do bem conhecido NTVDM.exe.

Abaixo, a janela de ativação do Modo de Compatibilidade:

Compatibility.jpg
Figura 1: Propriedade do aplicativo, ativando o “Modo de compatibilidade”.

Virtualização não é “simulação”, ou fazer uso de um software Simulador!

A Simulação tenta ao máximo “imitar” o comportamento de um software ou hardware real. Em outras palavras, podemos dizer que simular, no contexto da Tecnologia da Informação, é representar comportamentos e reações de recurso físico ou um sistema abstrato.

Atualmente, softwares de simulação são utilizados como recursos de treinamento, teste de soluções e até mesmo para Games, como o caso dos simuladores de vôos ou jogos de “realidade virtual”.

Um bom exemplo de simulação são os softwares que simulam equipamentos da Cisco (RouteSim: http://www.routersim.com/; Boson: http://www.boson.com/AboutNetSim.html); NetworkSims: http://networksims.com) , a fim de proverem recursos para estudantes e candidatos a certificações de Networking da Cisco Systems (Routing, Switching, Firewalls, sistemas de Voz Over IP etc).

O que é Virtualização?

De forma prática e direta, podemos dizer que virtualização é o processo de implementação de múltiplos sistemas operacionais, compartilhando quatro elementos básicos de hardware, a saber: Processadores, Memória, Placas de Rede (NICs) e Discos, por meio de um sistema conhecido como hypervisor.

O Hypervisor é um programa que atua na camada de virtualização, que em sincronia com o sistema operacional trabalha entre o hardware físico e os sistemas operacionais “guest” (Sistemas operacionais hospedados). Em alguns casos que veremos mais adiante, o Sistema Operacional e o programa hypervisor se fundem em uma só solução.

Hypervisor Layer.jpg
Figura 2: Arquitetura básica de virtualização de servidores.


Dentre os benefícios da virtualização de servidores, podemos destacar:

· Melhor utilização do hardware e consolidação de servidores;

· Migração “quente” (hot migration) de servidores entre diferentes tipos de hardware sem desligamento dos sistemas operacionais e aplicações que estão rodando;

· Redução do número de servidores físicos, com grande impacto positivo sobre a questão espacial, reduzindo a pressão sobre a estrutura física do prédio e reduzindo a demanda por sistemas de ar-condicionado e eletricidade;

· Facilidade de upgrade de hardware e upgrade/update de aplicações, sem afetar o funcionamento de outras aplicações;

· Implementação de múltiplos e diferentes sistemas operacionais (Windows Server 2003, Windows Server 2008, Linux etc) sobre um mesmo servidor físico;

· Gerenciamento fácil e prático sobre toda essa infra-estrutura e

· Economia financeira, na maioria dos casos.

(Confiram essa reportagem de 16 de Outubro de 2009, na qual mostra que anualmente se perdem 25 Bilhões de dólares com servidores não utilizados: http://www.eweek.com/c/a/Green-IT/Unused-Servers-Cost-Businesses-25B-Annually-Study-582507/)

Os componentes básicos de qualquer ambiente de virtualização são:

1. Máquinas Host / Hardware Host

Como requisito mínimo, são servidores multi-processados e/ou com múltiplos núcleos (Cores).

No caso do Hyper-V e do XenServer da Citrix, é exigido Hardware de 64Bits, enquanto o VMware ESX na versão 3.5, suporta hardware tanto 32bits como 64bits. Mas vale ressaltar que na versão ESX 4.0 (vSphere 4), hardware de 64bits é um requisito também.

Esses “hosts” então são utilizados para compartilhar seus recursos físicos como CPUs, memória, placas de rede (geralmente Gigabit Ethernet e FC - Fibra ótica), unidades de armazenamento, unidades de disco removíveis como Floppy /CD/DVD e dispositivos USB, e ainda seus barramentos.

Para melhor suporte dos sistemas operacionais hospedados, é recomendado/exigido processadores com tecnologias Intel VT (http://www.intel.com/technology/virtualization/) e/ou AMD-V (www.amd.com/virtualization) .

2. Software de Virtualização

Inicialmente, os softwares de virtualização eram softwares instalados sobre um determinado sistema operacional, a fim de:

· Criar e manter as Máquinas Virtuais (VMs);

· Gerenciar os recursos de hardware para as VMs;

· Agendar o uso de recursos sempre que houver demanda para isso e

· Prover uma interface de gerenciamento e configuração para as Máquinas virtuais

Dentro dessa categoria temos o Microsoft Virtual PC, Microsoft Virtual Server R2, VMware Workstation e VMware Server.

Porém, existem os sistemas mais robustos de produção, que não requerem um sistema operacional de base para serem instalados. Esses são instalados diretamente no hardware (bare metal), e não requerem sistema operacional adicional. São eles: Microsoft Hyper-V R2, VMware ESX 3.5/4.0 e Citrix XenServer.

Um pouco sobre o VMware ESX[i]

Primeiramente, é interessante esclarecer que o VMware ESX não é Linux. Esse software é um hypervisor do tipo “bare metal”, mas que pelo fato de seu SC (Service Console) e sistema de boot ser uma modificação do Linux Red Hat 3, uma grande parte das pessoas tende a pensar no ESX como sendo um tipo (distribuição) de Linux.

O Serviço de Console do ESX é como uma Máquina Virtual especial, que usa uma pequena parte da memória e apenas um “Core” dos processadores. O SC não é o sistema operacional. O ESX foi desenvolvido pela equipe da VMware/EMC2 e por isso é um software comercial e que deve ser devidamente licenciado para uso.

VMware ESX é um sistema operacional, criado exclusivamente para suportar Virtual Machines, e dar a elas o melhor desempenho possível, além de dar total controle aos Administradores sobre as configurações do hardware compartilhado e em uso.

O kernel do ESX é chamado de “VMkernel”, que juntamente com o Service Console (SC), compõe os dois principais componentes desse sistema de virtualização de servidores.

Abaixo segue um diagrama que mostra graficamente o layout da arquitetura, de forma simplificada, do ESX.

ESX.gif
Figura 3: Arquitetura de virtualização do VMWare ESX 3.5 (cortesia VMware website).


A suíte de produtos de virtualização da VMware (VI3), cujo VMware ESX é o carro chefe, é composta pela seguinte lista:

3. VMware ESX Server

4. VMware Virtual SMP

5. VMware VMotion

6. VMware DRS (Distributed Resource Scheduler)

7. VMware HA (High Availability)

8. VMware VCB (Consolidated Backup)

9. VMware VirtualCenter (atualmente na versão 4.0)

10. VMware Infrastructure Client

A versão mais recente do ESX é conhecida como “VMware vSphere 4.0”, e implementa uma série de novas funcionalidades, mas sua nova filosofia é “Cloud operating Systems”.

Sistemas operacionais em “nuvens” é uma nova categoria de software, projetado para gerenciar grandes infra-estruturas, num agrupamento de CPUs, memórias, armazenamento e redes, dentro de um ambiente operacional de alta disponibilidade, com facilidades para upgrades e migrações dinâmicas.

diagram-private-cloud-fed-large.jpg
Figura 4: Aplicações em nuvens, utilizando virtualização do VMWare vShere 4 (cortesia VMware website).

Diferentemente dos tradicionais sistemas operacionais, onde o sistema operacional gerencia apenas uma máquina individual, o Cloud OS agrega toda a infra-estrutura de um datacenter para criar uma única e poderosa “unidade computacional”, com recursos que podem ser rapidamente e de forma automática, alocados para uma determinada aplicação.

vSphere_Diagram_Large.jpg
Figura 5: Arquitetura de virtualização do VMWare vSphere 4 (cortesia VMware website)

Maiores detalhes podem ser acessados pelo site:

- http://www.vmware.com/products/vsphere e

- http://www.vmware.com/support/vsphere4/doc/vsp_40_new_feat.html

Um pouco sobre o Microsoft Hyper-V

O Hyper-V, anteriormente conhecido como “Viridian”, é o sistema de virtualização enterprise da Microsoft, e também o carro-chefe de seus produtos para virtualização. Tendo como base o Windows Server 2008, porém com versão somente para 64bits, o Hyper-V propõe um ambiente de escalabilidade, confiabilidade e alta disponibilidade para a plataforma de virtualização.

Recentemente a Microsoft lançou a nova versão do produto que é o Hyper-V R2, que pode continuar a ser parte do Windows 2008 Server, como uma Role adicional, ou mesmo como um servidor “Standalone”. Como requisito para funcionamento, é esperado que os servidores possuam processadores com tecnologia para virtualização, como os mencionados anteriormente nesse artigo, o Intel VT e o AMD-V.

Um destaque para o recurso de “Live Migration”, que foi demonstrado com muita propriedade e de forma simples pelo Fábio Hara e Luciano Palma, no Technet Edge website (http://edge.technet.com/Media/Live-Migration-Uma-Demo-partindo-do-Zero-Parte-1) , o qual permite a migração de uma Virtual Machine de um host para outro, através da rede IP local, sem interrupção do funcionamento do sistema operacional “guest”, e até mesmo sem a percepção do usuário que está acessando os recursos do sistema da Máquina Virtual.

A Microsoft também desenvolveu um produto para o gerenciamento do ambiente virtual, que é o SCVMM 2008 R2 (System Center Virtual Machine Manager), como membro da família System Center. Para obter maiores detalhes, basta acessar o site: http://www.microsoft.com/systemcenter/virtualmachinemanager/en/us/default.aspx

diag-hyperv-arch.png
Figura 6: Arquitetura de virtualização do Microsoft Hyper-V (cortesia Microsoft Hyper-V website)

3. Máquinas Virtuais (VMs)

A Máquina Virtual, mas conhecida como VM, é o hardware virtual usada para suportar o sistema operacional virtualizado. Em outras palavras, é o conjunto de configurações de hardware apresentado para o Sistema Operacional “guest”, que será utilizado pelo SO hospedado.

É importante entender que a VM não é o Sistema Operacional em si, mas apenas a representação de seu hardware a ser utilizado perante o SO do Hypervisor.

Dentre essas configurações, se encontram a quantidade de CPUs virtuais que o SO “guest” utilizará, a quantidade de memória RAM, se esse SO utilizará uma ou mais NICs (Placas de Rede), se estará conectado por meio de VLAN, informações de armazenamento sobre discos locais (SCSI) ou via SAN/NAS (FC ou iSCSI), e informações como Floppy e CD/DVD drives.

Segue abaixo uma tabela de referência para alguns tipos de arquivos vinculados a uma VM:

VMware ESX

Microsoft Hyper-V

Discos Virtuais

.vmdk

.vhd

Configuração das VMs

.vmx; .vmxf

.xml

Paginação de Memória

. vswp

.bin

Snap-shots

.vmsn; .vmsd

Snapshots\???\.avhd

Status atual da VM

-flat.vmdk

.vsv

Informações de BIOS

.nvram

Figura 7: Equivalência de arquivos de Máquinas Virtuais entre as duas grandes plataformas de virtualização.

Obs.: O sistema de arquivo utilizado pela VMware para armazenagem de seus arquivos de VMs é o vmfs, e o sistema de arquivo utilizados pela Microsoft continua sendo o nosso bem conhecido NTFS.

4. Sistemas Operacionais hóspedes (Guest OS)

O “SO guest” é o Sistema Operacional de arquitetura x86 ou x64 bits, que rodará dentro de uma Virtual Machine (Windows NT, Windows Server 2003, Windows Server 2008, Windows 7, Linux, Novel, Solaris, “whatever”).

Esses SOs darão suporte aos diversos tipos de aplicações como SQL Server, Oracle, SAP, servidores web IIS e Apache, Exchange Servers, SCCM, OCS, configurações de Clustering e Balanceamento de Cargas e por aí vai.

Conclusão

Com este artigo, não pretendíamos esgotar o assunto, mas sim dar uma visão geral sobre virtualização e sobre os dois principais “players” do mercado, com seus respectivos principais produtos.

Não podemos confundir virtualização com Simulação ou Emulação, uma vez que as implementações são reais (apesar do nome ser “virtual”), e que essa tecnologia tem por finalidade um ambiente de produção, e não ambientes de testes e treinamento, muito embora possamos utilizá-lo para esse fim.

Vale lembrar que ambos os fabricantes possuem uma HCL e/ou SVVP (Lista de hardwares e de softwares compatíveis - homologados), as quais devem ser consideradas antes de qualquer implementação:

5. VMware ESX: http://www.vmware.com/resources/communitysupport; http://www.vmware.com/resources/techresources/1032 ; http://www.vmware.com/resources/compatibility/search.php

6. Microsoft Hyper-V: http://www.windowsservercatalog.com; http://www.windowsservercatalog.com/svvp.aspx ; http://support.microsoft.com/?kbid=957006;

Um forte abraço e até a próxima.


[i] Pronuncia-se “Viemuer Iessex”

Marcelo Braga Silva

Marcelo Braga Silva - Marcelo Braga Silva é profissional de TI há 16 anos, atualmente trabalhando como Sr. Systems Administratgor nos Estados Unidos em uma multinacional. Trabalha com virtualização de servidores e Aplicações (VMware ESX/vSphere e Citrix XenApp) e presta suporte de 2º/3º níveis a centenas de servidores Windows. É certificado como VCP, MCITP, ITILv3, MCSA, MCTS e MCT. Blog: http://vmarcelo.wordpress.com