64
ESCOLA SUPERIOR ABERTA DO BRASIL ESAB CURSO DE PÓS-GRADUAÇÃO LATO SENSU EM SISTEMAS DE TELECOMUNICAÇÕES FÁBIO MASSALINO VIRTUALIZAÇÃO DE SERVIDORES E SUAS PRINCIPAIS FERRAMENTAS VILA VELHA ES 2012

Virtualização de servidores e suas principais ferramentas · escola superior aberta do brasil – esab curso de pÓs-graduaÇÃo lato sensu em sistemas de telecomunicaÇÕes fÁbio

  • Upload
    doxuyen

  • View
    221

  • Download
    0

Embed Size (px)

Citation preview

ESCOLA SUPERIOR ABERTA DO BRASIL – ESAB CURSO DE PÓS-GRADUAÇÃO LATO SENSU EM SISTEMAS DE

TELECOMUNICAÇÕES

FÁBIO MASSALINO

VIRTUALIZAÇÃO DE SERVIDORES E SUAS PRINCIPAIS FERRAMENTAS

VILA VELHA – ES 2012

FÁBIO MASSALINO

VIRTUALIZAÇÃO DE SERVIDORES E SUAS PRINCIPAIS FERRAMENTAS

Monografia apresentada ao Curso de Pós-Graduação em Sistemas de Telecomunicações da Escola Superior Aberta do Brasil como requisito para obtenção do título de Especialista em Sistema de Telecomunicações, sob orientação da Profa. Me. Janaina Costa Binda.

VILA VELHA – ES 2012

DEDICATÓRIA

Dedico este trabalho a Zeliha Taner Massalino, minha amada esposa (in memoriam),

cuja docilidade e companheirismo foram fontes de inspiração para a conclusão

deste.

LISTA DE FÍGURAS

Figura 1 – Arquitetura de um sistema tradicional ...................................................... 12

Figura 2 – Arquitetura de um sistema virtualizado – hosted ...................................... 13

Figura 3 – Arquitetura de um sistema virtualizado – bare-metal ............................... 14

Figura 4 – Particionamento por hardware ................................................................. 24

Figura 5 – Particionamento por software do tipo hosted ........................................... 27

Figura 6 – Particionamento por software instalado nativamente no hardware .......... 28

Figura 7 – Particionamento de aplicação .................................................................. 29

Figura 8 – Particionamento de recursos .................................................................... 30

Figura 9 – Particionamento de serviços .................................................................... 31

Figura 10 – Os componentes da arquitetura do VMware ESXi ................................. 36

Figura 11 – A console de administração DCUI.......................................................... 38

Figura 12 – A tela inicial do vSphere Client ............................................................... 39

Figura 13 – A tela de configuração do ESXi .............................................................. 40

Figura 14 – Os componentes do VMware VirtualCenter Server ................................ 41

Figura 15 – Hyper-V como um recurso do Windows Server 2008 ............................. 45

Figura 16 – Ferramenta de gerenciamento do Windows Server 2008 ...................... 48

Figura 17 – Ferramenta de gerenciamento do Hyper-V ............................................ 49

Figura 18 – Ferramenta System Center Virtual machine Manager – SCVMM 2008 . 51

RESUMO A virtualização de servidores na plataforma x86 tem sido a solução na maioria das

empresas para a consolidação de servidores, utilizando-se melhor os recursos

disponíveis e simplificando seu gerenciamento e as soluções comerciais de

empresas como VMware, Microsoft, Citrix, RedHat e Oracle garantem alta-

disponibilidade em ambientes virtualizados, além de diversas ferramentas que

permitem executar tarefas rotineiras como ligar/desligar servidores, como mais

complexas como mover estes servidores virtuais entre servidores físicos,

balanceamento de cargas e backup destes. Neste trabalho apresenta-se um

levantamento da bibliografia que trata deste assunto apresentando as características

deste processo, apresentando suas vantagens e desvantagens, a origem da

virtualização e os tipos principais. Após, apresenta as características das soluções

comerciais mais utilizadas para virtualização na plataforma x86: VMware vSphere,

Microsoft Hyper-V, Citrix Xen e outras disponíveis, tais como as soluções da

empresa RedHat e Oracle. Esta analise visa apresentar os pontos fortes e fracos de

cada solução procurando identificar onde cada solução apresenta-se como a melhor

escolha.

Palavra-chave: Virtualização. Hypervisor. Servidores.

SUMÁRIO

LISTA DE FÍGURAS ................................................................................................... 4

RESUMO..................................................................................................................... 5

INTRODUÇÃO ............................................................................................................ 8

1 O QUE É VIRTUALIZAÇÃO .................................................................................. 11

1.1 PORQUE VIRTUALIZAR? .............................................................................. 14

1.2 BENEFÍCIOS DA VIRTUALIZAÇÃO ............................................................... 15

1.3 QUANDO UTILIZAR A VIRTUALIZAÇÃO ...................................................... 15

1.4 QUANDO NÃO UTILIZAR A VIRTUALIZAÇÃO .............................................. 17

1.5 HISTÓRIA DA VIRTUALIZAÇÃO ................................................................... 17

2 TIPOS DE VIRTUALIZAÇÃO ................................................................................ 23

2.1 PARTICIONAMENTO DE HARDWARE ......................................................... 23

2.1.1 Vantagens ............................................................................................... 24

2.1.2 Desvantagens ......................................................................................... 25

2.2 PARTICIONAMENTO LÓGICO ...................................................................... 25

2.2.1 Particionamento por software ............................................................... 26

2.2.2 Particionamento de aplicações ............................................................. 28

2.2.3 Particionamento de recursos ................................................................ 30

2.2.4 Particionamento de serviços................................................................. 31

2.2.5 Sistemas Operacionais e ambientes Runtime ..................................... 32

3 A PLATAFORMA VMWARE SPHERE .................................................................. 34

3.1 A ARQUITETURA ESXI .................................................................................. 36

3.2 FERRAMENTAS DE GERENCIAMENTO ...................................................... 39

3.3 VMWARE VIRTUALCENTER SERVER ......................................................... 41

3.3.1 Recursos do ESX/ESXi com o uso do vCenter .................................... 42

3.3.2 Recursos disponíveis no vCenter através de plug-ins ....................... 43

4 A PLATAFORMA MICROSOFT HYPER-V ........................................................... 45

4.1 CARACTERÍSTICAS DO HYPER-V ............................................................... 46

4.2 GERENCIANDO O HYPER-V ........................................................................ 47

4.3 SYSTEM CENTER VIRTUAL MACHINE MANAGER 2008 ............................ 49

4.3.1 Componentes do SCVMM ...................................................................... 50

4.4 Ambiente de alta-disponibilidade com Hyper-V .............................................. 51

5 PLATAFORMA XEN .............................................................................................. 53

5.1 CARACTERÍSTICAS DO XEN ....................................................................... 54

5.2 PARAVIRTUALIZAÇÃO COM XEN ................................................................ 55

6 OUTRAS PLATAFORMAS DISPONÍVEIS ............................................................ 57

6.1 RED HAT ........................................................................................................ 57

6.2 KERNEL-BASED VIRTUAL MACHINE ........................................................... 59

6.3 ORACLE VM SERVERS ................................................................................. 60

6.3.1 Características do Oracle ...................................................................... 60

CONCLUSÃO ........................................................................................................... 62

REFERÊNCIAS ......................................................................................................... 64

8

INTRODUÇÃO

A virtualização de servidores na plataforma X86 é um dos assuntos mais abordados

entre os gestores de TI nas empresas, independente de seu tamanho ou setor que

atua. Garantir disponibilidade dos recursos computacionais o maior tempo possível,

facilidade no gerenciamento, melhor utilização de hardware, economizar, tanto em

investimentos na compra de equipamentos quanto na manutenção dos mesmos, têm

sido a grande preocupação destes. As soluções comerciais de virtualização de

servidores disponíveis atendem as necessidades das empresas?

A consolidação de vários servidores em um mesmo hardware físico; a capacidade

de servidores serem automaticamente transferidos para outros servidores físicos; a

redução de consumo de energia e de custos com equipamentos físicos são os

motivadores para a elaboração do presente trabalho, que busca apresentar como a

virtualização de servidores pode ser uma vantagem competitiva para as empresas.

O objetivo deste trabalho é apresentar os conceitos referentes à virtualização de

servidores e as soluções comerciais disponíveis atualmente e apresentando as

vantagens e desvantagens deste ambiente e quando utilizar. Os objetivos

específicos são: explicar o que é a virtualização e as semelhanças e diferenças em

relação a servidores físicos; apresentar os recursos que tornam a virtualização um

diferencial competitivo, tais como alta-disponibilidade, gerenciamento centralizado e

as soluções comerciais mais utilizadas no mercado.

Neste contexto é apresentado o que é virtualização; justificando o porquê de se

virtualizar, os benefícios, quando utilizar ou não e a historia da virtualização de

servidores na plataforma x86.

A partir do entendimento do que é virtualização, apresentam-se os tipos de

virtualização mais comuns: por particionamento de hardware e particionamento

lógico.

9

Em seguida, apresenta as soluções comerciais mais utilizadas no mercado para

virtualização de servidores na plataforma x86.

A primeira plataforma a ser analisada é a VMware vSphere, apresentando sua

arquitetura, características que garantam recursos como alta-disponibilidade,

balanceamento de carga entre os servidores físicos (hosts), gerenciamento

centralizado através da ferramenta VMware vCenter e outros recursos possíveis

através do uso de plug-ins, tais como conversão P2V (física para virtual) e

gerenciador de atualização de software

O Hyper-V da Microsoft é apresentado como uma solução para ambientes com

servidores com o sistema operacional Windows Server, pois o mesmo permite uma

melhor integração e através do System Center Virtual Machine Manager, gerencia-

se de forma centralizada não somente maquinas virtuais sobre esta plataforma, mas

também de outras como o VMware..

A plataforma Citrix Xen é uma solução voltada para o mundo open-source, com

produtos desenvolvidos tanto pela comunidade open-source quanto pela Citrix, com

recursos de alta-disponibilidade, balanceamento de cargas e outras características

encontradas nos concorrentes. Vale ressaltar o esforço dos desenvolvedores deste

produto no sentido de garantir que as maquinas virtuais possuam desempenho

semelhante ao modo nativo, através da técnica da paravirtualização.

Outras plataformas disponíveis são apresentadas, tais como o Red Hat Enterprise

Virtualization for Server, indicado para empresas que utilizam como base para seus

sistemas operacionais o Red Hat, pois embora o Red Hat Enterprise Virtualization

for Server permite hospedar maquinas virtuais de diversos sistemas operacionais; as

maquinas virtuais com este SO apresentam desempenho próximo ao do servidor

físico; e o Oracle VM Servers, cuja solução é a única plataforma de virtualização

homologada para o famoso servidor de banco de dados Oracle, pois foi

desenvolvido para prover o melhor desempenho para altas cargas de entrada/saída.

10

Através da consulta de livros dedicados aos temas acima, elaborou-se a revisão

bibliográfica, onde foram apresentadas as características de cada solução comercial,

no intuito de fazer comparativos entre as mesmas e suas similaridades.

11

Capítulo 1

1 O QUE É VIRTUALIZAÇÃO

Segundo Buytaert et al. (2007), virtualização é um framework ou metodologia da

divisão de recursos de um hardware de computador em múltiplos ambientes de

execução, aplicando um ou mais conceitos ou tecnologias tais como particionamento

de hardware ou software, tempo compartilhado, simulação de maquina completa ou

parcial, emulação, qualidade de serviço e muitos outros.

A tecnologia da virtualização consiste em fazer um computador físico comportar-se

como se fosse um ou mais computadores, onde cada um destes computadores

virtualizados acessem a mesma arquitetura básica de um computador físico

genérico (BUYTAERT et al., 2007). Existem vários meios de se realizar isto, cada

um com seus prós e contras. A ênfase deste trabalho consiste em analisar a

virtualização de servidores baseada em software, embora existam outras formas,

conforme mencionado no paragrafo anterior.

Para permitir que um computador físico se comporte como sendo mais de um

computador, as características físicas do hardware precisam ser recriadas através

do uso de software. Pode-se dizer que a virtualização consiste então, em

transformar o hardware em software. Isto é realizado através de uma camada de

software chamada abstração.

Um exemplo do uso desta camada de abstração é o HAL (Windows Hardware

Abstraction Layer); através desta camada, o sistema operacional Microsoft Windows

provê um meio comum em que todos os drivers e softwares possam se comunicar

com o hardware em um formato comum. Isto torna mais fácil o desenvolvimento de

drivers e softwares, pois não é preciso desenvolver versões especificas para cada

fabricante de hardware.

12

Em um ambiente de virtualização, é a camada de abstração que irá recriar as

características físicas do hardware, para tornar possível vários computadores

utilizar-se dos mesmos recursos físicos (MARSHALL; REYNOLDS; MCCRORY,

2006).

Conforme Buytaert et al. (2007), virtualização é um conceito que permite que os

recursos do computador sejam divididos ou compartilhados em vários ambientes

simultaneamente. Estes ambientes podem interagir-se ou serem totalmente isolados

entre si. Este ambiente pode estar consciente ou não de que esteja sendo

executado em um ambiente virtual.

Estes ambientes são conhecidos como Máquinas Virtuais (VMs– virtual machines).

VMs são ambientes em que neles executem sistemas operacionais - SO (Linux,

Windows, etc.). De acordo com Buytaert et al. (2007), estes sistemas operacionais

são conhecidos como sistemas operacionais convidados. Algo a ressaltar é que

geralmente as instruções para a VM são passadas diretamente para o hardware

físico, o que torna o ambiente muito mais rápido e mais eficiente do que emulação.

Para melhor entendimento de um ambiente virtualizado, primeiramente é necessário

entender como funciona um típico computador físico, conforme Marshall, Reynolds e

Mccrory (2006). Este possui um conjunto de dispositivos de hardware em que é

instalado um sistema operacional (Windows, Linux, etc.) e uma ou mais aplicações

são instaladas neste SO. A figura 1 ilustra este ambiente.

Figura 1 – Arquitetura de um sistema tradicional Fonte: Marshall, Reynolds e Mccrory (2006)

13

Em um ambiente virtualizado, o arranjo é ligeiramente diferente, pois o SO tem uma

plataforma virtualizada em que um ou mais VMs são criadas, cada uma com um

conjunto de hardware separado e capaz de ter um SO e aplicações instaladas

conforme mostra a figura 2. Esta arquitetura é conhecida como arquitetura hosted

(MARSHALL; REYNOLDS; MCCRORY, 2006).

Figura 2 – Arquitetura de um sistema virtualizado – hosted Fonte: Marshall, Reynolds e Mccrory (2006)

Soluções comerciais que utilizam este tipo de arquitetura são o VMware Server,

VMware Fusion, Parallel Inc. Parallels Workstation, Oracle VM VirtualBox e Microsoft

Windows Virtual PC.

Outro arranjo em ambiente virtualizado é um em que a plataforma de virtualização é

instalada diretamente em um hardware de computador. Esta forma de virtualização

provê uma plataforma em que uma ou mais maquinas virtuais possam ser criadas,

cada uma sendo capaz de ter seu sistema operacional e aplicações sendo

executadas sobre este (MARSHALL; REYNOLDS; MCCRORY, 2006). A figura 3

ilustra este exemplo.

14

Figura 3 – Arquitetura de um sistema virtualizado – bare-metal Fonte: Marshall, Reynolds e Mccrory (2006)

Esta arquitetura é conhecida como arquitetura bare-metal ou hypervisor, e é a mais

utilizada em ambientes de produção, pois apresenta um desempenho superior em

relação ao tipo hosted, pois atua diretamente no hardware físico (MARSHALL;

REYNOLDS; MCCRORY, 2006). Soluções comerciais que utilizam este tipo de

arquitetura são: VMware ESX/ESXi, Microsoft Hyper-V, Cytrix XenServer e Oracle

VM Server.

1.1 PORQUE VIRTUALIZAR?

A razão mais comum para virtualizar, segundo Victor et al. (2011), é a consolidação

de servidores. Hoje em dia o gerenciamento de servidores apresenta grandes

desafios: Devem permitir adicionar capacidade de processamento enquanto deve

minimizar custos operacionais, que inclui energia elétrica e sistemas de refrigeração.

Em datacenters que estão realmente cheios, estes requerimentos obrigam utilizar a

capacidade de processamento ociosa nos servidores e aumentar a densidade da

carga de trabalho de novos sistemas (VICTOR et al., 2011).

15

A consolidação de servidores não é o mesmo conceito da utilização de vários

programas em um único servidor, onde apenas um programa é executado por vez.

Vários servidores executando ao mesmo tempo, permite a utilização de várias

aplicações ao mesmo tempo. Qual custo é maior: Cinco computadores executando

cinco aplicações ou apenas um computador executando cinco aplicações ao mesmo

tempo? Obviamente, um computador executando cinco aplicações ao mesmo tempo

terá um custo maior e levará mais tempo para a conclusão do que a outra opção.

1.2 BENEFÍCIOS DA VIRTUALIZAÇÃO

O uso da virtualização de servidores de acordo com Buytaert et al. (2007), traz os

seguintes benefícios:

a) redução de custos: com o uso da virtualização, vários servidores utilizando o

mesmo hardware físico impactam em redução de custos com equipamentos,

gastos com energia elétrica, refrigeração, etc.;

b) portabilidade: capacidade de ter uma plataforma de hardware consistente ao

invés de ter hardware real de diferentes fabricantes;

c) gerenciamento: ambientes virtuais podem ser gerenciados facilmente e

oferece acesso ao hardware virtual; e

d) eficiência: quando a virtualização é implantada correta.

1.3 QUANDO UTILIZAR A VIRTUALIZAÇÃO

De acordo com Buytaert et al. (2007), utiliza-se a virtualização de servidores para:

16

a) consolidação de servidores: Permite que muitos servidores físicos sejam

virtualizados e hospedados em poucos servidores físicos. Muitos servidores

hoje possui uma utilização baixa de seus recursos, em faixa de 8 a 12% de

sua utilização;

b) suporte a aplicações legadas: Permite que sistemas operacionais e

aplicações que foram descontinuadas e sem suporte a hardwares novos,

possam ser facilmente migrados para hardwares mais recentes sem riscos de

incompatibilidade;

c) suporte a sistemas operacionais múltiplos: este é um beneficio em ambientes

onde o desenvolvimento e testes em vários sistemas operacionais são

necessários;

d) demostrar softwares: Realizar demonstrativos de softwares que podem ser

executados de uma maneira eficiente e sem grandes esforços para sua

implantação;

e) desenvolvimento, testes e depuração: Devido ao fato do forte isolamento

entre os vários SO em um ambiente virtualizado, torna-se fácil executar

testes em softwares e análise de erros;

f) treinamento técnico e E-Learning: Em muitas salas de aulas avançadas,

tornam-se necessários diversos computadores para cada estudante. Com o

uso da virtualização, companhias podem reduzir o numero de computadores

exigidos para cada sala de aula e o tempo necessário para prepará-los para a

próxima turma;

g) continuidade de negócios: Virtualização pode ajudar uma empresa a alcançar

os 99,999% de disponibilidade, ajudando a eliminar os „downtimes’

planejados, entregando alta-disponibilidade, soluções de recuperação de

desastres e ajudar com as soluções de backup;e

h) HoneyPot: Máquinas virtuais podem ser facilmente configuradas para serem

HoneyPot, ou seja, máquinas com o objetivo especifico de serem alvos para

ataques que a rede ou determinadas aplicações podem sofrer, prevenindo

com isto, que aplicações de produções possam ser comprometidas.

17

1.4 QUANDO NÃO UTILIZAR A VIRTUALIZAÇÃO

Segundo Buytaert et al. (2007), não se utiliza a virtualização quando:

a) testes em virtualização da plataforma x86: Não se pode testar virtualização

dentro de um ambiente virtualizado. Isto irá tornar o ambiente não usável.

Esta é uma limitação da plataforma x86;

b) jogos no computador: Os requerimentos para execução de jogos de

computador são extremamente grandes e ter a camada de virtualização entre

o hardware e o jogo pode impactar no desempenho do mesmo;

c) hardware e periféricos especializados: Não há meios de poder colocar em

ambientes virtualizados periféricos de hardware customizado. Isto porque não

há emulação ou representação destes dispositivos em ambiente virtualizado;

d) testes de performance: A sobrecarga devido a camada de virtualização irá

causar resultados errôneos na execução de testes de performance; e

e) depurar drivers de hardware: Devido ao fato de todas as maquinas virtuais

terem o mesmo hardware, não há como testar ou depurar drivers de hardware

nesta plataforma.

1.5 HISTÓRIA DA VIRTUALIZAÇÃO

Segundo Marshall, Reynolds e Mccrory (2006), o conceito de virtualização vem

sendo discutido desde a década de 1950, embora se tornou de fato uma tendência

com o uso na plataforma x86, na década de 1980. No inicio da década de 1960, a

IBM introduziu o conceito de “Time Sharing” (tempo compartilhado), que foi a direção

inicial para a virtualização.

Hoje muitas pessoas associam o termo “Time Sharing” com mainframes, mas

possivelmente a plataforma x86 foi introduzida a virtualização neste mesmo

18

conceito, mas sobre o nome de computação “On-Demand”. Em 1964, IBM introduziu

o IBM System/360, que tinha capacidade limitada de virtualização e foi arquitetada

pelo legendário Gene Amdahl. Mais tarde em 1964, o CP-40 foi lançado e houve a

primeira menção de máquinas virtuais e memória virtual. Em 1965, o System/360

Modelo 67 foi desenvolvido, juntamente com o TSS (Time Sharing System). Este foi

seguido em 1967 por outro lançamento do CP-40 e CMS, que colocou em produção

um sistema suportando 14 VMs, cada uma com 256k de memória virtual

(MARSHALL; REYNOLDS; MCCRORY, 2006).

Uma nova iteração do CP-40 chamada CP-67 Versão 1 foi lançada em 1968. Esta

possuía uma capacidade e estabilidade superior em relação ao antecessor. O CP-67

Versão 2 em 1969 ganhou um novo agendador e suporte a PL/I. Em 1970 a versão

3 do CP-67 tinha suporte a reserva de armazenamento que garantia melhor

performance e adição de instrução SLT (MARSHALL; REYNOLDS; MCCRORY,

2006). Finalmente em 1971, a versão 3.1 do CP-67 foi liberada com melhorias no

desempenho de I/O.

Em 1972, o System/370 Advanced Function foi liberado e possuía um novo

hardware de relocação de endereços e suporte a quatro novos sistemas

operacionais: VM/370, DOS/VS, OS/VS1 e OS/VS2. Como a tecnologia da

virtualização começou a tornar-se popular na comunidade IBM, a MVMUA

(Associação Metropolitana de Usuários de Maquinas Virtuais) foi fundada em Nova

York, em 1973. A introdução do VM/370 Release 2 em 1974 continha a primeira

iteração do VMA (Virtual machine Assist) Microcode. Também em 1974, Gerald J.

Popek e Robert P. Goldberg criou um conjunto de requerimentos formais para

arquiteturas, intitulado “Formal Requirements for Virtualizable Third Generation

Architectures” (MARSHALL; REYNOLDS; MCCRORY, 2006).

Durante o período de 1974 a 1987, não houve avanços nesta área. Mas com o

avanço da internet houve grande necessidade pelo suporte TCP/IP. Em 1987, a VM

TCP/IP também conhecida como FAL tornou o TCP/IP disponível para máquinas

virtuais (MARSHALL; REYNOLDS; MCCRORY, 2006). Durante as décadas de 1980

a 1990, a necessidade de virtualização foi abandonada devido ao fato do

crescimento da plataforma x86, com o uso de minicomputadores e de baixo-custo

19

(MARSHALL; REYNOLDS; MCCRORY, 2006). Ao invés de compartilhar recursos de

forma centralizada, baseada no modelo de mainframes, as organizações passaram

a adotar os sistemas distribuídos de baixo custo (MARSHALL; REYNOLDS;

MCCRORY, 2006).

De acordo com Buytaert et al. (2007), a grande adoção do Linux e Windows como

sistemas operacionais emergentes em servidores estabilizou a plataforma x86 como

um novo padrão da indústria. Entretanto, a crescente demanda e o forte crescimento

de servidores x86 e ambientes desktop apresentou um novo conjunto de

infraestrutura de TI e desafios operacionais para este cenário.

Em 1988, uma pequena companhia chamada Connectix Corporation foi fundada e

provia soluções para sistemas da Apple Macintosh (MAC). A Connectix começou a

tornar-se conhecida por suas soluções inovadoras para resolver problemas que a

Apple não podia ou não queria resolver (BUYTAERT et al., 2007).

A experiência com a plataforma MAC e PC levou a Connectix a criar um produto

chamado Connectix Virtual PC 1.0 para MAC. O Virtual PC 1.0 foi uma verdadeira

façanha de programação que incorporou um mecanismo de tradução de binários

para traduzir instruções de um processador Intel x86 virtual para um processador

PowerPc físico utilizado no MAC (BUYTAERT et al., 2007). Este exemplo de

emulação levou a Connectix à tecnologia da virtualização.

Em 1998, uma companhia chamada VMware foi fundada por Diane Greene e seu

marido, Dr. Mendel Rosenblum junto com dois estudantes da Universidade de

Stanford e um colega de trabalho de Berkley (MARSHALL; REYNOLDS;

MCCRORY, 2006).. Em outubro de 1998, estes fundadores patentearam uma nova

tecnologia de virtualização baseadas em pesquisas conduzidas na universidade de

Stanford. Esta patente foi obtida em 28 de maio de 2002 (MARSHALL; REYNOLDS;

MCCRORY, 2006).

A VMware introduziu a plataforma “VMware Virtual Plataform” em 8 de fevereiro de

1999. Este produto é considerado por muitos como sendo o primeiro produto

20

comercial para virtualização na plataforma x86. Mais tarde, este produto tornou-se o

VMware Workstation (MARSHALL; REYNOLDS; MCCRORY, 2006).

Em 2000, a VMware lançou sua primeira plataforma de virtualização para servidores,

o VMware GSX Server 1.0. Este produto era instalado sobre sistemas operacionais

Windows ou Linux. No ano seguinte, com o lançamento do VMware ESX Server 1.0,

houve uma melhoria significativa, pois este era instalado diretamente no bare-metal

e provia maior estabilidade e alta-performance por possuir um nativo hypervisor,

também conhecido como Virtual machine Monitor (VMM). De 2002 até os dias

atuais, o VMware continuou a liberar versões de atualizações de ambos os

produtos: GSX Server (ultimamente chamado de VMware Server) e plataforma ESX,

adicionando novas capacidades e aumento de performance (MARSHALL;

REYNOLDS; MCCRORY, 2006)..

A Connectix criou um relacionamento com a Microsoft que consistia na inclusão de

pacotes do sistema operacional Microsoft com o Connectix Virtual PC para produtos

Mac. E mais tarde, eles providenciaram a tecnologia de emulação PocketPC

embutida na aplicação Visual StudioNET da Microsoft. No começo de 2003, ela

entrou no campo da virtualização de servidores x86 com sua versão “release

candidate” do Connectix Virtual Server. Entretanto, o Connectix Virtual Server nunca

entrou no mercado, porque a Microsoft adquiriu os direitos de propriedade intelectual

do Virtual PC para Mac e Windows como também do Connectix Virtual Server

(MARSHALL; REYNOLDS; MCCRORY, 2006)..

O plano de virtualização da Microsoft focava-se no suporte a aplicações legadas,

consolidação de servidores e automação de desenvolvimento de softwares e

ambientes de teste. Eles liberaram seus primeiros produtos de virtualização, o

Microsoft PC 2004, no dia 02 de dezembro de 2003. Devido ao fato de aprimorar a

segurança, o projeto acabou tendo atrasos e em meados de 2004 foi liberadas duas

versões, o Microsoft Virtual Server 2005 Standard Edition e o Microsoft Virtual Server

2005 Enterprise Edition (MARSHALL; REYNOLDS; MCCRORY, 2006)..

Assim como Connectix, a VMware também foi adquirida. A companhia foi adquirida

pela EMC Corporation em nove de janeiro de 2004, embora continuasse atuando

como uma subsidiaria independente, sendo ainda dirigida pela CEO Diane Greene.

21

Em agosto de 2007, a EMC tornou a VMware pública e vendeu cerca de 10 % da

companhia, ganhando algo em torno de um bilhão de dólares (MARSHALL;

REYNOLDS; MCCRORY, 2006)..

Enquanto isto, outra tecnologia de virtualização de servidores estava sendo

desenvolvida: a Xen (MARSHALL; BEAVER; MCCARTY, 2009). Este projeto foi

descrito primeiramente em um ensaio apresentado na SOSP em 2003. Em outubro

do mesmo ano, a versão 1.0 foi liberada. Originalmente, a Xen foi desenvolvida pelo

“Systems Research Group” no laboratório de computação da universidade de

Cambridge, como parte do projeto XenoServers, e foi fundada pelo UK-EPSRC.

Desde então, Xen ganhou maturidade e se tornou um projeto que possibilitou

pesquisas para melhorar técnicas para virtualizar recursos tais como CPU, memoria,

discos e redes. Ian Pratt, professor sênior de Cambridge, liderou o projeto e ajudou a

fundar a XenSource, Inc., uma companhia responsável pelo desenvolvimento do

projeto Xen open-souce e também criou e vendeu uma versão do software comercial

e empresarial. Contribuidores deste projeto incluem empresas como AMD, HP, IBM,

Intel, Novell, RedHat e XenSource (MARSHALL; REYNOLDS; MCCRORY, 2006)..

Conforme Williams e Garcia (2007), em 2006, XenSource liberou a primeira versão

do XenEnterprise 3.0, um produto baseado no Xen v3.0.3 e criado para competir

diretamente com o produto VMware ESX. Em agosto de 2007, XenSource Anunciou

a liberação do XenEnterprise v4, baseada no Xen 3.1, que estava mais estável e

tentou ser competitiva com produtos concorrentes como o VMware ESX. Neste

mesmo mês, a Citrix anunciou que iria fazer como a EMC e a Microsoft em relação à

plataforma de virtualização e adquiriu a XenSource por aproximadamente 500

milhões de dólares.

Com a tecnologia de hypervisor como VMware ESX e Xen começou a dominar a

plataforma de virtualização de servidores, a Microsoft passou a focar em algo mais

competitivo do que o Microsoft Virtualx Server. Com o desenvolvimento do Longhorn

ou Windows Server 2008, a companhia iniciou o desenvolvimento da sua própria

tecnologia de hypervisor, originalmente chamada Viridian e depois chamada Hyper-

V (MORIMOTO; GUILLET, 2009).

22

Fabricantes de chips como Intel e AMD continuaram a introduzir novas tecnologias

para prover melhor suporte para virtualização na camada de hardware. Estas

tecnologias incluem processadores multinúcleos, tecnologia de virtualização Intel

(originalmente conhecida como Vanderpool e Silvervale), e AMD-V/SVM

(originalmente conhecida como Pacifica). Estas tecnologias de virtualização no nível

de hardware permitiram plataformas de virtualização tornarem-se mais eficientes. As

tecnologias Intel-VT e AMD-V interceptaram estas instruções e passaram a controlar

o hypervisor para não haver a necessidade de uma camada de software complexa

podendo ocasionar problemas de desempenho. As instruções de virtualização

adicionadas nos processadores AMD e Intel têm ajudado a criar novas plataformas

de virtualização desde que tecnologias adicionais têm removido uma das barreiras

de entrar no mercado da virtualização (MARSHALL; REYNOLDS; MCCRORY,

2006).

23

Capítulo 2

2 TIPOS DE VIRTUALIZAÇÃO

Atualmente existem diversas tecnologias e formas de virtualização na plataforma

x86 (VICTOR et al., 2011). O conjunto de tecnologias de virtualização utilizado nos

sistemas de servidores empresariais é geralmente referido como tecnologias de

particionamento. Como mencionado no capitulo anterior, o foco deste trabalho é a

virtualização de servidores através de software („partitioning software‟), mas é

importante salientar que existem outras formas, tais como „hadware partitioning’, por

aplicação, recursos e serviços, assim como tipos de virtualização por sistema

operacional em ambientes „runtime‟.

2.1 PARTICIONAMENTO DE HARDWARE

Segundo Marshall, Reynolds e Mccrory (2006), particionamento de hardware refere-

se à tecnologia de hardware altamente especializado, que permitem que os recursos

de um único computador sejam divididos em múltiplas partições, as chamadas „hard

partitions‟, onde cada uma pode hospedar uma instância de um sistema operacional.

A figura 4 ilustra como funciona a virtualização por particionamento por hardware.

Particionamento por hardware existe a um bom tempo, originando dos sistemas

mainframes da IBM. Nos dias atuais existem diversas tecnologias de

particionamento por hardware disponíveis, cada qual implementação proprietária e

requer hardware e software específicos para serem utilizados. Em algumas

implementações, somente um ou dois sistemas operacionais muito específicos

possui suporte. Geralmente todos os componentes requeridos são disponíveis de

24

um único fornecedor, devido a sua natureza proprietária (MARSHALL; REYNOLDS;

MCCRORY, 2006).

Figura 4 – Particionamento por hardware Fonte: Marshall, Reynolds e Mccrory (2006)

2.1.1 Vantagens

As vantagens, de acordo com Marshall, Reynolds e Mccrory (2006), do

particionamento de hardware em relação ao por software, são:

a) grande eficiência no compartilhamento de recursos e gerenciamento de

capacidade. Estes sistemas são mais eficientes do que o particionamento por

software porque o gerenciamento de recursos entre as „hard partitions‟ são

mantidos utilizando componentes de hardware separados (memory, storage,

chips, etc.);

b) o software especializado (geralmente chamado de microcode) que executa o

gerenciamento de recursos reside em componentes de hardware gerenciados

por recursos especializados. Com isto, o desempenho disponível em cada

„hard partition‟ é maximizada e não ocorre sobrecarga;

25

c) isolamento elétrico: Esta característica de isolamento elétrico entre as „hard

partitions‟ permite que falhas ocorridas em uma partição não afetem as

demais;e

d) alta escalabilidade: Pelo fato de somente hardware altamente especializado

permitir o particionamento por hardware, estes mesmos apresentam uma alta

escalabilidade e robustez.

2.1.2 Desvantagens

Segundo Marshall, Reynolds e Mccrory (2006), as desvantagens do particionamento

de hardware em relação ao por software, são:

a) preço alto: Devido a possuir hardware e software proprietário, os custos de

aquisição, suporte são elevados e o cliente acaba sendo „refém‟ do

fornecedor;

b) suporte limitado de vários sistemas operacionais;

c) baixa portabilidade: Devido a cada fornecedor possuir tecnologia proprietária,

a portabilidade de bases instaladas nas „hard partitions‟ fica limitada a

somente hardwares do mesmo proprietário.

Alguns fornecedores e suas tecnologias atuais.

- HP – nPartition

- IBM – LPAR e DLPAR

- Sun Microsystem – Dynamic System Domain

- Unisys – Dynamic Partitioning

2.2 PARTICIONAMENTO LÓGICO

26

Particionamento lógico refere-se à separação de ambientes de execução em um

sistema computacional usando software (MARSHALL; REYNOLDS; MCCRORY,

2006). Particionamento lógico inclui particionamento por software, particionamento

de recursos e particionamento de serviços.

2.2.1 Particionamento por software

Conforme Marshall, Reynolds e Mccrory (2006), particionamento por software é uma

tecnologia baseada em software que permite um computador físico ser dividido em

múltiplas partições (chamadas de „soft partitions‟ ou máquinas virtuais), cada qual,

hospedando sua própria e isolada instância de um sistema operacional. Seu

comportamento é semelhante ao particionamento de hardware, pois múltiplas

instâncias podem coexistir em um único servidor físico, com a diferença que, pelo

particionamento por software, o isolamento de cada partição e o gerenciamento dos

recursos compartilhados é realizado por uma camada especial de software chamada

„Virtual machine Monitor‟ (VMM) ou Hypervisor (MARSHALL; REYNOLDS;

MCCRORY, 2006).

O VMM, assim como os sistemas operacionais de cada „soft partition‟, consomem

recursos do mesmo conjunto de hardware, ou seja, a VMM utiliza-se de recursos de

hardware, o que ocasiona degradação de desempenho, se comparado com o

particionamento de hardware. Esta degradação varia de acordo com cada

implementação, mas sempre causa impacto no desempenho de cada Máquina

Virtual (MARSHALL; REYNOLDS; MCCRORY, 2006).

Existem dois tipos de particionamento por software de acordo com Marshall,

Reynolds e Mccrory (2006):

a) hosted: Neste tipo de implementação (conforme figura 5), a camada de

virtualização é um aplicativo que é instalado em um sistema operacional. As

27

vantagens deste tipo de implementação é utilizar a capacidade de

gerenciamento de recursos do sistema operacional utilizado, sua

compatibilidade de hardware, APIs e desenvolvimento relativamente mais

simples, assim como seu suporte. Como desvantagens, irá apresentar as

mesmas deficiências e ineficiências do sistema operacional em que a mesma

está hospedada; degradação de desempenho devido ao consumo de

recursos que o sistema operacional que hospeda este apresenta. Algumas

tecnologias deste tipo de implementação inclui Microsoft Virtual Server,

Oracle VM VirtualBox e VMware GSX Server, em ambiente Windows e o

VMware GSX Server e Oracle VM VirtualBox para Linux;

Figura 5 – Particionamento por software do tipo hosted Fonte: Marshall, Reynolds e Mccrory (2006)

b) bare-metal ou Hypervisor: Conforme ilustra a figura 6, neste tipo, a camada de

virtualização é instalada diretamente no hardware, com isto, apresenta um

melhor desempenho, pois por não apresentar um sistema operacional

intermediando, o gerenciamento dos recursos computacionais se torna mais

eficiente. Atualmente, o VMware ESX Server é a implementação mais madura

de um sistema de particionamento por software instalado nativamente em

arquitetura baseada em x86, embora podemos citar outras tecnologias como

Cytrix XenServer, Microsoft Hyper-V e Oracle VM Server.

28

Figura 6 – Particionamento por software instalado nativamente no hardware Fonte: Marshall, Reynolds e Mccrory (2006)

Sistemas de particionamento por software utiliza-se de combinação de emulação,

simulação e „pass-through‟ (passar através) em seus métodos de abstração de

hardware. Cada máquina virtual „enxerga‟ seu próprio conjunto de recursos de

hardware que irá consumir.

2.2.2 Particionamento de aplicações

Particionamento de aplicações é uma tecnologia baseada em software que permite

que recursos do sistema operacional em que uma aplicação dependa de estar

executando em um ambiente alternativo em um sistema operacional sem o

conhecimento da mesma (MARSHALL; REYNOLDS; MCCRORY, 2006).

O aplicativo isolado pode ser executado em múltiplas instâncias simultaneamente

em um mesmo sistema operacional, por um ou mais usuários, sem uma instância de

aplicação interferindo em outra. Cada instância não tem conhecimento da existência

de outras, e esta implementação não requer nenhuma mudança no aplicativo para

que possa ser hospedado em um sistema de particionamento de aplicações.

29

A grande vantagem de um sistema de particionamento de aplicações, segundo

Marshall, Reynolds e Mccrory (2006), é que qualquer aplicação, independente de ser

usada por um ou mais usuários, pode ser gerenciada de forma centralizada e ser

disponível de forma distribuída. Um único servidor pode executar muitas instâncias

desta aplicação e cada estado da instância desta aplicação é escrito em um

container separado. Cada container é automaticamente controlado pelo sistema de

particionamento de aplicações.

O particionamento de aplicações pode consolidar uma única aplicação para

múltiplos computadores desktops e servidores em um único servidor e a aplicação

pode ser gerenciada como uma única instância desta aplicação. O próprio sistema

operacional não é completamente abstraído desta aplicação, somente certos

subcomponentes, tais como sistema de arquivos, portanto somente aplicações

executam normalmente em um sistema operacional começando a usar são

permitidos para ser hospedado em um sistema de particionamento de aplicações. A

figura 7 ilustra este exemplo (MARSHALL; REYNOLDS; MCCRORY, 2006).

Figura 7 – Particionamento de aplicação Fonte: Marshall, Reynolds e Mccrory (2006)

30

2.2.3 Particionamento de recursos

De acordo com Marshall, Reynolds e Mccrory (2006), particionamento de recursos é

uma tecnologia baseada em software que abstrai como certos recursos do sistema

operacional são alocados para instâncias de aplicações ou processos individuais

executando em um sistema operacional (A figura 8 ilustra este tipo de

particionamento). Esta tecnologia é usada para controlar consumo de recursos de

aplicações e processos, permitindo maior controle granular que os providos pelo

sistema operacional (MARSHALL; REYNOLDS; MCCRORY, 2006).

Figura 8 – Particionamento de recursos Fonte: Marshall, Reynolds e Mccrory (2006)

Os sistemas de particionamento de recursos permitem também que o consumo de

recursos possa ser controlado não somente no nível de aplicações ou recursos, mas

também por uma combinação de aplicações ou processos e contas de usuários

(MARSHALL; REYNOLDS; MCCRORY, 2006).

Este tipo de virtualização permite também habilitar qualidade de serviço no sistema

operacional, pois as instâncias de aplicações ou processos podem passar

parâmetros, que permitem níveis mínimos e máximos de utilização de recursos tais

como CPU, memoria e I/O de discos para serem efetivamente controladas e

gerenciadas (MARSHALL; REYNOLDS; MCCRORY, 2006). Assim, como o

particionamento de aplicações, este não abstrai o sistema operacional inteiro, ao

31

invés disto, somente aplicações que devam ser controladas pelo sistema de

particionamento de recursos são abstraídas.

2.2.4 Particionamento de serviços

Conforme Marshall, Reynolds e Mccrory (2006), o particionamento de serviços é

uma tecnologia baseada em software em que uma única instância da aplicação

prove múltiplas e isoladas instâncias de um serviço (conforme figura 9).

Figura 9 – Particionamento de serviços Fonte: Marshall, Reynolds e Mccrory (2006)

Cada instância do serviço aparece para os consumidores do serviço como sendo

uma instância de aplicação dedicada (e geralmente oferece uma instância de

servidor dedicada) (MARSHALL; REYNOLDS; MCCRORY, 2006). Neste tipo de

virtualização, a abstração ocorre no topo da instância da aplicação, que permite que

múltiplas instâncias desta aplicação possam coexistir.

De acordo com Marshall, Reynolds e Mccrory (2006), o nível de isolação entre estas

instâncias pode variar conforme a implementação; ocorrendo casos em que há

completo isolamento entre as instâncias até o caso em que não há isolamento.

32

Exemplos comuns deste tipo de virtualização são servidores de banco de dados e

web. Em um servidor de banco de dados, uma única instância é executada em um

sistema operacional. Esta instância pode conter diversos bancos de dados. Com o

particionamento de serviços, cada banco de dados pode ser configurado para

aparecer para os consumidores do serviço somente como o único do servidor,

embora possa ter mais de vinte bancos de dados sendo executados

simultaneamente (MARSHALL; REYNOLDS; MCCRORY, 2006).

Outro exemplo são os servidores web modernos que permitem múltiplos „web sites’

virtuais para serem criados e hospedados simultaneamente de uma única instância

da aplicação (MARSHALL; REYNOLDS; MCCRORY, 2006). Cada „web site‟ é

isolado um do outro e aparece como se estivesse hospedado em seu próprio

servidor dedicado, quando na realidade podem ter mais de cem „web sites‟ rodando

simultaneamente de uma instância de aplicação de servidor web.

2.2.5 Sistemas Operacionais e ambientes Runtime

Embora não seja usualmente descrito como um tipo de tecnologia de virtualização,

sistemas operacionais são na verdade um dos tipos mais comuns de tecnologias de

virtualização. Pode-se dizer que um sistema operacional é uma maquina virtual

implementada em software usada para abstrair os recursos do hardware do

computador (MARSHALL; REYNOLDS; MCCRORY, 2006). Aplicativos que residem

e executam dentro deste sistema operacional, utilizam-se das facilidades deste SO

para acessar o hardware ao invés deste próprio acessar o hardware, geralmente

através do modulo chamado driver de dispositivo (MARSHALL; REYNOLDS;

MCCRORY, 2006).

Alguns frameworks de programação incluem um ambiente runtime designado para

rodar no topo do sistema operacional. Softwares escritos para serem executados

neste ambiente rodam no topo do sistema operacional como também dependem

deste ambiente runtime (ou maquinas virtuais como são chamados) para executar

33

as tarefas. Este tipo de virtualização não prove um ambiente de execução completo

e depende do sistema operacional e seus recursos para executar seu trabalho

(MARSHALL; REYNOLDS; MCCRORY, 2006). Exemplos incluem o framework

Microsoft .Net e o Sun Java.

34

Capítulo 3

3 A PLATAFORMA VMWARE SPHERE

A companhia VMware surgiu em 1998 para prover soluções em virtualização de

servidores na plataforma x86 (MISHCHENKO, 2011). Em 1999, liberou a versão

VMware Workstation, que permitia executar vários sistemas operacionais sobre um

sistema desktop. Isto permitia que alguém do suporte técnico que precisasse testar

várias versões de sistemas operacionais, tivesse como realizar isto sem a

necessidade de diversos computadores ou estar reinstalando cada versão

(MISHCHENKO, 2011).

Em 2001, a VMware lançou duas versões: a VMware GSX Server e ESX Server. A

VMware GSX Server era semelhante a VMware Workstation, ou seja, um aplicativo

executado sobre um sistema operacional (Windows ou Linux), com a diferença que

era instalada em um computador servidor ao invés de um computador desktop. Mais

tarde, esta versão foi renomeada para VMware Server (MISHCHENKO, 2011).

A VMware ESX Server também foi lançada como uma solução centralizada para

hospedar maquinas virtuais, mas com a arquitetura diferente em relação ao VMware

GSX Server. De acordo com Mishchenko (2011), o ESX Server é instalado

diretamente no hardware do servidor, proporcionando uma maior performance, pois

não há camadas intermediarias entre o hardware e a plataforma de virtualização,

elimina vulnerabilidades de segurança e a necessidade de um maior gerenciamento

exigido por sistemas operacionais como Windows e Linux. A camada de

virtualização, ou hypervisor, do VMware é denominada VMkernel, desenvolvida

especificamente para hospedar maquinas virtuais, eliminando consumo significativo

de recursos e potencias brechas de segurança (MISHCHENKO, 2011).

35

A VMware ESX também introduziu o formato de partição denominado VMFS:

„VMware Virtual machine File System‟. Em sua primeira versão, este formato apenas

otimizava as operações das máquinas virtuais. Já na versão 2, conforme

Mishchenko (2011), a VMware implementou capacidade de clusterização. Com esta

capacidade, o mesmo volume podia ser acessado por vários hosts, implementando

o bloqueio por arquivo. A capacidade do sistema de arquivos VMFS e as

características da plataforma ESX permitiu o lançamento do VMware VirtualCenter

Server, hoje conhecido por vCenter. O VirtualCenter Server possibilita o

gerenciamento centralizado dos hosts ESX e inclui características inovadoras como

o vMotion, que permite a migração de maquinas virtuais entre os hosts ESX, sem

interrupção e clusters de alta disponibilidade (MISHCHENKO, 2011).

Em 2007, a VMware lançou a segunda geração da plataforma de virtualização bare-

metal, denominada ESXi (ESX integrada). A ESXi 3.5 foi lançada na VMworld 2007,

onde foi distribuído em um pen-drive de 1GB. O ESXi foi inicialmente desenvolvido

para ser armazenado nas memórias de somente leitura, ROM, dos servidores, ou

seja, de uma forma embutida, para tornar o nível da camada de virtualização livre de

ataques, a instalação de patches menos frequentes e diminuição de consumo de

energia, pois não necessitava de discos rígidos para serem instalados. Mas o uso da

plataforma ESXi popularizou-se de duas formas: a embutida, em dispositivos de

memoria flash, dentro dos servidores e a forma instalada (MISHCHENKO, 2011).

A grande diferença em relação à versão ESX, que esta não possui a console de

serviço baseada em Linux, que era necessária para gerenciar o ESX. Isto

proporcionou uma redução significativa no tamanho da instalação do ESX, que

exigia cerca de 1.1 gigabyte de espaço em disco para cerca de 90 megabyte, na

ESXi, por isto a opção de se instalar em memorias flash (MISHCHENKO, 2011).

36

3.1 A ARQUITETURA ESXI

Segundo Mishchenko (2011), a tecnologia por trás da arquitetura VMware ESXi

representa a nova geração da plataforma de virtualização do VMware, que é a

fundação dos produtos de virtualização da VMware. Através de funcionalidades

equivalentes do ESX, esta plataforma elimina a necessidade de uma console de

serviço baseada em Linux, reduzindo significativamente seu tamanho.

O ponto central do ESXi é o VMkernel, como mostrado na figura 10. Este é o

responsável por controlar o acesso do hardware para o host ESXi. Todos os demais

processos são executados sobre o VMkernel (MISHCHENKO, 2011).

Figura 10 – Os componentes da arquitetura do VMware ESXi Fonte: Mishchenko (2011)

O VMkernel é um sistema operacional baseado em POSIX (acrônimo para o nome

denominado: Portable Operating System Interface, que pode ser traduzido

como Interface Portável entre Sistemas Operacionais), que é uma família

de normas definidas pelo IEEE e designada formalmente que tem como objetivo

garantir a portabilidade do código-fonte de um programa a partir de um sistema

operacional que atenda as normas POSIX para outro sistema POSIX, desta forma

37

as regras atuam como uma interface entre sistemas operacionais distintos

(MISHCHENKO, 2011).

O VMkernel foi desenvolvido pela VMware e é similar a qualquer outro sistema

operacional em que este usa a criação de processos, sistemas de arquivos e

threads, mas com a diferença de que o objetivo do VMkernel é somente executar

maquinas virtuais, ou seja, o hypervisor foca no agendamento de recursos, drivers

de dispositivos e pilhas de Entrada/Saída (MISHCHENKO, 2011).

A comunicação com o VMkernel é feita através de APIs VSphere. De acordo com

Mishchenko (2011), as ferramentas utilizadas para este gerenciamento são o

vSphere Client, vCenter Server, vCLI e outras aplicações, desenvolvidas por

terceiros, que se comunicam através destas APIs.

Numerosos processos são executados sobre o VMkernel, que provem

gerenciamento de acesso, monitoramento de hardware, assim como também um

compartimento de execução em que uma maquina virtual opera (MISHCHENKO,

2011). Estes processos são conhecidos como processos “user world”, e operam

similarmente como aplicações em um sistema operacional qualquer, exceto que

foram desenvolvidos para prover função de gerenciamento especifica para a

camada de virtualização (MISHCHENKO, 2011).

O processo VMM („Virtual machine Monitor‟, que pode ser livremente traduzido como

monitor de maquina virtual) é o responsável por fornecer um ambiente de execução

em que o sistema operacional convidado opera e interage com o conjunto de

hardware virtual que é apresentado a este (MISHCHENKO, 2011). Cada processo

VMM tem um processo ajudante correspondente conhecido como VMX e cada

máquina virtual tem um de cada processo .

O processo hostd provê uma interface programática para o VMkernel. Esta é usada

pela API do vSphere e para o vSphere Client quando utilizado para se conectar

diretamente ao host. Este processo gerencia usuários e grupos locais como também

avalia os privilégios para os usuários que interagem com o host. O hostd também

38

funciona como proxy reverso para todas as comunicações com o host ESXi

(MISHCHENKO, 2011).

Conforme Mishchenko (2011), o VMware ESXi conta com o sistema CIM (Commom

Information Model, que pode ser traduzido como modelo de informação comum)

para monitorar o status do hardware. Este provê um conjunto de APIs para

aplicações remotas poderem consultar o status do hardware do host ESXi. Com isto,

fornecedores de hardware são aptos a desenvolver seu plug-in CIM especifico para

realizar este monitoramento.

O processo DCUI (Direct Console User Interface) prove uma console de

gerenciamento local para ESXi. O DCUI aparece como uma interface parecida com

a BIOS, como mostrada na figura 11 (MISHCHENKO, 2011).

Figura 11 – A console de administração DCUI Fonte: Mishchenko (2011)

O processo vpxa é responsável pela comunicação com o vCenter Server. Este

processo roda dentro de um contexto de segurança do vpxuser. Comandos e

consultas realizadas do vCenter Server são recebidas por este processo antes de

ser encaminhadas ao processo hostd. O processo agente é instalado e executado

quando o host ESXi é ligado em um cluster de alta disponibilidade (MISHCHENKO,

2011).

39

3.2 FERRAMENTAS DE GERENCIAMENTO

Como mencionado anteriormente, a arquitetura ESXi é uma plataforma bem enxuta,

onde somente processos indispensáveis ao funcionamento do host são executados

neste. O gerenciamento local é feito pela DCUI, que permite realizar operações

básicas no host: configurar senha do administrador (root), configurar endereço IP da

placa de rede para gerenciamento de trafego, reiniciar serviços de gerenciamento do

host, reiniciar ou desligar o host.

Para poder interagir com o ambiente de virtualização, utilizar os recursos disponíveis

da plataforma ESXi, é necessário aplicações que são executadas remotamente para

realizar este gerenciamento. Independente se irá gerenciar diretamente o host ESXi,

ou este gerenciamento irá ser feito através do vCenter Server, a ferramenta mais

utilizada para tal, é o vSphere Client. A figura 12 mostra a tela principal do vSphere

Client.

Figura 12 – A tela inicial do vSphere Client Fonte: Mishchenko (2011)

40

Através desta console, é possível verificar as informações e status referentes aos

componentes de hardware do host (processador, disco, memória, etc), acessar e

gerenciar as máquinas virtuais. A maioria dos elementos disponíveis para configurar

o host está na aba Configuration (figura 13). Estas opções estão disponíveis tanto

acessando diretamente o host como pelo vCenter Server (MISHCHENKO, 2011).

Figura 13 – A tela de configuração do ESXi Fonte: Mishchenko (2011)

Esta aba permite verificar o status dos diversos componentes do hardware do host.

As opções são exibidas de acordo com o „Common Information Model‟ (CIM)

instalado no host. Também permite obter informações sobre o processador, tais

como o modelo deste, o numero de soquetes, núcleos por soquete, e se o recurso

Hyperthreading está habilitado (MISHCHENKO, 2011). Exibe também algumas

sobre a placa-mãe do host, incluindo o nome do fabricante, modelo, e a versão da

BIOS assim como, o total de memória disponível para o host, as configurações

atuais das redes e armazenamento, gerenciamento de energia, licenciamento,

sincronização do relógio do host com os servidores de tempo disponíveis na internet,

além de configurações avançadas (MISHCHENKO, 2011).

41

3.3 VMWARE VIRTUALCENTER SERVER

O VMware VirtualCenter, é a console de gerenciamento centralizado utilizado em

ambientes VMware para configurar, provisionar e gerenciar ambientes virtualizados

nas empresas. Através do vCenter, tecnologias como vMotion, alta disponibilidade e

agendador de distribuição de recursos são habilitadas, assim como outras

tecnologias, como segue abaixo (KHNASER, 2011):

a) VMware Update Manager: Uma ferramenta automatizadora utilizada para

gerenciar atualizações dos hosts ESX/ESXi e máquinas virtuais;

b) VMware vCenter Converter: Ferramenta de conversão que permite migrar um

servidor físico ou virtual para uma máquina virtual;

c) VMware vCenter Guided Consolidation: Ferramenta utilizada para analisar

uma infraestrutura de servidores físicos e recomendar os servidores físicos

que são bons candidatos para serem convertidos para máquinas virtuais.

A estrutura do vCenter é exibida conforme a figura 14:

Figura 14 – Os componentes do VMware VirtualCenter Server Fonte: Khnaser (2011)

42

Os componentes do VMware VirtualCenter Server são (KHNASER, 2011):

a) núcleo: O módulo principal do vCenter, o núcleo permite as máquinas virtuais

serem provisionadas, agendador de tarefas, registra eventos, etc.;

b) serviços distribuídos: O modulo que habilita recursos como vMotion, alta

disponibilidade e agendador de distribuição de recursos;

c) serviços adicionais: O modulo onde módulos independentes atuam, tais como

VMware Converter Enterprise e Update Manager;

d) interface do banco de dados: O canal que conecta ao servidor de banco de

dados que prove ao vCenter um repositório central para todos seus dados;

e) gerenciamento de host ESX/ESXi: A interface que permite ao vCenter

conectar aos hosts ESX/ESXi e gerencia-los;

f) interface do Active Directory: O canal que é estabelecido com um domínio do

active directory para estender suporte a usuários e grupos para o vCenter;

g) vSphere Application Programming Interface (API) e vSphere Software

Development Kit (SDK): O código de programação que prove um framework

para desenvolver aplicações customizadas.

3.3.1 Recursos do ESX/ESXi com o uso do vCenter

De acordo com Khnaser (2011), o vCenter permite:

a) gerenciamento em larga escala: Na versão 4.1, um vCenter é capaz de

gerenciar até 1000 host e até 10000 máquinas virtuais ligadas;

b) implantação com o uso de assistentes: Possui assistentes que auxiliam na

criação de máquinas virtuais, tornando o trabalho fácil;

c) modelos de máquinas virtuais editáveis: Permite salvar uma máquina virtual

como um modelo (template), o que facilita na criação de novas máquinas

virtuais utilizando este padrão. O modelo permite atualizações e correções de

falhas;

43

d) clonagem de máquinas virtuais: Permite clonar uma máquina virtual para

realizar um backup completo ou criar um novo servidor quando necessário;

e) migração “ao vivo” – vMotion: vMotion é uma tecnologia que permite migrar

uma máquina virtual de um servidor físico para o outro, sem interrupção dos

serviços, ou seja, usuários que estejam utilizando esta máquina virtual nem

perceberão esta migração;

f) Distributed Resource Scheduler (DRS): O DRS, agendador de recursos

distribuídos, é um recurso que monitora constantemente os servidores físicos

do VMware ESXi cluster, balanceando as cargas entre todos os servidores,

através do vMotion, para migrar máquinas virtuais de um host para outro host

para manter o balanceamento. Pode ser configurado de diversas formas,

desde uma simples recomendação de migração até para uma politica de

migração automatizada agressiva;

g) Distributed Power Management (DPM): O gerenciamento de energia

distribuída monitora a carga das máquinas virtuais, verificando quando é

possível distribuir as máquinas virtuais através do cluster DRS, de maneira

que, quando a carga for baixa, possa desligar servidores físicos ociosos, para

diminuir o consumo de energia elétrica, ligando automaticamente, quando a

carga aumentar e for necessário religar estes servidores físicos; e

h) alta disponibilidade (HA – High availability): O HA é um recurso que permite

reiniciar todas as máquinas virtuais em um host que teve falha em outro

membro deste cluster.

3.3.2 Recursos disponíveis no vCenter através de plug-ins

Os recursos disponíveis no vCenter, de acordo com Khnaser (2011) são:

a) conversão física para virtual: Esta funcionalidade permite gerenciar múltiplas

conversões de máquinas físicas para virtuais utilizando o vCenter Console;

44

b) plug-in para consolidação: Através do uso de assistentes, o plug-in de

consolidação irá automaticamente descobrir servidores físicos e analisar sua

performance para verificar a viabilidade de conversão para máquina virtual; e

c) plug-in para gerenciamento de atualização: Esta funcionalidade

automaticamente escaneia e atualiza os servidores ESX/ESXi como também

máquinas virtuais Linux e Windows. Esta funcionalidade também reduz o

downtime através da realização de snapshots antes de executar, com a opção

de desfazer as atualizações. A integração do DRS com o Update Manager

proporciona um downtime igual a zero quando atualiza hosts ESX/ESXi.

45

Capítulo 4

4 A PLATAFORMA MICROSOFT HYPER-V

Segundo Morimoto e Guillet (2009), a tecnologia Hyper-V foi apresentada com o

lançamento do Windows Server 2008, para concorrer com outras tecnologias de

virtualização, tais como VMware e XenServer. O kernel do Windows Server 2008 foi

reescrito para que esta versão do sistema operacional provesse melhorias em

relação à tecnologia de virtualização.

A Microsoft, conforme Morimoto e Guillet (2009), com o Hyper-V, simplificou o

processo de adição de virtualização no ambiente corporativo, pois para adicionar

este recurso, basta abrir a ferramenta de gerenciamento do servidor e adicionar esta

opção, sem a necessidade de instalação de programas adicionais (figura 15).

Figura 15 – Hyper-V como um recurso do Windows Server 2008 Fonte: Morimoto e Guillet (2009)

46

4.1 CARACTERÍSTICAS DO HYPER-V

Segundo Morimoto e Guillet (2009), as características do Hyper-V são:

a) executado em ambiente Windows: Diferente de outras plataformas de

virtualização, que são executadas em plataformas proprietárias ou outros

sistemas operacionais, como o Linux, o Hyper-V é executado na plataforma

Windows, familiar para a maioria dos administradores de redes. Isto torna

rápido o aprendizado desta ferramenta, pois não necessita de aprender um

novo sistema operacional, ferramentas de gerenciamento ou especializadas.

A ferramenta de gerenciamento do Hyper-V é simplesmente como qualquer

outra ferramenta administrativa no Windows. Portanto, a criação de máquinas

virtuais, o monitoramento destas e o seu gerenciamento é um processo

familiar para os administradores de TI;

b) suporte de aplicações Microsoft nesta plataforma de virtualização: Uma

preocupação quando se virtualiza o ambiente é o suporte que eles receberão

de seus fornecedores de software (Microsoft, IBM, Oracle, etc). Enquanto

todos dao suporte a suas aplicações em sistemas de hardware físico, não

necessariamente garantem este suporte em sistemas virtualizados;

c) com o lançamento do Hyper-V, a Microsoft anunciou suporte total de suas

aplicações em ambientes sendo executado sobre o Hyper-V. Produtos como

o Exchange 2007 SP1, Microsoft Office SharePoint 2007 SP1 são diretamente

suportados;

d) Microsoft Hyper-V prove suporte a máquinas virtuais não-Windows: Com o

lançamento do Hyper-V, a Microsoft preocupou-se em garantir que o Hyper-V

não irá prover suporte somente para máquinas virtuais com o Windows (como

Windows Server 2003 e 2008), mas também VMs com o Linux. Garantindo

suporte para VMs com um variado tipo de sistemas operacionais, a Microsoft

está permitindo que organizações para consolidar seus sistemas tanto

Windows como não-Windows em poucos servidores hosts Hyper-V;

e) Hyper- V é uma plataforma de virtualização bare-metal: Antes do Hyper-V, as

tecnologias de virtualização do Microsoft eram plataforma de virtualização

baseada em host, ou seja, eram executadas sobre o sistema operacional e os

47

recursos exigidos pelas máquinas virtuais eram compartilhados com os

recursos do sistema operacional host, ou seja, um evento no servidor host

que causasse uma falha era repassada para as máquinas virtuais também.

Com a adoção do Hyper-V, os sistemas operacionais das VMs comunicam-se

diretamente com o hardware sem ter que passar pelo sistema operacional

host. Isto garante maior independência, escalabilidade, melhor performance e

maior confiabilidade; e

f) disponível somente em plataforma x64 bits: O Hyper-V foi lançado na versão

do Windows Server 2008, na plataforma de x64 bits, disponível somente nas

versões Standard, Enterprise e Datacenter.

4.2 GERENCIANDO O HYPER-V

O Hyper-V possui diversas ferramentas que gerenciam e administram os servidores

host e as VMs (MORIMOTO e GUILLET, 2009). Estas ferramentas incluem a

console de administração do Hyper-V e a console de gerenciamento de servidor do

Windows 2008. A ferramenta de gerenciamento de servidor é uma interface que

permite centralizar toda a administração dos serviços do Windows server 2008

(MORIMOTO e GUILLET, 2009).

Nesta console, estão acessíveis não somente as configurações do Hyper-V, mas de

outros servidores, como DNS. DHCP, arquivos, etc., como é possível verificar na

figura 16.

48

Figura 16 – Ferramenta de gerenciamento do Windows Server 2008 Fonte: Morimoto e Guillet (2009)

A console de administração do Hyper-V é dedicada somente ao gerenciamento do

Hyper-V (conforme ilustra a figura 17). É possível realizar o gerenciamento tanto do

servidor local, como de forma remota, bastando informar o endereço do servidor que

se pretende gerenciar (MORIMOTO; GUILLET, 2009).

49

Figura 17 – Ferramenta de gerenciamento do Hyper-V Fonte: Morimoto e Guillet (2009)

Através destas ferramentas, pode-se configurar os switches virtuais de rede, os

hosts e o gerenciamento das máquinas virtuais, tais como discos, memória, CPU,

etc.

4.3 SYSTEM CENTER VIRTUAL MACHINE MANAGER 2008

O System Center Virtual machine Manager 2008(SCVMM 2008) propõe ser uma

interface de gerenciamento comum para o datacenter virtualizado (MORIMOTO e

GUILLET, 2009). Isto porque permite não somente gerenciar ambientes Microsoft,

mas também VMware e XenServer, através de plug-ins de terceiros.

De acordo com Morimoto e Guillet (2009), o SCVMM 2008 utiliza uma abordagem

holística para gerenciar a infraestrutura virtual, examinando e classificando os hosts

de virtualização. Através de uma série de critérios, indica qual o melhor host para

50

hospedar determinada máquina virtual. Este é uma aplicação que administradores

podem usar para gerenciar um grande numero de VMs através de uma infraestrutura

virtual (MORIMOTO; GUILLET, 2009).

4.3.1 Componentes do SCVMM

Conforme Morimoto e Guillet (2009), o SCVMM é composto por uma série de

componentes, como mostrados a seguir:

a) serviço VMM: O núcleo do SCVMM. Uma aplicação que é instalada em

versões do Windows Server 2003 SP1 ou posterior;

b) banco de dados SQL Server. Este banco contem todos os objetos do VMM.

c) agente local: Componente instalado nos servidores hosts do Hyper-V,

responsável por comunicar-se com o serviço VMM;

d) Library Servers: Servidores que funcionam como repositórios de recursos

para o ambiente VMM; e

e) console administrativa: Interface em que o administrador interage com o

serviço VMM. Pode-se interagir através de interface gráfica ou linha de

comando para gerenciar a infraestrutura física e virtual. O administrador pode

gerenciar hosts rodando Hyper-V, VMware ESX e Microsoft Virtual Server. A

console do VMM 2008 (figura 18) possui o padrão de outros produtos

Microsoft de gerenciamento de sistemas, como o System Center

Configuration Manager 2007 (SCMM 2007) e o System Center Operation

Manager 2007 (SCOM 2007).

51

Figura 18 – Ferramenta System Center Virtual machine Manager – SCVMM 2008 Fonte: Morimoto e Guillet (2009)

4.4 AMBIENTE DE ALTA-DISPONIBILIDADE COM HYPER-V

Para garantir a disponibilidade dos serviços em um ambiente virtualizado, torna-se

necessários mecanismos de prevenção a falhas e recuperação de desastres. Em

ambientes Hyper-V, existem quatro formas de se garantir que não haja interrupção

conforme Morimoto e Guillet (2009):

a) utilizando funcionalidades de alta-disponibilidade nativas nas aplicações a

serem protegidas: Algumas aplicações possuem recursos que garanta alta-

disponibilidade, não sendo necessário investir em outras opções. Por

exemplo, controladores de domínios Windows replicam informações entre si,

ou seja, não há a necessidade de implantar mecanismos que protejam um

servidor controlador de domínio, pois caso este pare de funcionar, outro

controlador assume esta função. Outras aplicações que possui este

52

comportamento são: servidores de catalogo global do Active Directory,

servidores web com balanceamento de carga, servidores DNS, etc;

b) clusterização da máquina virtual. Existe a opção de clusterizar aplicações tais

como servidores de correio Exchange, SQL Server. Estas aplicações são

instaladas em máquinas virtuais dispersas em hosts diferentes, e caso algum

host pare de funcionar, a aplicação clusterizada passa a funcionar

automaticamente em outro host, garantindo alta-disponibilidade;

c) clusterização do host: Através da criação de cluster do host, ou seja, a criação

de um cluster Hyper-V, garante que todas as máquinas virtuais de um host

que apresente falhas, seja automaticamente reiniciada em outro host. Isto é

possível através do uso de um storage compartilhado. Esta solução é

indicada para aplicações que não possuam mecanismos de alta-

disponibilidade nativos; e

d) adquirindo uma aplicação de terceiros para alta-disponibilidade e recuperação

de desastres: Esta é uma estratégia utilizada quando há uma necessidade de

disponibilidade mais alta do que as soluções apresentadas anteriormente e é

necessária a aquisição de ferramentas especializadas para este caso.

53

Capítulo 5

5 PLATAFORMA XEN

O Xen é um hypervisor de plataforma aberta (open-source), para arquiteturas de

processadores de 32 ou 64 bits (BUYTAERT et al., 2007). É uma plataforma de

virtualização tipo bare-metal, que habilita executar diversos tipos de sistemas

operacionais em um mesmo computador host ao mesmo tempo. As máquinas

virtuais são executadas com segurança e eficiência com desempenho próximo do

nativo.

Conforme Buytaert et al. (2007), o projeto Xen originou-se de um projeto de

pesquisa do Grupo de Pesquisa de sistemas (Systems Research Group) no

Laboratório de Computação da Universidade de Cambridge e foi baseado no

XenoServers do Conselho de Pesquisas dos Engenheiros e Cientistas de Física do

Reino Unido.

O objetivo do projeto foi prover uma infraestrutura publica a nível global e acessível

para propósitos de computação distribuída, com uma dedicação especial para

pesquisas de sistemas, e liderados pelo pesquisador sênior Ian Pratt, o projeto

produziu o hypervisor Xen como uma tecnologia de núcleo (BUYTAERT et al.,

2007).

O Xen foi liberado para o público utilizando uma abordagem de dois passos:

Primeiramente, Ian Pratt, juntamente com outros colaboradores liberaram um ensaio

intitulado “Xen and the Art of Virtualization” (em tradução livre seria Xen e a Arte da

Virtualização), no Simpósio bi-anual de Princípios de Sistemas Operacionais,

descrevendo o hypervisor e a abordagem para trazer virtualização para a arquitetura

x86 em outubro de 2003 (BUYTAERT et al., 2007). Ao mesmo tempo, a versão 1.0

tornou-se disponível para download. Desde então, Xen cresceu e tornou-se maduro,

54

sendo peça-chave em muitas implementações. Xen também é tecnologia base para

uma abordagem de mudança para modelos de hospedagem e Software como um

serviço (SaaS) (WILLIAMS; GARCIA, 2007).

O desenvolvimento do Xen na comunidade open-source é agora liderada pela

XenSource, fundada por Pratt. Através de um canal para soluções comerciais para

empresas baseadas na tecnologia Xen, XenSource é muito comprometida para o

crescimento da comunidade Xen, promovendo e inspirando desenvolvedores para

que o hypervisor Xen tenha este estado atual, e dedicando esforços próprios para o

desenvolvimento deste também (BUYTAERT et al., 2007).

5.1 CARACTERÍSTICAS DO XEN

O Xen oferece um conjunto de funcionalidades a nível empresarial, tornando-o um

excelente candidato para implementações grandes executando aplicações criticas

como também em pequenos e médios negócios. Para Williams e Garcia (2007),

estas características incluem:

a) máquinas virtuais com performance comparada a nativa;

b) suporte a convidados Linux, Windows e Solaris;

c) conversão P2V (Física para Virtual) e V2V (Virtual para Virtual);

d) suporte a storage compartilhado do tipo SAN , iSCSI e NAS;

e) gerenciamento de multi-servidores centralizado;

f) arquitetura de gerenciamento distribuída flexível;

g) suporte total em plataforma x86 (32 bits), x86 (32 bits) com PAE – Extensão

de endereço físico (Physical Address Extension), e x86 com extensões 64

bits;

h) gerenciamento dinâmico de memória - Controle automático de alocação de

memória entre as máquinas virtuais evitando o uso de swap;

i) scheduler BVT – Balanceamento de CPU para cada máquina virtual no

processador central. O XEN toma decisões de balanceamento de carga

55

otimizando o processamento, se uma máquina virtual estiver ociosa o XEN

transfere a carga do processador para uma outra máquina virtual, conforme o

peso atribuído para cada máquina virtual;

j) transferência de disco e partições para as máquinas virtuais: com o XEN é

possível exportar dispositivos (HDs, partições, etc..) para as máquinas virtuais

de forma simples e segura, através dos protocolos de rede padrão (NFS,

iSCSI, NBD, etc.);

k) VBD: No XEN é possível transformar espaço livre, partição, LVM e NFS em

discos rígido para as máquinas virtuais; e

l) migração de Máquina Virtual para Máquina Real : XEN realização a migração

de máquinas virtuais, para um máquina física em tempo real, não havendo a

necessidade de parar ou reinicializar sua máquina ou serviço.

O Xen foi inicialmente desenvolvido para a arquitetura x86, mas foi feito suporte

para arquiteturas como Itanium e Itanium 2 (IA-64) e IBM PowerPC.

5.2 PARAVIRTUALIZAÇÃO COM XEN

De acordo com Williams e Garcia (2007), o Xen possui uma maneira simples de

trabalhar em uma arquitetura complexa como o x86. Uma das maneiras para

conseguir isto, foi separar os “Como”, “Quando” e “O que”. Outras implementações

de hypervisor da plataforma x86 colocam a carga toda por conta do hypervisor;

enquanto oferecem um alto grau de flexibilidade e sucesso, sacrificam a

performance. Entretanto, os desenvolvedores do Xen preocuparam-se em otimizar o

hypervisor no sentido de possuir um baixo nível de complexidade, tais como

agendador de CPU e controle de acesso (WILLIAMS; GARCIA, 2007)

Como resultado desta metodologia da arquitetura, conforme Williams e Garcia

(2007), o ponto de demarcação começou a ser a questão de controle e

gerenciamento. O foco do hypervisor são as operações de controle básico (o

mecanismo, ou o “Como”), deixando o poder de decisão (as politicas, ou “O que” ou

56

“Quando”) para os sistemas operacionais convidados. Isto se adequa bem com a

natureza do monitor da máquina virtual (VMM), onde o hypervisor somente se

encarrega das tarefas que requerem acesso privilegiado direto. Resumindo, o Xen

apresenta uma abstração da máquina virtual que é muito semelhante à plataforma

de hardware, sem criar uma copia exata disto. Esta técnica é o núcleo do que é

chamado de paravirtualização (WILLIAMS; GARCIA, 2007).

57

CAPÍTULO 6

6 OUTRAS PLATAFORMAS DISPONÍVEIS

Além das plataformas de virtualização apresentadas anteriormente: VMware

vSphere, Microsoft Hyper-V e Citrix Xen, existem outras plataformas disponíveis

comercialmente. Neste capitulo irá apresentar três soluções: a Red Hat Virtualization

for Server, Kernel-Based Virtual Machine e a Oracle VM Server.

6.1 RED HAT

Segundo Victor et al. (2011), a Red hat é um sistema operacional da plataforma

Linux e sua primeira versão foi lançada em 1994 e o seu ciclo de vida encerrou-se

em 2003 (a ultima versão foi a 9). Foi substituído pelo Red hat Enterprise Linux

(RHEL), atualmente na versão 6.

Assim como a maioria dos sistemas operacionais modernos, o Red hat Enterprise

Linux possui suporte para virtualização. Este suporte era provido na forma de KVM

ou do Xen. Com o lançamento do RHEL 6 o suporte ao Xen foi removido, deixando

somente o KVM como opção inclusa no RHEL. Em adição ao KVM, outras soluções

de terceiros são disponíveis para esta plataforma, tais como VMware e Oracle

VirtualBox (VICTOR et al., 2011).

O “Red hat Enterprise Virtualization for Server”, conforme Victor et al. (2011),

consiste de dois componentes:

58

a) Red hat Enterprise Virtualization Manager for Servers: Um completo sistema

de gerenciamento para virtualização de servidores que prove capacidades

avançadas para hosts e convidados (figura 19); e

b) Red hat Enterprise Virtualization Hypervisor: Um hypervisor moderno

baseado no KVM – kernel-based Virtual machine virtualization technology,

que pode ser implementado tanto como um hypervisor do tipo bare-metal, ou

como um aplicativo do RHEL 5.4 ou posterior (tipo hosted).

Conforme Red Hat (2011), o Red hat oferece suporte para dois tipos de máquinas

virtuais: convidados para-virtualizados e convidados com virtualização completa. No

primeiro caso, a performance é próxima do servidor físico, mas somente VMs com o

Red hat Enterprise Linux versão 4 ou posteriores, têm suporte a este tipo de

virtualização. No segundo caso, permite uma gama maior de sistemas operacionais

sendo executados como convidados.

Algumas características do Red hat Enterprise Virtualization for Servers de acordo

com Red Hat (2011):

a) compatível com o formato OVF (Open Virtualization Format). Permite importar

e exportar VMs do Red hat no formato OVF, com isto, é possível utilizar VMs

de outras plataformas de virtualização ou exportar VMs para estes;

b) ferramentas de conversão Física-Para-Virtual (P2V) e Virtual-Para-Virtual

(V2V): Importa convidados Red hat Enterprise Linux de outras plataformas:

Xen ou VMware;

c) a habilidade para realizar migração “a quente” (live migration) das máquinas

virtuais, sem interrupção dos serviços;

d) alta-disponibilidade: Máquinas virtuais criticas reiniciam automaticamente em

um outro host em caso de falha de hardware. É possível priorizar as VMs para

em caso dos hosts que permanecerem ligados não conseguirem executar

todas as VMs, as criticas terem prioridade de execução;

e) controle de manutenção: Permite hosts serem atualizados e realizarem

manutenção enquanto máquinas virtuais estão sendo executadas;

f) agendador do sistema: Permite migrar máquinas virtuais entre os hosts para

balanceamento de carga;

59

g) economia de energia: Permite consolidar as VMs em um numero pequeno de

hosts em horário de pouca carga e desligar hosts ociosos, economizando com

isto energia;

h) realizar backups e restaurações de forma fácil das máquinas virtuais;

i) a capacidade de executar máquinas para-virtualizadas de 32 bits em

hardware baseado na arquitetura x86 rodando em modo de 64 bits;

j) a habilidade de gerenciar facilmente máquinas virtuais e sistemas

operacionais convidados através do uso de ferramentas em modo gráfico; e

k) virtualização completa provê abstração completa entre o hardware e o

sistema operacional convidado. Neste cenário, o sistema operacional prove

um ambiente físico completo.

6.2 KERNEL-BASED VIRTUAL MACHINE

O KVM – Kernel-based Virtual machine, conforme Victor et al. (2011), é uma solução

de virtualização completa (full virtualization) para Linux na plataforma x86, que

precisa de suporte de instrução de hardware para virtualização (Intel CT ou AMD-V).

Usando KVM, é possível executar múltiplas máquinas virtuais rodando imagens não

modificadas do Linux ou Windows. Cada máquina virtual tem seu hardware privado

virtualizado: placa de rede, discos, adaptadores gráficos, etc (VICTOR et al, 2011).

O projeto KVM representa a mais recente geração de virtualização open-source. O

KVM está implementado como um módulo do kernel carregável que converte o

kernel do Linux em um hypervisor do tipo bare-metal. O KVM depende de recursos

de virtualização do processador, tais como Intel VT-X ou AMD-V habilitados e usa as

características para virtualização da CPU (VICTOR et al, 2011).

Em uma arquitetura KVM, conforme Victor et al. (2011), uma máquina virtual é

implementada em um processo Linux e, portanto, é agendado pelo agendador do

60

Linux. A emulação dos dispositivos é gerenciada por uma versão modificada do

QEMU que prove BIOS emulada, barramento PCI, USB e um conjunto padrão de

dispositivos tais como IDE, controladoras de disco SCSI e placas de rede.

Para prover a segurança e isolação para a máquina virtual executando como um

processo Linux, o modelo de segurança padrão do Linux (SELinux) é usado. O

kernel do Linux utiliza o SELinux para adicionar controle de acesso obrigatório e

segurança multi-nível e multi-categoria como também prove aplicação de politica

(VICTOR et al, 2011).

6.3 ORACLE VM SERVERS

Segundo Victor et al. (2011), Oracle VM Server é uma plataforma de virtualização

de baixo-custo e solução de gerenciamento da Oracle que utiliza o hypervisor

Xen.Foi desenvolvido para prover a melhor performance para altas cargas de

Entrada/Saída. O gerenciador desta plataforma de virtualização é uma máquina

para-virtualizada Oracle Enterprise Linux.

O Oracle VM prove uma solução de gerenciamento via browser que permite criar,

clonar, compartilhar, configurar, iniciar e migrar VMs entre pools de Oracle VM

servers (VICTOR et al, 2011).

A plataforma Oracle VM é o único hypervisor certificado pela Oracle para softwares

dela, como o banco de dados Oracle, Cluster Oracle Real Aplication (RAC), etc

(VICTOR et al, 2011).

6.3.1 Características do Oracle

61

Segundo Victor et al. (2011), o Oracle VM Server:

a) permite convidados das plataformas Windows, Linux e Solaris;

b) rápido desenvolvimento de aplicações Oracle utilizando modelos de máquinas

virtuais pré-configuradas;

c) características avançadas de alta-disponibilidade tais como gerenciamento de

alta-disponibilidade das VM, migração “quente” segura e balanceamento de

carga entre os hosts;

d) gerenciamento de recursos de Entrada/Saída das máquinas virtuais;

e) conversão P2V (Físico para Virtual) e V2V (Virtual para Virtual);

f) certificação oficial para produtos Oracle baseados em testes do mundo real;

g) suporte a nível empresarial;

h) gerenciamento de multi-servidores centralizado com Oracle VM ou

gerenciador Oracle Enterprise; e

i) suporte a storage compartilhado SAN, iSCSI e NAS.

62

CONCLUSÃO

As soluções comerciais de virtualização de servidores disponíveis atendem as

necessidades das empresas? Analisando as soluções comerciais mais difundidas:

VMware, Citrix Xen e Microsoft Hyper-V, nota-se o esforço de cada uma delas no

sentido de garantir as seguintes funcionalidades:

Melhor utilização dos recursos de hardware: Através da consolidação dos

servidores, a utilização dos recursos de hardware é otimizada, garantindo um

melhor aproveitamento dos recursos.

Disponibilidade: Através de recursos que estas soluções apresentam, o tempo

de indisponibilidade dos recursos tem se tornado o menor possível,

garantindo com isto, maior confiabilidade.

Heterogeneidade: As soluções têm procurado ter suporte para vários

ambientes operacionais: Windows. Linux, Solaris, etc. Com isto, a adoção

destas soluções não geram impactos grandes em sua implantação, pois as

soluções permitem que se virtualizem o ambiente sem a necessidade de

trocas de sistemas operacionais.

Gerenciamento: As soluções têm procurado oferecer ferramentas que

garantam o gerenciamento do ambiente virtualizado, de forma prática e que

permitam se adaptar a realidade de cada empresa.

Embora a solução VMware mostrou-se a mais madura, pois apresentam recursos

poderosos no gerenciamento de ambientes virtualizados, garantindo uma

performance das máquinas virtuais próximas a dos servidores físicos e, alta

disponibilidade; as demais soluções mostraram-se excelentes opções para a

virtualização de ambientes empresariais. De um lado, a Microsoft, com sua solução

comercial, o Hyper-V, é uma solução para ambientes em que os administradores de

TI com experiência em soluções Microsoft possam estar gerenciando sem grandes

esforços, pois encontrarão grande familiaridade na utilização desta ferramenta de

gerenciamento, outras soluções como o Xen, que por ser de código aberto e possuir

63

inúmeros contribuidores ao redor do mundo, é uma solução robusta e apropriada em

ambientes heterogêneos.

Outras soluções como da Red hat e Oracle, mostram-se eficientes em ambientes

específicos. Em parques tecnológicos em que o ambiente utiliza-se de soluções da

RedHat, a solução de virtualização da Red hat é uma excelente candidata, pois

possui uma grande integração com os demais produtos da Red hat, garantindo um

maior desempenho. A solução da Oracle, Oracle VM Server é adequada em

ambientes que se utilizam de outras soluções desta empresa, principalmente o

famoso banco de dados da Oracle. Somente o Oracle VM Server é homologado

para virtualizar ambientes que utilizam soluções comerciais da Oracle.

Analisando as soluções comerciais citadas acima, conclui-se que elas atendem as

necessidades das empresas, referentes a questões como alta-disponibilidade,

melhor utilização dos recursos computacionais, embora para cada realidade exista

uma solução que melhor se adeque a necessidade.

64

REFERÊNCIAS

BUYTAERT, Kris, DITTNER, Rogier, GARCIA Juan R. et al. The Best Damn Server Virtualization. Book Period. Syngress Publishing Inc, 2007. KHNASER, Elias. VCP4 Exam Cram: Vmware Certified Professional VCP-410 Exam – Secound Edition. Pearson IT Certification, 2011. MARSHALL, David, BEAVER, Stephen S., MCCARTY, Jason W. VMware ESX Essentials in the Virtual data Center. Auerbach Publications, 2009. ______, REYNOLDS, Wade A, MCCRORY, Dave. Advanced server virtualization – Vmware and Microsoft Platforms in the Virtual Data Center. Auerbach Publications, 2006. MISHCHENKO, Dave. VMware ESXi: Planning, Implementation, and Security. Cengage Learning, 2011. MORIMOTO, Rand, GUILLET, Jeff. Windows Server 2008 Hyper-V – Unleashed. Sams Publishing, 2009. RED HAT. Red Hat Enterprise Virtualization for Servers: Features & benefits. Disponível em: <http://www.redhat.com/virtualization/rhev/server/features-benefits/>.Acesso em: 15 nov. 2011. VICTOR, Jeff, SAVIT, Jeff, COMBS, Gary et al. Oracle Solaris 10 System Virtualization Essentials. Pearson Education Inc, 2011. WILLIAMS, David E.,GARCIA, Juan. Virtualization with Xen. Syngress Publishing Inc, 2007.