Virtualização de servidores e suas principais ferramentas

Propaganda
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ósGraduaçã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 altadisponibilidade 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, gerenciase 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 HyperV (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 referese à 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 baremetal, 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 altadisponibilidade, 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
gerenciador Oracle Enterprise; e
i) suporte a storage compartilhado SAN, iSCSI e NAS.
com
Oracle
VM
ou
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.
Download