Virtual Iza ç Ão

download Virtual Iza ç Ão

of 36

Transcript of Virtual Iza ç Ão

  • 8/20/2019 Virtual Iza ç Ão

    1/86

    FACULDADE DE TECNOLOGIA SENAI DE DESENVOLVIMENTOGERENCIAL - FATESG

    CURSO SUPERIOR EM TECNOLOGIA EM REDE DE

    COMPUTADORES

    Diogo Ezídio da SilvaGilberto Lima de Oliveira

    Leandro de Sousa RangelLucas Timm Florão

    VIRTUALIZAÇÃO COMO ALTERNATIVA PARA AMBIENTE DE

    SERVIDORES

    Goiânia2008

  • 8/20/2019 Virtual Iza ç Ão

    2/86

     

    Diogo Ezídio da SilvaGilberto Lima de Oliveira

    Leandro de Sousa Rangel

    Lucas Timm Florão

    VIRTUALIZAÇÃO COMO ALTERNATIVA PARA AMBIENTE DE

    SERVIDORES

    Trabalho de Conclusão de Curso – TCCapresentado á Faculdade de TecnologiaSENAI DE Desenvolvimento Gerencial –FATESG, para a obtenção do título deGraduado em Tecnologia em Redes deComputadores.

    Orientador: Prof. Msc. Mauricio Severich 

    Goiânia2008

  • 8/20/2019 Virtual Iza ç Ão

    3/86

     

    CURSO SUPERIOR EM TECNOLOGIA EM REDE DE COMPUTADORES

    Diogo Ezídio da SilvaGilberto Lima de OliveraLeandro de Sousa Rangel

    Lucas Timm Florão

    Virtualização como alternativa para ambiente de servidores

    Trabalho de Conclusão de Curso – TCC apresentado á Faculdade de TecnologiaSENAI DE Desenvolvimento Gerencial – FATESG, para a obtenção do título deGraduado em Tecnologia em Redes de Computadores.

    Aprovada em _______ de _____________________________ de 2008

    Banca Examinadora

    Professor Msc. Maurício Severich

    Professor Msc. Rafael Leal Martins

    Professora Msc. Ana Flávia Marinho de Lima Garrati

  • 8/20/2019 Virtual Iza ç Ão

    4/86

     

    Dedicamos este trabalho de conclusão de curso a todos osnossos familiares que nos apoiaram, à FATESG por ter acreditadono Curso Superior em Tecnologia em Rede de Computadores eao orientador, Professor que, com dedicação e conhecimento,orientou-nos no decorrer deste trabalho.

  • 8/20/2019 Virtual Iza ç Ão

    5/86

     

    Agradecemos, primeiramente a DEUS, que nos deu saúde edisposição nestes anos, aos colegas que contribuíram eincentivaram para realização desse trabalho e também aosprofessores que com sabedoria nos acompanharam nesses anos emque decorreu o curso e, em especial ao nosso orientador que nosacompanhou em todas as etapas desse trabalho. Também aosamigos e a família pela compreensão de nossa ausência para aelaboração do mesmo.

  • 8/20/2019 Virtual Iza ç Ão

    6/86

     

    “Uma mente que se abre a uma nova idéia jamais volta ao seu tamanho original”.

    (Albert Einstein)

  • 8/20/2019 Virtual Iza ç Ão

    7/86

     

    RESUMO

    Este trabalho apresenta uma visão geral da virtualização para uso em servidores. Avirtualização perante a tecnologia da informação consiste em utilizar um único host  físico para a criação de dois ou mais sistemas operacionais que funcionamsimultaneamente. Neste documento, a virtualização foi utilizada para criação de umambiente computacional de servidores comparando três softwares utilizados para talfinalidade: O Xen , Vmware Server   e Linux KVM.  Testes foram realizados visandoobter resultados práticos da virtualização de servidores como forma de diminuircustos em TI através do melhor aproveitamento de hardware , bem como odetalhamento de informações sobre esta tecnologia que se torna a cada dia maispresente no cenário de TI das grandes empresas.

    PALAVRAS-CHAVE: Virtualização, Xen, VMware, Linux

  • 8/20/2019 Virtual Iza ç Ão

    8/86

     

    ABSTRACT

    This paper shows a general visualization of virtualization for servers’ use. Thevirtualization at the Information Technology scene is consisted in the use from asingle physichal host to install and creation of two or more operational systems thatruns simultaneously. In this document, the virtualization was used to simulate aserver data-center comparing three softwares commonly used to this end: Xen,VMware Server and Linux KVM. Tests was ran to take practical results of servervirtualization, as a way to reduce IT coasts and to get a better hardware utilization,also the technical information about this technology, which everyday becomes moreand more present on the IT scene of big employments.

    KEY-WORDS: Virtualization, Xen, Vmware, Linux

  • 8/20/2019 Virtual Iza ç Ão

    9/86

     

    LISTA DE ILUSTRAÇÕES

    Figura 1: Emulação de Hardware..............................................................................22 Figura 2: Virtualização Completa ..............................................................................23 Figura 3: Hypervisor ..................................................................................................24 Figura 4: Instruction Set Virtualization.......................................................................25 Figura 5: Linux KVM..................................................................................................31 

  • 8/20/2019 Virtual Iza ç Ão

    10/86

     

    LISTA DE GRÁFICOS

    Gráfico 1 - Comparativo de Processos......................................................................41 Gráfico 2 - Operações com Inteiros...........................................................................42 Gráfico 3 - Operações com Floats.............................................................................43 Gráfico 4 - Operações com Doubles .........................................................................44 Gráfico 5 - Context Switching....................................................................................45 Gráfico 6 - Latência de Comunicação Local..............................................................46 Gráfico 7 - Latência de Sistema de Arquivos ............................................................47 Gráfico 8 - Largura de Banda para Comunicação Local ...........................................48 Gráfico 9 - Comparativo de Latência de memória.....................................................49 Gráfico 10 - Média de Latência de Memória..............................................................50 Gráfico 11 - Transferência de Arquivos em NFS.......................................................52 

    Gráfico 12 - Codificação de vídeo .............................................................................53 

    Gráfico 13 - Connection Times para 100 requisições por rajada...............................55 Gráfico 14 - Porcentagem de Requisições por Tempo..............................................56 Gráfico 15 - Connection Times para 200 requisições por rajada...............................58 Gráfico 16 - Porcentagem de Requisições por Tempo..............................................59 

  • 8/20/2019 Virtual Iza ç Ão

    11/86

     

    LISTA DE ABREVIATURAS SIGLAS E SÍMBOLOS

    AMD - Advanced Micro Devices

    ARM – Advanced Risc Machine

    BARE METAL – Software instalado diretamente em hardware

    BSD – Berkeley Software Distribution

    CPU – Central Processing Unit

    CTSS - Compatible Time-Share System

    DMA – Direct Memmory Access

    DOUBLE – Número de tamanho duplo

    FLOAT – Número fracionado (com ponto flutuante)

    HCL - Hardware Compatible List - Lista de Hardware Compatível

    I/O – Input/Output

    IDC – International Data Corporation

    INTEGER – Número inteiro

    Intel VT – Intel Virtualization Technology

    KVM – Kernel-based Virtual Machine

    MIPS – Microprocessor without interlocked pipeline stages

    MIT – Massachusetts institute of Technology

    MRTG – Multi-Router Traffic Grapher

    NFS – Network File System

    PAE – Phisical Addressing Extentions

    POWER – Power Optimization Enhanced Risc

    PowerPC - Power Optimization With Enhanced RISC - Performance Computing

    Pseudo-Hardware – Hardware visualizado pela máquina virtual.QEMU-DM – QEMU Device-Manager

    SCSI - Small Computer Systems Interface - Interface para Sistemas de Pequenos

    Computadores

    SMB – Service Message Blocks

    SMP - Symmetric multiprocessing - Multi Processamento Simétrico.

    SNMP – Simpe Network Manage Ment Protocol

    SPARC – Scalable Processor ArchitectureUSB - Universal Serial Bus

  • 8/20/2019 Virtual Iza ç Ão

    12/86

     

    VMM – Virtual Machine Monitor

    Vmotion – Migração viva

    VT - Intel Virtualization Technology – Tecnologia de Virtualização Intel

  • 8/20/2019 Virtual Iza ç Ão

    13/86

     

    SUMÁRIO

    SUMÁRIO .................................................................................................................12 

    1  INTRODUÇÃO......................................................................................................15  

    1.1  OBJETIVO..........................................................................................................16 

    2  METODOLOGIA...................................................................................................17 

    2.1  DETALHAMENTO TEÓRICO.............................................................................17 

    2.2  AMBIENTE DE TESTES REALIZADOS.............................................................17 

    3  VIRTUALIZAÇÃO.................................................................................................18  

    3.1  A ORIGEM DA VIRTUALIZAÇÃO ......................................................................18 

    3.1.1  Visão Histórica da Virtualização..................................................................18 

    3.1.2  A Virtualização na Plataforma X86 ...............................................................19 

    3.2  A IMPORTÂNCIA DA VIRTUALIZAÇÃO............................................................20 

    3.3  TIPOS DE VIRTUALIZAÇÃO .............................................................................21 

    3.3.1  A Emulação de Hardware .............................................................................21 

    3.3.2  A Virtualização Completa .............................................................................22 

    3.3.3  A Paravirtualização.......................................................................................24 

    3.3.4  Instruction Set Virtualization  – Virtualização de Instruções .....................25 

    4  IMPLEMENTAÇÕES PARA VIRTUALIZAÇÃO...................................................27 

    4.1  QEMU.................................................................................................................27 

    4.2  XEN....................................................................................................................28 

    4.2.1  Sistemas Operacionais Suportados............................................................29 

    4.2.2  Hardware requerido ......................................................................................30 

    4.3  LINUX KVM ........................................................................................................30 

    4.3.1  Componentes do KVM..................................................................................32 4.3.2  Gerenciamento..............................................................................................32 

    4.4  VMWARE SERVER............................................................................................33 

    4.4.1  Novos recursos no VMware  Server  2 ..........................................................33 

    4.5  VMWARE ESX SERVER....................................................................................34 

    4.5.1  VMware ESXi .................................................................................................35 

    4.6  VMWARE WORKSTATION................................................................................35 

    4.7  SUN XVM, ..........................................................................................................35 4.7.1  Suporte a guests ...........................................................................................36 

  • 8/20/2019 Virtual Iza ç Ão

    14/86

     

    4.8  QUADRO COMPARATIVO DAS FERRAMENTAS............................................36 

    5  EXPERIMENTOS E RESULTADOS.....................................................................38 

    5.1.1  Descrição do Ambiente ................................................................................38 

    5.1.2  Análise de Desempenho...............................................................................38 

    5.2  LMBENCH..........................................................................................................39 

    5.2.1  Manipulação de Processos ..........................................................................40 

    5.2.2  Operações com Números Inteiros...............................................................41 

    5.2.3  Operações com Números fracionários (Floats ) .........................................42 

    5.2.4  Operações com Números Dobrados (Double )............................................44 

    5.2.5  Context Switching  – Troca de Contexto......................................................45 

    5.2.6  Latência para Comunicação Local ..............................................................46 5.2.7  Latência de sistema de arquivos .................................................................46 

    5.2.8  Largura de banda para comunicação local.................................................47 

    5.2.9  Latência de Memória.....................................................................................48 

    5.2.10 Média de Latência de Memória ....................................................................49 

    5.3  TRANSFERÊNCIA DE ARQUIVOS ...................................................................50 

    5.3.1  SMB ................................................................................................................51  

    5.3.2  NFS .................................................................................................................51  5.4  CODIFICAÇÃO DE VÍDEO.................................................................................52 

    5.5  BENCHMARK  DE SERVIDOR WEB..................................................................53 

    5.5.1  100 requisições por rajada...........................................................................54 

    5.5.2  200 requisições por rajada...........................................................................57 

    6  CONSIDERAÇÕES FINAIS..................................................................................60 

    6.1  DIFICULDADES ENCONTRADAS.....................................................................61 

    6.2 

    LIMITAÇÕES......................................................................................................62 

    6.3  EXPERIMENTOS FUTUROS.............................................................................62 

    6.4  CONCLUSÕES ..................................................................................................63 

    REFERÊNCIAS BIBLIOGRÁFICAS.........................................................................64 

    ANEXO A: ARQUIVO DE CONFIGURAÇÃO PARA INSTALAÇÃO COM XEN .....66 

    ANEXO B: ARQUIVO DE CONFIGURAÇÃO APÓS A INSTALAÇÃO COM XEN..67 

    ANEXO C: CRIAÇÃO DE MÁQUINA VIRTUAL COM KVM ....................................68 

    ANEXO D: REDE BRIDGE DO QEMU-KVM............................................................69 

    ANEXO E: SAÍDA DE EXECUÇÃO DO LBENCH NO KVM ....................................70 

    ANEXO F: SAÍDA DE EXECUÇÃO DO LBENCH NO XEN.....................................72 

  • 8/20/2019 Virtual Iza ç Ão

    15/86

     

    ANEXO G: SAÍDA DE EXECUÇÃO DO LBENCH NO VMWARE SERVER............74 

    ANEXO H: SAÍDA DE EXECUÇÃO DA CODIFICAÇÃO DE VIDEO NO KVM........76 

    ANEXO I: SAÍDA DE EXECUÇÃO DA CODIFICAÇÃO DE VIDEO NO XEN..........77 

    ANEXO J: SAÍDA DE EXECUÇÃO DA CODIFICAÇÃO DE VIDEO NO VMWARE 78 

    ANEXO K: SAÍDA DE EXECUÇÃO DO AB NO KVM..............................................79  

    ANEXO L: SAÍDA DE EXECUÇÃO DO AB NO XEN...............................................81  

    ANEXO M: SAÍDA DE EXECUÇÃO DO AB NO VMWARE SERVER .....................83 

    ANEXO N: SAÍDA DE EXECUÇÃO DAS CÓPIAS DE ARQUIVO POR NFS..........85 

  • 8/20/2019 Virtual Iza ç Ão

    16/86

      15

    1 INTRODUÇÃO

    Através de uma definição livre, virtualização é o processo de executarvários sistemas operacionais em um único equipamento. Uma máquina virtual é um

    ambiente operacional completo que se comporta como se fosse um computador

    independente. Com a virtualização, um servidor pode manter vários sistemas

    operacionais em uso.

    Segundo GOLDEN & SCHEFFY   (2008), a criação de um ambiente data

    center   demanda recursos, que devem ser bem direcionados. A cada servidoradquirido é necessária a adequação do espaço físico, verificação do circuito elétrico

    de alimentação e recabeamento nos ativos de rede, assim como a avaliação do

    custo do equipamento com gasto de energia e manutenção por toda a sua vida útil.

    Porém, uma vez estabelecido um ambiente de servidores, as circunstâncias podem

    levar a necessidade de ampliação do mesmo, o que pode gerar transtornos caso

    não sejam analisados os itens acima. 

    Através da virtualização, esta ampliação pode ser obtida sem a

    necessidade real da aquisição de novo equipamento em hardware. Como

    conseqüência, haveria a possibilidade de colocar vários servidores virtuais em

    operação na mesma máquina física, usando os recursos de hardware   de forma

    otimizada e equilibrada. Assim, pode-se economizar gastos com energia,

    refrigeração e espaço físico.

    Atualmente, muitos data centers   possuem servidores que utilizam apenas10 ou 15% da capacidade total de processamento. Em outras palavras, 85ou mais de 90% de toda a capacidade de cada servidor está em desuso.Entretanto, ainda que um servidor esteja com baixa utilização de recursos,ele continua ocupando espaço físico e desperdiçando energia elétrica,gerando os mesmos custos operacionais que os de uma máquina com100% de utilização em tempo total. (GOLDEN & SCHEFFY, 2008, p. 3)

    A primeira e mais óbvia vantagem da virtualização é a redução de custos.Com apenas uma máquina que possua os recursos suficientes é possívelmontar uma estrutura com vários servidores virtuais, dispensando a

    aquisição de várias máquinas. Operacionalmente também há vantagens,pois a administração se torna centralizada e o tempo total de manutenção éinevitavelmente reduzido. (SIQUEIRA, 2007, p. 4)

  • 8/20/2019 Virtual Iza ç Ão

    17/86

      16

    O pensamento de GOLDEN & SCHEFFY  (2008) assinala também estar de

    acordo com a proposição de SIQUEIRA (2007), quando cita que além de uma

    grande conquista na redução de custos em data centers , a virtualização oferece a

    oportunidade de reduzir largamente o custo com a administração dos sistemas, pois

    reduzirá a quantidade de equipamentos físicos que necessitam de administração.

    Várias tarefas associadas a administração dos servidores (como a instalação de

    sistemas operacionais, aplicação de patches  e a realização de backups ) continuarão

    existindo em ambientes virtualizados, mas poderão desaparecer nos servidores

    físicos.

    A virtualização proporciona novos recursos não convencionais, como amigração em tempo real, que permite que um sistema virtualizado mude seu host  

    hospedeiro sem comprometer a produção, recurso imprescindível para ambientes

    críticos com requerimento de alta disponibilidade.

    1.1 OBJETIVO

    A realização deste trabalho tem como objetivo principal explorar a

    virtualização de servidores como forma de obter melhor aproveitamento de

    hardware , comparando três softwares   para tal finalidade: VMware Server , Xen

    Hypervisor  e Linux KVM.

  • 8/20/2019 Virtual Iza ç Ão

    18/86

      17

    2 METODOLOGIA

    A construção do trabalho ocorreu através do levantamento bibliográfico arespeito da origem, histórico e tipos existentes de virtualização, e de vários

    softwares utilizados com essa finalidade.

    Destes softwares, foram escolhidos três para experimentação e avaliação

    de desempenho. Eles foram testados individualmente em cada modalidade.

    Assim, a construção do trabalho foi feita em duas etapas principais,descritas abaixo:

    2.1 DETALHAMENTO TEÓRICO

    Foram identificados conceitos teóricos sobre o assunto, bem como ohistórico da virtualização desde sua primeira utilização. Promoveu-se os

    levantamentos de informações técnicas sobre alguns tipos de virtualização, alguns

    softwares  utilizados atualmente para virtualizar e o comparativo de suas vantagens e

    desvantagens.

    2.2 AMBIENTE DE TESTES REALIZADOS

    Os experimentos foram realizados em um ambiente de produção, para o

    qual foram criadas máquinas virtuais utilizando os softwares   VMware Server, Xen

    Hypervisor e Linux KVM, nas quais serão executados testes com diferentes tipos de

    cargas simulando o uso prático das mesmas. Mais detalhes sobre o ambiente,

    consulte o item 5.1.1 Descrição do Ambiente.

  • 8/20/2019 Virtual Iza ç Ão

    19/86

      18

    3 VIRTUALIZAÇÃO

    3.1 A ORIGEM DA VIRTUALIZAÇÃO

    O grande foco da virtualização, atualmente, é a chamada “virtualização de

    servidores”, ou a hospedagem de múltiplos e independentes sistemas operacionais

    em um único computador físico. Esta seção discorre sobre as raízes deste

    procedimento.

    3.1.1 Visão Histórica da Virtualização

    O conceito de virtualização é antigo: Data os anos 60, com o uso mais

    precoce realizado no antigo IBM 7044 CTSS (Compatible Time-Share System   –

    Sistema Compatível com Compartilhamento de Tempo); Segundo JONES (2006)

    este equipamento foi denominado "Projeto Atlas", oriundo de um estudo realizadoem conjunto com o MIT (Massachusetts Institute of Technology  – Instituto de

    Tecnologia do Massachusetts ), a Ferranti Ltd.  e a University of Manchester

    (universidade de Manchester ), no qual foi utilizado um mainframe IBM 704 M44/44X

    com implementação de chamadas supervisoras.

    O sistema operacional deste mainframe  (na época chamado "Supervisor ")

    executava duas máquinas virtuais, uma para o sistema e uma para execução deprogramas, servindo de base para outros computadores que viriam após ele.

    Assim, com base nesta tecnologia, em 1966 foi lançado o mainframe  IBM

    System/360   modelo 67, onde o hardware do equipamento era inteiramente

    acessado através de uma interface chamada VMM   (Virtual Machine Monitor ). O

    VMM  funcionava diretamente no hardware  básico do equipamento, permitindo então

    a execução de máquinas virtuais. Cada máquina virtual poderia ser uma nova

    instância do mesmo sistema operacional base em prévia execução.

  • 8/20/2019 Virtual Iza ç Ão

    20/86

      19

    Com essa funcionalidade, o antigo termo "Supervisor " foi então

    denominado "Hypervisor ". Ou seja, um software  que provê ambiente de virtualização

    para o sistema operacional rodando acima dele.

    No início da década de 70, a IBM anunciou a série de mainframes  

    System/370 , e em 1972 anunciou o sistema operacional VM/370 , que permitia a

    criação de múltiplas máquinas virtuais para os mainframes  desta série. O VM/370  foi

    atualizado em conjunto com toda a linha de mainframes  da IBM , e hoje é conhecido

    como IBM z/VM , um dos sistemas operacionais para os mainframes   da série

    System/Z , e mantém compatibilidade total com os aplicativos desenvolvidos ainda

    para o System/370 .

    3.1.2 A Virtualização na Plataforma X86  

    Segundo a VMware Inc. (2008), a virtualização perdeu forças nas décadas de

    80/90 devido a criação de novas aplicações cliente/servidor e do declínio da

    plataforma mainframe . Devido ao alto custo inicial de um mainframe , empresas

    passaram a adquirir servidores de plataforma x86  de acordo com a demanda que

    precisavam.

    A larga ascensão da plataforma Linux  nos servidores, assim como a adoçãodo sistema operacional Windows  em desktops  e posteriormente em algunsservidores nos anos 90, acabaram por consolidar a plataforma x86   comoalternativa viável para uso na virtualização. (VMware Inc. 2008)1 

    Os mainframes   tinham grande capacidade de processamento, o que não

    existia no início da ascensão da plataforma x86 . Os servidores x86   também não

    eram projetados com foco em virtualização, como os mainframes  foram nas décadas

    passadas (e são até os dias atuais). Assim, de acordo com a IDC (International Data

    Corporation , [1999?] apud VMware Inc,  2008) em cada implementação de algum

    servidor x86   típico, o teto de uso das CPUs  acaba entre 10 a 15% da capacidade

    total deste servidor. Isso acontecia porque, para cada servidor x86 , geralmente

    1 Conteúdo disponível no endereço http://www.vmware.com/overview/history.html 

  • 8/20/2019 Virtual Iza ç Ão

    21/86

      20

    utilizava-se uma única determinada aplicação, visando garantir boa margem de risco

    contra problemas que possam comprometer a produção.

    Segundo GOLDEN & SCHEFFY   (2008), a virtualização quebra o molde

    “uma aplicação, um servidor”, pois veio para suportar várias aplicações em um só

    sistema físico. Então, em 1999, a VMware   Inc . introduziu a virtualização na

    plataforma x86  como uma maneira mais eficiente para utilizar o equipamento desta

    plataforma, aproveitando servidores x86   de propósito geral para prover uma

    estrutura compartilhada de hardware  oferecendo isolamento completo, mobilidade e

    liberdade de escolha para sistemas operacionais em ambientes de servidores.

    3.2 A IMPORTÂNCIA DA VIRTUALIZAÇÃO

    De uma perspectiva empresarial, existem muitas razões para utilizar a

    virtualização, principalmente na chamada “Consolidação de Servidores”. Ao

    virtualizar determinado número de sistemas sub-utilizados em um único servidor

    físico, você economizará espaço em estrutura física, espaço em disco, refrigeração,

    energia e centralizará o gerenciamento.

    Para determinar quais servidores podem ou não ser virtualizados, deve-se

    fazer uma avaliação de recursos utilizando-se de ferramentas como MRTG 2   ou

    Cacti 3   (ambos utilizam SNMP 4 ) para monitorar a performance e o uso de recursos

    em cada servidor. Uma vez virtualizado, deve ser feito um acompanhamento,

    verificando se o novo servidor físico também ficará sobrecarregado, é possível

    migrar determinado servidor virtual para outro servidor físico com o mesmo em

    produção – sem necessidade de reboot . Assim, pode ser feito o balanceamento de

    carga entre vários servidores físicos hospedeiros sem afetar o funcionamento das

    máquinas virtuais.

    2 MRTG: Multi-Router Traffic Grapher. Software  utilizado para gerar gráficos de determinadosequipamentos.3 CACTI: Software  utilizado para geração de gráfico e monitoramento de equipametnos.4 SNMP: Simple Network Management Protocol , Protocolo Simples para Gerenciamento de Redes.Protocolo utilizado para obter informações de dispositivos que o suportem para utilização por outrasaplicações.

  • 8/20/2019 Virtual Iza ç Ão

    22/86

      21

    A virtualização também é importante ao analisarmos a redundância em

    data centers , item importantíssimo em ambientes 24 x 7 (24 horas por dia, sete dias

    da semana). Com a migração em tempo real, uma vez identificada a possibilidade

    de falha de determinada máquina física hospedeira (quebra de espelhamento, fonte

    queimando, memória despejando etc), bastaria migrar as máquinas virtuais para

    outros servidores físicos. Porém, se acontecer alguma falha não esperada em algum

    servidor hospedeiro, todas as máquinas virtuais daquele equipamento podem ser

    afetadas. Exemplo, se todas as fontes de um servidor queimarem ao mesmo tempo,

    todas as máquinas virtuais dele desligarão. Ou, se acontecer alguma falha nos

    discos do servidor – ou na storage   de armazenamento -, todas máquinas virtuaispoderão ser corrompidas.

    3.3 TIPOS DE VIRTUALIZAÇÃO

    A virtualização é um conceito amplo e existem vários usos e categorias

    para efetuá-la. As principais maneiras serão abordadas nesta seção.

    3.3.1 A Emulação de Hardware

    Segundo JONES (2006), a emulação de hardware  é atualmente a forma

    mais complexa de virtualização. Devido a sua complexidade, gera grandesoverheads 5 , prejudicando o desempenho do sistema operacional guest 6 . Nesse

    método, todo o hardware  de uma máquina virtual é criado via software  no sistema

    hospedeiro para emular o hardware   proposto, conforme exibido na Figura 1. Ou

    seja, até o processador da máquina virtual precisa ser criado via software , o que é

    feito geralmente feito em assembly . 

    5 Overhead: Diferença de performance gerando latência no sistema operacional guest  6 Guest: Sistema operacional convidado.

  • 8/20/2019 Virtual Iza ç Ão

    23/86

      22

    Figura 1: Emulação de Hardware

    Segundo GOLDEN & SCHEFFY  (2008), a complexidade da técnica fere o

    desempenho do guest . E, segundo JONES (2006), para emulações de alta-

    fidelidade, incluindo transições de informação entre registradores para memória

    cache   e criação de pipelines   na CPU , a performance pode ser, facilmente, 1000

    vezes menor.

    Mas, a emulação de hardware   também tem vantagens, Por exemplo,

    usando emulação de hardware , é possível rodar um sistema operacional guest  sem

    qualquer modificação ou adaptação.

    3.3.2 A Virtualização Completa

    A virtualização completa, também conhecida como "virtualização nativa", é

    outro método utilizado para virtualização. JONES (2006) cita que esse modelo usa

    uma máquina virtual através da mediação entre o sistema operacional hospedeiro

    (host ) e o guest  conforme mostrado na Figura 2. A palavra "mediação" é utilizada,

    pois o VMM   faz a troca entre o sistema operacional virtualizado e o hardware   do

    equipamento.

  • 8/20/2019 Virtual Iza ç Ão

    24/86

      23

    Figura 2: Virtualização Completa

    Segundo  JONES (2006), a virtualização completa é mais rápida que a

    emulação de hardware , mas a performance também é menor do que a do mesmo

    sistema operacional rodando nativamente. A grande vantagem da virtualização

    completa é que o sistema operacional pode rodar sem modificações. A desvantagem

    é que a máquina guest  não pode rodar em host  de arquitetura diferente.

    Segundo à VMware Inc. (2008), um grande obstáculo para a virtualização

    completa foi o fato de que, 17 instruções específicas dos processadores da

    plataforma x86  geravam erros quando essa camada de interpretação era criada, o

    que fazia o sistema operacional guest   gerar erros críticos durante sua execução.

    Esses erros variavam desde informações no sistema operacional até a finalização

    inesperada da aplicação.

    Assim, essas 17 instruções foram apontados pela mesma empresa como

    um importante marco para a criação do primeiro ambiente de virtualização completa

    da plataforma x86 , o VMware   Workstation   em sua primeira versão, lançado em

    1999.

  • 8/20/2019 Virtual Iza ç Ão

    25/86

      24

    3.3.3 A Paravirtualização

    A paravirtualização é uma técnica que tem poucas semelhanças com avirtualização completa. Esse método usa o hypervisor  para acesso compartilhado ao

    hardware   do equipamento, e também integra códigos de virtualização dentro do

    sistema operacional nativo, agregando nele as funções de gerenciamento do

    hypervisor , como exibido na Figura 3.

    GOLDEN &  SCHEFFY   (2008) cita que através da paravirtualização, o

    hypervisor  é criado como uma camada abaixo do sistema operacional, que por suavez, multiplexa o acesso dos guests  ao hardware  do equipamento. Assim, o próprio

    sistema operacional nativo (e, neste caso, de gerenciamento) é transformado em

    máquina virtual.

    Figura 3: Hypervisor

    Segundo SIQUEIRA (2007), este modelo como hypervisor   obtémpreferência para os ambientes virtualizados, pois, os hóspedes sabem perfeitamente

  • 8/20/2019 Virtual Iza ç Ão

    26/86

      25

    que rodam em um ambiente virtual. Para isso, os guests  precisam ser corrigidos, o

    que só é possível de conseguir em sistemas de código aberto 7 .

    Uma vez que os sistemas operacionais sejam adaptados, a interação

    entre as máquinas virtuais e a máquina física é otimizada, o que aumenta o

    desempenho. Porém, a grande desvantagem deste modelo continua sendo a

    dependência da alteração do sistema operacional de gerenciamento e dos guests ,

    para que possam interagir com o hypervisor  ao invés do hardware físico.

    3.3.4 Instruction Set Virtualization  – Virtualização de Instruções

    Outro aspecto mais recente da virtualização é chamado Instruction Set

    Virtualization (Virtualização de Instruções). Neste modelo, segundo JONES (2006),

    um conjunto de instruções virtuais é traduzido para uma instrução física destinada à

    camada de hardware   do equipamento. Assim, com o código original sendo

    executado dentro de uma máquina virtual, a tradução ocorre do primeiro (set   de

    instruções) para um segundo seguimento de código, efetuando a mediação entre a

    aplicação e o sistema operacional conforme exibido na Figura 4.

    Figura 4: Instruction Set Virtualization

    Um exemplo recente deste modelo é utilizado no processador Crusoe , da

    Transmeta . A arquitetura implementa tradução de binários com o nome Code

    7 Código Aberto: Programas que possuem o código de fonte disponível para verificação e/ou estudo.

  • 8/20/2019 Virtual Iza ç Ão

    27/86

      26

    Morphing . O mesmo processo também é utilizado para execução de binários de

    diferentes arquiteturas em um sistema operacional de outra plataforma, como por

    exemplo, para rodar binários de um sistema Linux  plataforma PowerPC  em um Linux  

    plataforma x86  com o software  “nspluginwrapper ”.

  • 8/20/2019 Virtual Iza ç Ão

    28/86

      27

    4 IMPLEMENTAÇÕES PARA VIRTUALIZAÇÃO

    Foram analisados os aspectos relevantes de vários softwares   utilizadospara virtualização.

    Os softwares  descritos a seguir, foram escolhidos por serem largamente

    utilizados na virtualização para desktop   (com usuários que desejam testar outros

    sistemas operacionais e simularem ambientes) e também para virtualização de

    servidores. Eles pertencem a distintas categorias, conforme está descrito a seguir:

    4.1 QEMU

    O QEmu é dos virtualizadores mais complexos hoje existentes, mas que

    suporta várias maneiras de execução. Por padrão, é um emulador de hardware   (e

    sofre com a baixa performance), mas também suporta emulação de processadores

    de outras arquiteturas, como ARM, MIPS, Sparc e PowerPC . Em modo de emulaçãode um computador x86 , o QEMU disponibiliza os seguintes componentes de

    hardware :

    - Chipset  Intel i440FX/PIIX3

    - Placa de vídeo Cirrus  446 PCI

    - Teclado e mouse PS/2

    - 2 PCI  IDEs  com suporte a CD-Rom  - Disquete 3 ½ polegadas

    - Porta serial

    - Placa de som Creative   SoundBlaster   16, ENSONIQ   AudioPCI  ES1370

    Yamaha  YM3812.

    - Suporte a USB .

    Ele também pode ser apenas um emulador de binários, e nesse modelo échamado “User Mode Emulation ”. Dessa forma, ele pode permitir que um binário

  • 8/20/2019 Virtual Iza ç Ão

    29/86

      28

    compilado para Linux em plataforma x86   rode em plataforma PowerPC , por

    exemplo. Outras funcionalidades são agregadas a ele com o módulo KQEMU, que

    garante maior aceleração ao host  em execução quando este é um x86 .

    4.2 XEN

    O Xen  é um hypervisor  que trabalha tanto em modo de paravirtualização

    como em modo de virtualização completa. Está localizado abaixo do sistema

    operacional. Ele permite que os recursos de hardware   de uma máquina sejam

    dinamicamente distribuídos entre as máquinas virtuais. E nele, as máquinas virtuais

    são denominadas Domains .8 O próprio sistema operacional nativo (que é utilizado

    para gerenciamento) é referenciado como um Domain .

    Ao contrário do VMware Workstation/Server , em modo de

    paravirtualização, ele não tenta virtualizar completamente as chamadas do sistema

    operacional guest   para a camada de hardware . Assim, partes do sistema

    operacional guest  são modificadas para trabalharem em interação direta com ele, ao

    invés do hardware nativo do equipamento, conforme descrito em Xen Interfaces’

    Manual .

    Por isso, o Xen   em modo paravirtualizado não disponibiliza pseudo- 

    hardware 9  para a máquina virtual. Nada é exibido nos comandos lspci  e lsusb ; No

    comando dmesg , os dispositivos xenblk , xen_mem   e xenfb   apenas indicam que o

    kernel foi preparado para integração direta com o hypervisor .

    Quando utilizada a virtualização completa no Xen , o hardware encontrado

    na máquina virtual é criado através da modificação do software  QEMU, e o hardware

    disponibilizado para o sistema operacional guest  é o mesmo exibido por este, exceto

    o processador.

    8 Domains:  Nomenclatura adotada no Xen para denominar suas máquinas virtuais.9 Pseudo-Hardware: Hardware visualizado pela máquina virtual.

  • 8/20/2019 Virtual Iza ç Ão

    30/86

      29

    Em ambos os casos, o pseudo-hardware   exportado para as máquinas

    virtuais (CPU , memória, rede e dispositivos de bloco) é gerado através de uma

    interface de controle utilizada para gerenciamento no Xen . Assim, para a abstração

    de hardware  das máquinas virtuais (nos dois modos), fica em constante execução o

    daemon  xend na máquina de gerenciamento.

    O acesso a essa interface de controle é restrito: Ela pode ser acessada

    por uma única máquina virtual privilegiada, conhecida como Domain  0 (Domínio 0).

    As operações como a criação de um novo domínio, desligamento e até migração de

    um domínio em execução para outro host   físico, são disparadas diretamente pelo

    Domain  0 (máquina de gerenciamento) para o hypervisor  através do comando xm ,que executa a solicitação.

    O Domain  0 é criado automaticamente quando o sistema executa o boot 10 .

    Durante isso, o Xen  agrega os privilégios de gerenciamento para este domínio, de

    modo que ele possa interagir diretamente com o hypervisor  executando, também, as

    tais tarefas administrativas.

    4.2.1 Sistemas Operacionais Suportados

    Segundo o Manual do Usuário do Xen   a paravirtualização permite uma

    performance excelente durante o processo de virtualização, uma vez que a

    arquitetura x86  só recebeu aperfeiçoamentos (instruções específicas) para tal uso a

    partir de 2006. Então, para executar um domínio em modo de paravirtualização, é

    necessário que o sistema operacional seja portado para o Xen . Atualmente, os

    sistemas operacionais portados para o Xen  são o Linux , NetBSD  e o Solaris . Esses

    sistemas podem ser executados no Xen  em modo paravirtualizado.

    Para utilizar virtualização completa no Xen , é necessário o suporte para

    virtualização via hardware . Esse suporte é garantido pelas instruções VT   nos

    processadores Intel  e SVM  nos processadores da AMD . Existindo essas extensões,

    10 Boot : Processo de inicialização do sistema.

  • 8/20/2019 Virtual Iza ç Ão

    31/86

      30

    é possível que o Xen   crie Domains   sem necessidade alguma de modificação do

    sistema operacional, podendo assim ser instalado qualquer outro guest .

    4.2.2 Hardware requerido

    Atualmente, o Xen   roda nos computadores da plataforma x86 , sendo

    necessário algum processador P6   (de sexta geração), como um Pentium Pro,

    Celeron, Pentium II, Pentium III, Pentium IV, Xeon, AMD Athlon (Duron), Athlon 64 e

    Opteron . Multi-processamento é suportado, e existem portes em andamento para as

    plataformas Intel IA64 (processador Itanium ) e Power   (processadores PowerPC   e

    POWER ).

    O Xen , por padrão, suporta até de 4GB de memória RAM   em modo de

    execução 32 bits. Como é uma quantidade pequena para os servidores nos dias

    atuais, existe o suporte para as extensões PAE 11, da Intel, que permite que sistemas

    operacionais x86  de 32bits  possam endereçar até 64GB de memória Ram. O Xen  

    3.0 também suporta as arquiteturas x86  /64 bits .

    4.3 LINUX KVM

    Segundo a Qumranet Inc , desenvolvedora do KVM , adicionando a

    capacidade de virtualização no kernel  Linux , é possível aproveitar todo o código jáescrito do para a criação de um ambiente de virtualização completo nativo. Integrado

    ao kernel , o KVM  automaticamente suporta todos os dispositivos de hardware  que

    funcionam com Linux .

    Com o VMM   integrado ao kernel , e não abaixo dele (exemplo do Xen ),

    cada máquina virtual é um processo normal no sistema operacional, acessada

    11 PAE : Phisical Addressing Extensions . Extensões de Endereçamento Físico.

  • 8/20/2019 Virtual Iza ç Ão

    32/86

      31

    através do módulo KVM , módulo este que executará o papel de hypervisor , como

    exibido na figura 5.

    Figura 5: Linux KVM

    Um processo normal, rodando em Linux , possui dois modos de execução:

    Kernel Mode   (modo kernel ) e User Mode  (modo usuário). Porém, por uma máquina

    virtual precisar de mais prioridade do que um processo normal, e por ser, também,

    bem mais complexa que um aplicativo comum, é adicionado um terceiro modo de

    execução: O guest mode  (modo Convidado).

    Na terminologia KVM , os guests   são máquinas virtuais comuns, e o

    privileged-guest é a máquina destinada ao gerenciamento, equivalente ao Dom0  do

    Xen .

    Uma das vantagens ao modelo com um hypervisor   tradicional é que o

    KVM   é um sistema enxuto e minimalista. Sua programação consiste em apenas

    alguns milhares de linhas de código. E, como módulo do kernel , é possível

    manipulá-lo em tempo de execução, como se fosse um dispositivo qualquer. Seus

    guests  tem acesso a todo sistema de memória através de chamadas de hardware  ou

  • 8/20/2019 Virtual Iza ç Ão

    33/86

      32

    mesmo de DMA12 (DMA: Direct  Memmory  Access - Acesso direto a memória). E, o

    acesso dos guests  ao resto do hardware  é ilimitado.

    Assim como o Xen , o KVM também utiliza o QEMU para promover a

    abstração de hardware na máquina virtual. Assim, exceto o processador, o hardware

    simulado é o mesmo do QEmu

    4.3.1 Componentes do KVM

    Os dois componentes principais do KVM  são explicados abaixo:

    - Um driver  de dispositivos para gerenciamento do hardware  virtualizador.

    Este driver  trabalha utilizando o dispositivo /dev/kvm .

    - Um componente no user -space  para emulação do hardware  de um PC

    comum. Para isso, é utilizada uma versão modificada do QEMU .

    O QEmu modificado roda como processo no sistema, e cria uma camada

    de hardware  para a máquina virtual, mapeando a memória física e as chamadas do

    kernel   (especificamente do módulo KVM ) para a execução do guest . O I/O   das

    máquinas virtuais é diretamente derivado do QEMU, onde existe o suporte a todos

    os tipos de imagem de disco que o mesmo oferece.

    4.3.2 Gerenciamento

    A partir do ponto que uma máquina virtual é simplesmente um processo,

    todas as ferramentas de gerenciamento de processo do sistema Linux   são

    reaproveitadas. É possível pausar, desligar e restaurar uma máquina virtual

    diretamente com o comando kill  (ou usando os atalhos de teclado, como CTRL + C  e

    12 DMA: Direct Memmory Access - Acesso direto a memória. Provê acesso a memória sem anecessidade de interrupção da CPU .

  • 8/20/2019 Virtual Iza ç Ão

    34/86

      33

    CTRL + Z ), assim como é possível verificar a alocação de recursos com o comando

    top .

    4.4 VMWARE SERVER

    Segundo o VMware Server Product Datasheet , o mesmo é instalado como

    aplicação no topo de um sistema operacional host , seja ele Windows  ou Linux , e cria

    um hypervisor  que traduz as chamadas do sistema guest  para o host . Os recursos

    de um mesmo servidor físico são tratados e distribuídos uniformemente entre todas

    as máquinas virtuais.

    O pseudo-hardware  virtual criado pelo VMware  para abstração dos guests  

    constituído dos seguintes ítens:

    - Placa de rede AMD PCnet32 Accelerated  

    - Placa de som Ensoniq  ES1371 WDM

    - Controladora SCSI  a escolher (LSI  Logic  ou BusLogic )

    - Chipset  Intel 430VX

    O VMware  também instala drivers  adicionais no sistema operacional guest  

    e host   para otimizar o acesso dos recursos nas máquinas físicas e virtuais. Na

    máquina guest , esses drivers   são conhecido como VMware Tools , e conclui a

    instalação dos dispositivos faltantes (driver de vídeo, por exemplo).

    4.4.1 Novos recursos no VMware  Server  2

    Com o VMware  Server 2, novos recursos foram adicionados; Ele oferece

    suporte aos sistemas operacionais Windows  Server   2008, Windows   Vista , RedHat  

    Enterprise   Linux   5 e Ubuntu   8.04. Foi acrescentado o suporte aos sistemas

    operacionais 64 bits (caso o hardware   seja 64 bits) para Linux   de mesma

    arquitetura.

  • 8/20/2019 Virtual Iza ç Ão

    35/86

      34

    Foi incluída, também, uma nova interface web   para gerenciamento das

    máquinas virtuais. E este serviço de virtualização, oferecido pelo VMware   Server,

    também pode ser acessado através do software VMware Virtual Infrastructure Client ,

    que unifica o acesso a plataformas de virtualização da mesma empresa.

    O VMware  Server  também oferece recursos para que as máquinas virtuais

    possam ter até 8GB de memória RAM , 10 interfaces de rede virtuais, USB   2.0 e

    duas opções de discos SCSI .

    4.5 VMWARE ESX SERVER

    Segundo o VMware ESX 3.5 Product Datasheet , o VMware ESX Server  foi

    criado para possibilitar a criação de um ambiente de TI virtual, dinâmico e otimizado;

    Ele é um sistema operacional, baseado no kernel  Linux , que cria uma camada de

    abstração para acesso aos recursos do sistema (processadores, memórias,

    storages 13  e dispositivos de rede) por máquinas virtuais.

    Por ser um sistema operacional completo, o VMware   ESX é instalado

    diretamente no hardware   (bare-metal 14 ) do servidor, e traz consigo seu hypervisor  

    (denominado VMkernel ), que provê os recursos para execução das máquinas

    virtuais. Assim, ele precisa ser acessado através do software   VMware Virtual

    Infrastructure Client   para que possam ser criadas as configurações no mesmo

    servidor;

    13 Storage : Equipamento que agrega determinadas quantidades de HDs  de alta perfomance paraserem acessados através do meio externo, muitas vezes através de múltiplos servidores;14 Bare-metal : “Metal nu” (tradução livre); Instalado diretamente no equipamento;

  • 8/20/2019 Virtual Iza ç Ão

    36/86

      35

    4.5.1 VMware ESXi

    Com base no VMware   ESX , a VMware   lançou a versão gratuita doproduto, o VMware  ESXi Server ; O ESXi  não possui os recursos de VMotion   (live

    migration ) nem suporte da empresa, mas pode ser utilizado gratuitamente. Recursos

    adicionais, como o próprio VMotion,  podem ser comprados adicionalmente e

    inseridos no VMware  ESXi .

    O VMware   ESXi   também possui uma versão embbeded 15   chamada

    VMware  ESXi  Small Footprint , de apenas 32MB, que está sendo integrada em váriasplacas mães de servidores de terceiros, fabricados por empresas parceiras da

    VMware .

    4.6 VMWARE WORKSTATION

    Solução de virtualização para desktops  da VMware , o mesmo é instaladocomo aplicação no topo de um sistema operacional host , seja ele Windows  ou Linux ,

    e cria um hypervisor  que traduz as chamadas do sistema guest  para o host , tal qual

    ao VMware   Server . Porém, esta versão é utilizada para desenvolvimento e para

    testes de aplicativos locais, e não para uso em produção.

    4.7 SUN XVM,

    O xVM (anteriormente chamado "Virtualbox ") é um virtualizador completo,

    que utiliza partes do QEMU   e do BOCHS   como base para seu funcionamento

    (incrementando outros recursos), e é destinado a virtualização de sistemas

    operacionais na plataforma x86 . Atualmente o Sun   xVM   roda nativamente nos

    sistemas operacionais Windows , Linux , Mac OS X  e OpenSolaris .

    15 Embedded : Embarcado;

  • 8/20/2019 Virtual Iza ç Ão

    37/86

      36

    O xVM  também suporta tecnologias de virtualização via hardware, tanto da

    Intel (Intel   VT) quanto da AMD   (AMD -V). A utilização dessas tecnologias de

    virtualização é opcional para cada maquina virtual, podendo ser incluída/removida

    facilmente. Porém, ela é necessária nos seguintes casos:

    - Ao virtualizar um sistema operacional raro, como o IBM  OS/2, que desde

    sua concepção (apesar de descontinuado desde 1996) utiliza instruções complexas

    da plataforma x86 que não são suportadas com virtualização diretamente em

    software .

    - Ao virtualizar um sistema operacional guest  com suporte a 64 bits.

    4.7.1 Suporte a guests

    O xVM   pode executar todos os sistemas operacionais x86   como por

    exemplo DOS , Windows  (todas as versões para x86 ) , FreeBSD , OpenBSD , Linux  e

    Solaris .

    4.8 QUADRO COMPARATIVO DAS FERRAMENTAS

    O quadro a seguir exibe uma comparação entre as ferramentas utilizadas na

    virtualização destacando as principais características de cada uma delas.

  • 8/20/2019 Virtual Iza ç Ão

    38/86

      37

    FERRAMENTA DESENVOLVEDOR PLATAFORMAOPERACIONAL

    SISTEMASOPERACIONAISSUPORTADOS

    TECNOLOGIASUTLIZADAS

    QEmu Fabrice Bellard x86, PowerPc

    -Windows

    -MS Dos-Linux e Unix(FreeBSD,NetBSD, Solaris)- etc.

    Emulação deHardware eVirtualizaçãoCompleta

    XENHypervisor

    Citrix Technologies x86

    -Linux-NetBSD-Solaris-Windows

    Paravirtualizaçãoe Virtualizaçãocompleta

    VMwareServer VMware Inc. x86

    -Linux-Windows

    -Unix

    VirtualizaçãoCompleta

    VMwareESX/ESXi

    Server:VMware Inc. x86

    -Linux-Windows-Unix

    Paravirtualização16 e Virtualizaçãocompleta

    Linux KVM RedHat17  x86

    -Linux,-Windows-Unix (FreeBSDe Solaris)

    VirtualizaçãoCompleta18 

    16 A Paravirtualização no VMware ESX/ESXi se aplica apenas a guests  com sistema Linux.17 RedHat: A RedHat adquiriu a Qumranet, desenvolvedora original do KVM em 4 de setembro de2008.18 Está sendo adicionado recurso de paravirtualização ao KVM.

  • 8/20/2019 Virtual Iza ç Ão

    39/86

      38

    5 EXPERIMENTOS E RESULTADOS

    5.1.1 Descrição do Ambiente

    Foi instalado na máquina física o sistema operacional CentOS  5.2 Linux

    64 bits, com kernel  2.6.18, e 3GB de memória Ram , sendo que desta memória, 1GB

    foi destinado inteiramente para a máquina virtual em execução. Devido a

    divergências de cada uma das tecnologias, cada máquina virtual foi executada

    individualmente. O processador utilizado foi um Intel Core 2  Duo E6420, sendo

    disponibilizados apenas um núcleo para as máquinas virtuais. Foi utilizada uma

    partição com 49GB em um HD   de 160GB, destinando 8GB para cada máquina

    virtual.

    As tarefas designadas para cada servidor virtualizado, na criação de um

    ambiente de produção, foram máquinas virtuais configuradas adequadamente com

    as finalidades de testar o desempenho individual com softwares   para benchmark ,

    codificação de vídeo e testes com aplicativos simulando servidores reais.

    5.1.2 Análise de Desempenho

    Cada máquina foi submetida a testes de processamento, de I/O e de

    conectividade, analisando a performance de cada uma como um todo. As tarefassubmetidas foram:

    a) Codificação de vídeo utilizando o software Transcode ;

    b) Análise de performance geral com o software  LMBench .

    c) Transferência de arquivo com 4GB via NFS   (cliente Linux ) e SMB   (cliente

    Windows );

    d) Inundação de requisições simultâneas para o servidor web   utilizando o

    software AB  (Apache Benchmark ).

  • 8/20/2019 Virtual Iza ç Ão

    40/86

      39

    Todos os testes do tipo cliente/servidor realizados (transferência de arquivos

    e benchmark com AB ) foram executados a partir de outro host  na rede, utilizando o

    sistema operacional Microsoft  Windows  XP  SP3  para transferência de arquivos via

    SMB , e o sistema operacional Fedora  Linux  versão 8 para transferência de arquivos

    por NFS . A inundação de requisições para os servidores Apache  de cada máquina

    virtual, realizada pelo AB , também foi feita a partir deste host  Linux. A rede entre as

    duas máquinas foi estabelecida através de um switch  Encore 3NH908, operando a

    100Mbps em modo full duplex .

    Os testes de performance individuais (como a codificação de vídeo e análisede desempenho com o LMBench ) foram realizados com o sistema operacional host  

    em IDLE 19, evitando assim a influencia nos testes de cada uma delas.

    5.2 LMBENCH

    A execução do LMBench   versão 3 Alpha , nas máquinas virtuais testou os

    seguintes itens em cada uma delas:

    - Manipulação de Processos;

    - Operações com números do tipo integer  - inteiro;

    - Operações com números do tipo float – ponto flutuante;

    - Operações com números do tipo double – números duplos;

    - Context Switching – Troca de Contexto;

    - Latência de comunicação local;

    - Latência em sistema de arquivos (e manipulação destes) e memória

    virtual;

    - Largura de banda para comunicação local;

    - Latência de memória.

    19 IDLE: Stand-By . Equipamento em espera sem aplicação específica em operação.

  • 8/20/2019 Virtual Iza ç Ão

    41/86

      40

    O detalhamento completo de cada um dos subtestes realizados pode ser

    obtido, em uma máquina com o sistema operacional Linux  que possua o LMBench

    instalado, através do comando man lmbench , e não é o objetivo deste documento. O

    LMBench foi executado por aproximadamente 26 horas em cada máquina virtual até

    a obtenção do resultado. O resultado escrito devolvido pelo LMBench em cada host

    está anexo neste documento.

    A versão utilizada era a última disponível nos repositórios da distribuição

    adotada pelo grupo, e apesar de ser uma versão Alpha , não foi demonstrado

    qualquer sinal de instabilidade durante toda a realização dos testes citados.

    5.2.1 Manipulação de Processos

    O Gráfico 1 abaixo representa o comparativo entre o tempo de

    manipulação de processos em cada máquina virtual. Quanto menor o resultado

    obtido, maior a eficiência do virtualizador.

  • 8/20/2019 Virtual Iza ç Ão

    42/86

      41

    Gráfico 1 - Comparativo de Processos

    5.2.2 Operações com Números Inteiros

    O Gráfico 2 representa o comparativo de tempo para realização de cada

    uma das operações descritas utilizando números inteiros. Quanto menor o resultado

    obtido, maior a eficiência em cada máquina virtual.

  • 8/20/2019 Virtual Iza ç Ão

    43/86

      42

    Gráfico 2 - Operações com Inteiros

    5.2.3 Operações com Números fracionários (Floats )

    O Gráfico 3 representa o comparativo de tempo para realização de cada

    uma das operações descritas utilizando números fracionados (tipo float ). Quanto

    menor o resultado obtido, maior a eficiência em cada máquina virtual.

  • 8/20/2019 Virtual Iza ç Ão

    44/86

      43

    Gráfico 3 - Operações com Floats

  • 8/20/2019 Virtual Iza ç Ão

    45/86

      44

    5.2.4 Operações com Números Dobrados (Double )

    O Gráfico 4 representa o comparativo de tempo para realização de cadauma das operações descritas utilizando números dobrados (tipo double ). Quanto

    menor o resultado obtido, maior a eficiência em cada máquina virtual.

    Gráfico 4 - Operações com Doubles

  • 8/20/2019 Virtual Iza ç Ão

    46/86

      45

    5.2.5 Context Switching  – Troca de Contexto

    O Gráfico 5 abaixo representa o comparativo de tempo para realização detroca de contexto em cada uma das operações descritas. Quanto menor o resultado

    obtido, maior a eficiência em cada máquina virtual.

    Gráfico 5 - Context Switching

  • 8/20/2019 Virtual Iza ç Ão

    47/86

      46

    5.2.6 Latência para Comunicação Local

    O Gráfico 6 representa o comparativo de latência para comunicação local.Quanto menor o resultado obtido, maior a eficiência em cada máquina virtual.

    Gráfico 6 - Latência de Comunicação Local

    5.2.7 Latência de sistema de arquivos

    O Gráfico 7 representa o comparativo de sistema de arquivos. Quantomenor o resultado obtido, maior a eficiência em cada máquina virtual.

  • 8/20/2019 Virtual Iza ç Ão

    48/86

      47

    Gráfico 7 - Latência de Sistema de Arquivos

    5.2.8 Largura de banda para comunicação local

    O Gráfico 8 representa o comparativo entre a largura de banda para

    comunicação local de cada máquina virtual. Quanto maior o resultado obtido, maior

    a eficiência em cada virtualizador.

  • 8/20/2019 Virtual Iza ç Ão

    49/86

      48

    Gráfico 8 - Largura de Banda para Comunicação Local

    5.2.9 Latência de Memória

    O Gráfico 9 representa o comparativo entre a latência de memória de cadamáquina virtual. Quanto menor o resultado obtido, maior a eficiência em cada

    virtualizador.

  • 8/20/2019 Virtual Iza ç Ão

    50/86

      49

    Gráfico 9 - Comparativo de Latência de memória

    5.2.10 Média de Latência de Memória

    O Gráfico 10 representa o comparativo entre a latência média de memória

    de cada máquina virtual. Este dado é exibido imediatamente após a finalização da

    execução do LMBench . Quanto menor o resultado obtido, maior a eficiência em

    cada virtualizador.

  • 8/20/2019 Virtual Iza ç Ão

    51/86

      50

    Gráfico 10 - Média de Latência de Memória

    5.3 TRANSFERÊNCIA DE ARQUIVOS

    Foi realizada cópia de uma imagem de DVD  com 4GB através de um host de

    rede, utilizando NFS  (cliente Linux ) e posteriormente Samba (cliente Windows ).

  • 8/20/2019 Virtual Iza ç Ão

    52/86

      51

    5.3.1 SMB

    Utilizando o Samba não houve diferença de performance entre os trêsvirtualizadores. A imagem foi transferida do servidor virtualizado para o cliente

    Windows  físico em 12 minutos.

    5.3.2 NFS

    Ocorreu diferença de tempo ao realizar a transferência da mesma imagem de

    DVD   a partir do servidor virtualizado para o cliente Linux   físico. O Gráfico 11

    demonstra o tempo que cada uma das ferramentas demorou para realizar a cópia do

    arquivo. O log   da STDOUT 20 durante a transferência do arquivo está anexo neste

    documento. 

    20 STDOUT : Fluxo padrão de saída de texto no sistema operacional Linux . Exibido na tela por padrão.

  • 8/20/2019 Virtual Iza ç Ão

    53/86

      52

    Gráfico 11 - Transferência de Arquivos em NFS

    5.4 CODIFICAÇÃO DE VÍDEO

    Foi realizada a codificação de um vídeo com 55 minutos e 439MB, alterando a

    resolução para 800x362 e convertendo para o formato DivX   utilizando o software  

    transcode . Houve diferença de performance entre os virtualizadores, e o log   da

    STDOUT  está anexo neste documento.

  • 8/20/2019 Virtual Iza ç Ão

    54/86

      53

    Gráfico 12 - Codificação de vídeo

    5.5 BENCHMARK  DE SERVIDOR WEB

    O AB   faz parte da suíte Apache Web Server , e é recomendado para

    realização de benchmarks   de servidores web . Utilizando-o, foram realizadas duas

    sessões de testes no servidor Apache  de cada máquina virtual: Ambas com o total

    de 200.000 requisições. Porém, na primeira sessão foram disparadas 100

  • 8/20/2019 Virtual Iza ç Ão

    55/86

      54

    solicitações simultâneas por rajada, e na segunda sessão, 200 solicitações

    simultâneas por rajada.

    5.5.1 100 requisições por rajada

    Os Gráficos 13 e 14 comparam os tempos obtidos durante a realização da

    primeira sessão dos testes com o AB . Quanto menor a quantidade de tempo para

    atendimento de cada requisição, melhor a eficiência do virtualizador. Os logs  com as

    STDOUTs   das sessões dos três virtualizadores, que originaram os gráficos, estão

    anexos no documento.

    Na análise a seguir, o gráfico 13 e 15 (Connection Times ) analisa os

    seguintes aspectos:

    - Connect: Tempo estimado gasto para começar a atender a conexão.

    - Proccessing: Tempo estimado gasto para realizar o processamento de

    cada uma das conexões. 

    - Waiting: Tempo de espera gasto entre o último bit de requisição ser

    enviado do cliente, e o primeiro bit de resposta do servidor ser disparado para

    atendê-lo.

    - Total: Tempo total para atender a requisição.

  • 8/20/2019 Virtual Iza ç Ão

    56/86

     Gráfico 13 - Connection Times para 100 requisições por rajada

  • 8/20/2019 Virtual Iza ç Ão

    57/86

     Gráfico 14 - Porcentagem de Requisições por Tempo

  • 8/20/2019 Virtual Iza ç Ão

    58/86

      57

    5.5.2 200 requisições por rajada

    Os Gráficos 15 e 16 agora comparam os tempos obtidos durante a realizaçãoda segunda sessão dos testes com o AB . Quanto menor a quantidade de tempo

    para atendimento de cada requisição, melhor a eficiência do virtualizador. Os logs  

    com as STDOUTs  das sessões dos três virtualizadores, que originaram os gráficos,

    também estão anexos no documento.

    O detalhamento de cada modalidade foi citado no item 5.5.1.

  • 8/20/2019 Virtual Iza ç Ão

    59/86

    Gráfico 15 - Connection Times para 200 requisições por rajada

  • 8/20/2019 Virtual Iza ç Ão

    60/86

     Gráfico 16 - Porcentagem de Requisições por Tempo

  • 8/20/2019 Virtual Iza ç Ão

    61/86

      60

    6 CONSIDERAÇÕES FINAIS

    O VMware Server 2   obteve desempenho equilibrado nas modalidadestestadas pelo LMBench , mas demonstrou excelente performance ao trabalhar com

    arquivos grandes em rede. O mesmo também possui a melhor interface de

    administração, que pode ser acessada através do browser e garante a mesma

    funcionalidade do VMware Virtual Infrastructure Client , aplicação desktop da

    VMware Inc. para gerenciamento unificado das plataformas da empresa.

    O KVM  apresentou uma grande diferença entre os resultados obtidos parauso em produção e através da comparação de desempenho. Ele se sobressaiu em

    quase todas as modalidades do LMBench   mas deixou a desejar no uso em

    produção, demorando mais tempo que os outros virtualizadores em quase todos os

    testes realizados, principalmente no que tange a comunicação em rede. Este

    problema aparenta ser causado pelo legado de rede contido no código do QEMU ,

    utilizado para criação de dispositivos na máquina virtual. Porém, por ser o mais

    recente de todas as ferramentas testadas, mostrou estar no caminho certo para

    obter boa competência no futuro.

    A versão utilizada do Xen  foi a 3.0.3, a última disponível no repositório da

    distribuição escolhida pelo grupo para realização dos testes. A última versão do Xen  

    é a 3.3.0, que segundo o lançamento oficial, realizou grande avanço na parte de

    comunicação de rede e I/O . Os resultados alcançados poderiam ser diferentes caso

    a versão utilizada fosse a mais recente. Porém, esta versão ainda não foi

    considerada estável pelos desenvolvedores da distribuição adotada pelo grupo, e

    por isso não foi utilizada. Apesar disso, o Xen  obteve os melhores resultados para

    uso em produção comparado as outras ferramentas.

  • 8/20/2019 Virtual Iza ç Ão

    62/86

      61

    6.1 DIFICULDADES ENCONTRADAS

    Os testes originalmente foram planejados utilizando configurações dehardware   virtual diferentes das apresentadas neste documento: Cada máquina

    virtual, de acordo com o projeto original, funcionaria com dois processadores lógicos,

    onde os resultados apresentados seriam diferentes dos expostos neste documento.

    Porém, o KVM   demonstrou não suportar corretamente as máquinas

    virtuais com mais de um processador, e com a máquina virtual uma vez configurada

    para utilizar dois processadores lógicos (SMP 21

    ), a mesma se tornava instável eimprópria para uso comum, uso em produção e para realização de qualquer outro

    teste. De modo que, quando a máquina virtual não carregava incorretamente o

    sistema operacional, o sistema guest   travava devolvendo o chamado Kernel Panic

    após alguns minutos de uso banal.

    O Kernel Panic  é a falha irrecuperável de um sistema operacional Unix  ou

    Linux . Ela, geralmente, é apresentada em caso de falha de hardware  (nesse caso,

    virtual) ou exceção não tratada pelo sistema operacional. 

    Este comportamento foi relatado utilizando tanto a distribuição oficial

    adotada (CentOS   Linux   5.2 com kernel   2.6.18) quanto em outra distribuição sem

    finalidades acadêmicas e inapropriada para testes realizados (Fedora  9 com kernel  

    2.6.25).

    Por esse motivo, os testes que já haviam sido realizados com dois

    processadores tanto no VMware  Server  quanto no Xen , foram descartados visando

    a imparcialidade da comparação entre todas as ferramentas. Após o downgrade  de

    processador nas máquinas virtuais do Xen e do VMware Server , os testes foram

    refeitos e a máquina virtual executada pelo KVM   funcionou perfeitamente, sem

    nenhuma das instabilidades antes apresentadas.

    21 SMP: Symmetric Multi-Proccessing - Multi-processamento simétrico, procedimento que utiliza duasou mais CPUs.

  • 8/20/2019 Virtual Iza ç Ão

    63/86

      62

    O planejamento inicial deste documento também previa a utilização do

    VMware ESXi Server  como ferramenta da VMware Inc. em substituição ao VMware

    Server . Porém, o VMware ESXi Server   tem como exigência uma lista de hardware  

    compatível (HCL22 ) homologada pela empresa, e não foi possível a execução do

    VMware ESXi Server no equipamento utilizado nos testes, pelo fato do hardware  

    pelo possuído pelo grupo ter pouquíssima similaridade com o exigido para o produto.

    Por este motivo, foi utilizado o VMware Server 2   representando as ferramentas da

    VMware Inc., e que se demonstrou bastante estável durante toda a bateria de testes

    que o grupo realizou.

    6.2 LIMITAÇÕES

    Devido ao hardware  utilizado para o ambiente de teste ser um computador

    montado da plataforma x86 , só foram testadas ferramentas que funcionam na

    referida plataforma. Existem outras ferramentas de virtualização para uso específico,

    de propriedade de empresas como a Sun   e a IBM.  Como, por exemplo, os

    Conteiners   e Zones , do sistema operacional Solaris , ou as LPars   do sistema

    operacional AIX .

    6.3 EXPERIMENTOS FUTUROS

    Fica para um próximo experimento a realização dos mesmos testes

    utilizando um servidor de marca compatível com a HCL dos produtos VMware ESX

    Server e VMware ESXi Server, da VMware Inc., que são mais apropriados que o

    VMware Server  para a utilização em data-centers .

    22 HCL:Hardware  Compatible  List  – Lista de Hardware Compatível.

  • 8/20/2019 Virtual Iza ç Ão

    64/86

      63

    6.4 CONCLUSÕES

    Após abordada a origem da virtualização, foram realizados testes dedesempenho em máquinas virtuais análogas em hardware  e software , mantendo sua

    diferença apenas no virtualizador: Xen, VMware Server  e Linux KVM .

    Os resultados obtidos denotaram, para a maioria das modalidades

    testadas, a proximidade de desempenho entre cada uma das ferramentas de

    virtualização utilizadas neste documento.

    Isso demonstra que, com o atual avanço no suporte à virtualização via

    hardware  através das extensões Intel  VT  e AMD -V , e que são utilizadas pelos três

    virtualizadores, a proximidade entre as três ferramentas é bastante evidente. Ambas

    as ferramentas analisadas se sobressaíram em determinados testes, e o grupo

    elegeu ao Xen   como melhor custo x benefício para virtualização de servidores

    dentre os  analisados. Porém, cabe ao administrador de sistemas escolher a que

    mais lhe aprouver.

  • 8/20/2019 Virtual Iza ç Ão

    65/86

      64

    REFERÊNCIAS BIBLIOGRÁFICAS

    APR Soluções. Disponível em:http://www.compaq.com.br/pyme/solucoes/apr_solucoes_01.html. Acesso em:21set.2008.

    ATLAS Computer (Manchester). Disponível em:http://en.wikipedia.org/wiki/Atlas_Computer_(Manchester). Acesso em: 30 set.2008.

    CAMBRIDGE, U.K. A State of Xen: Virtualization from PDAs to SuperComputers. [2008]. Disponível em:. Acesso em: 12nov.2008.

    GOLDEN, Bernard; SCHEFFY, Clark. Virtualization for Dummies, Sun AMDSpecial Edition. Indianapolis: Wiley Publishing INC, 2008.

    GOMES, Lee. VMware Brings Freedom of Choice to Your Desktop. [1999].Disponível em: .Acesso em: 14 out.2008.HADDON, Tom. Hardware emulation with QEMU. [2005]. Disponível em:. Acesso em: 06 out.2008.

    JONES, M. Tim. Virtual Linux. [2006]. Disponível em: .Acesso em: 01ago.2008.

    KVM kernel-based Virtualization driver. Disponível em:http://docs.huihoo.com/kvm/kvm-white-paper.pdf. Acesso em: 21 set.2008.

    MOREIRA, Daniela. Virtualização: rode vários sistemas operacionais na mesmamáquina. [2006]. Disponível em:. Acesso em: 21 set.2008.

    NSPLUGINWRAPPER. Disponível em:http://gwenole.beauchesne.info/en/projects/nspluginwrapper. Acesso em: 08out.2008.

    OITO principais desafios da virtualização de data centers. Disponível em:http://idgnow.uol.com.br/computacao_corporativa/2007/04/27/idgnoticia.2007-04-27.3291222006/IDGNoticiaPrint_view/ . Acesso em: 21 out.2008.

    SINGH, Amit. Na Introduction to Virtualization. [2008]. Diponível em:

    . Acesso em: 21 set.2008.

  • 8/20/2019 Virtual Iza ç Ão

    66/86

      65

    SIQUEIRA, Luciano; BRENDEL, Jeans-Chistoph. Linux Pocket Pro –Virtualização. São Paulo: Linux New Media, 2007.

    SUN xVM Virtualbox. Disponível em:

    http://download.virtualbox.org/virtualbox/2.0.4/UserManual.pdf. Acesso em: 12out.2008.

    VIRTUALIZAÇÃO de Servidores. Disponível em:http://www.intel.com/portugues/business/technologies/virtualization.htm. Acesso em:21 set.2008.

    VIRTUALIZATION history. Disponível em:http://www.vmware.com/overview/history.html. Acesso em: 30 set.2008.

    VMWARE Datasheet ESXI. Disponível em:

    http://www.vmware.com/files/pdf/vmware_esxi_datasheet.pdf. Acesso em: 12out.2008.

    VMWARE Server. Disponível em:http://www.vmware.com/br/pdf/server_datasheet_br.pdf. Acesso em: 12 out.2008.

    XEN Interface’s Manual. Disponível em: http://www.xen.org/files/xen_interface.pdf .Acesso em: 12 set.2008.

    XEN Manual do usuário. Disponível em: http://bits.xensource.com/Xen/docs/user.pdf . Acesso em: 12 set.2008.

  • 8/20/2019 Virtual Iza ç Ão

    67/86

      66

    ANEXO A: ARQUIVO DE CONFIGURAÇÃO PARA INSTALAÇÃO COM XEN

    Tal arquivo de configuração foi usado para instalação CentOS 5.2 no Xen.Primeiramente foram criado os HDs virtuais, com o comando:

    # dd if=/dev/zero of=/var/xen/Domain1.img bsize=1GB count=8

    # dd if=/dev/zero of=/var/xen/Domain1swap.img bsize=1024

    count=512

    Depois, foi elaborado um arquivo de configuração para efetuar ainstalação do CentOS como DomainU paravirtualizado do Xen.

    kernel = "/mnt/cdrom/xen/vmlinuz"

    ramdisk = "/mnt/cdrom/xen/initrd.img"

    memory = "1024"

    name = "Domain1"

    disk = ['file:/var/xen/Domain1.img,xvda,w',

    'file:/var/xen/Domain1swap.img,xvdb,w']root = '/dev/xvda1 ro'

    vif = [ 'bridge=xenbr0' ]

    vcpus = 2

    vfb = [ 'type=vnc, vncunused=1' ]

    extra = 'video=xenfb'

    Então, esse arquivo foi salvo com o nome de “Domain1-inst.conf”. Após

    isso, ele foi inicializado com o comando:

    # xm create –c Domain1-inst.conf

  • 8/20/2019 Virtual Iza ç Ão

    68/86

      67

    ANEXO B: ARQUIVO DE CONFIGURAÇÃO APÓS A INSTALAÇÃO COM XEN

    Após instalação do sistema operacional, foi criado um novo arquivo de

    configuração para o host para que este fosse inicializado.

    memory = "1024"

    bootloader = "/usr/bin/pygrub"

    name = "Domain1"disk = ['file:/var/xen/Domain1.img,xvda,w',

    'file:/var/xen/Domain1swap.img,xvdb,w']

    root = '/dev/xvda1 ro'

    vif = [ 'bridge=xenbr0' ]

    vcpus = 1

    vfb = [ 'type=vnc, vncunused=1' ]

    extra = 'video=xenfb'

    Então, esse arquivo foi salvo com o nome de “Domain1-post-inst.conf”.Após isso, ele foi startado com o comando:

    # xm create –c Domain1-post-inst.conf

  • 8/20/2019 Virtual Iza ç Ão

    69/86

      68

    ANEXO C: CRIAÇÃO DE MÁQUINA VIRTUAL COM KVM

    Procedimento adotado para instalação do CentOS na máquina virtual do

    Linux KVM. Primeiramente foi ativado o módulo responsável pela virtualização:

    # modprobe kvm

    # modprobe kvm_intel

    Após isso, foram criados os HDs  virtuais, com os comandos:

    # dd if=/dev/zero of=/var/kvm/hd01.img bsize=1GB count=8

    # dd if=/dev/zero of=/var/kvm/swap.img bsize=1024 count=512

    Por último, foi executado o software com a linha:

    # QEmu-kvm -usb -hda /var/kvm/hd01.img -hdb \

    /var/kvm/swap.img -boot c -net nic \

    -net tap,script=/etc/QEmu-kvm-ifup -m 1024 -smp 1

  • 8/20/2019 Virtual Iza ç Ão

    70/86

      69

    ANEXO D: REDE BRIDGE DO QEMU-KVM

    Criado o script /etc/QEmu-kvm-ifup com a seguinte configuração:

    #!/bin/sh

    set -x

    switch=virbr0

    if [ -n "$1" ];then

    /usr/sbin/tunctl -u `whoami` -t $1/sbin/ip link set $1 up

    sleep 0.5s

    /usr/sbin/brctl addif $switch $1

    exit 0

    else

    echo "Error: no interface specified"

    exit 1

    fi

    Essa configuração bastou para que a máquina virtual KVM adquirisse um

    IP e comunicação com a rede externa, a mesma da máquina física.

  • 8/20/2019 Virtual Iza ç Ão

    71/86

      70

    ANEXO E: SAÍDA DE EXECUÇÃO DO LBENCH NO KVM

    L M B E N C H 3 . 0 S U M M A R Y

    ------------------------------------

    (Alpha software, do not distribute)

    Basic system parameters

    ------------------------------------------------------------------------------

    Host OS Description Mhz tlb cache mem scal

    pages line par load

    bytes

    --------- ------------- ----------------------- ---- ----- ----- ------ ----

    KVM.timm. Linux 2.6.18- x86_64-linux-gnu 2136 8 128 1.3000 1

    Processor, Processes - times in microseconds - smaller is better

    ------------------------------------------------------------------------------

    Host OS Mhz null null open slct sig sig fork exec sh

    call I/O stat clos TCP inst hndl proc proc proc

    --------- ------------- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ----

    KVM.timm. Linux 2.6.18- 2136 0.38 0.44 1.41 2.36 4.15 0.51 9.58 1066 2960 7714

    Basic integer operations - times in nanoseconds - smaller is better

    -------------------------------------------------------------------

    Host OS intgr intgr intgr intgr intgr

    bit add mul div mod

    --------- ------------- ------ ------ ------ ------ ------

    KVM.timm. Linux 2.6.18- 0.5000 0.0100 0.2300 16.5 10.3

    Basic uint64 operations - times in nanoseconds - smaller is better

    ------------------------------------------------------------------

    Host OS int64 int64 int64 int64 int64

    bit add mul div mod

    --------- ------------- ------ ------ ------ ------ ------

    KVM.timm. Linux 2.6.18-

    Basic float operations - times in nanoseconds - smaller is better

    -----------------------------------------------------------------

    Host OS float float float float

    add mul div bogo

    --------- ------------- ------ ------ ------ ------

    KVM.timm. Linux 2.6.18- 1.4800 2.0000 10.2 8.4800

    Basic double operations - times in nanoseconds - smaller is better

    ------------------------------------------------------------------

    Host OS double double double double

    add mul div bogo

    --------- ------------- ------ ------ ------ ------

    KVM.timm. Linux 2.6.18- 1.4700 2.4900 17.0 15.5

    Context switching - times in microseconds - smaller is better

    -------------------------------------------------------------------------

    Host OS 2p/0K 2p/16K 2p/64K 8p/16K 8p/64K 16p/16K 16p/64K

    ctxsw ctxsw ctxsw ctxsw ctxsw ctxsw ctxsw

    --------- ------------- ------ ------ ------ ------ ------ ------- -------KVM.timm. Linux 2.6.18- 4.5600 5.0800 4.6800 5.9200 5.4000 5.71000 6.20000

  • 8/20/2019 Virtual Iza ç Ão

    72/86

      71

    *Local* Communication latencies in microseconds - smaller is better

    ---------------------------------------------------------------------

    Host OS 2p/0K Pipe AF UDP RPC/ TCP RPC/ TCP

    ctxsw UNIX UDP TCP conn

    --------- ------------- ----- ----- ---- ----- ----- ----- ----- ----

    KVM.timm. Linux 2.6.18- 4.560 11.1 19.1 23.1 29.6 28.1 34.2 83.

    *Remote* Communication latencies in microseconds - smaller is better

    ---------------------------------------------------------------------

    Host OS UDP RPC/ TCP RPC/ TCP

    UDP TCP conn

    --------- ------------- ----- ----- ----- ----- ----

    KVM.timm. Linux 2.6.18-

    File & VM system latencies in microseconds - smaller is better

    -------------------------------------------------------------------------------

    Host OS 0K File 10K File Mmap Prot Page 100fd

    Create Delete Create Delete Latency Fault Fault selct

    --------- ------------- ------ ------ ------ ------ ------- ----- ------- -----KVM.timm. Linux 2.6.18- 10.8 5.7202 30.0 13.4 27.5K 3.798 12.1 2.258

    *Local* Communication bandwidths in MB/s - bigger is better

    -----------------------------------------------------------------------------

    Host OS Pipe AF TCP File Mmap Bcopy Bcopy Mem Mem

    UNIX reread reread (libc) (hand) read write

    --------- ------------- ---- ---- ---- ------ ------ ------ ------ ---- -----

    KVM.timm. Linux 2.6.18- 1789 911. 1210 2102.2 3353.8 718.3 723.1 2604 842.5

    Memory latencies in nanoseconds - smaller is better

    (WARNING - may not be correct, check graphs)

    ------------------------------------------------------------------------------

    Host OS Mhz L1 $ L2 $ Main mem Rand mem Guesses--------- ------------- --- ---- ---- -------- -------- -------

    KVM.timm. Linux 2.6.18- 2136 1.4740 6.8950 87.2 164.7

    x86_64-linux-gnu: lat_mem_rand = 164.651

  • 8/20/2019 Virtual Iza ç Ão

    73/86

      72

    ANEXO F: SAÍDA DE EXECUÇÃO DO LBENCH NO XEN

    L M B E N C H 3 . 0 S U M M A R Y------------------------------------

    (Alpha software, do not distribute)

    Basic system parameters

    ------------------------------------------------------------------------------

    Host OS Description Mhz tlb cache mem scal

    pages line par load

    bytes

    --------- ------------- ----------------------- ---- ----- ----- ------ ----

    Dom01.tim Linux 2.6.18- x86_64-linux-gnu 2136 7 16 1.1700 1

    Processor, Processes - times in microseconds - smaller is better

    ------------------------------------------------------------------------------Host OS Mhz null null open slct sig sig fork exec sh

    call I/O stat clos TCP inst hndl proc proc proc

    --------- ------------- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ----

    Dom01.tim Linux 2.6.18- 2136 1.35 1.49 3.44 5.79 4.82 1.27 3.15 755. 2624 5888

    Basic integer operations - times in nanoseconds - smaller is better

    -------------------------------------------------------------------

    Host OS intgr intgr intgr intgr intgr

    bit add mul div mod

    --------- ------------- ------ ------ ------ ------ ------

    Dom01.tim Linux 2.6.18- 0.8300 0.0200 0.2700 18.7 9.4300

    Basic uint64 operations - times in nanoseconds - smaller is better------------------------------------------------------------------

    Host OS int64 int64 int64 int64 int64

    bit add mul div mod

    --------- ------------- ------ ------ ------ ------ ------

    Dom01.tim Linux 2.6.18-

    Basic float operations - times in nanoseconds - smaller is better

    -----------------------------------------------------------------

    Host OS float float float float

    add mul div bogo

    --------- ------------- ------ ------ ------ ------

    Dom01.tim Linux 2.6.18- 1.7100 2.1400 10.3 8.7500

    Basic double operations - times in nanoseconds - smaller is better

    ------------------------------------------------------------------

    Host OS double double double double

    add mul div bogo

    --------- ------------- ------ ------ ------ ------

    Dom01.tim Linux 2.6.18- 1.4600 2.4300 16.6 15.6

    Context switching - times in microseconds - smaller is better

    -------------------------------------------------------------------------

    Host OS 2p/0K 2p/16K 2p/64K 8p/16K 8p/64K 16p/16K 16p/64K

    ctxsw ctxsw ctxsw ctxsw ctxsw ctxsw ctxsw

    --------- ------------- ------ ------ ------ ------ ------ ------- -------

    Dom01.tim Linux 2.6.18- 1.5500 3.4200 7.2900 6.9500 8.0500 6.83000 3.46000

    *Local* Communication latencies in microseconds - smaller is better

    ---------------------------------------------------------------------

  • 8/20/2019 Virtual Iza ç Ão

    74/86

      73

    Host OS 2p/0K Pipe AF UDP RPC/ TCP RPC/ TCP

    ctxsw UNIX UDP TCP conn

    --------- ------------- ----- ----- ---- ----- ----- ----- ----- ----

    Dom01.tim Linux 2.6.18- 1.550 15.6 37.2 21.6 29.8 25.2 35.9 82.

    *Remote* Communication latencies in microseconds - smaller is better---------------------------------------------------------------------

    Host OS UDP RPC/ TCP RPC/ TCP

    UDP TCP conn

    --------- ------------- ----- ----- ----- ----- ----

    Dom01.tim Linux 2.6.18-

    File & VM system latencies in microseconds - smaller is better

    -------------------------------------------------------------------------------

    Host OS 0K File 10K File Mmap Prot Page 100fd

    Create Delete Create Delete Latency Fault Fault selct

    --------- ------------- ------ ------ ------ ------ ------- ----- ------- -----

    Dom01.tim Linux 2.6.18- 15.0 12.0 61.8 27.9 13.3K 1.516 4.18400 4.054

    *Local* Communication bandwidths in MB/s - bigger is better

    -----------------------------------------------------------------------------

    Host OS Pipe AF TCP File Mmap Bcopy Bcopy Mem Mem

    UNIX reread reread (libc) (hand) read write

    --------- ------------- ---- ---- ---- ------ ------ ------ ------ ---- -----

    Dom01.tim Linux 2.6.18- 1789 919. 1421 1980.2 3440.3 693.4 699.1 3183 859.5

    Memory latencies in nanoseconds - smaller is better

    (WARNING - may not be correct, check graphs)

    ------------------------------------------------------------------------------

    Host OS Mhz L1 $ L2 $ Main mem Rand mem Guesses

    --------- ------------- --- ---- ---- -------- -------- -------

    Dom01.tim Linux 2.6.18- 2136 1.4120 6.7260 78.7 145.6

  • 8/20/2019 Virtual Iza ç Ão

    75/86

      74

    ANEXO G: SAÍDA DE EXECUÇÃO DO LBENCH NO VMWARE SERVER

    L M B E N C H 3 . 0 S U M M A R Y------------------------------------

    (Alpha software, do not distribute)

    Basic system parameters

    ------------------------------------------------------------------------------

    Host OS Description Mhz tlb cache mem scal

    pages line par load

    bytes