SlideShare uma empresa Scribd logo
1 de 82
Baixar para ler offline
UNIVERSIDADE FEDERAL DE SERGIPE
CENTRO DE CIÊNCIAS EXATAS E TECNOLOGIA
    DEPARTAMENTO DE COMPUTAÇÃO




     ANDERSON DE PAULA CASSIMIRO




IMPLEMENTAÇÃO E DESEMPENHO DA
   VIRTUALIZAÇÃO NO DCOMP/UFS




              São Cristóvão
                  2010
UNIVERSIDADE FEDERAL DE SERGIPE
CENTRO DE CIÊNCIAS EXATAS E TECNOLOGIA
    DEPARTAMENTO DE COMPUTAÇÃO




     ANDERSON DE PAULA CASSIMIRO




  IMPLEMENTAÇÃO E DESEMPENHO
 DA VIRTUALIZAÇÃO NO DCOMP/UFS




                           Monografia        apresentada       ao
                     Departamento       de    Computação       da
                     Universidade Federal de Sergipe, como
                     requisito parcial para obtenção do título de
                     bacharel em Ciência da Computação.



                     Orientador:
                     Prof. Dr. Edward David Moreno Ordonez.




               São Cristóvão
             Novembro de 2010
Cassimiro, Anderson.

   Implementação e Desempenho da Virtualização no
DCOMP/UFS / Anderson de Paula Cassimiro – São
Cristóvão: UFS, 2010.
   82f.

   Trabalho de Conclusão do Curso de Graduação –
Universidade Federal de Sergipe, Curso de Ciência da
Computação, 2010.

       1. Informática.     2. Virtualização.   3. Máquinas
   Virtuais.    I. Título.
ANDERSON DE PAULA CASSIMIRO




              IMPLEMENTAÇÃO E DESEMPENHO
              DA VIRTUALIZAÇÃO NO DCOMP/UFS




      Trabalho de Conclusão de Curso submetido ao corpo docente do

Departamento de Computação da Universidade Federal de Sergipe (DCOMP/UFS)

como parte dos requisitos para obtenção do grau de Bacharel em Ciência da

Computação.



      São Cristóvão, 26 de novembro de 2010.




      Professor Doutor Edward David Moreno Ordonez
      Orientador – DCOMP/UFS




      Professor Doutor Carlos Alberto Estombelo Montesco
      DCOMP/UFS




      Professor Doutor Leonardo Nogueira Matos
      DCOMP/UFS
Dedico este trabalho a todos aqueles que
contribuíram de forma direta ou indireta para
conclusão do mesmo.
Agradeço primeiramente a Deus...
"O analfabeto do século XXI não será aquele
que não sabe ler e escrever, mas aquele que não
consegue aprender, desaprender e aprender
novamente".
                                      Alvin Tofler
CASSIMIRO,      Anderson.     Implementação      e    Desempenho   da
Virtualização no DCOMP/UFS. 2010. Trabalho de Conclusão de Curso – Curso
de Ciência da Computação, Departamento de Computação, Universidade
Federal de Sergipe, São Cristóvão, 2010.




                                       RESUMO


A utilização das técnicas de virtualização tem ganhado notoriedade nos últimos
anos. Por esse motivo este trabalho discorre sobre os vários conceitos que
envolvem a virtualização, mostrando as possibilidades com o uso da mesma e
algumas vantagens e desvantagens. O trabalho também trata sobre as principais
ferramentas para consolidação de servidores disponíveis no mercado e apresenta
um breve comparativo sobre elas. Os conhecimentos sobre virtualização são
aplicados usando um estudo de caso que tem por objetivo principal a consolidação
de servidores no Departamento de Computação da Universidade Federal de Sergipe
(DCOMP/UFS). No desenvolvimento deste estudo de caso optou-se pela utilização
das ferramentas disponibilizadas pela Microsoft, uma vez que o departamento já
possui acordo de licenciamento com a mesma. Ao final, o trabalho mostra os vários
benefícios obtidos com a virtualização e também mostra como alguns problemas
foram evitados na implementação utilizada.



Palavras-chave: consolidação de servidor; hipervisor; virtualização.
ABSTRACT


The use of virtualization techniques has gained notoriety in recent years. That is why
this work discusses several concepts involving virtualization, showing the possibilities
with its use and some advantages and disadvantages. The work also addresses the
main tools for consolidating servers available on the market and provides a brief
comparison with them. Knowledge about virtualization is applied using a case study
which mainly aims to provide server consolidation at Computing Department of the
Federal University of Sergipe (DCOMP/UFS). In the development of this case study
the tools provided by Microsoft were chosen, since the department has a licensing
agreement with the same. In the end, the work shows the various benefits obtained
with virtualization and also shows how some problems were avoided in the
implementation used.


Keywords: server consolidation; hypervisor; virtualization.
LISTA DE FIGURAS



Figura 1. História da Virtualização - Linha do Tempo (Quevedo, 2008) .................. 18
Figura 2. Diagrama de uma máquina virtual (Laureano, 2006) .............................. 20
Figura 3. Uma máquina virtual (Laureano e Maziero, 2008) .................................. 21
Figura 4. Diferença entre abstração e virtualização. (Laureano e Maziero, 2008) ... 24
Figura 5. Hipervisor ou monitor de tipo I (Laureano, 2006) .................................... 26
Figura 6. Hipervisor ou monitor de tipo II (Laureano, 2006) ................................... 27
Figura 7. Abordagem híbrida para tipo I (Laureano, 2006) .................................... 28
Figura 8. Abordagem híbrida para tipo II (Laureano, 2006) ................................... 29
Figura 9. Virtualização total (Laureano, 2006) ...................................................... 31
Figura 10. Para-virtualização (Laureano, 2006) .................................................... 32
Figura 11. Uso dos níveis de privilégio da arquitetura x86 (Maziero, 2008) ............ 34
Figura 12. Visão geral da arquitetura Intel VT (Maziero, 2008) .............................. 35
Figura 13. Datacenter virtual (Vmware, 2010a) .................................................... 41
Figura 14. Arquitetura das versões ESX e ESXi (Vmware, 2010b)......................... 42
Figura 15. Hipervisor Xen (Laureano e Maziero, 2008) ......................................... 44
Figura 16. Produtos e Tecnologias de Virtualização Microsoft (Microsoft, 2010a) ... 45
Figura 17. Arquitetura do Hyper-V (Microsoft, 2010d) ........................................... 46
Figura 18. Cenário inicial dos servidores do DCOMP (Elaboração própria) ............ 53
Figura 19. Cenário da solução proposta (Elaboração própria) ............................... 57
Figura 20. Utilização de CPU em % (Elaboração própria) ..................................... 65
Figura 21. Utilização de CPU em % (Elaboração própria) ..................................... 66
Figura 22. Utilização de CPU em % (Elaboração própria) ..................................... 66
Figura 23. Utilização de CPU em % (Elaboração própria) ..................................... 67
Figura 24. Utilização de CPU em % do servidor MANAGER (Elaboração própria) .. 67
Figura 25. Memória disponível em MB (Elaboração própria) ................................. 68
Figura 26. Memória disponível em MB (Elaboração própria) ................................. 68
Figura 27. Memória disponível em MB (Elaboração própria) ................................. 69
Figura 28. Memória disponível em MB (Elaboração própria) ................................. 69
LISTA DE TABELAS



Tabela 1. Serviços em cada servidor .................................................................. 53
Tabela 2. Configuração dos servidores ............................................................... 54
Tabela 3. Configuração dos servidores reais nesta solução ................................. 58
Tabela 4. Serviços em cada servidor migrado ou criado ...................................... 61
Tabela 5. Comparação de características dos hipervisores .................................. 76
Tabela 6. Comparação de funções incluídas nas versões gratuitas para servidor do
             Xen e do VMware............................................................................... 78
Tabela 7. Comparação entre máquinas virtuais e emuladores .............................. 79
LISTA DE SIGLAS


AMD-V AMD Virtualization – Virtualização AMD
BIOS Basic Input/Output System – Sistema Básico e Entrada e Saída
CMS Console Monitor System – Console Monitor de Sistema
CP Control Program – Programa de Controle
CPU Central Processing Unit – Unidade Central de Processamento
DCOMP Departamento de Computação
DHCP Dynamic Host Configuration Protocol – Protocolo de Configuração
Dinâmica de Hosts
DNS Domain Name System – Sistema de Nomes de Domínios
E/S Entrada e Saída
HAL Hardware Abstraction Layer – Camada de Abstração de Hardware
Intel VT Intel Virtualization Technology – Tecnologia de Virtualização da Intel
ISA Instruction Set Architecture – Conjunto de Instruções da Arquitetura
JVM Java Virtual Machine – Máquina Virtual Java
NAT Network Address Translation – Tradução de Endereço de Rede
PC Personal Computer – Computador Pessoal
QoS Quality of Service – Qualidade de Serviço
ROI Return on Investment – Retorno sobre Investimento
SCCM System Center Configuration Manager
SCDPM System Center Data Protection Manager
SCOM System Center Operations Manager
SCVMM System Center Virtual Machine Manager
SPOF Single point of failure – Ponto único de falha
SVM Secure Virtual Machine – Máquina Virtual Segura
TCC Trabalho de Conclusão de Curso
TCO Total Cost of Ownership – Custo Total de Propriedade
TI Tecnologia da Informação
TSS Time Sharing System – Sistema de Compartilhamento de Tempo
UFS Universidade Federal de Sergipe
VM Virtual Machine – Máquina Virtual
VMM Virtual Machine Monitor – Monitor de Máquina Virtual
SUMÁRIO




1       INTRODUÇÃO ..................................................................................... 13
1.1     Motivações e objetivos ............................................................................. 13
1.2     Organização do trabalho........................................................................... 15


2       VIRTUALIZAÇÃO – HISTÓRICO E CONCEITOS.......................... 16
2.1     Histórico .................................................................................................. 17
2.2.1 Emulador e máquina virtual....................................................................... 23
2.2.2 Abstração e virtualização .......................................................................... 23
2.3     Hipervisores............................................................................................. 24
2.3.1 Tipos de hipervisores ............................................................................... 25
2.3.2 Classificação dos hipervisores .................................................................. 26
2.4     Formas de virtualização ............................................................................ 29
2.5     Técnicas de virtualização e emulação........................................................ 30
2.5.1 Virtualização total ..................................................................................... 31
2.5.2 Para-virtualização .................................................................................... 32
2.5.3 Tradução dinâmica ................................................................................... 33
2.6     Processadores com virtualização nativa .................................................... 33
2.7     Usos da virtualização ............................................................................... 35
2.7.1 Vantagens ............................................................................................... 37
2.7.2 Desvantagens .......................................................................................... 38


3       FERRAMENTAS PARA MÁQUINAS VIRTUAIS ............................ 39
3.1     VMware ................................................................................................... 39
3.2     Citrix ....................................................................................................... 42
3.3     Microsoft.................................................................................................. 44
3.4     Comparação entre as ferramentas ............................................................ 47


4       ESTUDO DE CASO ............................................................................50
4.1     Sobre o DCOMP ...................................................................................... 50
4.2     Situação anterior ...................................................................................... 52
4.3     Solução proposta ..................................................................................... 55
4.3.1 Configuração dos servidores ..................................................................... 56
4.3.2 Aplicações dos servidores ........................................................................ 59
4.4     Resultados .............................................................................................. 62
4.4.1 Desempenho ........................................................................................... 63


5       CONCLUSÕES.................................................................................... 70
5.1     Trabalhos futuros ..................................................................................... 70


REFERÊNCIAS BIBLIOGRÁFICAS........................................................... 72

ANEXOS ........................................................................................................75

ANEXO A – Tabela comparativa de características do VMware,
Hyper-V e Xen............................................................................................... 76

ANEXO B – Tabela comparativa do XenServer e VMware ESXi .......78

ANEXO C – Comparação entre máquinas virtuais e emuladores ....79
13



1   INTRODUÇÃO




       O conceito de máquinas virtuais surgiu na década de 1960 pela necessidade
do compartilhamento de recursos em mainframes. Mas na década de 1980 a partir
da diminuição do custo do hardware este conceito perdeu importância, pois o custo
dos mainframes que eram utilizados na virtualização eram maiores que os de vários
computadores que forneciam o ambiente desejado (Laureano e Maziero, 2008).
       Com isto, durante muitos anos, a virtualização era um termo que ficava
restrito aos membros de departamentos de TI. Atualmente ela passou a oferecer
soluções   de    vanguarda   para   organizações em busca de otimização dos
investimentos em TI. Estas soluções são disponibilizadas por um grande número de
fornecedores, o que tem permitido uma economia de custos e outros benefícios
(Ribas, 2008).
       De uma maneira generalizada pode-se definir a virtualização como a
capacidade de criar diversas máquinas lógicas (máquinas virtuais) com um único
hardware (Gonçalves e Vahl Junior, 2009).
       Em um sistema virtualizado temos um software host sendo executado na
máquina física, chamado Virtual Machine Monitor (VMM), ou hipervisor. Este
software é responsável pela criação de ambientes simulados de computação, que
são as máquinas virtuais (VMs). Sistemas operacionais inteiros podem ser
executados nessas máquinas virtuais como se estivessem sendo executados em um
hardware real (Seo, 2009).



1.1 Motivações e objetivos



       A virtualização está sendo cada vez mais utilizada, também, por causa das
práticas da TI verde. Em (Hess, 2009) TI verde é definida como um conjunto de
práticas para tornar mais sustentável e menos prejudicial o nosso uso da
computação. As práticas de TI verde buscam reduzir o desperdício e aumentar a
eficiência de todos os processos e fenômenos relacionados à operação dos
computadores. A maior vantagem da utilização de virtualização neste caso é a
14


economia de energia, pois menos computadores e equipamentos serão necessários
para execução de diversos serviços.
        A virtualização também traz vantagens no maior aproveitamento da
capacidade dos servidores, facilidade para gerenciamento das máquinas e na
segurança   (Quevedo,    2008).   A capacidade de isolamento oferecida pelos
hipervisores oferece uma boa camada de proteção, já que não é necessária a
utilização de mais de um hardware para garantir que um sistema não afete outro.
Esta capacidade também permite que sejam testadas alterações em sistemas de
produção antes de colocá-las em prática. A capacidade de restaurar estados
anteriores e a migração ao vivo de máquinas virtuais ajuda a prover uma maior
disponibilidade para os serviços oferecidos pela TI.
        Neste trabalho é realizado um estudo de caso e respectiva análise da
implementação da virtualização no Departamento de Computação (DCOMP) da
Universidade Federal de Sergipe (UFS). Este departamento utiliza a TI com a função
de auxiliar na administração e em suas atividades de ensino, pesquisa e extensão.
Possui três cursos de graduação e um de pós-graduação, que contam com
aproximadamente 650 alunos matriculados e ministra aulas para aproximadamente
1.000 alunos de outros cursos da universidade.
        O objetivo desta implementação é facilitar a administração e monitoramento
dos servidores e equipamentos do departamento de computação, além de ampliar o
número de serviços e aplicações oferecidas à comunidade acadêmica sem ter que
investir no aumento do número de servidores.
        Mas a virtualização não traz somente vantagens, por isto este trabalho
busca, também, minimizar as desvantagens que possam ser introduzidas devido ao
uso da virtualização. Dentre as desvantagens é possível citar (Quevedo, 2008;
Hansen e Schaeffer, 2009): a perda de desempenho se comparado ao hardware
físico; a necessidade de alterações no núcleo do sistema hóspede em alguns casos;
a indisponibilidade de um equipamento físico pode causar indisponibilidade de
diversas aplicações; e a exigência de um hardware com uma maior capacidade de
processamento e armazenamento.
15



1.2 Organização do trabalho



      Este trabalho está dividido em cinco capítulos, sendo o primeiro de introdução
do trabalho. No capítulo dois são apresentados os conceitos teóricos sobre
virtualização, no capítulo três são apresentadas algumas soluções de virtualização.
O capítulo quatro mostra o estudo de caso do DCOMP e o capítulo cinco apresenta
as conclusões obtidas com este trabalho.
16


2   VIRTUALIZAÇÃO – HISTÓRICO E CONCEITOS




         Neste capítulo mostra-se o histórico da virtualização, seus conceitos e suas
diversas aplicações, vantagens e desvantagens. Mas antes disto é importante saber
o que significa o termo “virtual”.
         Segundo o dicionário Michaelis:

                       virtual.vir.tu.al adj m+f (lat virtuale) 1 Que não existe como realidade, mas
                       sim como potência ou faculdade. 2 Que equivale a outro, podendo fazer as
                       vezes deste, em virtude ou atividade. 3 Que é suscetível de exercer-se
                       embora não esteja em exercício; potencial. 4 Que não tem efeito atual. 5
                       Possível. 6 Diz-se do foco de um espelho ou lente, determinado pelo
                       encontro dos prolongamentos dos raios luminosos (Weiszflog e Silva, 2010).

         O oposto de virtual não é o que é real como muitos podem imaginar. Seu
antônimo é o que é concreto, físico, tangível, com limites bem definidos. O virtual
existe somente como potência, como uma simulação de algo concreto, não
possuindo limites (Nascimento, 2009).
         O autor Pierre Lévy em “O que é o virtual?” diz que o virtual faz oposição ao
atual:

                       Contrariamente ao possível, estático e já construído, o virtual é como o
                       complexo problemático, o nó de tendências ou de forças que acompanha
                       uma situação, um acontecimento, um objeto ou uma entidade qualquer, e
                       que chama um processo de resolução: a atualização (Lévy, 2003).

         Ele exemplifica isto através de uma semente, explicando que ela é uma
virtualização da árvore, ela “conhece” a forma que deverá se expandir e a partir das
circunstâncias que encontrar ela vai ser a encarregada de inventar, de coproduzir, a
mesma.
         Ele define a virtualização como o movimento inverso ao da atualização. É
uma passagem do atual ao virtual, uma “elevação à potência” da entidade
considerada. Ele cita o caso da “virtualização” de uma empresa, onde uma
organização comum reúne os empregados num mesmo edifício ou em conjunto de
departamentos, onde cada empregado ocupa um posto já determinado e possui
horários de trabalho específicos. Já numa empresa virtual o tele trabalho substitui a
necessidade da presença física e são utilizados recursos e programas que
favoreçam a colaboração. O autor diz que neste caso a organização deixa de ser um
conjunto de departamentos, postos de trabalho e livros de ponto e passa a se
17


preocupar com soluções não estáveis, que contribuam para a colaboração entre os
empregados a partir de diversas exigências.
       Por meio destes e outros conceitos, Nascimento (2009) conclui:

                    [...] “o virtual é algo real com uma natureza intangível e pode torna-se [sic]
                    tangível através do uso de recursos tecnológicos tangíveis, como os
                    computadores e intangíveis, como os sistemas por eles processados.
                    Proporcionando uma experiência real como os simuladores de vôo para
                    treinamento de pilotos, entre outros exemplos” (Nascimento, 2009).



2.1 Histórico



       A virtualização, mesmo só tendo difundido nos últimos anos, já existe desde
a década de 1960. De acordo com Laureano e Maziero (2008) ela surgiu pela
necessidade de oferecer a cada usuário um ambiente monousuário completo,
independente e desvinculado de outros usuários para os mainframes da época.
       O primeiro sistema que fez uso da virtualização foi desenvolvido pela IBM, o
sistema operacional experimental M44/44X (Creasy, 1981). Ele se baseava no
conceito do sistema de tempo compartilhado ou TSS (Time Sharing System), criado
pela IBM, e foi a partir dele que a mesma começou a desenvolver seus sistemas
comerciais. O primeiro computador comercial com suporte a tecnologia foi lançado
em 1964, o mainframe System/360, com um suporte limitado a virtualização. No
mesmo ano foi criado o projeto CP-40 cujo objetivo era a disponibilização de uma
máquina virtual System/360 completa para cada usuário. Foi neste projeto que
surgiu a primeira menção às memórias virtuais e às máquinas virtuais, que na época
eram chamadas de pseudo-máquinas (Quevedo, 2008).
       A partir daí a IBM desenvolveu o sistema CP/CMS que era constituído por
dois componentes principais, o Control Program (Programa de Controle ou CP) e o
Console Monitor System (Console Monitor de Sistema ou CMS). O CP era
responsável por simular um computador System/360 e o CMS era um sistema
operacional “leve” monousuário para uso no compartilhamento de tempo interativo.
Ao executar várias cópias do CMS em máquinas virtuais CP o esforço da máquina
era menor por cada usuário se comparado ao uso de sistemas operacionais
multitarefas comuns (Creasy, 1981).
18


        O conceito de máquinas virtuais CP/CMS foi importante, pois isola os
usuários uns dos outros, com isto aumenta a segurança do sistema, além de
aumentar o desempenho no uso de um sistema de compartilhamento de tempo e ao
simular um computador completo para cada usuário elimina a necessidade de
escrever aplicações específicas para sistemas de tempo compartilhado, já que todas
as aplicações já escritas para o sistema original funcionam (Creasy, 1981).
        Na Figura 1 são listados acontecimentos importantes para a área de TI
desde 1954, nela os fatos que contribuíram para o desenvolvimento da virtualização
estão destacados.




           Figura 1. História da Virtualização - Linha do Tempo (Quevedo, 2008)

        A partir da adoção de plataformas de menor custo, como o PC, na década
de 1980 a virtualização perdeu sua importância devido ao custo de um mainframe
não compensar o custo necessário para o fornecimento de um PC a cada usuário
(Laureano e Maziero, 2008).
        O conceito voltou a se popularizar a partir do aumento de desempenho e
funcionalidade dos computadores pessoais e pelo desenvolvimento da linguagem
Java na década de 1990, uma vez que esta possui uma máquina virtual cujo objetivo
19


é tornar possível a execução de um mesmo aplicativo em várias plataformas
diferentes (Laureano e Maziero, 2008).
        Desde 1997 surgiram várias soluções de virtualização no mercado para tirar
proveito das máquinas virtuais, é possível citar o VirtualPC, VMware, Xen, Hyper-V e
o VirtualBox dentre outras.
        De acordo com Mattos (2008), a plataforma PC x86 não possui instruções
que permitem a virtualização de forma nativa, por isto vários fabricantes
desenvolveram soluções para tornar possível a execução de máquinas virtuais nesta
plataforma como o VMware, Xen e VirtualPC. Segundo Laureano e Maziero (2008)
estas soluções possuem um desempenho inferior ao de soluções que usam a
virtualização nativa.
        Atualmente vários processadores da Intel e AMD já incluem suporte nativo a
virtualização com o objetivo de aumentar o desempenho das máquinas virtuais que
são executadas neles através das tecnologias Virtualization Technology (VT) da Intel
e Secure Virtual Machine (SVM) da AMD (Quevedo, 2008), como exemplo pode-se
citar os processadores da série Core i3 (Intel, 2010).
        Na década de 2000 a virtualização passou a ser adotada por diversas
organizações em busca da consolidação de servidores. A consolidação de
servidores consiste na utilização de um servidor físico com vários servidores virtuais,
isto permite um melhor aproveitamento dos recursos, a possibilidade de um
ambiente mais flexível, diminuição do espaço físico e um menor gasto com energia e
manutenção de hardware (Mattos, 2008; Fragni, 2009).



2.2 Conceitos



        Segundo Quevedo (2008) “A virtualização pode ser definida como uma
metodologia que permite a divisão de um único computador físico em diversos
computadores virtuais independentes entre si”.
        Um computador real, computador físico, máquina real, sistema nativo ou
hospedeiro (host), possui cinco componentes básicos: processador, memória,
dispositivos de entrada e saída (E/S), armazenamento em disco e programas
20


aplicativos. Sendo os quatro primeiros componentes classificados como hardware e
o último como software (Norton, 1996).

                     Uma máquina real é formada por vários componentes físicos que fornecem
                     operações para o sistema operacional e suas aplicações. Iniciando pelo
                     núcleo do sistema real, o processador central (CPU) e o chipset da placa-
                     mãe fornecem um conjunto de instruções e outros elementos fundamentais
                     para o processamento de dados, alocação de memória e processamento de
                     E/S. Olhando mais detalhadamente um sistema físico, temos ainda os
                     dispositivos e os recursos, tais como a memória, o vídeo, o áudio, os discos
                     rígidos, os CD-ROMs e as portas (USB, paralela, serial). Em uma máquina
                     real, a BIOS ou devices drivers específicos fornecem as operações de baixo
                     nível para que um sistema operacional possa acessar os vários recursos da
                     placa-mãe, memória ou serviços de E/S (Figura 2) (Laureano, 2006).




               Figura 2. Diagrama de uma máquina virtual (Laureano, 2006)

       Já uma máquina virtual ou VM (Virtual Machine) pode ser definida como
“uma duplicata eficiente e isolada de uma máquina real” (Laureano, 2006), mas de
acordo com este autor com o passar do tempo o termo passou a englobar várias
21


abstrações já que, por exemplo, a Java Virtual Machine (JVM) não virtualiza um
sistema real.
         A Figura 3 mostra um hipervisor executando sobre a plataforma Sparc e
permitindo a execução do sistema operacional Windows que foi desenvolvido para a
plataforma x86.




                  Figura 3. Uma máquina virtual (Laureano e Maziero, 2008)

         A partir da Figura 3 é possível verificar as três partes básicas que compõem
um ambiente de máquina virtual (Laureano e Maziero, 2008):

         a) Sistema hospedeiro: contém recursos reais de hardware e software.

         b) Sistema virtual, ou sistema convidado (guest system): executa sobre o
sistema virtualizado.

         c) Monitor de máquina virtual, ou hipervisor: constrói as interfaces virtuais a
partir da real.

         A criação de ambientes virtuais pode acontecer utilizando-se diversos
conceitos e tecnologias, como o particionamento de hardware e software, o TSS, a
simulação total ou parcial e a emulação (Quevedo, 2008).
         O monitor de máquina virtual (VMM) é o software responsável por fornecer
uma interface idêntica ao hardware em que ele funciona, usando a multiplexação de
várias máquinas virtuais em um só hardware, e pela criação e controle das máquinas
virtuais (Laureano, 2006).
         As máquinas virtuais possuem as mesmas características de uma máquina
real, incluindo a BIOS que provê uma interface entre o sistema operacional e o
22


hardware, e os dispositivos de entrada e saída. Mas o VMM pode fornecer um
ambiente diferente do real, com diferenças no armazenamento em disco e
quantidade de memória (Quevedo, 2008).
       Popek e Goldberg (1974) enunciaram três propriedades necessárias para
um sistema computacional oferecer suporte a virtualização de forma eficiente:

       a) Eficiência: todas as instruções de máquina que não comprometem o
funcionamento do sistema devem ser executadas diretamente no hardware sem
intervenção da máquina virtual.

       b) Controle de recursos: um monitor de máquina virtual deve ter controle
completo sobre os recursos virtualizados sendo estritamente proibido que um
programa executando sobre a máquina virtual os acesse diretamente.

       c) Equivalência: um programa executando sobre uma máquina virtual deve
exibir um comportamento idêntico àquele apresentado caso a máquina virtual não
existisse e o programa acessasse diretamente uma máquina física equivalente.
Duas exceções são consideradas. Primeira, eventualmente, algumas instruções
podem ter seu tempo de execução aumentado. Segunda, pode haver problemas de
conflito de acesso a recursos, os quais devem ser resolvidos de forma apropriada.

       Estas propriedades classificaram a ISA (Conjunto de Instruções da
Arquitetura ou Instruction Set Architecture) em três grupos (Carissimi, 2008): as
privilegiadas se executadas por um programa em modo usuário causam exceções;
as sensíveis de controle permitem a alteração de recursos do sistema; e as
sensíveis comportamentais cujo comportamento dependem da configuração de
recursos, como conteúdo de registradores internos ou modos de execução do
processador.
       A partir disto Popek e Goldberg (1974) enunciaram e provaram o seguinte
teorema sobre a possibilidade de construção de um hipervisor em uma determinada
plataforma:

                     Para qualquer computador convencional de terceira geração, um hipervisor
                     pode ser construído se o conjunto de instruções sensíveis daquele
                     computador for um subconjunto de seu conjunto de instruções privilegiadas.
23


         De acordo com Carissimi (2008) o teorema pode ser traduzido no fato de
que qualquer instrução que possa afetar o controle do hipervisor deve passar pelo
seu controle.



2.2.1 Emulador e máquina virtual



         Um     emulador   simula   um   computador   real,   ele     é   desenvolvido
especificamente para transcrever instruções do um processador alvo para o
processador no qual ele está sendo executado. O emulador implementa as
operações da máquina real em software, ou seja, ele interpreta ou recompila um
código que foi desenvolvido para outra plataforma (Laureano, 2006).
         Enquanto na emulação o software simula um computador real traduzindo
todas as instruções, na virtualização ele é responsável por multiplexar um hardware
real, o que possibilita que máquinas virtuais sejam consideradas cópias idênticas e
isoladas do hardware real (Quevedo, 2008).
         O Bochs (Lawton, Denney et al., 2010), o Crusoe (Klaiber, 2000) e o QEMU
(Qemu, 2010) são exemplos de emuladores segundo Laureano e Maziero (2008).



2.2.2 Abstração e virtualização



         Existe uma diferença entre abstração e virtualização. A abstração provê
alguns recursos específicos de hardware, enquanto a virtualização provê um
conjunto completo de recursos. Na Figura 4 é possível visualizar esta diferença, na
abstração o software pode acessar os arquivos para operações específicas, como
read ou write, enquanto a virtualização fornece um sistema de arquivos montado
sobre um arquivo, onde é possível realizar outras operações, como mkdir (Laureano,
2006).
24




       Figura 4. Diferença entre abstração e virtualização. (Laureano e Maziero, 2008)



2.3 Hipervisores



        Como já vimos o hipervisor, ou monitor de máquinas virtuais (VMM), é a
camada de software que faz a criação e controla o ambiente simulando o acesso
direto ao hardware. Laureano e Maziero (2008) afirmam que um hipervisor deve
atender a três requisitos básicos: prover um ambiente de execução basicamente
idêntico ao da máquina real; o hipervisor deve ter controle total sobre os recursos da
máquina real; e, no pior caso, os programas em execução nas máquinas virtuais
devem apresentar leves degradações de desempenho.
        Segundo Quevedo (2008) e Laureano e Maziero (2008) as seguintes
propriedades, enunciadas por Popek e Goldberg (1974), devem ser atendidas por
um hipervisor ideal:

        a) Equivalência: o hipervisor deve prover um ambiente de execução quase
idêntico ao da máquina real original. Possibilitando um comportamento idêntico ao
da sua execução sobre a máquina real.

        b) Controle de recursos: o hipervisor deve possuir controle completo dos
recursos da máquina real. Nenhum programa executado na máquina virtual deve ter
acesso a recursos que não tenham sido alocados explicitamente pelo hipervisor.

        c) Eficiência: a maior parte das instruções do processador virtual devem ser
executadas diretamente pelo processador da máquina real, sem intervenções do
25


hipervisor. Este deve somente interpretar instruções que não possam ser
executadas pelo processador real.

        Quevedo (2008) também cita as seguintes propriedades frequentemente
associadas à hipervisores:

        a) Isolamento: um software ao ser executado em máquina real não pode ver,
influenciar ou modificar outro software que esteja em execução no hipervisor ou em
outra máquina virtual.

        b) Inspeção: o hipervisor pode controlar e acessar todas as informações do
estado interno da máquina virtual.

        c) Gerenciabilidade: a administração de várias instâncias de máquinas
virtuais sobre um mesmo hipervisor é simplificada e centralizada. O hipervisor é
capaz de gerenciar os recursos entre os sistemas convidados.

        d) Encapsulamento: através da inspeção o hipervisor é capaz de salvar
estados de uma máquina virtual, isto permite o retorno a um estado anterior,
análises em casos de falha e migração entre hipervisores executando em
computadores diferentes.

        e) Recursividade: deve ser possível executar um hipervisor dentro de uma
máquina virtual, produzindo um novo nível de máquinas virtuais.



2.3.1 Tipos de hipervisores



        De acordo com Quevedo (2008) os hipervisores podem ser divididos em
diferentes classes:

        a) Complete Software Interpreter Machine (CSIM): as instruções passam por
uma tradução através do software antes de serem executadas na CPU através da
técnica de tradução dinâmica, que consiste em traduzir e guardar blocos de código.
26


        b) Hybrid Virtual Machine (HVM): quando todas as instruções privilegiadas
são executadas por software, é utilizada quando a CPU não suporta hipervisores do
tipo I ou II, estes serão tratados na próxima seção.

        c) Hipervisor simples: a maior parte das instruções é executada diretamente
no hardware. Os hipervisores desta classe normalmente possuem um melhor
desempenho se comparado a hipervisores das outras classes.



2.3.2 Classificação dos hipervisores



        A seguir são detalhados os hipervisores pela abordagem utilizada na sua
construção segundo Laureano (2006) e Quevedo (2008).



2.3.2.1 Hipervisores do tipo I



        Hipervisores do tipo I, também conhecido como abordagem clássica ou
hipervisores nativos, executam diretamente sobre o hardware da máquina real, com
as máquinas virtuais sendo criadas na camada acima. O hipervisor é executado com
maior prioridade e as VMs executam no modo usuário, possibilitando que o
hipervisor intercepte e emule todas as operações do sistema convidado que
necessitem de recursos do hardware. Este tipo está exemplificado na Figura 5 e é
utilizado pelo VMware ESX Server e o ambiente Xen.




                 Figura 5. Hipervisor ou monitor de tipo I (Laureano, 2006)
27


2.3.2.2 Hipervisores do tipo II



        Hipervisores do tipo II, também conhecido como abordagem hospedada ou
hipervisores convidados, executam sobre o sistema operacional hospedeiro, como
uma aplicação do sistema real que utiliza os drivers do sistema operacional para
acesso ao hardware. Este tipo simula todas as operações que o sistema hospedeiro
controla. Ele está exemplificado na Figura 6 e é utilizado pelo VMware Workstation,
o QEMU e o VirtualBox.




                 Figura 6. Hipervisor ou monitor de tipo II (Laureano, 2006)



2.3.2.3 Hipervisores híbridos



        Os hipervisores de tipo I e II não são muito utilizados em sua forma
conceitual, na prática são inseridas várias otimizações que tem como objetivo
melhorar o desempenho. Como as otimizações levam a arquiteturas diferenciadas
elas são chamadas de abordagens híbridas.
        Como as operações de E/S são pontos cruciais no desempenho dos
hipervisores, as principais otimizações são feitas nestas operações. É possível listar
quatro otimizações mais usadas:

        a) Em hipervisores de tipo I:
28


         1. O    sistema    convidado     acessa     diretamente    o   hardware
            hospedeiro, para permitir isto são necessárias mudanças no
            núcleo do sistema convidado e no hipervisor. A Figura 7 ilustra
            este caso.




         Figura 7. Abordagem híbrida para tipo I (Laureano, 2006)

b) Em hipervisores de tipo II, ilustrado pela Figura 8:

         1. O sistema convidado acessa diretamente o sistema hospedeiro,
            oferecendo partes da API do sistema hospedeiro.

         2. O sistema convidado acessa diretamente o hardware, isto é feito
            por meio de uma implementação parcial no hipervisor e no
            sistema convidado através de um driver específico.

         3. O hipervisor acessa diretamente o hardware. Implementado a
            partir da instalação de um driver no sistema hospedeiro.
29




                Figura 8. Abordagem híbrida para tipo II (Laureano, 2006)



2.4 Formas de virtualização



        Existem várias formas possíveis de classificação para a virtualização, aqui
são tratadas as formas utilizadas em Laureano (2006) e Quevedo (2008).
        A classificação de acordo com o tipo de sistema convidado suportado
(Rosenblum, 2004) é dividida em virtualização do hardware, virtualização do sistema
operacional e virtualização de linguagens de programação.

        a) A virtualização do hardware exporta o sistema físico como uma abstração
do hardware, possibilitando o funcionamento de qualquer software escrito para a
arquitetura.

        b) A virtualização do sistema operacional exporta um sistema operacional
como abstração de um sistema específico, permitindo a execução de aplicativos
desenvolvidos para outro sistema operacional.

        c) A virtualização de linguagens de programação consiste em uma aplicação
que é executada no sistema operacional, suas máquinas virtuais são desenvolvidas
para computadores fictícios projetados para uma finalidade específica. A camada da
30


aplicação é responsável por exportar a abstração para execução dos programas que
foram desenvolvidos para ela.

           Já na outra classificação, de Chiueh (2005), os sistemas são classificados
como Hardware Abstraction Layer (HAL), abstração da Instruction Set Architeture
(ISA), nível de sistema operacional, nível de aplicação e biblioteca de interface do
usuário.

           a) Na virtualização HAL o hipervisor simula uma arquitetura completa para o
sistema convidado, fazendo com que o sistema convidado acredite estar executando
sobre um sistema completo.

           b) Na Abstração da ISA a virtualização faz a emulação completa da ISA,
com isto o emulador executa as instruções do sistema convidado através da
tradução das instruções para o sistema nativo.

           c) A virtualização de nível de sistema operacional é obtida utilizando uma
chamada de sistema específica, o seu principal benefício é a criação de uma
camada de isolamento de processos.

           d) A virtualização pelo nível de aplicação é obtida através da abstração da
camada de execução, com uma aplicação utilizando esta camada para execução
das instruções do programa. Isto permite que um aplicativo seja executado em
várias plataformas.

           e) E, por fim, a virtualização da biblioteca de interface para o usuário é feita
com a abstração do topo do sistema operacional, permitindo que aplicações que
usam o conjunto de bibliotecas disponibilizadas por um sistema consigam executar
em outro sistema.



2.5 Técnicas de virtualização e emulação



           Para construção de hipervisores é necessário definir algumas estratégias
para a virtualização. As estratégias mais utilizadas são a virtualização total (full
31


virtualization), a para-virtualização (paravirtualization) e a recompilação dinâmica
(dynamic recompilation).



2.5.1 Virtualização total



       Na virtualização total o hipervisor fornece uma estrutura completa de
hardware virtualizada, que corresponde a uma máquina real existente. Desta
maneira os sistemas operacionais convidados não precisam sofrer nenhuma
alteração ou ajuste para execução dentro do ambiente virtual. Esta abordagem é
utilizada na maioria dos hipervisores de sistema clássicos como o QEMU e VMware
e está ilustrada na Figura 9 (Laureano e Maziero, 2008).
       A maior vantagem desta estratégia é que os sistemas operacionais
convencionais podem ser executados sem necessidade de modificações, mas ele é
executado mais lentamente já que todos os acessos ao hardware são intermediados
pelo hipervisor. O hipervisor também é o responsável por implementar alternativas
para que as operações privilegiadas sejam executadas em processadores que não
suportam a virtualização nativamente (Laureano, 2006).




                      Figura 9. Virtualização total (Laureano, 2006)
32


2.5.2 Para-virtualização



       Na para-virtualização, ilustrada na Figura 10, o sistema convidado sofre
modificações para obter uma interação mais eficiente com o monitor de máquinas
virtuais. Esta estratégia permite que o sistema convidado acesse alguns recursos do
hardware, como processador e memória, diretamente, sendo este acesso somente
monitorado pelo hipervisor que fornece seus “limites”, como os endereços de
memória que podem ser utilizados e endereçamento em disco (Laureano, 2006;
Quevedo, 2008).
       O desempenho obtido com esta técnica compensa as modificações
necessárias aos sistemas convidados. A complexidade para desenvolvimento dos
hipervisores é reduzida com esta estratégia, já que a maioria dos processadores não
suporta nativamente a para-virtualização. O Denali (Whitaker, Shaw et al., 2002) e o
Xen (Clark, 2002) foram os primeiros ambientes a adotar a para-virtualização
(Laureano e Maziero, 2008).




                     Figura 10. Para-virtualização (Laureano, 2006)
33


2.5.3 Tradução dinâmica



        A tradução dinâmica, ou recompilação dinâmica, traduz, em tempo de
execução do programa, as instruções de um formato para outro. Nela as solicitações
de um sistema convidado são analisadas, reorganizadas e traduzidas em novas
sequências durante a execução (Quevedo, 2008).
        Ela tem vários objetivos: detectar e tratar instruções sensíveis não
privilegiadas; traduzir as instruções geradas pelo sistema convidado para a interface
ISA do hospedeiro; ou analisar, reorganizar e otimizar sequências de instruções
geradas pelo sistema convidado com objetivo de melhorar o desempenho. A
máquina virtual Java implementa esta estratégia usando o JIT (Just-in-Time
Bytecode Compiler). Outros hipervisores implementam esta técnica por meio da
busca e troca de instruções sensíveis para outras rotinas em processadores que não
suportam virtualização nativamente (Laureano e Maziero, 2008).
        Esta estratégia é composta por sete passos (Laureano, 2006): agrupamento
de   bits,   desmontagem   (disassembling),    geração   de   código   intermediário,
decompilação, compilação, montagem (assembling) e armazenagem dos bits.



2.6 Processadores com virtualização nativa



        A arquitetura x86 possui quatro níveis de privilégio, ou modos de operação,
chamados anéis (rings) que são numerados de 0 a 3, sendo o nível 0 o de maior
privilégio na execução de intruções (Mattos, 2008).
        Os sistemas operacionais convencionais, como Microsoft Windows e as
variações do UNIX, usam dois níveis do processador, o nível 0 usado pelo sistema
operacional e o nível 3 que possui o menor privilégio e é usado nos processos do
usuário, como é possível verificar na Figura 11. Quando um processo de usuário
tenta executar uma instrução privilegiada ocorre uma exceção que poderá ser
tratada, mas a arquitetura x86, em especial a família de processadores Intel Pentium
IV e seus predecessores (Laureano e Maziero, 2008), possui dezessete instruções
não privilegiadas que são sensíveis, ou seja, violam o teorema estabelecido por
Popek e Goldberg (1974) (Carissimi, 2008).
34


        Ainda assim é possível implementar máquinas virtuais para as arquiteturas
que não respeitam o teorema, mas existe um custo no desempenho. Neste caso a
virtualização é feita por meio das estratégias de para-virtualização e tradução
dinâmica.
        Os fabricantes de processadores AMD e Intel desenvolveram extensões
para a arquitetura x86 para suportarem a virtualização, elas são denominadas AMD-
V (AMD-Virtualization) e Intel VT (Intel Virtualization Technology). Mesmo sendo
similares elas são incompatíveis entre si.




            Figura 11. Uso dos níveis de privilégio da arquitetura x86 (Maziero, 2008)

        De acordo com Carissimi (2008), a AMD implementa este suporte por meio
de funções especiais no processador que são executadas por um hipervisor e
controlam, através do hipervisor, se os acessos do sistema hóspede são permitidos.
        Ainda segundo este autor a Intel possui mecanismos similares. Estes
mecanismos completam a ideia do conceito de anéis de proteção adicionando dois
modos, o root e o não-root. O hipervisor, que executa em modo root, controla os dois
modos, podendo transferir a execução de um sistema operacional convidado para o
modo não-root, onde as instruções do anel 0 são executadas sem risco para o
sistema. Este comportamento pode ser verificado na Figura 12.
        Com o suporte oferecido pelos processadores os hipervisores podem
combinar a virtualização completa ou a para-virtualização com técnicas de
aceleração de E/S. Ela tem o melhor desempenho de CPU, memória e E/S de todos
os tipos de virtualização na arquitetura x86 (Quevedo, 2008).
35




                 Figura 12. Visão geral da arquitetura Intel VT (Maziero, 2008)



2.7 Usos da virtualização



         Vistos os conceitos envolvidos na virtualização esta seção trata dos seus
usos, vantagens e desvantagens.
         Segundo Quevedo (2008) a utilização de máquinas virtuais pode ajudar na
diminuição da complexidade dos ambientes de TI. Ela facilita os trabalhos da equipe
de suporte, aumenta a portabilidade dos ambientes, diminui os custos e aumenta a
segurança e disponibilidade dos recursos para os usuários.
         Principais usos para máquinas virtuais (Laureano, 2006; Laureano e
Maziero, 2008; Quevedo, 2008; Seo, 2009): consolidação de servidores, laboratórios
de ensino, execução de software legado, debug e monitoração de aplicações,
sandboxing1, honeypots2 e honeynets3, facilitar a migração de aplicações e




1
  “A técnica de sandboxing consiste na criação de um ambiente de execução totalmente isolado de
forma a garantir que o mau-funcionamento de um sistema não interfira nos demais.” Quevedo (2008)
2
  Sistema preparado para ser atacado e invadido. (Laureano e Maziero, 2008)
36


servidores, permitir a simulação de um hardware específico, desenvolvimento de
sistemas e planos de contingência e continuidade de negócios.
        A consolidação de servidores, que consiste em consolidar a carga de
diversos servidores em poucos ou apenas um servidor, é um dos principais atrativos
da virtualização, pois reduz custos com o gerenciamento de servidores, a utilização
de espaço físico, o consumo de energia elétrica, entre outros, auxiliando assim na
redução do Custo Total de Propriedade4 (TCO) (Quevedo, 2008).
        O princípio da consolidação de servidores é a utilização de um servidor de
maior capacidade em substituição a vários servidores de menor capacidade. Pela
diminuição da quantidade de servidores ela cria um ponto único de falha (SPOF), o
que aumenta os riscos da indisponibilidade de vários serviços ao mesmo tempo.
        As máquinas virtuais, quando utilizadas no ensino, facilitam a aplicação de
aulas práticas e laboratórios multidisciplinares e reduz o custo de manutenção. Já
que é possível criar máquinas virtuais com sistemas operacionais e aplicações
específicas a depender do tipo da aula, neste caso elas poderiam ficar disponíveis
em um servidor e serem executadas somente quando forem necessárias.
        Aplicações ou sistemas operacionais legados podem ser executados a partir
da simulação de um hardware compatível com a mesma, sem necessidade de um
hardware dedicado a estas funções.
        Ela auxilia na criação de ambientes múltiplos de execução, ajudando a
aumentar a Quality of Service (QoS) e a disponibilidade dos recursos. Também é
possível executar mais aplicações em um mesmo hardware já que uma máquina
virtual não interfere em outras.
        Permite que aplicações sejam distribuídas com todo um ambiente de
execução já configurado. É possível também testar o comportamento de aplicações
em    diversos    sistemas    operacionais     utilizando   somente     o   computador      do
desenvolvedor.
        Ela é útil na aplicação da técnica de sandboxing pela possibilidade do
isolamento para execução de aplicações não confiáveis. Elas também auxiliam na




3
   Coleção de honeypots com diferentes sistemas operacionais, configurações e serviços de rede.
(Laureano e Maziero, 2008)
4
  “É o custo de manter a tecnologia.” Ribas (2008)
37


criação de honeypots e honeynets já que é possível criar várias máquinas isoladas
com diferentes configurações para que sejam atacadas (Laureano e Maziero, 2008).
        Facilita a criação e aplicação de planos de contingência já que um servidor
com problemas pode ser          restaurado rapidamente,     sem envolver nenhuma
reinstalação física de equipamentos ou de sistema operacional.



2.7.1 Vantagens



        A partir destes usos podem ser citadas as seguintes vantagens no uso da
virtualização (Laureano, 2006; Quevedo, 2008; Ribas, 2008; Nascimento, 2009):

        a) Instalação de diversos sistemas operacionais, de diferentes plataformas,
usando somente um computador;

        b) Portabilidade de aplicações, principalmente aplicações legadas;

        c) Facilidade   no   gerenciamento    de   servidores,   pela   diminuição   da
quantidade necessária;

        d) Facilidade na criação de ambientes operacionais em plataformas
diferentes para demonstração de sistemas, testes de novos aplicativos, testes de
sistemas operacionais, aplicação de atualizações, etc.;

        e) Diminuição de custos com equipamentos, com espaço físico e com
energia elétrica através da consolidação de servidores, auxiliando a conformidade
de práticas de TI Verde;

        f) Melhor utilização dos recursos disponíveis;

        g) Agilidade na criação de backups;

        h) Simplificação do ambiente de desenvolvimento e testes de novos
aplicativos;

        i) Isolamento de falhas de software, provendo maior segurança;

        j) Conter ataques usando o isolamento;
38


        k) Simular diferentes situações do mundo real, sem a necessidade de
compra de equipamentos específicos;

        l) Simular alterações e falhas de hardware;

        m) Prover serviços dedicados a clientes com segurança e confiabilidade.



2.7.2 Desvantagens



        Podem ser citadas as seguintes desvantagens no uso da virtualização
(Laureano, 2006; Quevedo, 2008; Ribas, 2008; Nascimento, 2009):

        a) Desempenho limitado, se comparado ao ambiente real, e consumo de
recursos pela camada de virtualização;

        b) Necessidade de alterações no sistema hóspede para melhorar o
desempenho;

        c) A criação de um ponto único de falha (SPOF), o que aumenta a criticidade
do   ambiente,   pois   um   servidor    hospedeiro   indisponível pode significar   a
indisponibilidade de diversas aplicações;

        d) Necessidade de hardware específico para obtenção de um melhor
desempenho, como é o caso dos processadores;

        e) Compatibilidade de hardware para algumas soluções, como dispositivos
USB, interfaces de rede e armazenamento;

        f) Para garantir uma maior segurança do ambiente os sistemas hospedeiros
não devem ser esquecidos, eles também devem estar seguindo todas as políticas de
segurança estabelecidas pela organização.

        Este capítulo apresentou os principais conceitos envolvidos na virtualização
e fez um resumo de seus principais usos, vantagens e desvantagens. O próximo
capítulo irá mostrar as principais ferramentas de virtualização disponíveis no
mercado.
39


3   FERRAMENTAS PARA MÁQUINAS VIRTUAIS




         Depois de discorrer sobre os diversos conceitos que envolvem a
virtualização, este capítulo mostra as características das principais ferramentas de
virtualização utilizadas para consolidação de servidores e apresenta uma breve
comparação das mesmas.
         Ele está dividido entre os principais fornecedores (Nascimento, 2009) de
soluções para virtualização de servidores: VMware, Citrix e Microsoft. Segue um
pequeno histórico destes:

                     A VMware fundada em 1998, disponibilizou seu software de virtualização
                     em 1999, desde então, mantém a liderança do mercado e atualmente esta
                     bem a frente dos seus principais concorrentes diretos, Microsoft e Citrix
                     (Xen). A Microsoft disponibilizou seu software de virtualização em 2006
                     após adquirir a Connectix, uma pequena e promissora empresa
                     especializada em produtos para virtualização. Desde então, tem investido
                     nessa tecnologia para se tornar a líder de mercado e atualmente ocupa o
                     segundo lugar. A Xen disponibilizou seu software de virtualização em 2003,
                     em 2007 foi adquirida pela Citrix, líder de mercado na virtualização de
                     aplicações, assim o software da Xen ganhou mais destaque no mercado.
                     Porém, sua participação é pequena e a empresa ocupa a terceira posição
                     na liderança do mercado (Nascimento, 2009).



3.1 VMware



         De acordo com Quevedo (2008), o VMware foi a primeira solução de
virtualização para a arquitetura x86, fornecendo uma implementação completa ao
sistema convidado. A VMware Inc. é a empresa que desenvolve o software e possui
uma linha completa de produtos voltados a virtualização, alguns sem custo de
licenciamento, que vão desde desktops a datacenters (Mattos, 2008).
         Ele provê uma interface x86 extremamente genérica para o sistema
convidado, o que faz seu hipervisor mais complexo já que ele deve emular certas
instruções para representar corretamente um processador virtual em cada máquina
virtual. Esta emulação ocorre através da tradução dinâmica. Ele também fornece um
driver, o VMdriver, para permitir que as máquinas virtuais acessem drivers do
sistema hóspede diretamente e assim diminuir a perda do desempenho (Carissimi,
2008).
40


         São disponibilizados produtos em três categorias: gerenciamento e
automação, infraestrutura virtual e plataformas de virtualização. Os produtos de
gerenciamento e automação permitem a gerência de todos os recursos da
infraestrutura virtual de forma automatizada e centralizada, possibilitando a
monitoração dos sistemas, conversão de máquinas físicas em máquinas virtuais,
recuperação de desastres e outros (Carissimi, 2008).
         Os de infraestrutura virtual auxiliam na monitoração e alocação de recursos
entre máquinas virtuais para o fornecimento de requisitos e regras de negócio. E os
produtos de virtualização são os destinados a criar máquinas virtuais, que são tanto
hipervisores nativos quanto convidados (Carissimi, 2008; Laureano e Maziero,
2008).
         O principal produto oferecido pela VMware é o VMware vSphere. Ele é
capaz de oferecer um datacenter virtual para ambientes de todos os tamanhos
atendendo várias necessidades de flexibilidade, velocidade, resistência e eficiência,
transformando os dados em uma “nuvem”, um sistema elástico, autogerido e
autorecuperável, podendo ser associado a outras “nuvens” de computação externas.
Ele garante níveis adequados de disponibilidade, escalabilidade e segurança para
todos os aplicativos, sem depender do hardware e da localização. Também fornece
um gerenciamento de energia, desligando servidores fora de uso, ajudando a criar
um datacenter verde (Nascimento, 2009).
         O VMware vSphere, como ilustrado na Figura 13, oferece: o Application
Services, que garantem os níveis adequados de disponibilidade, escalabilidade e
segurança; e o Infrastructure Services, que resume, agrega e aloca servidores,
armazenamento e rede para o máximo de eficiência da infraestrutura. Ele também
se integra ao VMware vCenter Suite, que permite gerenciar o datacenter virtual e as
aplicações que executam nele, além de poder ser integrado a outras “nuvens”
externas (Vmware, 2010a).
         A seguir são listados os hipervisores da VMware:

         a) VMware ESX Server: é um hipervisor nativo para ser utilizado em
datacenters virtuais. Ele possui um kernel proprietário chamado VMkernel e utiliza o
Red Hat Linux para fornecimento de outros serviços através do console de serviços,
como gerência de usuários.
41




                      Figura 13. Datacenter virtual (Vmware, 2010a)

        b) VMware ESXi Server: possui as mesmas características do VMware ESX
Server mas não possui o console de serviços, fazendo que os agentes do VMware
executem diretamente no VMkernel. A diferença entre o ESX e o ESXi pode ser
visualizada na Figura 14.

        c) VMware Server: versão gratuita do ESX Server para permitir que os
usuários testem o produto antes de adquirir. Não está disponível para esta versão a
ferramenta de configuração, sendo necessária a utilização de ambientes já pré-
definidos. Ele é um hipervisor convidado.

        d) VMware Workstation:       hipervisor   convidado    para ser   utilizado em
ambientes desktop, foi a primeira versão comercializada.

        e) VMware Fusion: versão do VMware Workstation para o sistema
operacional Mac OS com processadores Intel.
42


       f) VMware Player: versão gratuita do VMware Workstation, limitado a
executar as máquinas criadas com versões comerciais do produto.




              Figura 14. Arquitetura das versões ESX e ESXi (Vmware, 2010b)



3.2 Citrix



       A Citrix disponibiliza o Xen, que é um hipervisor de código aberto para a
arquitetura x86 que utiliza a técnica de para-virtualização. Uma de suas vantagens é
o melhor desempenho do que os produtos de virtualização total e seus principais
43


usos são para a consolidação de servidores, o suporte de aplicações legadas e
computação em cluster (Mattos, 2008; Quevedo, 2008).
       O Xen requer, devido à para-virtualização, que o sistema hóspede seja
alterado. Em sistemas operacionais de código aberto, como o Linux, isto é possível,
mas em sistemas proprietários, como o Windows, não é possível executar sobre o
ambiente Xen (Quevedo, 2008).
       O Xen também pode ser implementado utilizando a virtualização total,
requerendo um hardware compatível como o Intel VT ou AMD-V, o que possibilita a
utilização de sistemas como o Windows, já que não são necessárias modificações,
mas com um desempenho menor que o da para-virtualização (Laureano e Maziero,
2008; Quevedo, 2008).
       A tecnologia de virtualização fornecida pela Xen, através da para-
virtualização, fornece abstrações, como processador, memória e rede virtual, onde
os sistemas podem ser portados. Estas abstrações não precisam ser similares ao
hardware da máquina real (Mattos, 2008).
       Os principais conceitos do Xen são o de domínio e o de hipervisor. Os
domínios são as máquinas virtuais e podem ser de dois tipos, privilegiadas (domínio
0) e não privilegiadas (domínio U). O hipervisor controla os recursos de
comunicação, memória e processamento das máquinas virtuais, mas não possui os
drivers necessários para manipular os dispositivos (Carissimi, 2008; Mattos, 2008).
       Isto faz com que o Xen não suporte interação com os sistemas hospedes,
sendo necessária a utilização de um sistema inicial, uma máquina virtual do domínio
0, invocado pelo hipervisor. Esta máquina de domínio 0 acessa uma interface de
controle e executa as aplicações de gerenciamento, sendo que as máquinas de
domínio U só podem ser criadas, iniciadas e desligadas através do domínio 0
(Carissimi, 2008; Mattos, 2008).
       Esta máquina de domínio 0 é executada em Linux com um núcleo
modificado e este possui privilégios para acessar os recursos da máquina física e se
comunicar com as máquinas virtuais de domínio U. Para isto ela possui os drivers do
hardware da máquina física e dois drivers para tratar requisições de acesso à rede e
ao disco feitas pelas máquinas de domínio U. As máquinas de domínio U não
possuem acesso ao hardware, sendo este feito utilizando-se a máquina de domínio
0 através da abstração fornecida pelo hipervisor (Carissimi, 2008; Mattos, 2008). A
Figura 15 ilustra o funcionamento do Xen.
44




                   Figura 15. Hipervisor Xen (Laureano e Maziero, 2008)

        A partir da versão 3, onde foi introduzido o suporte a virtualização completa,
o Xen distingue domínios U para-virtualizados, os domínios U-PV, dos domínios U
virtualizados, domínios U-HVM (Hosted Virtual Machines). Os domínios U-PV sabem
que não possuem acesso direto ao hardware e reconhecem a existência de outras
máquinas virtuais, já os domínios U-HVM não sabem que não possuem acesso
direto e nem reconhecem outras máquinas. Para este último caso o Xen fornece um
emulador QEMU vinculado a cada domínio U-HVM, sendo o hardware fornecido
para estes através dele (Carissimi, 2008).
        O Xen também suporta as funções de Migration e Live Migration, onde é
possível migrar um domínio de forma controlada ocorrendo interrupção da máquina
virtual, no caso da Migration, e sem a necessidade de interrupções, no caso da Live
Migration. Várias distribuições do Linux suportam o Xen de forma nativa e algumas
ainda fornecem ferramentas gráficas para a criação e manutenção de máquinas
virtuais neste hipervisor (Quevedo, 2008).



3.3 Microsoft



        A Microsoft possui vários produtos voltados a virtualização de soluções de
negócios, como é possível visualizar na Figura 16.
45




       Figura 16. Produtos e Tecnologias de Virtualização Microsoft (Microsoft, 2010a)

        Estes produtos têm como objetivo gerar maior eficiência, flexibilidade e
melhor relação custo-benefício para toda a organização, como (Microsoft, 2010b; c):
provisionamento      e   consolidação   de   servidores;    implantação de       aplicações;
gerenciamento centralizado e baseado em diretivas; continuidade dos negócios/
recuperação de desastres; menor TCO, maior ROI; computação dinâmica; teste e
desenvolvimento; segurança; e hospedagem.
        Com estes produtos a Microsoft fornece um conjunto completo de
tecnologias,   permitindo a integração da infraestrutura virtualizada, utilizando
interfaces familiares e consoles de gestão compartilhada, que simplificam a gestão
da infraestrutura.
        Os principais produtos de virtualização da Microsoft são:

        a) Virtualização de Servidores com o Windows Server 2008 R2 Hyper-V:
hipervisor que funciona diretamente sobre o hardware, abaixo do sistema
operacional. Algumas de suas características são: o suporte a arquiteturas x86 e
x64, ambiente multiprocessador, switch virtual integrado, migração rápida de
máquinas virtuais com o mínimo de downtime. Ele requer processador compatível
46


com Intel VT ou AMD-V. Sua arquitetura, que apresenta semelhanças com a
arquitetura do Xen, pode ser visualizada na Figura 17.




                   Figura 17. Arquitetura do Hyper-V (Microsoft, 2010d)

       b) Gerenciamento de Virtualização com o System Center Virtual Machine
Manager: gerencia a configuração dos servidores hospedeiros e das máquinas
virtuais, criação de máquinas virtuais, acompanhamento, alterações, recuperação
rápida, auto provisionamento e automatização.

       c) Virtualização de Aplicações com o Microsoft Application Virtualization
(App-V): transforma aplicações em serviços virtuais gerenciados que não precisam
ser instalados e não entram em conflito com outras aplicações e é capaz de
transmitir estas aplicações para outros computadores por demanda.
47


            d) Virtualização da Estação de Trabalho com o Virtual PC: cria um ambiente
de sistema operacional separado na estação de trabalho, permitindo a execução de
aplicações legadas em um sistema operacional não suportado ou ainda que dois
ambientes distintos sejam executados no mesmo computador.

            e) Virtualização de Apresentação com os Serviços de Terminal: permite que
aplicações que executam no servidor sejam acessadas a partir de uma página da
internet e/ou diretamente em uma estação de trabalho local. Ela permite manter a
propriedade intelectual protegida através da remoção de aplicações e dados da
estação de trabalho dos usuários.

            f) Virtualização do Armazenamento com System Center Data Protection
Manager: protege máquinas virtuais sem tempo de inatividade, ele fornece backup
rápido e retenção eficiente que não consome um espaço excessivo em disco.

            Outros produtos como o System Center Operations Manager e o System
Center Configuration Manager também podem trazer benefícios a virtualização
facilitando o gerenciamento e a monitoração dos sistemas hospedeiros e as
máquinas virtuais hospedadas neles.
            Vale ressaltar que, assim como o Xen, o Hyper-V necessita que drivers
sejam instalados nos sistemas convidados para garantir um melhor desempenho,
caso estes não sejam instalados as máquinas virtuais podem ter um desempenho
inferior.



3.4 Comparação entre as ferramentas



            Entre as três ferramentas a VMware é a que tem a maior participação de
mercado (Nascimento, 2009). Seguem alguns dados obtidos no trabalho de
Nascimento (2009) em fevereiro de 2009:

            a) As vendas de licenças de virtualização, no mundo todo, cresceram 53%
no segundo trimestre de 2008 em relação ao mesmo período de 2007.
48


        b) No segundo trimestre de 2008, a VMware foi líder em receitas no mercado
de virtualização com 78% de participação, a Virtuozzo, da Parallels, ficou em
segundo lugar com 16% e a Microsoft apenas 1,1% da renda total.

        c) A VMware mantém sua liderança no mercado de virtualização x86, mas a
Microsoft está ganhando mercado com o Hyper-V.

        d) No ranking dos vendedores de servidores com funções de virtualização
temos a HP com 34% do mercado, seguida pela Dell com 25% e IBM com 16%.

        e) A VMware possui 44% de participação no mercado por licenciamento
(somando ESX e Server) contra 23% da Microsoft (somando Hyper-V e Virtual
Server). Porém, não está claro o quanto desse mercado é representado por
equipamentos em produção, teste, desenvolvimento.

        f) O preço do Hyper-V da Microsoft é de 28 dólares por servidor e as versões
de alta qualidade do Hyper-V também são gratuitas para os usuários do Windows
Server 2008. Uma licença padrão para o VMware ESX Server custa 3 mil dólares.
Mesmo assim, a VMware possui uma participação no mercado bem maior que a
Microsoft. Tanto em faturamento quanto por licenciamento.

        Nos sites das três empresas foi possível encontrar comparações sobre qual
produto é melhor, todas as empresas tentam mostrar porque o seu produto é o
melhor, mas isto depende muito do cenário de cada organização. As comparações
encontradas foram várias, dentre elas é possível citar as seguintes: VMware
ESXi/ESX, Windows Server 2008 com Hyper-V           e Citrix XenServer no site da
VMware (Vmware, 2010c), XenServer versus a competição (VMware ESXi) no site
da Citrix (Citrix, 2010) e a comparação de custos de operação e manutenção entre o
Microsoft Hyper-V e    VMware ESX & vSphere no site da Microsoft (Microsoft,
2010e). O Anexo A e o Anexo B mostram as duas primeiras comparações de
características.
        Não foram encontradas durante esta pesquisa de TCC comparações entre
as ferramentas da Microsoft e da Citrix nos sites das mesmas.
        No Anexo C é possível verificar a comparação entre várias máquinas virtuais
e emuladores, onde é possível verificar as técnicas utilizadas e os seus principais
usos.
49


        Após análise das comparações encontradas foi possível verificar que a
VMware possui um conjunto de produtos que são superiores ao fornecidos pela
Citrix e pela Microsoft, mas que também possui um custo mais alto de licenciamento
e manutenção. É bom notar também que, entre os três fabricantes, o produto da
Microsoft é o que é compatível com o menor número de distribuições do sistema
operacional Linux.
        Como    a    escolha da ferramenta envolve várias questões,        o mais
recomendável é que seja analisado primeiramente o cenário da implementação, para
decidir quais servidores serão virtualizados, os serviços que serão implantados e o
tipo de gerenciamento que a organização vai necessitar.
        Este capítulo apresentou as características das principais ferramentas de
virtualização disponíveis no mercado. O próximo capítulo discorre sobre o estudo de
caso feito neste trabalho, relacionado com os serviços de informática usados e
oferecidos pelo DCOMP/UFS.
50


4   ESTUDO DE CASO




        Este capítulo vai tratar do estudo de caso feito no Departamento de
Computação da Universidade Federal de Sergipe (DCOMP/UFS). Ao final, são
apresentados os resultados obtidos.



4.1 Sobre o DCOMP



        O Departamento de Computação (DCOMP) é originário do Departamento de
Estatística e Informática, o qual, na criação do Curso de Bacharelado em Ciência da
Computação, contava com apenas cinco professores mestres e um graduado na
área de Computação. Em 2006, os professores de Estatística desvincularam-se
formando um núcleo próprio. O Departamento de Computação foi então instituído e
conta hoje com vinte e um professores.
        Ele oferece atualmente três cursos de graduação e um de pós-graduação
além de oferecer disciplinas para diversos outros cursos da universidade.
        Os cursos oferecidos pelo DCOMP são Ciência da Computação, com
entrada de cinquenta alunos por semestre, Sistemas da Informação, que foi iniciado
em 2007 e conta com uma entrada de cinquenta alunos por ano, Engenharia da
Computação, iniciado em 2009 e conta com uma entrada de cinquenta alunos por
ano, e o Mestrado em Ciência da Computação, que foi iniciado no segundo
semestre de 2010 com uma entrada de quinze alunos por ano.
        O DCOMP conta com cinco laboratórios de ensino (Laboratório de Ensino
Geral, Laboratório de Ensino Avançado, Laboratório de Ensino Básico, Laboratório
de Ensino de Redes e Laboratório de Ensino de Hardware) e três laboratórios de
pesquisa   (Laboratório   de   Projetos,   INES    e   LABSOFT)     equipados   com
computadores. Destes o DCOMP não é responsável pela administração do
laboratório do INES, que conta com a infraestrutura fornecida diretamente pela
universidade.
51


        Também estão disponíveis computadores nas salas dos professores e na
secretaria do departamento. Estes computadores também são utilizados para
funções administrativas.
        O próprio departamento é responsável pela administração de toda a
estrutura de TI interna ao mesmo. Atualmente ele não conta com nenhum
funcionário responsável pela área e não há previsão sobre quando haverá a
contratação deste funcionário.
        Durante o ano de 2010 ocorreu uma renovação dos computadores utilizados
nos laboratórios, secretaria e salas dos professores.
        Devido ao DCOMP estar situado em uma instituição pública de ensino ele
está sujeito a toda a burocracia e falta de recursos comuns a este tipo de
departamento,   o que dificulta a aquisição de novos servidores e outros
equipamentos.
        Recentemente ocorreu a utilização da virtualização nos laboratórios do
DCOMP em dois casos. O primeiro foi durante a 1ª Semana de Computação, onde
foi criada uma máquina virtual com softwares necessários para utilização durante as
aulas dos minicursos oferecidos. E o segundo caso foi durante a etapa regional da
Maratona de Programação onde foi disponibilizado aos participantes um ambiente
em máquina virtual próprio para a competição.
        Em breve vai ser construído um novo prédio que irá abrigar novos
laboratórios para o departamento e irão utilizar a infraestrutura de servidores que
está sendo atualizada neste trabalho.
        Após uma análise da situação atual, que será apresentada na próxima
seção, ficou decidido que este trabalho iria abordar somente a consolidação de
servidores, já que as maiores deficiências foram encontradas nesta área. Outros
tipos de virtualização que podem beneficiar o DCOMP são a virtualização de
aplicações e a virtualização de apresentação, que permitiriam uma implantação de
novos aplicativos mais rapidamente e a utilização de aplicativos temporários.
52


4.2 Situação anterior



          O DCOMP contava com seis servidores que forneciam os serviços de
arquivos, DNS5, DHCP6, diretório7, NAT8, Web e gerenciamento de configuração. A
maioria dos servidores contava com alguma versão do Windows Server e dois deles
executavam uma distribuição do Linux. É possível visualizar este cenário na Figura
18.
          Os hardwares de alguns destes servidores estavam apresentando defeito e
nenhum deles se encontrava mais no período de garantia, já que a maioria deles foi
adquirido, pelo menos, há quatro anos.
          O servidor ITAIPU fornece o serviço de NAT e o SOBRADINHO os serviços
de servidor Web e DNS para clientes externos, os dois possuem acesso à internet
através    de   endereços      de   internet    válidos.   Estes    dois servidores vinham
apresentando diversos problemas, com travamentos constantes e indisponibilidade
de alguns serviços. Era comum a falta de acesso à internet durante várias horas por
semana, pois o servidor NAT parava de funcionar, sendo necessária a reinicialização
do mesmo. Recentemente devido a travamentos no servidor SOBRADINHO os
serviços de DNS e Web paravam de funcionar, prejudicando o recebimento de e-
mails com o domínio do DCOMP e o acesso à página de internet do mesmo.
          O servidor DCFURNAS provia o serviço de diretório Active Directory, o
DOCMACHADINHO o serviço de arquivos, o INFRALAJEADO os serviços de DHCP
e DNS para os clientes da rede interna e o MANAGER os serviços de gerenciamento
de atualizações, antivírus, softwares e sistemas operacionais. Os serviços de cada
servidor podem ser verificados na Tabela 1.




5
  Resolve nomes de domínios em endereços de rede.
6
  Oferece configuração dinâmica de terminais através da concessão de endereços IP de host e outros
parâmetros de configuração para clientes de rede.
7
  É um serviço que armazena e organiza informações sobre os recursos e os utilizadores de uma
rede de computadores, e que permite os administradores de rede gerenciar o acesso de utilizador e
sistemas a esses recursos.
8
  É uma técnica que consiste em reescrever os endereços IP de origem de um pacote que passam
por um router ou firewall de maneira que um computador de uma rede interna tenha acesso a uma
rede externa.
53




         Figura 18. Cenário inicial dos servidores do DCOMP (Elaboração própria)

                           Tabela 1. Serviços em cada servidor
                Servidor                            Serviços

         SOBRADINHO                Web
                                   DNS externo
         DCFURNAS                  Domínio Active Directory
                                   Servidor de Arquivos
         DOCMACHADINHO             Servidor de Arquivos
         INFRALAJEADO              DHCP
                                   DNS interno
         ITAIPU                    NAT
         MANAGER                   Gerenciamento de configuração
                                   Gerenciamento de atualizações
                                   Gerenciamento do antivírus
                                   Gerenciamento de ativação do Windows
                              Fonte: Elaboração própria
       Destes servidores o único que foi adquirido mais recentemente e possui
suporte a arquitetura de 64 bits é o MANAGER, ele também é o que possui o melhor
desempenho entre estes seis servidores já que possui uma configuração mais atual.
       A média de utilização da CPU dos computadores com o Windows Server foi
analisada durante um período de tempo, antes de propor a solução, e ficou
54


verificado que nos servidores DOCMACHADINHO, DCFURNAS e INFRALAJEADO
esta média não chega a 5% durante os horários de funcionamento do departamento.
Já o servidor MANAGER tem uma média de utilização de CPU de 50% com picos de
mais de 80% durante um dia normal.
         Nos servidores que executavam o Linux não foi feita uma análise da
utilização de CPU, mas uma alta utilização da CPU pode ser o motivo dos
constantes travamentos. Alguns usuários chegaram a reportar que o servidor
SOBRADINHO ficava muito lento em alguns horários, isto também pode significar
uma utilização elevada da CPU e da memória.
         Não era utilizada nenhuma solução para backup dos sistemas, sendo que os
servidores INFRALAJEADO, DOCMACHADINHO, DCFURNAS E SOBRADINHO
tinham armazenamentos espelhados, pelo menos para suas partições principais, o
que garantia a disponibilidade dos arquivos mesmo na falha de um dos discos. A
configuração de cada servidor pode ser verificada na Tabela 2.
                           Tabela 2. Configuração dos servidores
      Servidor                                       Configuração
DCFURNAS                  Processador com um núcleo; 1GB de memória; Dois
INFRALAJEADO              discos rígidos de 80GB em RAID 1, para espelhamento
SOBRADINHO                dos dados; Duas placas de rede Fast Ethernet.
DOCMACHADINHO             Processador com um núcleo; 1GB de memória; Quatro
                          discos rígidos de 80GB, sendo dois em RAID 1, para
                          espelhamento dos dados; Uma placa de rede Fast
                          Ethernet.
ITAIPU                    Processador com um núcleo; 512MB de memória; Um
                          disco rígido de 40GB; Duas placas de rede Fast Ethernet.
MANAGER                   Processador de dois núcleos; 2GB de memória; Um disco
                          rígido de 160GB; Uma placa de rede Fast Ethernet.
                              Fonte: Elaboração própria
         Não   existia   nenhuma      solução   de    gerenciamento   destes   servidores
implantada, o que ocasionava a necessidade da presença de alguém para
solucionar diversos problemas, além de impossibilitar o acompanhamento do status
dos computadores de uma maneira mais fácil.
55


        Os serviços essenciais para o DCOMP, que são o acesso à internet
(fornecido pelo NAT), o DNS e o diretório, não possuíam nenhuma redundância e
quando acontecia falha em um dos computadores o serviço fornecido por ele ficava
indisponível ao departamento.



4.3 Solução proposta



        Tendo analisado a situação dos servidores foi decidido que a virtualização
no DCOMP deveria proporcionar:

              Consolidação dos servidores, para aumentar a carga de utilização;

              Diminuir o espaço necessário para armazenamento, devido às
               limitações de espaço físico;

              Gerenciamento centralizado, para facilitar a administração;

              Aumentar a QoS, provendo um maior tempo de disponibilidade para
               os serviços;

              Diminuir o SPOF, que pode ser ampliado com a utilização da
               virtualização;

              Plano de contingência, a partir da utilização de backups diários dos
               servidores;

              Aumento da segurança da informação de uma maneira geral, com a
               implantação destas medidas.

        Primeiramente     foram   analisados   os   fornecedores      de   soluções   de
virtualização, como visto no capítulo 3, e optou-se por utilizar as soluções da
Microsoft já que o departamento possui atualmente um acordo de licenciamento, que
diminui o custo com as licenças dos aplicativos a serem utilizados.
        Após isto foi necessário obter hardware compatível com estes produtos.
Devido à limitação para aquisições do departamento foi necessária a utilização de
56


alguns computadores que seriam destinados a laboratórios de ensino. Mas também
foi possível adquirir, por meio de um convênio do DCOMP com a FAPESE9, dois
computadores que foram utilizados nesta implementação.



4.3.1 Configuração dos servidores



           Foi decidido que seriam utilizados ao final da implementação sete
computadores, todos ligados em nobreaks. Destes computadores o MANAGER foi o
único que continuou a existir como uma máquina real, devido a sua maior utilização
e a falta de um servidor com uma configuração mais adequada para receber este
sistema como uma máquina virtual. Outros dois computadores reais foram
adicionados para o gerenciamento de máquinas virtuais e backup dos servidores
virtuais, estes devido as suas funções não poderiam ocupar máquinas virtuais. Os
outros quatro são os servidores hospedeiros. A Figura 19 ilustra o cenário da
solução proposta.
           Os computadores a serem utilizados como hospedeiros foram:

                  HYPERV-001 e HYPERV-002 com processador de quatro núcleos,
                   4GB de memória, uma placa de rede Gigabit Ethernet, três placas de
                   rede Fast Ethernet e 500GB de armazenamento em um só disco;

                  HYPERV-003, com processador de quatro núcleos, 2GB de memória,
                   três placas de rede com duas portas Gigabit Ethernet em cada, um
                   disco rígido de 250GB para sistema e dois discos de 160GB
                   espelhados para armazenamento dos discos virtuais;

                  HYPERV-004, com processador de quatro núcleos, 4GB de memória,
                   três placas de rede Fast Ethernet, um disco rígido de 160GB para
                   sistema e dois discos de 500GB espelhados para armazenamento
                   dos discos virtuais.




9
    Fundação de Apoio à Pesquisa e Extensão de Sergipe.
57




               Figura 19. Cenário da solução proposta (Elaboração própria)

       Os quatro computadores hospedeiros podem receber máquinas virtuais que
ocupem até 3GB de memória, no caso dos servidores HYPERV-001, HYPERV-002 e
HYPERV-004. O servidor HYPERV-003 só pode receber máquinas virtuais para
utilizar até 1GB de memória, devido ao mesmo possuir menos memória que os
outros. Isto deve-se a utilização de até 1GB de memória pelo Windows Server 2008
R2 que executa o Hyper-V.
       Os servidores para gerenciamento (SCVMM) e backup (SCDPM) possuem a
seguinte configuração: o SCVMM conta com processador de dois núcleos, 4GB de
memória, uma placa de rede Gigabit Ethernet e 320GB de disco rígido; já o SCDPM
conta com processador de quatro núcleos, 4GB de memória, uma placa de rede Fast
Ethernet, um disco rígido de 1TB e três discos rígidos de 160GB.
       A Microsoft recomenda que para cada servidor hospedeiro existam pelo
menos duas placas de rede, uma para ser utilizada pelo sistema do hospedeiro e
garantir o seu gerenciamento remoto, e a outra para ser utilizada pelas máquinas
virtuais. A Tabela 3 mostra a configuração do hardware de cada servidor físico.
58


            O motivo principal de a solução proposta utilizar o servidor HYPERV-003
com somente uma máquina virtual, não fazendo uma consolidação, se deve ao fato
desta execução proporcionar a capacidade de backup e restauração do servidor
virtual em caso de falhas, o que não seria possível se o servidor estivesse
executando diretamente sobre o servidor real. Outro motivo é que este servidor real
suporta até 24GB de memória, os outros que suportam até 8GB, possibilitando,
mediante a compra de mais memória, a sua utilização por diversas máquinas
virtuais.
                  Tabela 3. Configuração dos servidores reais nesta solução
     Servidor                                 Configuração

 HYPERV-001           Processador de quatro núcleos; 4GB de memória; Um disco
 HYPERV-002           rígido de 500GB; Uma placa de rede Gigabit Ethernet; Três
                      placas de rede Fast Ethernet.
 HYPERV-003           Processador de quatro núcleos; 2GB de memória; Um disco
                      rígido de 250GB para sistema e dois discos de 160GB
                      espelhados para armazenamento dos discos virtuais; Três
                      placas de rede com duas portas Gigabit Ethernet.
 HYPERV-004           Processador de quatro núcleos; 4GB de memória; Um disco
                      rígido de 160GB para sistema e dois discos de 500GB
                      espelhados para armazenamento dos discos virtuais; Três
                      placas de rede Fast Ethernet.
 SCVMM                Processador de dois núcleos; 4GB de memória; Um disco rígido
                      de 320GB; Uma placa de rede Gigabit Ethernet.
 SCDPM                Processador de quatro núcleos; 4GB de memória; Um disco
                      rígido de 1TB e três discos rígidos de 160GB, sendo um destes
                      de 160GB destinados ao sistema operacional; Uma placa de
                      rede Fast Ethernet.
 MANAGER              Processador de dois núcleos; 2GB de memória; Um disco rígido
                      de 160GB; Uma placa de rede Fast Ethernet.
                               Fonte: Elaboração própria
59


4.3.2 Aplicações dos servidores



        Foi decidida pela utilização do Windows Server 2008 R2 Enterprise nos
computadores hospedeiros com a opção Server Core de instalação, que provê uma
versão mínima do Windows Server, sem interface gráfica, com necessidade de
atualizações reduzidas e que oferece poucos recursos. Nestas instalações foram
usadas somente a função Hyper-V, além do software antivírus e os agentes de
backup e gerenciamento. Uma placa de rede é dedicada a este sistema e as outras
são configuradas para utilização pelo hipervisor.
        Toda a administração das máquinas virtuais e dos computadores reais é
feita a partir do servidor SCVMM que contém uma instalação completa do Windows
Server 2008 R2 Enterprise com o System Center Virtual Machine Manager 2008 R2,
que monitora e gerencia as máquinas virtuais e os computadores hospedeiros, e o
System Center Operations Manager 2007 R2, que, neste caso, monitora e gerencia
o desempenho e tarefas de manutenção necessárias nos servidores.
        O servidor SCDPM possui uma instalação do sistema operacional Windows
Server 2008 R2 Enterprise em um dos discos de 160GB e possui também o System
Center Data Protection Manager 2010, que é responsável pelo backup de todos os
servidores virtualizados. O SCDPM usa um disco de 1TB junto com os outros dois
discos de 160GB para armazenar o backup dos servidores virtuais. Este backup é
realizado diariamente às 23h, fica armazenado por um prazo de até cinco dias e é
executado com o uso de agentes nos servidores hospedeiros. Os agentes são
responsáveis por identificar os dados que podem ser protegidos e recuperados com
a utilização do SCDPM, eles também são responsáveis por monitorar as mudanças
que ocorrem nos arquivos protegidos e enviar estas mudanças do computador
protegido ao servidor do SCDPM.
        Feito esta configuração dos servidores hospedeiros e gerenciadores foi
decidido que os servidores virtuais não sofreriam uma migração da máquina física
para uma virtual. Todas as instalações são novas e o processo de migração deveria
ser feito seguindo as instruções disponibilizadas pelos desenvolvedores dos
softwares.
        Pela familiaridade do autor com a plataforma Windows, este decidiu não
utilizar um servidor NAT baseado em Linux fazendo a migração para um servidor
60


baseado em Windows Server. Isto trouxe o benefício da monitoração nativa
oferecida pelo SCVMM.
       Para minimizar a possibilidade de indisponibilidade da internet e dos
serviços de diretório foi decidido que duas máquinas virtuais iriam executar estes
serviços, sendo cada uma em um servidor hospedeiro diferente, para evitar o SPOF.
Com isto o NAT passou a contar com dois servidores virtuais, o NATITAIPU e o
NATTRESMARIAS, e o servidor de serviços de diretório com os servidores
DCFURNAS e DCANGRA.
       Todos os servidores que executam Windows foram migrados para a versão
mais atual, o Windows Server 2008 R2, com a edição Enterprise, a mesma edição
que os servidores Windows já possuíam instalada.
       De acordo com as práticas da Microsoft, o servidor de domínio passou a
oferecer além do serviço de diretório o serviço de DNS, o que também resultou em
uma maior disponibilidade deste último serviço já que o servidor de domínio passou
a contar com um segundo servidor virtual.
       O servidor INFRALAJEADO, que fornecia o serviço de DHCP e DNS, passa
então a oferecer somente o serviço de DNS. E o servidor DOCMACHADINHO
continua oferecendo o serviço de arquivos. Estes dois servidores não dispõem de
replicação pelo uso de uma segunda máquina virtual. Na Tabela 4 são mostrados os
serviços oferecidos nos servidores que foram migrados e nos que foram criados.
       Com exceção dos servidores NATITAIPU e NATRESMARIAS que estão
configurados com duas placas de rede todos os servidores virtuais estão
configurados com uma placa de rede, um processador lógico e 1GB de memória. O
espaço e a quantidade de discos virtuais variam a depender da aplicação, mas eles
executam o Windows Server com aproximadamente 40GB de espaço no disco
virtual. O DOCMACHADINHO possui outros discos virtuais que são utilizados no seu
compartilhamento oferecido na rede.
       O servidor SOBRADINHO foi migrado para o WEBSOBRADINHO no
HYPERV-003 com dois processadores lógicos, 1GB de memória, uma placa de rede
e dois discos virtuais, um de 127GB e outro de 10GB. Este servidor passou a utilizar
o Ubuntu 10.04 como sistema operacional, que necessitou ser atualizado para o
kernel 2.6.35 para contar com os adicionais de convidado para HYPER-V, inclusos a
partir desta versão do kernel do Linux, e executar com um melhor desempenho.
Implementacao e desempenho da virtualizacao no dcomp ufs
Implementacao e desempenho da virtualizacao no dcomp ufs
Implementacao e desempenho da virtualizacao no dcomp ufs
Implementacao e desempenho da virtualizacao no dcomp ufs
Implementacao e desempenho da virtualizacao no dcomp ufs
Implementacao e desempenho da virtualizacao no dcomp ufs
Implementacao e desempenho da virtualizacao no dcomp ufs
Implementacao e desempenho da virtualizacao no dcomp ufs
Implementacao e desempenho da virtualizacao no dcomp ufs
Implementacao e desempenho da virtualizacao no dcomp ufs
Implementacao e desempenho da virtualizacao no dcomp ufs
Implementacao e desempenho da virtualizacao no dcomp ufs
Implementacao e desempenho da virtualizacao no dcomp ufs
Implementacao e desempenho da virtualizacao no dcomp ufs
Implementacao e desempenho da virtualizacao no dcomp ufs
Implementacao e desempenho da virtualizacao no dcomp ufs
Implementacao e desempenho da virtualizacao no dcomp ufs
Implementacao e desempenho da virtualizacao no dcomp ufs
Implementacao e desempenho da virtualizacao no dcomp ufs
Implementacao e desempenho da virtualizacao no dcomp ufs

Mais conteúdo relacionado

Mais procurados

50718286 apostila-de-asp-net-c-e-visual-basic-net
50718286 apostila-de-asp-net-c-e-visual-basic-net50718286 apostila-de-asp-net-c-e-visual-basic-net
50718286 apostila-de-asp-net-c-e-visual-basic-netThais Rodrigues
 
Processos de fabricação: Estudo avançados sobre a prototipagem rápida
Processos de fabricação: Estudo avançados sobre a prototipagem rápidaProcessos de fabricação: Estudo avançados sobre a prototipagem rápida
Processos de fabricação: Estudo avançados sobre a prototipagem rápidaRafael Lial
 
Modelagem de Ambientes de Computação Ubíqua Utilizando Simulação
Modelagem de Ambientes de Computação Ubíqua Utilizando SimulaçãoModelagem de Ambientes de Computação Ubíqua Utilizando Simulação
Modelagem de Ambientes de Computação Ubíqua Utilizando SimulaçãoJurmir Canal Neto
 
Desenvolvimento de-robo-movel (1)
Desenvolvimento de-robo-movel (1)Desenvolvimento de-robo-movel (1)
Desenvolvimento de-robo-movel (1)Levi Germano
 
Montagem manutencao-computadores-web
Montagem manutencao-computadores-webMontagem manutencao-computadores-web
Montagem manutencao-computadores-webRamon Rocha
 

Mais procurados (9)

50718286 apostila-de-asp-net-c-e-visual-basic-net
50718286 apostila-de-asp-net-c-e-visual-basic-net50718286 apostila-de-asp-net-c-e-visual-basic-net
50718286 apostila-de-asp-net-c-e-visual-basic-net
 
081112 manut mont
081112 manut mont081112 manut mont
081112 manut mont
 
Enquadramento Teorico
Enquadramento TeoricoEnquadramento Teorico
Enquadramento Teorico
 
Processos de fabricação: Estudo avançados sobre a prototipagem rápida
Processos de fabricação: Estudo avançados sobre a prototipagem rápidaProcessos de fabricação: Estudo avançados sobre a prototipagem rápida
Processos de fabricação: Estudo avançados sobre a prototipagem rápida
 
138
138138
138
 
Curso de simulink 2 0
Curso de simulink 2 0Curso de simulink 2 0
Curso de simulink 2 0
 
Modelagem de Ambientes de Computação Ubíqua Utilizando Simulação
Modelagem de Ambientes de Computação Ubíqua Utilizando SimulaçãoModelagem de Ambientes de Computação Ubíqua Utilizando Simulação
Modelagem de Ambientes de Computação Ubíqua Utilizando Simulação
 
Desenvolvimento de-robo-movel (1)
Desenvolvimento de-robo-movel (1)Desenvolvimento de-robo-movel (1)
Desenvolvimento de-robo-movel (1)
 
Montagem manutencao-computadores-web
Montagem manutencao-computadores-webMontagem manutencao-computadores-web
Montagem manutencao-computadores-web
 

Destaque

Web 2.0 Collaboration – Using digital tools for redesigning governance
Web 2.0 Collaboration – Using digital tools for redesigning governanceWeb 2.0 Collaboration – Using digital tools for redesigning governance
Web 2.0 Collaboration – Using digital tools for redesigning governancePaul Gilbreath
 
Google+ Para Empresas - GBG Aracaju - Tiago Araujo Melo
Google+ Para Empresas - GBG Aracaju - Tiago Araujo MeloGoogle+ Para Empresas - GBG Aracaju - Tiago Araujo Melo
Google+ Para Empresas - GBG Aracaju - Tiago Araujo MeloTiago Melo
 
Apresentação ForkInSergipe
Apresentação ForkInSergipeApresentação ForkInSergipe
Apresentação ForkInSergipeRafael França
 
Ruby on rails - CEFET de Lagarto
Ruby on rails - CEFET de LagartoRuby on rails - CEFET de Lagarto
Ruby on rails - CEFET de LagartoDante Regis
 
Projeto software alem da tecnologia v2
Projeto   software alem da tecnologia v2Projeto   software alem da tecnologia v2
Projeto software alem da tecnologia v2Roberto Brandini
 
MySQL - copiando, movendo e restaurando dados
MySQL - copiando, movendo e restaurando dadosMySQL - copiando, movendo e restaurando dados
MySQL - copiando, movendo e restaurando dadosPedro Neto
 
Palestra - Bem vindo a era pós-digital: Empreendendo em um ambiente mutante.
Palestra - Bem vindo a era pós-digital: Empreendendo em um ambiente mutante.Palestra - Bem vindo a era pós-digital: Empreendendo em um ambiente mutante.
Palestra - Bem vindo a era pós-digital: Empreendendo em um ambiente mutante.Cássio Nunes
 
IBECC - Contratos Empresariais - Revisão e Controle
IBECC - Contratos Empresariais - Revisão e ControleIBECC - Contratos Empresariais - Revisão e Controle
IBECC - Contratos Empresariais - Revisão e ControleAlexandra Yusiasu dos Santos
 
Arquiteturas de software para computação ubiqua
Arquiteturas de software para computação ubiquaArquiteturas de software para computação ubiqua
Arquiteturas de software para computação ubiquaRubens Matos Junior
 
Aula06 matriz em C
Aula06 matriz em CAula06 matriz em C
Aula06 matriz em CYuri Passos
 
ThingTank @ MIT-Skoltech Innovation Symposium 2014
ThingTank @ MIT-Skoltech Innovation Symposium 2014ThingTank @ MIT-Skoltech Innovation Symposium 2014
ThingTank @ MIT-Skoltech Innovation Symposium 2014Neil Rubens
 
O papel da internet na Assessoria de Imprensa
O papel da internet na Assessoria de ImprensaO papel da internet na Assessoria de Imprensa
O papel da internet na Assessoria de ImprensaElaine Mesoli
 
Social Web Studies - What kind of collaboration is right for your business
Social Web Studies - What kind of collaboration is right for your businessSocial Web Studies - What kind of collaboration is right for your business
Social Web Studies - What kind of collaboration is right for your businessPaul Gilbreath
 
História do Escritório Virtual de Aracaju
História do Escritório Virtual de AracajuHistória do Escritório Virtual de Aracaju
História do Escritório Virtual de AracajuRosivaldo Nascimento
 
Network Learning: AI-driven Connectivist Framework for E-Learning 3.0
Network Learning: AI-driven Connectivist Framework for E-Learning 3.0Network Learning: AI-driven Connectivist Framework for E-Learning 3.0
Network Learning: AI-driven Connectivist Framework for E-Learning 3.0Neil Rubens
 
Ecossistemas de startups nordestinos os desafios para a competitividade (2)
Ecossistemas de startups nordestinos  os desafios para a competitividade (2)Ecossistemas de startups nordestinos  os desafios para a competitividade (2)
Ecossistemas de startups nordestinos os desafios para a competitividade (2)Ludmilla Veloso [LION]
 

Destaque (20)

Web 2.0 Collaboration – Using digital tools for redesigning governance
Web 2.0 Collaboration – Using digital tools for redesigning governanceWeb 2.0 Collaboration – Using digital tools for redesigning governance
Web 2.0 Collaboration – Using digital tools for redesigning governance
 
Google+ Para Empresas - GBG Aracaju - Tiago Araujo Melo
Google+ Para Empresas - GBG Aracaju - Tiago Araujo MeloGoogle+ Para Empresas - GBG Aracaju - Tiago Araujo Melo
Google+ Para Empresas - GBG Aracaju - Tiago Araujo Melo
 
Desafios da Cocriação
Desafios da CocriaçãoDesafios da Cocriação
Desafios da Cocriação
 
Apresentação ForkInSergipe
Apresentação ForkInSergipeApresentação ForkInSergipe
Apresentação ForkInSergipe
 
Ruby on rails - CEFET de Lagarto
Ruby on rails - CEFET de LagartoRuby on rails - CEFET de Lagarto
Ruby on rails - CEFET de Lagarto
 
Projeto software alem da tecnologia v2
Projeto   software alem da tecnologia v2Projeto   software alem da tecnologia v2
Projeto software alem da tecnologia v2
 
MySQL - copiando, movendo e restaurando dados
MySQL - copiando, movendo e restaurando dadosMySQL - copiando, movendo e restaurando dados
MySQL - copiando, movendo e restaurando dados
 
Palestra - Bem vindo a era pós-digital: Empreendendo em um ambiente mutante.
Palestra - Bem vindo a era pós-digital: Empreendendo em um ambiente mutante.Palestra - Bem vindo a era pós-digital: Empreendendo em um ambiente mutante.
Palestra - Bem vindo a era pós-digital: Empreendendo em um ambiente mutante.
 
IBECC - Contratos Empresariais - Revisão e Controle
IBECC - Contratos Empresariais - Revisão e ControleIBECC - Contratos Empresariais - Revisão e Controle
IBECC - Contratos Empresariais - Revisão e Controle
 
Arquiteturas de software para computação ubiqua
Arquiteturas de software para computação ubiquaArquiteturas de software para computação ubiqua
Arquiteturas de software para computação ubiqua
 
Seminario - Versão Final
Seminario - Versão FinalSeminario - Versão Final
Seminario - Versão Final
 
Introdução ao scrum
Introdução ao scrumIntrodução ao scrum
Introdução ao scrum
 
Aula06 matriz em C
Aula06 matriz em CAula06 matriz em C
Aula06 matriz em C
 
ThingTank @ MIT-Skoltech Innovation Symposium 2014
ThingTank @ MIT-Skoltech Innovation Symposium 2014ThingTank @ MIT-Skoltech Innovation Symposium 2014
ThingTank @ MIT-Skoltech Innovation Symposium 2014
 
O papel da internet na Assessoria de Imprensa
O papel da internet na Assessoria de ImprensaO papel da internet na Assessoria de Imprensa
O papel da internet na Assessoria de Imprensa
 
Social Web Studies - What kind of collaboration is right for your business
Social Web Studies - What kind of collaboration is right for your businessSocial Web Studies - What kind of collaboration is right for your business
Social Web Studies - What kind of collaboration is right for your business
 
História do Escritório Virtual de Aracaju
História do Escritório Virtual de AracajuHistória do Escritório Virtual de Aracaju
História do Escritório Virtual de Aracaju
 
Network Learning: AI-driven Connectivist Framework for E-Learning 3.0
Network Learning: AI-driven Connectivist Framework for E-Learning 3.0Network Learning: AI-driven Connectivist Framework for E-Learning 3.0
Network Learning: AI-driven Connectivist Framework for E-Learning 3.0
 
Plano do Projeto
Plano do ProjetoPlano do Projeto
Plano do Projeto
 
Ecossistemas de startups nordestinos os desafios para a competitividade (2)
Ecossistemas de startups nordestinos  os desafios para a competitividade (2)Ecossistemas de startups nordestinos  os desafios para a competitividade (2)
Ecossistemas de startups nordestinos os desafios para a competitividade (2)
 

Semelhante a Implementacao e desempenho da virtualizacao no dcomp ufs

Comparação de Tecnologias para Web - JBoss Seam e Ruby on Rails
Comparação de Tecnologias para Web - JBoss Seam e Ruby on RailsComparação de Tecnologias para Web - JBoss Seam e Ruby on Rails
Comparação de Tecnologias para Web - JBoss Seam e Ruby on RailsMawcor
 
Virtualizacao de Servidores: Um comparativo entre VMware e Xen
Virtualizacao de Servidores: Um comparativo entre VMware e XenVirtualizacao de Servidores: Um comparativo entre VMware e Xen
Virtualizacao de Servidores: Um comparativo entre VMware e XenAlan Brumate
 
MONOGRAFIA_SegurançaCibernéticaRedes.pdf
MONOGRAFIA_SegurançaCibernéticaRedes.pdfMONOGRAFIA_SegurançaCibernéticaRedes.pdf
MONOGRAFIA_SegurançaCibernéticaRedes.pdfElsioChiburre1
 
Comparação de Tecnologias para Web - JBoss Seam e Ruby on Rails
Comparação de Tecnologias para Web - JBoss Seam e Ruby on RailsComparação de Tecnologias para Web - JBoss Seam e Ruby on Rails
Comparação de Tecnologias para Web - JBoss Seam e Ruby on RailsMawcor
 
Troca de contexto segura em sistemas operacionais embarcados utilizando técni...
Troca de contexto segura em sistemas operacionais embarcados utilizando técni...Troca de contexto segura em sistemas operacionais embarcados utilizando técni...
Troca de contexto segura em sistemas operacionais embarcados utilizando técni...Rodrigo Almeida
 
Monografia - Engenharia de software baseada em modelos um estudo sobre WebML ...
Monografia - Engenharia de software baseada em modelos um estudo sobre WebML ...Monografia - Engenharia de software baseada em modelos um estudo sobre WebML ...
Monografia - Engenharia de software baseada em modelos um estudo sobre WebML ...Gabriel Cabral
 
Virtualização de servidores cleiton leive de lima xavier
Virtualização de servidores   cleiton leive de lima xavierVirtualização de servidores   cleiton leive de lima xavier
Virtualização de servidores cleiton leive de lima xaviercleitonleive
 
Fabio virtualizacao (1)
Fabio   virtualizacao (1)Fabio   virtualizacao (1)
Fabio virtualizacao (1)gsabatke
 
Conexão remota e segurança de rede
Conexão remota e segurança de redeConexão remota e segurança de rede
Conexão remota e segurança de redeSoftD Abreu
 
Aplicac3a7c3a3o da-abordagem-gqm-para-a-definic3a7c3a3o-de-um-processo-de-eng...
Aplicac3a7c3a3o da-abordagem-gqm-para-a-definic3a7c3a3o-de-um-processo-de-eng...Aplicac3a7c3a3o da-abordagem-gqm-para-a-definic3a7c3a3o-de-um-processo-de-eng...
Aplicac3a7c3a3o da-abordagem-gqm-para-a-definic3a7c3a3o-de-um-processo-de-eng...JADSON SANTOS
 
Monografia Marcos Bezerra 2008
Monografia Marcos Bezerra   2008Monografia Marcos Bezerra   2008
Monografia Marcos Bezerra 2008Marcos Bezerra
 
Usabilidade e Arquitetura de Informação de Websites de Governos Municipais
Usabilidade e Arquitetura de Informação de Websites de Governos MunicipaisUsabilidade e Arquitetura de Informação de Websites de Governos Municipais
Usabilidade e Arquitetura de Informação de Websites de Governos MunicipaisMarcelo Ramos
 
Gestao contexto qos_qoe
Gestao contexto qos_qoeGestao contexto qos_qoe
Gestao contexto qos_qoeIP10
 
TCC Risco na comunicação entre máquinas virtuais - Vinícius Lima
TCC Risco na comunicação entre máquinas virtuais - Vinícius LimaTCC Risco na comunicação entre máquinas virtuais - Vinícius Lima
TCC Risco na comunicação entre máquinas virtuais - Vinícius LimaGoverno do Estado de São Paulo
 
Trabalho sobre software Vericut
Trabalho sobre software VericutTrabalho sobre software Vericut
Trabalho sobre software Vericutrbgalvao
 
TCC - SISTEMA PARA MONITORAMENTO DO GÁS AMÔNIA EM AVIÁRIOS
TCC - SISTEMA PARA MONITORAMENTO DO GÁS AMÔNIA EM AVIÁRIOSTCC - SISTEMA PARA MONITORAMENTO DO GÁS AMÔNIA EM AVIÁRIOS
TCC - SISTEMA PARA MONITORAMENTO DO GÁS AMÔNIA EM AVIÁRIOSJean Luiz Zanatta
 

Semelhante a Implementacao e desempenho da virtualizacao no dcomp ufs (20)

Comparação de Tecnologias para Web - JBoss Seam e Ruby on Rails
Comparação de Tecnologias para Web - JBoss Seam e Ruby on RailsComparação de Tecnologias para Web - JBoss Seam e Ruby on Rails
Comparação de Tecnologias para Web - JBoss Seam e Ruby on Rails
 
Virtualizacao de Servidores: Um comparativo entre VMware e Xen
Virtualizacao de Servidores: Um comparativo entre VMware e XenVirtualizacao de Servidores: Um comparativo entre VMware e Xen
Virtualizacao de Servidores: Um comparativo entre VMware e Xen
 
MONOGRAFIA_SegurançaCibernéticaRedes.pdf
MONOGRAFIA_SegurançaCibernéticaRedes.pdfMONOGRAFIA_SegurançaCibernéticaRedes.pdf
MONOGRAFIA_SegurançaCibernéticaRedes.pdf
 
Comparação de Tecnologias para Web - JBoss Seam e Ruby on Rails
Comparação de Tecnologias para Web - JBoss Seam e Ruby on RailsComparação de Tecnologias para Web - JBoss Seam e Ruby on Rails
Comparação de Tecnologias para Web - JBoss Seam e Ruby on Rails
 
Projeto banco de_dados_cloud
Projeto banco de_dados_cloudProjeto banco de_dados_cloud
Projeto banco de_dados_cloud
 
Troca de contexto segura em sistemas operacionais embarcados utilizando técni...
Troca de contexto segura em sistemas operacionais embarcados utilizando técni...Troca de contexto segura em sistemas operacionais embarcados utilizando técni...
Troca de contexto segura em sistemas operacionais embarcados utilizando técni...
 
Monografia - Engenharia de software baseada em modelos um estudo sobre WebML ...
Monografia - Engenharia de software baseada em modelos um estudo sobre WebML ...Monografia - Engenharia de software baseada em modelos um estudo sobre WebML ...
Monografia - Engenharia de software baseada em modelos um estudo sobre WebML ...
 
Virtualização de servidores cleiton leive de lima xavier
Virtualização de servidores   cleiton leive de lima xavierVirtualização de servidores   cleiton leive de lima xavier
Virtualização de servidores cleiton leive de lima xavier
 
Fabio virtualizacao (1)
Fabio   virtualizacao (1)Fabio   virtualizacao (1)
Fabio virtualizacao (1)
 
Conexão remota e segurança de rede
Conexão remota e segurança de redeConexão remota e segurança de rede
Conexão remota e segurança de rede
 
Aplicac3a7c3a3o da-abordagem-gqm-para-a-definic3a7c3a3o-de-um-processo-de-eng...
Aplicac3a7c3a3o da-abordagem-gqm-para-a-definic3a7c3a3o-de-um-processo-de-eng...Aplicac3a7c3a3o da-abordagem-gqm-para-a-definic3a7c3a3o-de-um-processo-de-eng...
Aplicac3a7c3a3o da-abordagem-gqm-para-a-definic3a7c3a3o-de-um-processo-de-eng...
 
3 ok
3 ok3 ok
3 ok
 
Monografia ifes-everton-bada
Monografia ifes-everton-badaMonografia ifes-everton-bada
Monografia ifes-everton-bada
 
Monografia Marcos Bezerra 2008
Monografia Marcos Bezerra   2008Monografia Marcos Bezerra   2008
Monografia Marcos Bezerra 2008
 
Usabilidade e Arquitetura de Informação de Websites de Governos Municipais
Usabilidade e Arquitetura de Informação de Websites de Governos MunicipaisUsabilidade e Arquitetura de Informação de Websites de Governos Municipais
Usabilidade e Arquitetura de Informação de Websites de Governos Municipais
 
Gestao contexto qos_qoe
Gestao contexto qos_qoeGestao contexto qos_qoe
Gestao contexto qos_qoe
 
Monografia - Padrões Web
Monografia - Padrões WebMonografia - Padrões Web
Monografia - Padrões Web
 
TCC Risco na comunicação entre máquinas virtuais - Vinícius Lima
TCC Risco na comunicação entre máquinas virtuais - Vinícius LimaTCC Risco na comunicação entre máquinas virtuais - Vinícius Lima
TCC Risco na comunicação entre máquinas virtuais - Vinícius Lima
 
Trabalho sobre software Vericut
Trabalho sobre software VericutTrabalho sobre software Vericut
Trabalho sobre software Vericut
 
TCC - SISTEMA PARA MONITORAMENTO DO GÁS AMÔNIA EM AVIÁRIOS
TCC - SISTEMA PARA MONITORAMENTO DO GÁS AMÔNIA EM AVIÁRIOSTCC - SISTEMA PARA MONITORAMENTO DO GÁS AMÔNIA EM AVIÁRIOS
TCC - SISTEMA PARA MONITORAMENTO DO GÁS AMÔNIA EM AVIÁRIOS
 

Mais de Edward David Moreno

Criptografia em hardware emicro se - nov 15 2012
Criptografia em hardware   emicro se - nov 15 2012Criptografia em hardware   emicro se - nov 15 2012
Criptografia em hardware emicro se - nov 15 2012Edward David Moreno
 
Estudo e medicao do consumo de energia de algoritmos criptograficos do mi bench
Estudo e medicao do consumo de energia de algoritmos criptograficos do mi benchEstudo e medicao do consumo de energia de algoritmos criptograficos do mi bench
Estudo e medicao do consumo de energia de algoritmos criptograficos do mi benchEdward David Moreno
 
Livro - Projeto, Desempenho e Aplicacoes de Sistemas Digitais em FPGAs
Livro - Projeto, Desempenho e Aplicacoes de Sistemas Digitais em FPGAsLivro - Projeto, Desempenho e Aplicacoes de Sistemas Digitais em FPGAs
Livro - Projeto, Desempenho e Aplicacoes de Sistemas Digitais em FPGAsEdward David Moreno
 
Implementacao e teste de sistemas criptograficos
Implementacao e teste de sistemas criptograficosImplementacao e teste de sistemas criptograficos
Implementacao e teste de sistemas criptograficosEdward David Moreno
 
Oportunidades para inovaçao e empreendedorismo em computacao
Oportunidades para inovaçao e empreendedorismo em computacaoOportunidades para inovaçao e empreendedorismo em computacao
Oportunidades para inovaçao e empreendedorismo em computacaoEdward David Moreno
 

Mais de Edward David Moreno (6)

Criptografia em hardware emicro se - nov 15 2012
Criptografia em hardware   emicro se - nov 15 2012Criptografia em hardware   emicro se - nov 15 2012
Criptografia em hardware emicro se - nov 15 2012
 
Jai2008 energia-capitulo
Jai2008 energia-capituloJai2008 energia-capitulo
Jai2008 energia-capitulo
 
Estudo e medicao do consumo de energia de algoritmos criptograficos do mi bench
Estudo e medicao do consumo de energia de algoritmos criptograficos do mi benchEstudo e medicao do consumo de energia de algoritmos criptograficos do mi bench
Estudo e medicao do consumo de energia de algoritmos criptograficos do mi bench
 
Livro - Projeto, Desempenho e Aplicacoes de Sistemas Digitais em FPGAs
Livro - Projeto, Desempenho e Aplicacoes de Sistemas Digitais em FPGAsLivro - Projeto, Desempenho e Aplicacoes de Sistemas Digitais em FPGAs
Livro - Projeto, Desempenho e Aplicacoes de Sistemas Digitais em FPGAs
 
Implementacao e teste de sistemas criptograficos
Implementacao e teste de sistemas criptograficosImplementacao e teste de sistemas criptograficos
Implementacao e teste de sistemas criptograficos
 
Oportunidades para inovaçao e empreendedorismo em computacao
Oportunidades para inovaçao e empreendedorismo em computacaoOportunidades para inovaçao e empreendedorismo em computacao
Oportunidades para inovaçao e empreendedorismo em computacao
 

Implementacao e desempenho da virtualizacao no dcomp ufs

  • 1. UNIVERSIDADE FEDERAL DE SERGIPE CENTRO DE CIÊNCIAS EXATAS E TECNOLOGIA DEPARTAMENTO DE COMPUTAÇÃO ANDERSON DE PAULA CASSIMIRO IMPLEMENTAÇÃO E DESEMPENHO DA VIRTUALIZAÇÃO NO DCOMP/UFS São Cristóvão 2010
  • 2. UNIVERSIDADE FEDERAL DE SERGIPE CENTRO DE CIÊNCIAS EXATAS E TECNOLOGIA DEPARTAMENTO DE COMPUTAÇÃO ANDERSON DE PAULA CASSIMIRO IMPLEMENTAÇÃO E DESEMPENHO DA VIRTUALIZAÇÃO NO DCOMP/UFS Monografia apresentada ao Departamento de Computação da Universidade Federal de Sergipe, como requisito parcial para obtenção do título de bacharel em Ciência da Computação. Orientador: Prof. Dr. Edward David Moreno Ordonez. São Cristóvão Novembro de 2010
  • 3. Cassimiro, Anderson. Implementação e Desempenho da Virtualização no DCOMP/UFS / Anderson de Paula Cassimiro – São Cristóvão: UFS, 2010. 82f. Trabalho de Conclusão do Curso de Graduação – Universidade Federal de Sergipe, Curso de Ciência da Computação, 2010. 1. Informática. 2. Virtualização. 3. Máquinas Virtuais. I. Título.
  • 4. ANDERSON DE PAULA CASSIMIRO IMPLEMENTAÇÃO E DESEMPENHO DA VIRTUALIZAÇÃO NO DCOMP/UFS Trabalho de Conclusão de Curso submetido ao corpo docente do Departamento de Computação da Universidade Federal de Sergipe (DCOMP/UFS) como parte dos requisitos para obtenção do grau de Bacharel em Ciência da Computação. São Cristóvão, 26 de novembro de 2010. Professor Doutor Edward David Moreno Ordonez Orientador – DCOMP/UFS Professor Doutor Carlos Alberto Estombelo Montesco DCOMP/UFS Professor Doutor Leonardo Nogueira Matos DCOMP/UFS
  • 5. Dedico este trabalho a todos aqueles que contribuíram de forma direta ou indireta para conclusão do mesmo.
  • 7. "O analfabeto do século XXI não será aquele que não sabe ler e escrever, mas aquele que não consegue aprender, desaprender e aprender novamente". Alvin Tofler
  • 8. CASSIMIRO, Anderson. Implementação e Desempenho da Virtualização no DCOMP/UFS. 2010. Trabalho de Conclusão de Curso – Curso de Ciência da Computação, Departamento de Computação, Universidade Federal de Sergipe, São Cristóvão, 2010. RESUMO A utilização das técnicas de virtualização tem ganhado notoriedade nos últimos anos. Por esse motivo este trabalho discorre sobre os vários conceitos que envolvem a virtualização, mostrando as possibilidades com o uso da mesma e algumas vantagens e desvantagens. O trabalho também trata sobre as principais ferramentas para consolidação de servidores disponíveis no mercado e apresenta um breve comparativo sobre elas. Os conhecimentos sobre virtualização são aplicados usando um estudo de caso que tem por objetivo principal a consolidação de servidores no Departamento de Computação da Universidade Federal de Sergipe (DCOMP/UFS). No desenvolvimento deste estudo de caso optou-se pela utilização das ferramentas disponibilizadas pela Microsoft, uma vez que o departamento já possui acordo de licenciamento com a mesma. Ao final, o trabalho mostra os vários benefícios obtidos com a virtualização e também mostra como alguns problemas foram evitados na implementação utilizada. Palavras-chave: consolidação de servidor; hipervisor; virtualização.
  • 9. ABSTRACT The use of virtualization techniques has gained notoriety in recent years. That is why this work discusses several concepts involving virtualization, showing the possibilities with its use and some advantages and disadvantages. The work also addresses the main tools for consolidating servers available on the market and provides a brief comparison with them. Knowledge about virtualization is applied using a case study which mainly aims to provide server consolidation at Computing Department of the Federal University of Sergipe (DCOMP/UFS). In the development of this case study the tools provided by Microsoft were chosen, since the department has a licensing agreement with the same. In the end, the work shows the various benefits obtained with virtualization and also shows how some problems were avoided in the implementation used. Keywords: server consolidation; hypervisor; virtualization.
  • 10. LISTA DE FIGURAS Figura 1. História da Virtualização - Linha do Tempo (Quevedo, 2008) .................. 18 Figura 2. Diagrama de uma máquina virtual (Laureano, 2006) .............................. 20 Figura 3. Uma máquina virtual (Laureano e Maziero, 2008) .................................. 21 Figura 4. Diferença entre abstração e virtualização. (Laureano e Maziero, 2008) ... 24 Figura 5. Hipervisor ou monitor de tipo I (Laureano, 2006) .................................... 26 Figura 6. Hipervisor ou monitor de tipo II (Laureano, 2006) ................................... 27 Figura 7. Abordagem híbrida para tipo I (Laureano, 2006) .................................... 28 Figura 8. Abordagem híbrida para tipo II (Laureano, 2006) ................................... 29 Figura 9. Virtualização total (Laureano, 2006) ...................................................... 31 Figura 10. Para-virtualização (Laureano, 2006) .................................................... 32 Figura 11. Uso dos níveis de privilégio da arquitetura x86 (Maziero, 2008) ............ 34 Figura 12. Visão geral da arquitetura Intel VT (Maziero, 2008) .............................. 35 Figura 13. Datacenter virtual (Vmware, 2010a) .................................................... 41 Figura 14. Arquitetura das versões ESX e ESXi (Vmware, 2010b)......................... 42 Figura 15. Hipervisor Xen (Laureano e Maziero, 2008) ......................................... 44 Figura 16. Produtos e Tecnologias de Virtualização Microsoft (Microsoft, 2010a) ... 45 Figura 17. Arquitetura do Hyper-V (Microsoft, 2010d) ........................................... 46 Figura 18. Cenário inicial dos servidores do DCOMP (Elaboração própria) ............ 53 Figura 19. Cenário da solução proposta (Elaboração própria) ............................... 57 Figura 20. Utilização de CPU em % (Elaboração própria) ..................................... 65 Figura 21. Utilização de CPU em % (Elaboração própria) ..................................... 66 Figura 22. Utilização de CPU em % (Elaboração própria) ..................................... 66 Figura 23. Utilização de CPU em % (Elaboração própria) ..................................... 67 Figura 24. Utilização de CPU em % do servidor MANAGER (Elaboração própria) .. 67 Figura 25. Memória disponível em MB (Elaboração própria) ................................. 68 Figura 26. Memória disponível em MB (Elaboração própria) ................................. 68 Figura 27. Memória disponível em MB (Elaboração própria) ................................. 69 Figura 28. Memória disponível em MB (Elaboração própria) ................................. 69
  • 11. LISTA DE TABELAS Tabela 1. Serviços em cada servidor .................................................................. 53 Tabela 2. Configuração dos servidores ............................................................... 54 Tabela 3. Configuração dos servidores reais nesta solução ................................. 58 Tabela 4. Serviços em cada servidor migrado ou criado ...................................... 61 Tabela 5. Comparação de características dos hipervisores .................................. 76 Tabela 6. Comparação de funções incluídas nas versões gratuitas para servidor do Xen e do VMware............................................................................... 78 Tabela 7. Comparação entre máquinas virtuais e emuladores .............................. 79
  • 12. LISTA DE SIGLAS AMD-V AMD Virtualization – Virtualização AMD BIOS Basic Input/Output System – Sistema Básico e Entrada e Saída CMS Console Monitor System – Console Monitor de Sistema CP Control Program – Programa de Controle CPU Central Processing Unit – Unidade Central de Processamento DCOMP Departamento de Computação DHCP Dynamic Host Configuration Protocol – Protocolo de Configuração Dinâmica de Hosts DNS Domain Name System – Sistema de Nomes de Domínios E/S Entrada e Saída HAL Hardware Abstraction Layer – Camada de Abstração de Hardware Intel VT Intel Virtualization Technology – Tecnologia de Virtualização da Intel ISA Instruction Set Architecture – Conjunto de Instruções da Arquitetura JVM Java Virtual Machine – Máquina Virtual Java NAT Network Address Translation – Tradução de Endereço de Rede PC Personal Computer – Computador Pessoal QoS Quality of Service – Qualidade de Serviço ROI Return on Investment – Retorno sobre Investimento SCCM System Center Configuration Manager SCDPM System Center Data Protection Manager SCOM System Center Operations Manager SCVMM System Center Virtual Machine Manager SPOF Single point of failure – Ponto único de falha SVM Secure Virtual Machine – Máquina Virtual Segura TCC Trabalho de Conclusão de Curso TCO Total Cost of Ownership – Custo Total de Propriedade TI Tecnologia da Informação TSS Time Sharing System – Sistema de Compartilhamento de Tempo UFS Universidade Federal de Sergipe VM Virtual Machine – Máquina Virtual VMM Virtual Machine Monitor – Monitor de Máquina Virtual
  • 13. SUMÁRIO 1 INTRODUÇÃO ..................................................................................... 13 1.1 Motivações e objetivos ............................................................................. 13 1.2 Organização do trabalho........................................................................... 15 2 VIRTUALIZAÇÃO – HISTÓRICO E CONCEITOS.......................... 16 2.1 Histórico .................................................................................................. 17 2.2.1 Emulador e máquina virtual....................................................................... 23 2.2.2 Abstração e virtualização .......................................................................... 23 2.3 Hipervisores............................................................................................. 24 2.3.1 Tipos de hipervisores ............................................................................... 25 2.3.2 Classificação dos hipervisores .................................................................. 26 2.4 Formas de virtualização ............................................................................ 29 2.5 Técnicas de virtualização e emulação........................................................ 30 2.5.1 Virtualização total ..................................................................................... 31 2.5.2 Para-virtualização .................................................................................... 32 2.5.3 Tradução dinâmica ................................................................................... 33 2.6 Processadores com virtualização nativa .................................................... 33 2.7 Usos da virtualização ............................................................................... 35 2.7.1 Vantagens ............................................................................................... 37 2.7.2 Desvantagens .......................................................................................... 38 3 FERRAMENTAS PARA MÁQUINAS VIRTUAIS ............................ 39 3.1 VMware ................................................................................................... 39 3.2 Citrix ....................................................................................................... 42 3.3 Microsoft.................................................................................................. 44 3.4 Comparação entre as ferramentas ............................................................ 47 4 ESTUDO DE CASO ............................................................................50 4.1 Sobre o DCOMP ...................................................................................... 50 4.2 Situação anterior ...................................................................................... 52
  • 14. 4.3 Solução proposta ..................................................................................... 55 4.3.1 Configuração dos servidores ..................................................................... 56 4.3.2 Aplicações dos servidores ........................................................................ 59 4.4 Resultados .............................................................................................. 62 4.4.1 Desempenho ........................................................................................... 63 5 CONCLUSÕES.................................................................................... 70 5.1 Trabalhos futuros ..................................................................................... 70 REFERÊNCIAS BIBLIOGRÁFICAS........................................................... 72 ANEXOS ........................................................................................................75 ANEXO A – Tabela comparativa de características do VMware, Hyper-V e Xen............................................................................................... 76 ANEXO B – Tabela comparativa do XenServer e VMware ESXi .......78 ANEXO C – Comparação entre máquinas virtuais e emuladores ....79
  • 15. 13 1 INTRODUÇÃO O conceito de máquinas virtuais surgiu na década de 1960 pela necessidade do compartilhamento de recursos em mainframes. Mas na década de 1980 a partir da diminuição do custo do hardware este conceito perdeu importância, pois o custo dos mainframes que eram utilizados na virtualização eram maiores que os de vários computadores que forneciam o ambiente desejado (Laureano e Maziero, 2008). Com isto, durante muitos anos, a virtualização era um termo que ficava restrito aos membros de departamentos de TI. Atualmente ela passou a oferecer soluções de vanguarda para organizações em busca de otimização dos investimentos em TI. Estas soluções são disponibilizadas por um grande número de fornecedores, o que tem permitido uma economia de custos e outros benefícios (Ribas, 2008). De uma maneira generalizada pode-se definir a virtualização como a capacidade de criar diversas máquinas lógicas (máquinas virtuais) com um único hardware (Gonçalves e Vahl Junior, 2009). Em um sistema virtualizado temos um software host sendo executado na máquina física, chamado Virtual Machine Monitor (VMM), ou hipervisor. Este software é responsável pela criação de ambientes simulados de computação, que são as máquinas virtuais (VMs). Sistemas operacionais inteiros podem ser executados nessas máquinas virtuais como se estivessem sendo executados em um hardware real (Seo, 2009). 1.1 Motivações e objetivos A virtualização está sendo cada vez mais utilizada, também, por causa das práticas da TI verde. Em (Hess, 2009) TI verde é definida como um conjunto de práticas para tornar mais sustentável e menos prejudicial o nosso uso da computação. As práticas de TI verde buscam reduzir o desperdício e aumentar a eficiência de todos os processos e fenômenos relacionados à operação dos computadores. A maior vantagem da utilização de virtualização neste caso é a
  • 16. 14 economia de energia, pois menos computadores e equipamentos serão necessários para execução de diversos serviços. A virtualização também traz vantagens no maior aproveitamento da capacidade dos servidores, facilidade para gerenciamento das máquinas e na segurança (Quevedo, 2008). A capacidade de isolamento oferecida pelos hipervisores oferece uma boa camada de proteção, já que não é necessária a utilização de mais de um hardware para garantir que um sistema não afete outro. Esta capacidade também permite que sejam testadas alterações em sistemas de produção antes de colocá-las em prática. A capacidade de restaurar estados anteriores e a migração ao vivo de máquinas virtuais ajuda a prover uma maior disponibilidade para os serviços oferecidos pela TI. Neste trabalho é realizado um estudo de caso e respectiva análise da implementação da virtualização no Departamento de Computação (DCOMP) da Universidade Federal de Sergipe (UFS). Este departamento utiliza a TI com a função de auxiliar na administração e em suas atividades de ensino, pesquisa e extensão. Possui três cursos de graduação e um de pós-graduação, que contam com aproximadamente 650 alunos matriculados e ministra aulas para aproximadamente 1.000 alunos de outros cursos da universidade. O objetivo desta implementação é facilitar a administração e monitoramento dos servidores e equipamentos do departamento de computação, além de ampliar o número de serviços e aplicações oferecidas à comunidade acadêmica sem ter que investir no aumento do número de servidores. Mas a virtualização não traz somente vantagens, por isto este trabalho busca, também, minimizar as desvantagens que possam ser introduzidas devido ao uso da virtualização. Dentre as desvantagens é possível citar (Quevedo, 2008; Hansen e Schaeffer, 2009): a perda de desempenho se comparado ao hardware físico; a necessidade de alterações no núcleo do sistema hóspede em alguns casos; a indisponibilidade de um equipamento físico pode causar indisponibilidade de diversas aplicações; e a exigência de um hardware com uma maior capacidade de processamento e armazenamento.
  • 17. 15 1.2 Organização do trabalho Este trabalho está dividido em cinco capítulos, sendo o primeiro de introdução do trabalho. No capítulo dois são apresentados os conceitos teóricos sobre virtualização, no capítulo três são apresentadas algumas soluções de virtualização. O capítulo quatro mostra o estudo de caso do DCOMP e o capítulo cinco apresenta as conclusões obtidas com este trabalho.
  • 18. 16 2 VIRTUALIZAÇÃO – HISTÓRICO E CONCEITOS Neste capítulo mostra-se o histórico da virtualização, seus conceitos e suas diversas aplicações, vantagens e desvantagens. Mas antes disto é importante saber o que significa o termo “virtual”. Segundo o dicionário Michaelis: virtual.vir.tu.al adj m+f (lat virtuale) 1 Que não existe como realidade, mas sim como potência ou faculdade. 2 Que equivale a outro, podendo fazer as vezes deste, em virtude ou atividade. 3 Que é suscetível de exercer-se embora não esteja em exercício; potencial. 4 Que não tem efeito atual. 5 Possível. 6 Diz-se do foco de um espelho ou lente, determinado pelo encontro dos prolongamentos dos raios luminosos (Weiszflog e Silva, 2010). O oposto de virtual não é o que é real como muitos podem imaginar. Seu antônimo é o que é concreto, físico, tangível, com limites bem definidos. O virtual existe somente como potência, como uma simulação de algo concreto, não possuindo limites (Nascimento, 2009). O autor Pierre Lévy em “O que é o virtual?” diz que o virtual faz oposição ao atual: Contrariamente ao possível, estático e já construído, o virtual é como o complexo problemático, o nó de tendências ou de forças que acompanha uma situação, um acontecimento, um objeto ou uma entidade qualquer, e que chama um processo de resolução: a atualização (Lévy, 2003). Ele exemplifica isto através de uma semente, explicando que ela é uma virtualização da árvore, ela “conhece” a forma que deverá se expandir e a partir das circunstâncias que encontrar ela vai ser a encarregada de inventar, de coproduzir, a mesma. Ele define a virtualização como o movimento inverso ao da atualização. É uma passagem do atual ao virtual, uma “elevação à potência” da entidade considerada. Ele cita o caso da “virtualização” de uma empresa, onde uma organização comum reúne os empregados num mesmo edifício ou em conjunto de departamentos, onde cada empregado ocupa um posto já determinado e possui horários de trabalho específicos. Já numa empresa virtual o tele trabalho substitui a necessidade da presença física e são utilizados recursos e programas que favoreçam a colaboração. O autor diz que neste caso a organização deixa de ser um conjunto de departamentos, postos de trabalho e livros de ponto e passa a se
  • 19. 17 preocupar com soluções não estáveis, que contribuam para a colaboração entre os empregados a partir de diversas exigências. Por meio destes e outros conceitos, Nascimento (2009) conclui: [...] “o virtual é algo real com uma natureza intangível e pode torna-se [sic] tangível através do uso de recursos tecnológicos tangíveis, como os computadores e intangíveis, como os sistemas por eles processados. Proporcionando uma experiência real como os simuladores de vôo para treinamento de pilotos, entre outros exemplos” (Nascimento, 2009). 2.1 Histórico A virtualização, mesmo só tendo difundido nos últimos anos, já existe desde a década de 1960. De acordo com Laureano e Maziero (2008) ela surgiu pela necessidade de oferecer a cada usuário um ambiente monousuário completo, independente e desvinculado de outros usuários para os mainframes da época. O primeiro sistema que fez uso da virtualização foi desenvolvido pela IBM, o sistema operacional experimental M44/44X (Creasy, 1981). Ele se baseava no conceito do sistema de tempo compartilhado ou TSS (Time Sharing System), criado pela IBM, e foi a partir dele que a mesma começou a desenvolver seus sistemas comerciais. O primeiro computador comercial com suporte a tecnologia foi lançado em 1964, o mainframe System/360, com um suporte limitado a virtualização. No mesmo ano foi criado o projeto CP-40 cujo objetivo era a disponibilização de uma máquina virtual System/360 completa para cada usuário. Foi neste projeto que surgiu a primeira menção às memórias virtuais e às máquinas virtuais, que na época eram chamadas de pseudo-máquinas (Quevedo, 2008). A partir daí a IBM desenvolveu o sistema CP/CMS que era constituído por dois componentes principais, o Control Program (Programa de Controle ou CP) e o Console Monitor System (Console Monitor de Sistema ou CMS). O CP era responsável por simular um computador System/360 e o CMS era um sistema operacional “leve” monousuário para uso no compartilhamento de tempo interativo. Ao executar várias cópias do CMS em máquinas virtuais CP o esforço da máquina era menor por cada usuário se comparado ao uso de sistemas operacionais multitarefas comuns (Creasy, 1981).
  • 20. 18 O conceito de máquinas virtuais CP/CMS foi importante, pois isola os usuários uns dos outros, com isto aumenta a segurança do sistema, além de aumentar o desempenho no uso de um sistema de compartilhamento de tempo e ao simular um computador completo para cada usuário elimina a necessidade de escrever aplicações específicas para sistemas de tempo compartilhado, já que todas as aplicações já escritas para o sistema original funcionam (Creasy, 1981). Na Figura 1 são listados acontecimentos importantes para a área de TI desde 1954, nela os fatos que contribuíram para o desenvolvimento da virtualização estão destacados. Figura 1. História da Virtualização - Linha do Tempo (Quevedo, 2008) A partir da adoção de plataformas de menor custo, como o PC, na década de 1980 a virtualização perdeu sua importância devido ao custo de um mainframe não compensar o custo necessário para o fornecimento de um PC a cada usuário (Laureano e Maziero, 2008). O conceito voltou a se popularizar a partir do aumento de desempenho e funcionalidade dos computadores pessoais e pelo desenvolvimento da linguagem Java na década de 1990, uma vez que esta possui uma máquina virtual cujo objetivo
  • 21. 19 é tornar possível a execução de um mesmo aplicativo em várias plataformas diferentes (Laureano e Maziero, 2008). Desde 1997 surgiram várias soluções de virtualização no mercado para tirar proveito das máquinas virtuais, é possível citar o VirtualPC, VMware, Xen, Hyper-V e o VirtualBox dentre outras. De acordo com Mattos (2008), a plataforma PC x86 não possui instruções que permitem a virtualização de forma nativa, por isto vários fabricantes desenvolveram soluções para tornar possível a execução de máquinas virtuais nesta plataforma como o VMware, Xen e VirtualPC. Segundo Laureano e Maziero (2008) estas soluções possuem um desempenho inferior ao de soluções que usam a virtualização nativa. Atualmente vários processadores da Intel e AMD já incluem suporte nativo a virtualização com o objetivo de aumentar o desempenho das máquinas virtuais que são executadas neles através das tecnologias Virtualization Technology (VT) da Intel e Secure Virtual Machine (SVM) da AMD (Quevedo, 2008), como exemplo pode-se citar os processadores da série Core i3 (Intel, 2010). Na década de 2000 a virtualização passou a ser adotada por diversas organizações em busca da consolidação de servidores. A consolidação de servidores consiste na utilização de um servidor físico com vários servidores virtuais, isto permite um melhor aproveitamento dos recursos, a possibilidade de um ambiente mais flexível, diminuição do espaço físico e um menor gasto com energia e manutenção de hardware (Mattos, 2008; Fragni, 2009). 2.2 Conceitos Segundo Quevedo (2008) “A virtualização pode ser definida como uma metodologia que permite a divisão de um único computador físico em diversos computadores virtuais independentes entre si”. Um computador real, computador físico, máquina real, sistema nativo ou hospedeiro (host), possui cinco componentes básicos: processador, memória, dispositivos de entrada e saída (E/S), armazenamento em disco e programas
  • 22. 20 aplicativos. Sendo os quatro primeiros componentes classificados como hardware e o último como software (Norton, 1996). Uma máquina real é formada por vários componentes físicos que fornecem operações para o sistema operacional e suas aplicações. Iniciando pelo núcleo do sistema real, o processador central (CPU) e o chipset da placa- mãe fornecem um conjunto de instruções e outros elementos fundamentais para o processamento de dados, alocação de memória e processamento de E/S. Olhando mais detalhadamente um sistema físico, temos ainda os dispositivos e os recursos, tais como a memória, o vídeo, o áudio, os discos rígidos, os CD-ROMs e as portas (USB, paralela, serial). Em uma máquina real, a BIOS ou devices drivers específicos fornecem as operações de baixo nível para que um sistema operacional possa acessar os vários recursos da placa-mãe, memória ou serviços de E/S (Figura 2) (Laureano, 2006). Figura 2. Diagrama de uma máquina virtual (Laureano, 2006) Já uma máquina virtual ou VM (Virtual Machine) pode ser definida como “uma duplicata eficiente e isolada de uma máquina real” (Laureano, 2006), mas de acordo com este autor com o passar do tempo o termo passou a englobar várias
  • 23. 21 abstrações já que, por exemplo, a Java Virtual Machine (JVM) não virtualiza um sistema real. A Figura 3 mostra um hipervisor executando sobre a plataforma Sparc e permitindo a execução do sistema operacional Windows que foi desenvolvido para a plataforma x86. Figura 3. Uma máquina virtual (Laureano e Maziero, 2008) A partir da Figura 3 é possível verificar as três partes básicas que compõem um ambiente de máquina virtual (Laureano e Maziero, 2008): a) Sistema hospedeiro: contém recursos reais de hardware e software. b) Sistema virtual, ou sistema convidado (guest system): executa sobre o sistema virtualizado. c) Monitor de máquina virtual, ou hipervisor: constrói as interfaces virtuais a partir da real. A criação de ambientes virtuais pode acontecer utilizando-se diversos conceitos e tecnologias, como o particionamento de hardware e software, o TSS, a simulação total ou parcial e a emulação (Quevedo, 2008). O monitor de máquina virtual (VMM) é o software responsável por fornecer uma interface idêntica ao hardware em que ele funciona, usando a multiplexação de várias máquinas virtuais em um só hardware, e pela criação e controle das máquinas virtuais (Laureano, 2006). As máquinas virtuais possuem as mesmas características de uma máquina real, incluindo a BIOS que provê uma interface entre o sistema operacional e o
  • 24. 22 hardware, e os dispositivos de entrada e saída. Mas o VMM pode fornecer um ambiente diferente do real, com diferenças no armazenamento em disco e quantidade de memória (Quevedo, 2008). Popek e Goldberg (1974) enunciaram três propriedades necessárias para um sistema computacional oferecer suporte a virtualização de forma eficiente: a) Eficiência: todas as instruções de máquina que não comprometem o funcionamento do sistema devem ser executadas diretamente no hardware sem intervenção da máquina virtual. b) Controle de recursos: um monitor de máquina virtual deve ter controle completo sobre os recursos virtualizados sendo estritamente proibido que um programa executando sobre a máquina virtual os acesse diretamente. c) Equivalência: um programa executando sobre uma máquina virtual deve exibir um comportamento idêntico àquele apresentado caso a máquina virtual não existisse e o programa acessasse diretamente uma máquina física equivalente. Duas exceções são consideradas. Primeira, eventualmente, algumas instruções podem ter seu tempo de execução aumentado. Segunda, pode haver problemas de conflito de acesso a recursos, os quais devem ser resolvidos de forma apropriada. Estas propriedades classificaram a ISA (Conjunto de Instruções da Arquitetura ou Instruction Set Architecture) em três grupos (Carissimi, 2008): as privilegiadas se executadas por um programa em modo usuário causam exceções; as sensíveis de controle permitem a alteração de recursos do sistema; e as sensíveis comportamentais cujo comportamento dependem da configuração de recursos, como conteúdo de registradores internos ou modos de execução do processador. A partir disto Popek e Goldberg (1974) enunciaram e provaram o seguinte teorema sobre a possibilidade de construção de um hipervisor em uma determinada plataforma: Para qualquer computador convencional de terceira geração, um hipervisor pode ser construído se o conjunto de instruções sensíveis daquele computador for um subconjunto de seu conjunto de instruções privilegiadas.
  • 25. 23 De acordo com Carissimi (2008) o teorema pode ser traduzido no fato de que qualquer instrução que possa afetar o controle do hipervisor deve passar pelo seu controle. 2.2.1 Emulador e máquina virtual Um emulador simula um computador real, ele é desenvolvido especificamente para transcrever instruções do um processador alvo para o processador no qual ele está sendo executado. O emulador implementa as operações da máquina real em software, ou seja, ele interpreta ou recompila um código que foi desenvolvido para outra plataforma (Laureano, 2006). Enquanto na emulação o software simula um computador real traduzindo todas as instruções, na virtualização ele é responsável por multiplexar um hardware real, o que possibilita que máquinas virtuais sejam consideradas cópias idênticas e isoladas do hardware real (Quevedo, 2008). O Bochs (Lawton, Denney et al., 2010), o Crusoe (Klaiber, 2000) e o QEMU (Qemu, 2010) são exemplos de emuladores segundo Laureano e Maziero (2008). 2.2.2 Abstração e virtualização Existe uma diferença entre abstração e virtualização. A abstração provê alguns recursos específicos de hardware, enquanto a virtualização provê um conjunto completo de recursos. Na Figura 4 é possível visualizar esta diferença, na abstração o software pode acessar os arquivos para operações específicas, como read ou write, enquanto a virtualização fornece um sistema de arquivos montado sobre um arquivo, onde é possível realizar outras operações, como mkdir (Laureano, 2006).
  • 26. 24 Figura 4. Diferença entre abstração e virtualização. (Laureano e Maziero, 2008) 2.3 Hipervisores Como já vimos o hipervisor, ou monitor de máquinas virtuais (VMM), é a camada de software que faz a criação e controla o ambiente simulando o acesso direto ao hardware. Laureano e Maziero (2008) afirmam que um hipervisor deve atender a três requisitos básicos: prover um ambiente de execução basicamente idêntico ao da máquina real; o hipervisor deve ter controle total sobre os recursos da máquina real; e, no pior caso, os programas em execução nas máquinas virtuais devem apresentar leves degradações de desempenho. Segundo Quevedo (2008) e Laureano e Maziero (2008) as seguintes propriedades, enunciadas por Popek e Goldberg (1974), devem ser atendidas por um hipervisor ideal: a) Equivalência: o hipervisor deve prover um ambiente de execução quase idêntico ao da máquina real original. Possibilitando um comportamento idêntico ao da sua execução sobre a máquina real. b) Controle de recursos: o hipervisor deve possuir controle completo dos recursos da máquina real. Nenhum programa executado na máquina virtual deve ter acesso a recursos que não tenham sido alocados explicitamente pelo hipervisor. c) Eficiência: a maior parte das instruções do processador virtual devem ser executadas diretamente pelo processador da máquina real, sem intervenções do
  • 27. 25 hipervisor. Este deve somente interpretar instruções que não possam ser executadas pelo processador real. Quevedo (2008) também cita as seguintes propriedades frequentemente associadas à hipervisores: a) Isolamento: um software ao ser executado em máquina real não pode ver, influenciar ou modificar outro software que esteja em execução no hipervisor ou em outra máquina virtual. b) Inspeção: o hipervisor pode controlar e acessar todas as informações do estado interno da máquina virtual. c) Gerenciabilidade: a administração de várias instâncias de máquinas virtuais sobre um mesmo hipervisor é simplificada e centralizada. O hipervisor é capaz de gerenciar os recursos entre os sistemas convidados. d) Encapsulamento: através da inspeção o hipervisor é capaz de salvar estados de uma máquina virtual, isto permite o retorno a um estado anterior, análises em casos de falha e migração entre hipervisores executando em computadores diferentes. e) Recursividade: deve ser possível executar um hipervisor dentro de uma máquina virtual, produzindo um novo nível de máquinas virtuais. 2.3.1 Tipos de hipervisores De acordo com Quevedo (2008) os hipervisores podem ser divididos em diferentes classes: a) Complete Software Interpreter Machine (CSIM): as instruções passam por uma tradução através do software antes de serem executadas na CPU através da técnica de tradução dinâmica, que consiste em traduzir e guardar blocos de código.
  • 28. 26 b) Hybrid Virtual Machine (HVM): quando todas as instruções privilegiadas são executadas por software, é utilizada quando a CPU não suporta hipervisores do tipo I ou II, estes serão tratados na próxima seção. c) Hipervisor simples: a maior parte das instruções é executada diretamente no hardware. Os hipervisores desta classe normalmente possuem um melhor desempenho se comparado a hipervisores das outras classes. 2.3.2 Classificação dos hipervisores A seguir são detalhados os hipervisores pela abordagem utilizada na sua construção segundo Laureano (2006) e Quevedo (2008). 2.3.2.1 Hipervisores do tipo I Hipervisores do tipo I, também conhecido como abordagem clássica ou hipervisores nativos, executam diretamente sobre o hardware da máquina real, com as máquinas virtuais sendo criadas na camada acima. O hipervisor é executado com maior prioridade e as VMs executam no modo usuário, possibilitando que o hipervisor intercepte e emule todas as operações do sistema convidado que necessitem de recursos do hardware. Este tipo está exemplificado na Figura 5 e é utilizado pelo VMware ESX Server e o ambiente Xen. Figura 5. Hipervisor ou monitor de tipo I (Laureano, 2006)
  • 29. 27 2.3.2.2 Hipervisores do tipo II Hipervisores do tipo II, também conhecido como abordagem hospedada ou hipervisores convidados, executam sobre o sistema operacional hospedeiro, como uma aplicação do sistema real que utiliza os drivers do sistema operacional para acesso ao hardware. Este tipo simula todas as operações que o sistema hospedeiro controla. Ele está exemplificado na Figura 6 e é utilizado pelo VMware Workstation, o QEMU e o VirtualBox. Figura 6. Hipervisor ou monitor de tipo II (Laureano, 2006) 2.3.2.3 Hipervisores híbridos Os hipervisores de tipo I e II não são muito utilizados em sua forma conceitual, na prática são inseridas várias otimizações que tem como objetivo melhorar o desempenho. Como as otimizações levam a arquiteturas diferenciadas elas são chamadas de abordagens híbridas. Como as operações de E/S são pontos cruciais no desempenho dos hipervisores, as principais otimizações são feitas nestas operações. É possível listar quatro otimizações mais usadas: a) Em hipervisores de tipo I:
  • 30. 28 1. O sistema convidado acessa diretamente o hardware hospedeiro, para permitir isto são necessárias mudanças no núcleo do sistema convidado e no hipervisor. A Figura 7 ilustra este caso. Figura 7. Abordagem híbrida para tipo I (Laureano, 2006) b) Em hipervisores de tipo II, ilustrado pela Figura 8: 1. O sistema convidado acessa diretamente o sistema hospedeiro, oferecendo partes da API do sistema hospedeiro. 2. O sistema convidado acessa diretamente o hardware, isto é feito por meio de uma implementação parcial no hipervisor e no sistema convidado através de um driver específico. 3. O hipervisor acessa diretamente o hardware. Implementado a partir da instalação de um driver no sistema hospedeiro.
  • 31. 29 Figura 8. Abordagem híbrida para tipo II (Laureano, 2006) 2.4 Formas de virtualização Existem várias formas possíveis de classificação para a virtualização, aqui são tratadas as formas utilizadas em Laureano (2006) e Quevedo (2008). A classificação de acordo com o tipo de sistema convidado suportado (Rosenblum, 2004) é dividida em virtualização do hardware, virtualização do sistema operacional e virtualização de linguagens de programação. a) A virtualização do hardware exporta o sistema físico como uma abstração do hardware, possibilitando o funcionamento de qualquer software escrito para a arquitetura. b) A virtualização do sistema operacional exporta um sistema operacional como abstração de um sistema específico, permitindo a execução de aplicativos desenvolvidos para outro sistema operacional. c) A virtualização de linguagens de programação consiste em uma aplicação que é executada no sistema operacional, suas máquinas virtuais são desenvolvidas para computadores fictícios projetados para uma finalidade específica. A camada da
  • 32. 30 aplicação é responsável por exportar a abstração para execução dos programas que foram desenvolvidos para ela. Já na outra classificação, de Chiueh (2005), os sistemas são classificados como Hardware Abstraction Layer (HAL), abstração da Instruction Set Architeture (ISA), nível de sistema operacional, nível de aplicação e biblioteca de interface do usuário. a) Na virtualização HAL o hipervisor simula uma arquitetura completa para o sistema convidado, fazendo com que o sistema convidado acredite estar executando sobre um sistema completo. b) Na Abstração da ISA a virtualização faz a emulação completa da ISA, com isto o emulador executa as instruções do sistema convidado através da tradução das instruções para o sistema nativo. c) A virtualização de nível de sistema operacional é obtida utilizando uma chamada de sistema específica, o seu principal benefício é a criação de uma camada de isolamento de processos. d) A virtualização pelo nível de aplicação é obtida através da abstração da camada de execução, com uma aplicação utilizando esta camada para execução das instruções do programa. Isto permite que um aplicativo seja executado em várias plataformas. e) E, por fim, a virtualização da biblioteca de interface para o usuário é feita com a abstração do topo do sistema operacional, permitindo que aplicações que usam o conjunto de bibliotecas disponibilizadas por um sistema consigam executar em outro sistema. 2.5 Técnicas de virtualização e emulação Para construção de hipervisores é necessário definir algumas estratégias para a virtualização. As estratégias mais utilizadas são a virtualização total (full
  • 33. 31 virtualization), a para-virtualização (paravirtualization) e a recompilação dinâmica (dynamic recompilation). 2.5.1 Virtualização total Na virtualização total o hipervisor fornece uma estrutura completa de hardware virtualizada, que corresponde a uma máquina real existente. Desta maneira os sistemas operacionais convidados não precisam sofrer nenhuma alteração ou ajuste para execução dentro do ambiente virtual. Esta abordagem é utilizada na maioria dos hipervisores de sistema clássicos como o QEMU e VMware e está ilustrada na Figura 9 (Laureano e Maziero, 2008). A maior vantagem desta estratégia é que os sistemas operacionais convencionais podem ser executados sem necessidade de modificações, mas ele é executado mais lentamente já que todos os acessos ao hardware são intermediados pelo hipervisor. O hipervisor também é o responsável por implementar alternativas para que as operações privilegiadas sejam executadas em processadores que não suportam a virtualização nativamente (Laureano, 2006). Figura 9. Virtualização total (Laureano, 2006)
  • 34. 32 2.5.2 Para-virtualização Na para-virtualização, ilustrada na Figura 10, o sistema convidado sofre modificações para obter uma interação mais eficiente com o monitor de máquinas virtuais. Esta estratégia permite que o sistema convidado acesse alguns recursos do hardware, como processador e memória, diretamente, sendo este acesso somente monitorado pelo hipervisor que fornece seus “limites”, como os endereços de memória que podem ser utilizados e endereçamento em disco (Laureano, 2006; Quevedo, 2008). O desempenho obtido com esta técnica compensa as modificações necessárias aos sistemas convidados. A complexidade para desenvolvimento dos hipervisores é reduzida com esta estratégia, já que a maioria dos processadores não suporta nativamente a para-virtualização. O Denali (Whitaker, Shaw et al., 2002) e o Xen (Clark, 2002) foram os primeiros ambientes a adotar a para-virtualização (Laureano e Maziero, 2008). Figura 10. Para-virtualização (Laureano, 2006)
  • 35. 33 2.5.3 Tradução dinâmica A tradução dinâmica, ou recompilação dinâmica, traduz, em tempo de execução do programa, as instruções de um formato para outro. Nela as solicitações de um sistema convidado são analisadas, reorganizadas e traduzidas em novas sequências durante a execução (Quevedo, 2008). Ela tem vários objetivos: detectar e tratar instruções sensíveis não privilegiadas; traduzir as instruções geradas pelo sistema convidado para a interface ISA do hospedeiro; ou analisar, reorganizar e otimizar sequências de instruções geradas pelo sistema convidado com objetivo de melhorar o desempenho. A máquina virtual Java implementa esta estratégia usando o JIT (Just-in-Time Bytecode Compiler). Outros hipervisores implementam esta técnica por meio da busca e troca de instruções sensíveis para outras rotinas em processadores que não suportam virtualização nativamente (Laureano e Maziero, 2008). Esta estratégia é composta por sete passos (Laureano, 2006): agrupamento de bits, desmontagem (disassembling), geração de código intermediário, decompilação, compilação, montagem (assembling) e armazenagem dos bits. 2.6 Processadores com virtualização nativa A arquitetura x86 possui quatro níveis de privilégio, ou modos de operação, chamados anéis (rings) que são numerados de 0 a 3, sendo o nível 0 o de maior privilégio na execução de intruções (Mattos, 2008). Os sistemas operacionais convencionais, como Microsoft Windows e as variações do UNIX, usam dois níveis do processador, o nível 0 usado pelo sistema operacional e o nível 3 que possui o menor privilégio e é usado nos processos do usuário, como é possível verificar na Figura 11. Quando um processo de usuário tenta executar uma instrução privilegiada ocorre uma exceção que poderá ser tratada, mas a arquitetura x86, em especial a família de processadores Intel Pentium IV e seus predecessores (Laureano e Maziero, 2008), possui dezessete instruções não privilegiadas que são sensíveis, ou seja, violam o teorema estabelecido por Popek e Goldberg (1974) (Carissimi, 2008).
  • 36. 34 Ainda assim é possível implementar máquinas virtuais para as arquiteturas que não respeitam o teorema, mas existe um custo no desempenho. Neste caso a virtualização é feita por meio das estratégias de para-virtualização e tradução dinâmica. Os fabricantes de processadores AMD e Intel desenvolveram extensões para a arquitetura x86 para suportarem a virtualização, elas são denominadas AMD- V (AMD-Virtualization) e Intel VT (Intel Virtualization Technology). Mesmo sendo similares elas são incompatíveis entre si. Figura 11. Uso dos níveis de privilégio da arquitetura x86 (Maziero, 2008) De acordo com Carissimi (2008), a AMD implementa este suporte por meio de funções especiais no processador que são executadas por um hipervisor e controlam, através do hipervisor, se os acessos do sistema hóspede são permitidos. Ainda segundo este autor a Intel possui mecanismos similares. Estes mecanismos completam a ideia do conceito de anéis de proteção adicionando dois modos, o root e o não-root. O hipervisor, que executa em modo root, controla os dois modos, podendo transferir a execução de um sistema operacional convidado para o modo não-root, onde as instruções do anel 0 são executadas sem risco para o sistema. Este comportamento pode ser verificado na Figura 12. Com o suporte oferecido pelos processadores os hipervisores podem combinar a virtualização completa ou a para-virtualização com técnicas de aceleração de E/S. Ela tem o melhor desempenho de CPU, memória e E/S de todos os tipos de virtualização na arquitetura x86 (Quevedo, 2008).
  • 37. 35 Figura 12. Visão geral da arquitetura Intel VT (Maziero, 2008) 2.7 Usos da virtualização Vistos os conceitos envolvidos na virtualização esta seção trata dos seus usos, vantagens e desvantagens. Segundo Quevedo (2008) a utilização de máquinas virtuais pode ajudar na diminuição da complexidade dos ambientes de TI. Ela facilita os trabalhos da equipe de suporte, aumenta a portabilidade dos ambientes, diminui os custos e aumenta a segurança e disponibilidade dos recursos para os usuários. Principais usos para máquinas virtuais (Laureano, 2006; Laureano e Maziero, 2008; Quevedo, 2008; Seo, 2009): consolidação de servidores, laboratórios de ensino, execução de software legado, debug e monitoração de aplicações, sandboxing1, honeypots2 e honeynets3, facilitar a migração de aplicações e 1 “A técnica de sandboxing consiste na criação de um ambiente de execução totalmente isolado de forma a garantir que o mau-funcionamento de um sistema não interfira nos demais.” Quevedo (2008) 2 Sistema preparado para ser atacado e invadido. (Laureano e Maziero, 2008)
  • 38. 36 servidores, permitir a simulação de um hardware específico, desenvolvimento de sistemas e planos de contingência e continuidade de negócios. A consolidação de servidores, que consiste em consolidar a carga de diversos servidores em poucos ou apenas um servidor, é um dos principais atrativos da virtualização, pois reduz custos com o gerenciamento de servidores, a utilização de espaço físico, o consumo de energia elétrica, entre outros, auxiliando assim na redução do Custo Total de Propriedade4 (TCO) (Quevedo, 2008). O princípio da consolidação de servidores é a utilização de um servidor de maior capacidade em substituição a vários servidores de menor capacidade. Pela diminuição da quantidade de servidores ela cria um ponto único de falha (SPOF), o que aumenta os riscos da indisponibilidade de vários serviços ao mesmo tempo. As máquinas virtuais, quando utilizadas no ensino, facilitam a aplicação de aulas práticas e laboratórios multidisciplinares e reduz o custo de manutenção. Já que é possível criar máquinas virtuais com sistemas operacionais e aplicações específicas a depender do tipo da aula, neste caso elas poderiam ficar disponíveis em um servidor e serem executadas somente quando forem necessárias. Aplicações ou sistemas operacionais legados podem ser executados a partir da simulação de um hardware compatível com a mesma, sem necessidade de um hardware dedicado a estas funções. Ela auxilia na criação de ambientes múltiplos de execução, ajudando a aumentar a Quality of Service (QoS) e a disponibilidade dos recursos. Também é possível executar mais aplicações em um mesmo hardware já que uma máquina virtual não interfere em outras. Permite que aplicações sejam distribuídas com todo um ambiente de execução já configurado. É possível também testar o comportamento de aplicações em diversos sistemas operacionais utilizando somente o computador do desenvolvedor. Ela é útil na aplicação da técnica de sandboxing pela possibilidade do isolamento para execução de aplicações não confiáveis. Elas também auxiliam na 3 Coleção de honeypots com diferentes sistemas operacionais, configurações e serviços de rede. (Laureano e Maziero, 2008) 4 “É o custo de manter a tecnologia.” Ribas (2008)
  • 39. 37 criação de honeypots e honeynets já que é possível criar várias máquinas isoladas com diferentes configurações para que sejam atacadas (Laureano e Maziero, 2008). Facilita a criação e aplicação de planos de contingência já que um servidor com problemas pode ser restaurado rapidamente, sem envolver nenhuma reinstalação física de equipamentos ou de sistema operacional. 2.7.1 Vantagens A partir destes usos podem ser citadas as seguintes vantagens no uso da virtualização (Laureano, 2006; Quevedo, 2008; Ribas, 2008; Nascimento, 2009): a) Instalação de diversos sistemas operacionais, de diferentes plataformas, usando somente um computador; b) Portabilidade de aplicações, principalmente aplicações legadas; c) Facilidade no gerenciamento de servidores, pela diminuição da quantidade necessária; d) Facilidade na criação de ambientes operacionais em plataformas diferentes para demonstração de sistemas, testes de novos aplicativos, testes de sistemas operacionais, aplicação de atualizações, etc.; e) Diminuição de custos com equipamentos, com espaço físico e com energia elétrica através da consolidação de servidores, auxiliando a conformidade de práticas de TI Verde; f) Melhor utilização dos recursos disponíveis; g) Agilidade na criação de backups; h) Simplificação do ambiente de desenvolvimento e testes de novos aplicativos; i) Isolamento de falhas de software, provendo maior segurança; j) Conter ataques usando o isolamento;
  • 40. 38 k) Simular diferentes situações do mundo real, sem a necessidade de compra de equipamentos específicos; l) Simular alterações e falhas de hardware; m) Prover serviços dedicados a clientes com segurança e confiabilidade. 2.7.2 Desvantagens Podem ser citadas as seguintes desvantagens no uso da virtualização (Laureano, 2006; Quevedo, 2008; Ribas, 2008; Nascimento, 2009): a) Desempenho limitado, se comparado ao ambiente real, e consumo de recursos pela camada de virtualização; b) Necessidade de alterações no sistema hóspede para melhorar o desempenho; c) A criação de um ponto único de falha (SPOF), o que aumenta a criticidade do ambiente, pois um servidor hospedeiro indisponível pode significar a indisponibilidade de diversas aplicações; d) Necessidade de hardware específico para obtenção de um melhor desempenho, como é o caso dos processadores; e) Compatibilidade de hardware para algumas soluções, como dispositivos USB, interfaces de rede e armazenamento; f) Para garantir uma maior segurança do ambiente os sistemas hospedeiros não devem ser esquecidos, eles também devem estar seguindo todas as políticas de segurança estabelecidas pela organização. Este capítulo apresentou os principais conceitos envolvidos na virtualização e fez um resumo de seus principais usos, vantagens e desvantagens. O próximo capítulo irá mostrar as principais ferramentas de virtualização disponíveis no mercado.
  • 41. 39 3 FERRAMENTAS PARA MÁQUINAS VIRTUAIS Depois de discorrer sobre os diversos conceitos que envolvem a virtualização, este capítulo mostra as características das principais ferramentas de virtualização utilizadas para consolidação de servidores e apresenta uma breve comparação das mesmas. Ele está dividido entre os principais fornecedores (Nascimento, 2009) de soluções para virtualização de servidores: VMware, Citrix e Microsoft. Segue um pequeno histórico destes: A VMware fundada em 1998, disponibilizou seu software de virtualização em 1999, desde então, mantém a liderança do mercado e atualmente esta bem a frente dos seus principais concorrentes diretos, Microsoft e Citrix (Xen). A Microsoft disponibilizou seu software de virtualização em 2006 após adquirir a Connectix, uma pequena e promissora empresa especializada em produtos para virtualização. Desde então, tem investido nessa tecnologia para se tornar a líder de mercado e atualmente ocupa o segundo lugar. A Xen disponibilizou seu software de virtualização em 2003, em 2007 foi adquirida pela Citrix, líder de mercado na virtualização de aplicações, assim o software da Xen ganhou mais destaque no mercado. Porém, sua participação é pequena e a empresa ocupa a terceira posição na liderança do mercado (Nascimento, 2009). 3.1 VMware De acordo com Quevedo (2008), o VMware foi a primeira solução de virtualização para a arquitetura x86, fornecendo uma implementação completa ao sistema convidado. A VMware Inc. é a empresa que desenvolve o software e possui uma linha completa de produtos voltados a virtualização, alguns sem custo de licenciamento, que vão desde desktops a datacenters (Mattos, 2008). Ele provê uma interface x86 extremamente genérica para o sistema convidado, o que faz seu hipervisor mais complexo já que ele deve emular certas instruções para representar corretamente um processador virtual em cada máquina virtual. Esta emulação ocorre através da tradução dinâmica. Ele também fornece um driver, o VMdriver, para permitir que as máquinas virtuais acessem drivers do sistema hóspede diretamente e assim diminuir a perda do desempenho (Carissimi, 2008).
  • 42. 40 São disponibilizados produtos em três categorias: gerenciamento e automação, infraestrutura virtual e plataformas de virtualização. Os produtos de gerenciamento e automação permitem a gerência de todos os recursos da infraestrutura virtual de forma automatizada e centralizada, possibilitando a monitoração dos sistemas, conversão de máquinas físicas em máquinas virtuais, recuperação de desastres e outros (Carissimi, 2008). Os de infraestrutura virtual auxiliam na monitoração e alocação de recursos entre máquinas virtuais para o fornecimento de requisitos e regras de negócio. E os produtos de virtualização são os destinados a criar máquinas virtuais, que são tanto hipervisores nativos quanto convidados (Carissimi, 2008; Laureano e Maziero, 2008). O principal produto oferecido pela VMware é o VMware vSphere. Ele é capaz de oferecer um datacenter virtual para ambientes de todos os tamanhos atendendo várias necessidades de flexibilidade, velocidade, resistência e eficiência, transformando os dados em uma “nuvem”, um sistema elástico, autogerido e autorecuperável, podendo ser associado a outras “nuvens” de computação externas. Ele garante níveis adequados de disponibilidade, escalabilidade e segurança para todos os aplicativos, sem depender do hardware e da localização. Também fornece um gerenciamento de energia, desligando servidores fora de uso, ajudando a criar um datacenter verde (Nascimento, 2009). O VMware vSphere, como ilustrado na Figura 13, oferece: o Application Services, que garantem os níveis adequados de disponibilidade, escalabilidade e segurança; e o Infrastructure Services, que resume, agrega e aloca servidores, armazenamento e rede para o máximo de eficiência da infraestrutura. Ele também se integra ao VMware vCenter Suite, que permite gerenciar o datacenter virtual e as aplicações que executam nele, além de poder ser integrado a outras “nuvens” externas (Vmware, 2010a). A seguir são listados os hipervisores da VMware: a) VMware ESX Server: é um hipervisor nativo para ser utilizado em datacenters virtuais. Ele possui um kernel proprietário chamado VMkernel e utiliza o Red Hat Linux para fornecimento de outros serviços através do console de serviços, como gerência de usuários.
  • 43. 41 Figura 13. Datacenter virtual (Vmware, 2010a) b) VMware ESXi Server: possui as mesmas características do VMware ESX Server mas não possui o console de serviços, fazendo que os agentes do VMware executem diretamente no VMkernel. A diferença entre o ESX e o ESXi pode ser visualizada na Figura 14. c) VMware Server: versão gratuita do ESX Server para permitir que os usuários testem o produto antes de adquirir. Não está disponível para esta versão a ferramenta de configuração, sendo necessária a utilização de ambientes já pré- definidos. Ele é um hipervisor convidado. d) VMware Workstation: hipervisor convidado para ser utilizado em ambientes desktop, foi a primeira versão comercializada. e) VMware Fusion: versão do VMware Workstation para o sistema operacional Mac OS com processadores Intel.
  • 44. 42 f) VMware Player: versão gratuita do VMware Workstation, limitado a executar as máquinas criadas com versões comerciais do produto. Figura 14. Arquitetura das versões ESX e ESXi (Vmware, 2010b) 3.2 Citrix A Citrix disponibiliza o Xen, que é um hipervisor de código aberto para a arquitetura x86 que utiliza a técnica de para-virtualização. Uma de suas vantagens é o melhor desempenho do que os produtos de virtualização total e seus principais
  • 45. 43 usos são para a consolidação de servidores, o suporte de aplicações legadas e computação em cluster (Mattos, 2008; Quevedo, 2008). O Xen requer, devido à para-virtualização, que o sistema hóspede seja alterado. Em sistemas operacionais de código aberto, como o Linux, isto é possível, mas em sistemas proprietários, como o Windows, não é possível executar sobre o ambiente Xen (Quevedo, 2008). O Xen também pode ser implementado utilizando a virtualização total, requerendo um hardware compatível como o Intel VT ou AMD-V, o que possibilita a utilização de sistemas como o Windows, já que não são necessárias modificações, mas com um desempenho menor que o da para-virtualização (Laureano e Maziero, 2008; Quevedo, 2008). A tecnologia de virtualização fornecida pela Xen, através da para- virtualização, fornece abstrações, como processador, memória e rede virtual, onde os sistemas podem ser portados. Estas abstrações não precisam ser similares ao hardware da máquina real (Mattos, 2008). Os principais conceitos do Xen são o de domínio e o de hipervisor. Os domínios são as máquinas virtuais e podem ser de dois tipos, privilegiadas (domínio 0) e não privilegiadas (domínio U). O hipervisor controla os recursos de comunicação, memória e processamento das máquinas virtuais, mas não possui os drivers necessários para manipular os dispositivos (Carissimi, 2008; Mattos, 2008). Isto faz com que o Xen não suporte interação com os sistemas hospedes, sendo necessária a utilização de um sistema inicial, uma máquina virtual do domínio 0, invocado pelo hipervisor. Esta máquina de domínio 0 acessa uma interface de controle e executa as aplicações de gerenciamento, sendo que as máquinas de domínio U só podem ser criadas, iniciadas e desligadas através do domínio 0 (Carissimi, 2008; Mattos, 2008). Esta máquina de domínio 0 é executada em Linux com um núcleo modificado e este possui privilégios para acessar os recursos da máquina física e se comunicar com as máquinas virtuais de domínio U. Para isto ela possui os drivers do hardware da máquina física e dois drivers para tratar requisições de acesso à rede e ao disco feitas pelas máquinas de domínio U. As máquinas de domínio U não possuem acesso ao hardware, sendo este feito utilizando-se a máquina de domínio 0 através da abstração fornecida pelo hipervisor (Carissimi, 2008; Mattos, 2008). A Figura 15 ilustra o funcionamento do Xen.
  • 46. 44 Figura 15. Hipervisor Xen (Laureano e Maziero, 2008) A partir da versão 3, onde foi introduzido o suporte a virtualização completa, o Xen distingue domínios U para-virtualizados, os domínios U-PV, dos domínios U virtualizados, domínios U-HVM (Hosted Virtual Machines). Os domínios U-PV sabem que não possuem acesso direto ao hardware e reconhecem a existência de outras máquinas virtuais, já os domínios U-HVM não sabem que não possuem acesso direto e nem reconhecem outras máquinas. Para este último caso o Xen fornece um emulador QEMU vinculado a cada domínio U-HVM, sendo o hardware fornecido para estes através dele (Carissimi, 2008). O Xen também suporta as funções de Migration e Live Migration, onde é possível migrar um domínio de forma controlada ocorrendo interrupção da máquina virtual, no caso da Migration, e sem a necessidade de interrupções, no caso da Live Migration. Várias distribuições do Linux suportam o Xen de forma nativa e algumas ainda fornecem ferramentas gráficas para a criação e manutenção de máquinas virtuais neste hipervisor (Quevedo, 2008). 3.3 Microsoft A Microsoft possui vários produtos voltados a virtualização de soluções de negócios, como é possível visualizar na Figura 16.
  • 47. 45 Figura 16. Produtos e Tecnologias de Virtualização Microsoft (Microsoft, 2010a) Estes produtos têm como objetivo gerar maior eficiência, flexibilidade e melhor relação custo-benefício para toda a organização, como (Microsoft, 2010b; c): provisionamento e consolidação de servidores; implantação de aplicações; gerenciamento centralizado e baseado em diretivas; continuidade dos negócios/ recuperação de desastres; menor TCO, maior ROI; computação dinâmica; teste e desenvolvimento; segurança; e hospedagem. Com estes produtos a Microsoft fornece um conjunto completo de tecnologias, permitindo a integração da infraestrutura virtualizada, utilizando interfaces familiares e consoles de gestão compartilhada, que simplificam a gestão da infraestrutura. Os principais produtos de virtualização da Microsoft são: a) Virtualização de Servidores com o Windows Server 2008 R2 Hyper-V: hipervisor que funciona diretamente sobre o hardware, abaixo do sistema operacional. Algumas de suas características são: o suporte a arquiteturas x86 e x64, ambiente multiprocessador, switch virtual integrado, migração rápida de máquinas virtuais com o mínimo de downtime. Ele requer processador compatível
  • 48. 46 com Intel VT ou AMD-V. Sua arquitetura, que apresenta semelhanças com a arquitetura do Xen, pode ser visualizada na Figura 17. Figura 17. Arquitetura do Hyper-V (Microsoft, 2010d) b) Gerenciamento de Virtualização com o System Center Virtual Machine Manager: gerencia a configuração dos servidores hospedeiros e das máquinas virtuais, criação de máquinas virtuais, acompanhamento, alterações, recuperação rápida, auto provisionamento e automatização. c) Virtualização de Aplicações com o Microsoft Application Virtualization (App-V): transforma aplicações em serviços virtuais gerenciados que não precisam ser instalados e não entram em conflito com outras aplicações e é capaz de transmitir estas aplicações para outros computadores por demanda.
  • 49. 47 d) Virtualização da Estação de Trabalho com o Virtual PC: cria um ambiente de sistema operacional separado na estação de trabalho, permitindo a execução de aplicações legadas em um sistema operacional não suportado ou ainda que dois ambientes distintos sejam executados no mesmo computador. e) Virtualização de Apresentação com os Serviços de Terminal: permite que aplicações que executam no servidor sejam acessadas a partir de uma página da internet e/ou diretamente em uma estação de trabalho local. Ela permite manter a propriedade intelectual protegida através da remoção de aplicações e dados da estação de trabalho dos usuários. f) Virtualização do Armazenamento com System Center Data Protection Manager: protege máquinas virtuais sem tempo de inatividade, ele fornece backup rápido e retenção eficiente que não consome um espaço excessivo em disco. Outros produtos como o System Center Operations Manager e o System Center Configuration Manager também podem trazer benefícios a virtualização facilitando o gerenciamento e a monitoração dos sistemas hospedeiros e as máquinas virtuais hospedadas neles. Vale ressaltar que, assim como o Xen, o Hyper-V necessita que drivers sejam instalados nos sistemas convidados para garantir um melhor desempenho, caso estes não sejam instalados as máquinas virtuais podem ter um desempenho inferior. 3.4 Comparação entre as ferramentas Entre as três ferramentas a VMware é a que tem a maior participação de mercado (Nascimento, 2009). Seguem alguns dados obtidos no trabalho de Nascimento (2009) em fevereiro de 2009: a) As vendas de licenças de virtualização, no mundo todo, cresceram 53% no segundo trimestre de 2008 em relação ao mesmo período de 2007.
  • 50. 48 b) No segundo trimestre de 2008, a VMware foi líder em receitas no mercado de virtualização com 78% de participação, a Virtuozzo, da Parallels, ficou em segundo lugar com 16% e a Microsoft apenas 1,1% da renda total. c) A VMware mantém sua liderança no mercado de virtualização x86, mas a Microsoft está ganhando mercado com o Hyper-V. d) No ranking dos vendedores de servidores com funções de virtualização temos a HP com 34% do mercado, seguida pela Dell com 25% e IBM com 16%. e) A VMware possui 44% de participação no mercado por licenciamento (somando ESX e Server) contra 23% da Microsoft (somando Hyper-V e Virtual Server). Porém, não está claro o quanto desse mercado é representado por equipamentos em produção, teste, desenvolvimento. f) O preço do Hyper-V da Microsoft é de 28 dólares por servidor e as versões de alta qualidade do Hyper-V também são gratuitas para os usuários do Windows Server 2008. Uma licença padrão para o VMware ESX Server custa 3 mil dólares. Mesmo assim, a VMware possui uma participação no mercado bem maior que a Microsoft. Tanto em faturamento quanto por licenciamento. Nos sites das três empresas foi possível encontrar comparações sobre qual produto é melhor, todas as empresas tentam mostrar porque o seu produto é o melhor, mas isto depende muito do cenário de cada organização. As comparações encontradas foram várias, dentre elas é possível citar as seguintes: VMware ESXi/ESX, Windows Server 2008 com Hyper-V e Citrix XenServer no site da VMware (Vmware, 2010c), XenServer versus a competição (VMware ESXi) no site da Citrix (Citrix, 2010) e a comparação de custos de operação e manutenção entre o Microsoft Hyper-V e VMware ESX & vSphere no site da Microsoft (Microsoft, 2010e). O Anexo A e o Anexo B mostram as duas primeiras comparações de características. Não foram encontradas durante esta pesquisa de TCC comparações entre as ferramentas da Microsoft e da Citrix nos sites das mesmas. No Anexo C é possível verificar a comparação entre várias máquinas virtuais e emuladores, onde é possível verificar as técnicas utilizadas e os seus principais usos.
  • 51. 49 Após análise das comparações encontradas foi possível verificar que a VMware possui um conjunto de produtos que são superiores ao fornecidos pela Citrix e pela Microsoft, mas que também possui um custo mais alto de licenciamento e manutenção. É bom notar também que, entre os três fabricantes, o produto da Microsoft é o que é compatível com o menor número de distribuições do sistema operacional Linux. Como a escolha da ferramenta envolve várias questões, o mais recomendável é que seja analisado primeiramente o cenário da implementação, para decidir quais servidores serão virtualizados, os serviços que serão implantados e o tipo de gerenciamento que a organização vai necessitar. Este capítulo apresentou as características das principais ferramentas de virtualização disponíveis no mercado. O próximo capítulo discorre sobre o estudo de caso feito neste trabalho, relacionado com os serviços de informática usados e oferecidos pelo DCOMP/UFS.
  • 52. 50 4 ESTUDO DE CASO Este capítulo vai tratar do estudo de caso feito no Departamento de Computação da Universidade Federal de Sergipe (DCOMP/UFS). Ao final, são apresentados os resultados obtidos. 4.1 Sobre o DCOMP O Departamento de Computação (DCOMP) é originário do Departamento de Estatística e Informática, o qual, na criação do Curso de Bacharelado em Ciência da Computação, contava com apenas cinco professores mestres e um graduado na área de Computação. Em 2006, os professores de Estatística desvincularam-se formando um núcleo próprio. O Departamento de Computação foi então instituído e conta hoje com vinte e um professores. Ele oferece atualmente três cursos de graduação e um de pós-graduação além de oferecer disciplinas para diversos outros cursos da universidade. Os cursos oferecidos pelo DCOMP são Ciência da Computação, com entrada de cinquenta alunos por semestre, Sistemas da Informação, que foi iniciado em 2007 e conta com uma entrada de cinquenta alunos por ano, Engenharia da Computação, iniciado em 2009 e conta com uma entrada de cinquenta alunos por ano, e o Mestrado em Ciência da Computação, que foi iniciado no segundo semestre de 2010 com uma entrada de quinze alunos por ano. O DCOMP conta com cinco laboratórios de ensino (Laboratório de Ensino Geral, Laboratório de Ensino Avançado, Laboratório de Ensino Básico, Laboratório de Ensino de Redes e Laboratório de Ensino de Hardware) e três laboratórios de pesquisa (Laboratório de Projetos, INES e LABSOFT) equipados com computadores. Destes o DCOMP não é responsável pela administração do laboratório do INES, que conta com a infraestrutura fornecida diretamente pela universidade.
  • 53. 51 Também estão disponíveis computadores nas salas dos professores e na secretaria do departamento. Estes computadores também são utilizados para funções administrativas. O próprio departamento é responsável pela administração de toda a estrutura de TI interna ao mesmo. Atualmente ele não conta com nenhum funcionário responsável pela área e não há previsão sobre quando haverá a contratação deste funcionário. Durante o ano de 2010 ocorreu uma renovação dos computadores utilizados nos laboratórios, secretaria e salas dos professores. Devido ao DCOMP estar situado em uma instituição pública de ensino ele está sujeito a toda a burocracia e falta de recursos comuns a este tipo de departamento, o que dificulta a aquisição de novos servidores e outros equipamentos. Recentemente ocorreu a utilização da virtualização nos laboratórios do DCOMP em dois casos. O primeiro foi durante a 1ª Semana de Computação, onde foi criada uma máquina virtual com softwares necessários para utilização durante as aulas dos minicursos oferecidos. E o segundo caso foi durante a etapa regional da Maratona de Programação onde foi disponibilizado aos participantes um ambiente em máquina virtual próprio para a competição. Em breve vai ser construído um novo prédio que irá abrigar novos laboratórios para o departamento e irão utilizar a infraestrutura de servidores que está sendo atualizada neste trabalho. Após uma análise da situação atual, que será apresentada na próxima seção, ficou decidido que este trabalho iria abordar somente a consolidação de servidores, já que as maiores deficiências foram encontradas nesta área. Outros tipos de virtualização que podem beneficiar o DCOMP são a virtualização de aplicações e a virtualização de apresentação, que permitiriam uma implantação de novos aplicativos mais rapidamente e a utilização de aplicativos temporários.
  • 54. 52 4.2 Situação anterior O DCOMP contava com seis servidores que forneciam os serviços de arquivos, DNS5, DHCP6, diretório7, NAT8, Web e gerenciamento de configuração. A maioria dos servidores contava com alguma versão do Windows Server e dois deles executavam uma distribuição do Linux. É possível visualizar este cenário na Figura 18. Os hardwares de alguns destes servidores estavam apresentando defeito e nenhum deles se encontrava mais no período de garantia, já que a maioria deles foi adquirido, pelo menos, há quatro anos. O servidor ITAIPU fornece o serviço de NAT e o SOBRADINHO os serviços de servidor Web e DNS para clientes externos, os dois possuem acesso à internet através de endereços de internet válidos. Estes dois servidores vinham apresentando diversos problemas, com travamentos constantes e indisponibilidade de alguns serviços. Era comum a falta de acesso à internet durante várias horas por semana, pois o servidor NAT parava de funcionar, sendo necessária a reinicialização do mesmo. Recentemente devido a travamentos no servidor SOBRADINHO os serviços de DNS e Web paravam de funcionar, prejudicando o recebimento de e- mails com o domínio do DCOMP e o acesso à página de internet do mesmo. O servidor DCFURNAS provia o serviço de diretório Active Directory, o DOCMACHADINHO o serviço de arquivos, o INFRALAJEADO os serviços de DHCP e DNS para os clientes da rede interna e o MANAGER os serviços de gerenciamento de atualizações, antivírus, softwares e sistemas operacionais. Os serviços de cada servidor podem ser verificados na Tabela 1. 5 Resolve nomes de domínios em endereços de rede. 6 Oferece configuração dinâmica de terminais através da concessão de endereços IP de host e outros parâmetros de configuração para clientes de rede. 7 É um serviço que armazena e organiza informações sobre os recursos e os utilizadores de uma rede de computadores, e que permite os administradores de rede gerenciar o acesso de utilizador e sistemas a esses recursos. 8 É uma técnica que consiste em reescrever os endereços IP de origem de um pacote que passam por um router ou firewall de maneira que um computador de uma rede interna tenha acesso a uma rede externa.
  • 55. 53 Figura 18. Cenário inicial dos servidores do DCOMP (Elaboração própria) Tabela 1. Serviços em cada servidor Servidor Serviços SOBRADINHO Web DNS externo DCFURNAS Domínio Active Directory Servidor de Arquivos DOCMACHADINHO Servidor de Arquivos INFRALAJEADO DHCP DNS interno ITAIPU NAT MANAGER Gerenciamento de configuração Gerenciamento de atualizações Gerenciamento do antivírus Gerenciamento de ativação do Windows Fonte: Elaboração própria Destes servidores o único que foi adquirido mais recentemente e possui suporte a arquitetura de 64 bits é o MANAGER, ele também é o que possui o melhor desempenho entre estes seis servidores já que possui uma configuração mais atual. A média de utilização da CPU dos computadores com o Windows Server foi analisada durante um período de tempo, antes de propor a solução, e ficou
  • 56. 54 verificado que nos servidores DOCMACHADINHO, DCFURNAS e INFRALAJEADO esta média não chega a 5% durante os horários de funcionamento do departamento. Já o servidor MANAGER tem uma média de utilização de CPU de 50% com picos de mais de 80% durante um dia normal. Nos servidores que executavam o Linux não foi feita uma análise da utilização de CPU, mas uma alta utilização da CPU pode ser o motivo dos constantes travamentos. Alguns usuários chegaram a reportar que o servidor SOBRADINHO ficava muito lento em alguns horários, isto também pode significar uma utilização elevada da CPU e da memória. Não era utilizada nenhuma solução para backup dos sistemas, sendo que os servidores INFRALAJEADO, DOCMACHADINHO, DCFURNAS E SOBRADINHO tinham armazenamentos espelhados, pelo menos para suas partições principais, o que garantia a disponibilidade dos arquivos mesmo na falha de um dos discos. A configuração de cada servidor pode ser verificada na Tabela 2. Tabela 2. Configuração dos servidores Servidor Configuração DCFURNAS Processador com um núcleo; 1GB de memória; Dois INFRALAJEADO discos rígidos de 80GB em RAID 1, para espelhamento SOBRADINHO dos dados; Duas placas de rede Fast Ethernet. DOCMACHADINHO Processador com um núcleo; 1GB de memória; Quatro discos rígidos de 80GB, sendo dois em RAID 1, para espelhamento dos dados; Uma placa de rede Fast Ethernet. ITAIPU Processador com um núcleo; 512MB de memória; Um disco rígido de 40GB; Duas placas de rede Fast Ethernet. MANAGER Processador de dois núcleos; 2GB de memória; Um disco rígido de 160GB; Uma placa de rede Fast Ethernet. Fonte: Elaboração própria Não existia nenhuma solução de gerenciamento destes servidores implantada, o que ocasionava a necessidade da presença de alguém para solucionar diversos problemas, além de impossibilitar o acompanhamento do status dos computadores de uma maneira mais fácil.
  • 57. 55 Os serviços essenciais para o DCOMP, que são o acesso à internet (fornecido pelo NAT), o DNS e o diretório, não possuíam nenhuma redundância e quando acontecia falha em um dos computadores o serviço fornecido por ele ficava indisponível ao departamento. 4.3 Solução proposta Tendo analisado a situação dos servidores foi decidido que a virtualização no DCOMP deveria proporcionar:  Consolidação dos servidores, para aumentar a carga de utilização;  Diminuir o espaço necessário para armazenamento, devido às limitações de espaço físico;  Gerenciamento centralizado, para facilitar a administração;  Aumentar a QoS, provendo um maior tempo de disponibilidade para os serviços;  Diminuir o SPOF, que pode ser ampliado com a utilização da virtualização;  Plano de contingência, a partir da utilização de backups diários dos servidores;  Aumento da segurança da informação de uma maneira geral, com a implantação destas medidas. Primeiramente foram analisados os fornecedores de soluções de virtualização, como visto no capítulo 3, e optou-se por utilizar as soluções da Microsoft já que o departamento possui atualmente um acordo de licenciamento, que diminui o custo com as licenças dos aplicativos a serem utilizados. Após isto foi necessário obter hardware compatível com estes produtos. Devido à limitação para aquisições do departamento foi necessária a utilização de
  • 58. 56 alguns computadores que seriam destinados a laboratórios de ensino. Mas também foi possível adquirir, por meio de um convênio do DCOMP com a FAPESE9, dois computadores que foram utilizados nesta implementação. 4.3.1 Configuração dos servidores Foi decidido que seriam utilizados ao final da implementação sete computadores, todos ligados em nobreaks. Destes computadores o MANAGER foi o único que continuou a existir como uma máquina real, devido a sua maior utilização e a falta de um servidor com uma configuração mais adequada para receber este sistema como uma máquina virtual. Outros dois computadores reais foram adicionados para o gerenciamento de máquinas virtuais e backup dos servidores virtuais, estes devido as suas funções não poderiam ocupar máquinas virtuais. Os outros quatro são os servidores hospedeiros. A Figura 19 ilustra o cenário da solução proposta. Os computadores a serem utilizados como hospedeiros foram:  HYPERV-001 e HYPERV-002 com processador de quatro núcleos, 4GB de memória, uma placa de rede Gigabit Ethernet, três placas de rede Fast Ethernet e 500GB de armazenamento em um só disco;  HYPERV-003, com processador de quatro núcleos, 2GB de memória, três placas de rede com duas portas Gigabit Ethernet em cada, um disco rígido de 250GB para sistema e dois discos de 160GB espelhados para armazenamento dos discos virtuais;  HYPERV-004, com processador de quatro núcleos, 4GB de memória, três placas de rede Fast Ethernet, um disco rígido de 160GB para sistema e dois discos de 500GB espelhados para armazenamento dos discos virtuais. 9 Fundação de Apoio à Pesquisa e Extensão de Sergipe.
  • 59. 57 Figura 19. Cenário da solução proposta (Elaboração própria) Os quatro computadores hospedeiros podem receber máquinas virtuais que ocupem até 3GB de memória, no caso dos servidores HYPERV-001, HYPERV-002 e HYPERV-004. O servidor HYPERV-003 só pode receber máquinas virtuais para utilizar até 1GB de memória, devido ao mesmo possuir menos memória que os outros. Isto deve-se a utilização de até 1GB de memória pelo Windows Server 2008 R2 que executa o Hyper-V. Os servidores para gerenciamento (SCVMM) e backup (SCDPM) possuem a seguinte configuração: o SCVMM conta com processador de dois núcleos, 4GB de memória, uma placa de rede Gigabit Ethernet e 320GB de disco rígido; já o SCDPM conta com processador de quatro núcleos, 4GB de memória, uma placa de rede Fast Ethernet, um disco rígido de 1TB e três discos rígidos de 160GB. A Microsoft recomenda que para cada servidor hospedeiro existam pelo menos duas placas de rede, uma para ser utilizada pelo sistema do hospedeiro e garantir o seu gerenciamento remoto, e a outra para ser utilizada pelas máquinas virtuais. A Tabela 3 mostra a configuração do hardware de cada servidor físico.
  • 60. 58 O motivo principal de a solução proposta utilizar o servidor HYPERV-003 com somente uma máquina virtual, não fazendo uma consolidação, se deve ao fato desta execução proporcionar a capacidade de backup e restauração do servidor virtual em caso de falhas, o que não seria possível se o servidor estivesse executando diretamente sobre o servidor real. Outro motivo é que este servidor real suporta até 24GB de memória, os outros que suportam até 8GB, possibilitando, mediante a compra de mais memória, a sua utilização por diversas máquinas virtuais. Tabela 3. Configuração dos servidores reais nesta solução Servidor Configuração HYPERV-001 Processador de quatro núcleos; 4GB de memória; Um disco HYPERV-002 rígido de 500GB; Uma placa de rede Gigabit Ethernet; Três placas de rede Fast Ethernet. HYPERV-003 Processador de quatro núcleos; 2GB de memória; Um disco rígido de 250GB para sistema e dois discos de 160GB espelhados para armazenamento dos discos virtuais; Três placas de rede com duas portas Gigabit Ethernet. HYPERV-004 Processador de quatro núcleos; 4GB de memória; Um disco rígido de 160GB para sistema e dois discos de 500GB espelhados para armazenamento dos discos virtuais; Três placas de rede Fast Ethernet. SCVMM Processador de dois núcleos; 4GB de memória; Um disco rígido de 320GB; Uma placa de rede Gigabit Ethernet. SCDPM Processador de quatro núcleos; 4GB de memória; Um disco rígido de 1TB e três discos rígidos de 160GB, sendo um destes de 160GB destinados ao sistema operacional; Uma placa de rede Fast Ethernet. MANAGER Processador de dois núcleos; 2GB de memória; Um disco rígido de 160GB; Uma placa de rede Fast Ethernet. Fonte: Elaboração própria
  • 61. 59 4.3.2 Aplicações dos servidores Foi decidida pela utilização do Windows Server 2008 R2 Enterprise nos computadores hospedeiros com a opção Server Core de instalação, que provê uma versão mínima do Windows Server, sem interface gráfica, com necessidade de atualizações reduzidas e que oferece poucos recursos. Nestas instalações foram usadas somente a função Hyper-V, além do software antivírus e os agentes de backup e gerenciamento. Uma placa de rede é dedicada a este sistema e as outras são configuradas para utilização pelo hipervisor. Toda a administração das máquinas virtuais e dos computadores reais é feita a partir do servidor SCVMM que contém uma instalação completa do Windows Server 2008 R2 Enterprise com o System Center Virtual Machine Manager 2008 R2, que monitora e gerencia as máquinas virtuais e os computadores hospedeiros, e o System Center Operations Manager 2007 R2, que, neste caso, monitora e gerencia o desempenho e tarefas de manutenção necessárias nos servidores. O servidor SCDPM possui uma instalação do sistema operacional Windows Server 2008 R2 Enterprise em um dos discos de 160GB e possui também o System Center Data Protection Manager 2010, que é responsável pelo backup de todos os servidores virtualizados. O SCDPM usa um disco de 1TB junto com os outros dois discos de 160GB para armazenar o backup dos servidores virtuais. Este backup é realizado diariamente às 23h, fica armazenado por um prazo de até cinco dias e é executado com o uso de agentes nos servidores hospedeiros. Os agentes são responsáveis por identificar os dados que podem ser protegidos e recuperados com a utilização do SCDPM, eles também são responsáveis por monitorar as mudanças que ocorrem nos arquivos protegidos e enviar estas mudanças do computador protegido ao servidor do SCDPM. Feito esta configuração dos servidores hospedeiros e gerenciadores foi decidido que os servidores virtuais não sofreriam uma migração da máquina física para uma virtual. Todas as instalações são novas e o processo de migração deveria ser feito seguindo as instruções disponibilizadas pelos desenvolvedores dos softwares. Pela familiaridade do autor com a plataforma Windows, este decidiu não utilizar um servidor NAT baseado em Linux fazendo a migração para um servidor
  • 62. 60 baseado em Windows Server. Isto trouxe o benefício da monitoração nativa oferecida pelo SCVMM. Para minimizar a possibilidade de indisponibilidade da internet e dos serviços de diretório foi decidido que duas máquinas virtuais iriam executar estes serviços, sendo cada uma em um servidor hospedeiro diferente, para evitar o SPOF. Com isto o NAT passou a contar com dois servidores virtuais, o NATITAIPU e o NATTRESMARIAS, e o servidor de serviços de diretório com os servidores DCFURNAS e DCANGRA. Todos os servidores que executam Windows foram migrados para a versão mais atual, o Windows Server 2008 R2, com a edição Enterprise, a mesma edição que os servidores Windows já possuíam instalada. De acordo com as práticas da Microsoft, o servidor de domínio passou a oferecer além do serviço de diretório o serviço de DNS, o que também resultou em uma maior disponibilidade deste último serviço já que o servidor de domínio passou a contar com um segundo servidor virtual. O servidor INFRALAJEADO, que fornecia o serviço de DHCP e DNS, passa então a oferecer somente o serviço de DNS. E o servidor DOCMACHADINHO continua oferecendo o serviço de arquivos. Estes dois servidores não dispõem de replicação pelo uso de uma segunda máquina virtual. Na Tabela 4 são mostrados os serviços oferecidos nos servidores que foram migrados e nos que foram criados. Com exceção dos servidores NATITAIPU e NATRESMARIAS que estão configurados com duas placas de rede todos os servidores virtuais estão configurados com uma placa de rede, um processador lógico e 1GB de memória. O espaço e a quantidade de discos virtuais variam a depender da aplicação, mas eles executam o Windows Server com aproximadamente 40GB de espaço no disco virtual. O DOCMACHADINHO possui outros discos virtuais que são utilizados no seu compartilhamento oferecido na rede. O servidor SOBRADINHO foi migrado para o WEBSOBRADINHO no HYPERV-003 com dois processadores lógicos, 1GB de memória, uma placa de rede e dois discos virtuais, um de 127GB e outro de 10GB. Este servidor passou a utilizar o Ubuntu 10.04 como sistema operacional, que necessitou ser atualizado para o kernel 2.6.35 para contar com os adicionais de convidado para HYPER-V, inclusos a partir desta versão do kernel do Linux, e executar com um melhor desempenho.