tcc-lucas timm florao

Upload: felipe-mendes

Post on 11-Jul-2015

832 views

Category:

Documents


0 download

TRANSCRIPT

FACULDADE DE TECNOLOGIA SENAI DE DESENVOLVIMENTO GERENCIAL - FATESG CURSO SUPERIOR EM TECNOLOGIA EM REDE DE COMPUTADORES

Diogo Ezdio da Silva Gilberto Lima de Oliveira Leandro de Sousa Rangel Lucas Timm Floro

VIRTUALIZAO COMO ALTERNATIVA PARA AMBIENTE DE SERVIDORES

Goinia 2008

Diogo Ezdio da Silva Gilberto Lima de Oliveira Leandro de Sousa Rangel Lucas Timm Floro

VIRTUALIZAO COMO ALTERNATIVA PARA AMBIENTE DE SERVIDORES

Trabalho de Concluso de Curso TCC apresentado Faculdade de Tecnologia SENAI DE Desenvolvimento Gerencial FATESG, para a obteno do ttulo de Graduado em Tecnologia em Redes de Computadores. Orientador: Prof. Msc. Mauricio Severich

Goinia 2008

CURSO SUPERIOR EM TECNOLOGIA EM REDE DE COMPUTADORES

Diogo Ezdio da Silva Gilberto Lima de Olivera Leandro de Sousa Rangel Lucas Timm Floro

Virtualizao como alternativa para ambiente de servidores

Trabalho de Concluso de Curso TCC apresentado Faculdade de Tecnologia SENAI DE Desenvolvimento Gerencial FATESG, para a obteno do ttulo de Graduado em Tecnologia em Redes de Computadores.

Aprovada em _______ de _____________________________ de 2008

Banca Examinadora

Professor Msc. Maurcio Severich

Professor Msc. Rafael Leal Martins

Professora Msc. Ana Flvia Marinho de Lima Garrati

Dedicamos este trabalho de concluso de curso a todos os nossos familiares que nos apoiaram, FATESG por ter acreditado no Curso Superior em Tecnologia em Rede de Computadores e ao orientador, Professor que, com dedicao e conhecimento, orientou-nos no decorrer deste trabalho.

Agradecemos, primeiramente a DEUS, que nos deu sade e disposio nestes anos, aos colegas que contriburam e incentivaram para realizao desse trabalho e tambm aos professores que com sabedoria nos acompanharam nesses anos em que decorreu o curso e, em especial ao nosso orientador que nos acompanhou em todas as etapas desse trabalho. Tambm aos amigos e a famlia pela compreenso de nossa ausncia para a elaborao do mesmo.

Uma mente que se abre a uma nova idia jamais volta ao seu tamanho original. (Albert Einstein)

RESUMO

Este trabalho apresenta uma viso geral da virtualizao para uso em servidores. A virtualizao perante a tecnologia da informao consiste em utilizar um nico host fsico para a criao de dois ou mais sistemas operacionais que funcionam simultaneamente. Neste documento, a virtualizao foi utilizada para criao de um ambiente computacional de servidores comparando trs softwares utilizados para tal finalidade: O Xen, Vmware Server e Linux KVM. Testes foram realizados visando obter resultados prticos da virtualizao de servidores como forma de diminuir custos em TI atravs do melhor aproveitamento de hardware, bem como o detalhamento de informaes sobre esta tecnologia que se torna a cada dia mais presente no cenrio de TI das grandes empresas.

PALAVRAS-CHAVE: Virtualizao, Xen, VMware, Linux

ABSTRACT

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

KEY-WORDS: Virtualization, Xen, Vmware, Linux

LISTA DE ILUSTRAES

Figura 1: Emulao de Hardware..............................................................................22 Figura 2: Virtualizao Completa ..............................................................................23 Figura 3: Hypervisor ..................................................................................................24 Figura 4: Instruction Set Virtualization.......................................................................25 Figura 5: Linux KVM..................................................................................................31

LISTA DE GRFICOS

Grfico 1 - Comparativo de Processos......................................................................41 Grfico 2 - Operaes com Inteiros...........................................................................42 Grfico 3 - Operaes com Floats.............................................................................43 Grfico 4 - Operaes com Doubles .........................................................................44 Grfico 5 - Context Switching ....................................................................................45 Grfico 6 - Latncia de Comunicao Local..............................................................46 Grfico 7 - Latncia de Sistema de Arquivos ............................................................47 Grfico 8 - Largura de Banda para Comunicao Local ...........................................48 Grfico 9 - Comparativo de Latncia de memria .....................................................49 Grfico 10 - Mdia de Latncia de Memria..............................................................50 Grfico 11 - Transferncia de Arquivos em NFS.......................................................52 Grfico 12 - Codificao de vdeo .............................................................................53 Grfico 13 - Connection Times para 100 requisies por rajada...............................55 Grfico 14 - Porcentagem de Requisies por Tempo..............................................56 Grfico 15 - Connection Times para 200 requisies por rajada...............................58 Grfico 16 - Porcentagem de Requisies por Tempo..............................................59

LISTA DE ABREVIATURAS SIGLAS E SMBOLOS

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 Nmero de tamanho duplo FLOAT Nmero fracionado (com ponto flutuante) HCL - Hardware Compatible List - Lista de Hardware Compatvel I/O Input/Output IDC International Data Corporation INTEGER Nmero 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 mquina 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 Simtrico. SNMP Simpe Network Manage Ment Protocol SPARC Scalable Processor Architecture USB - Universal Serial Bus

VMM Virtual Machine Monitor Vmotion Migrao viva VT - Intel Virtualization Technology Tecnologia de Virtualizao Intel

SUMRIO

SUMRIO .................................................................................................................12 1 INTRODUO......................................................................................................15 1.1 OBJETIVO..........................................................................................................16 2 METODOLOGIA...................................................................................................17 2.1 DETALHAMENTO TERICO.............................................................................17 2.2 AMBIENTE DE TESTES REALIZADOS.............................................................17 3 VIRTUALIZAO.................................................................................................18 3.1 A ORIGEM DA VIRTUALIZAO ......................................................................18 3.1.1 Viso Histrica da Virtualizao ..................................................................18 3.1.2 A Virtualizao na Plataforma X86...............................................................19 3.2 A IMPORTNCIA DA VIRTUALIZAO ............................................................20 3.3 TIPOS DE VIRTUALIZAO .............................................................................21 3.3.1 A Emulao de Hardware .............................................................................21 3.3.2 A Virtualizao Completa .............................................................................22 3.3.3 A Paravirtualizao .......................................................................................24 3.3.4 Instruction Set Virtualization Virtualizao de Instrues .....................25 4 IMPLEMENTAES PARA VIRTUALIZAO ...................................................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

4.8 QUADRO COMPARATIVO DAS FERRAMENTAS ............................................36 5 EXPERIMENTOS E RESULTADOS.....................................................................38 5.1.1 Descrio do Ambiente ................................................................................38 5.1.2 Anlise de Desempenho...............................................................................38 5.2 LMBENCH ..........................................................................................................39 5.2.1 Manipulao de Processos ..........................................................................40 5.2.2 Operaes com Nmeros Inteiros ...............................................................41 5.2.3 Operaes com Nmeros fracionrios (Floats) .........................................42 5.2.4 Operaes com Nmeros Dobrados (Double)............................................44 5.2.5 Context Switching Troca de Contexto......................................................45 5.2.6 Latncia para Comunicao Local ..............................................................46 5.2.7 Latncia de sistema de arquivos .................................................................46 5.2.8 Largura de banda para comunicao local.................................................47 5.2.9 Latncia de Memria.....................................................................................48 5.2.10 Mdia de Latncia de Memria ....................................................................49 5.3 TRANSFERNCIA DE ARQUIVOS ...................................................................50 5.3.1 SMB ................................................................................................................51 5.3.2 NFS .................................................................................................................51 5.4 CODIFICAO DE VDEO.................................................................................52 5.5 BENCHMARK DE SERVIDOR WEB..................................................................53 5.5.1 100 requisies por rajada ...........................................................................54 5.5.2 200 requisies por rajada ...........................................................................57 6 CONSIDERAES FINAIS..................................................................................60 6.1 DIFICULDADES ENCONTRADAS.....................................................................61 6.2 LIMITAES......................................................................................................62 6.3 EXPERIMENTOS FUTUROS.............................................................................62 6.4 CONCLUSES ..................................................................................................63 REFERNCIAS BIBLIOGRFICAS.........................................................................64 ANEXO A: ARQUIVO DE CONFIGURAO PARA INSTALAO COM XEN .....66 ANEXO B: ARQUIVO DE CONFIGURAO APS A INSTALAO COM XEN..67 ANEXO C: CRIAO DE MQUINA VIRTUAL COM KVM ....................................68 ANEXO D: REDE BRIDGE DO QEMU-KVM............................................................69 ANEXO E: SADA DE EXECUO DO LBENCH NO KVM ....................................70 ANEXO F: SADA DE EXECUO DO LBENCH NO XEN.....................................72

ANEXO G: SADA DE EXECUO DO LBENCH NO VMWARE SERVER............74 ANEXO H: SADA DE EXECUO DA CODIFICAO DE VIDEO NO KVM........76 ANEXO I: SADA DE EXECUO DA CODIFICAO DE VIDEO NO XEN..........77 ANEXO J: SADA DE EXECUO DA CODIFICAO DE VIDEO NO VMWARE 78 ANEXO K: SADA DE EXECUO DO AB NO KVM..............................................79 ANEXO L: SADA DE EXECUO DO AB NO XEN...............................................81 ANEXO M: SADA DE EXECUO DO AB NO VMWARE SERVER .....................83 ANEXO N: SADA DE EXECUO DAS CPIAS DE ARQUIVO POR NFS..........85

15

1

INTRODUO

Atravs de uma definio livre, virtualizao o processo de executar vrios sistemas operacionais em um nico equipamento. Uma mquina virtual um ambiente operacional completo que se comporta como se fosse um computador independente. Com a virtualizao, um servidor pode manter vrios sistemas operacionais em uso.

Segundo GOLDEN & SCHEFFY (2008), a criao de um ambiente data center demanda recursos, que devem ser bem direcionados. A cada servidor adquirido necessria a adequao do espao fsico, verificao do circuito eltrico de alimentao e recabeamento nos ativos de rede, assim como a avaliao do custo do equipamento com gasto de energia e manuteno por toda a sua vida til. Porm, uma vez estabelecido um ambiente de servidores, as circunstncias podem levar a necessidade de ampliao do mesmo, o que pode gerar transtornos caso no sejam analisados os itens acima.

Atravs da virtualizao, esta ampliao pode ser obtida sem a necessidade real da aquisio de novo equipamento em hardware. Como conseqncia, haveria a possibilidade de colocar vrios servidores virtuais em operao na mesma mquina fsica, usando os recursos de hardware de forma otimizada e equilibrada. Assim, pode-se economizar gastos com energia, refrigerao e espao fsico.Atualmente, muitos data centers possuem servidores que utilizam apenas 10 ou 15% da capacidade total de processamento. Em outras palavras, 85 ou mais de 90% de toda a capacidade de cada servidor est em desuso. Entretanto, ainda que um servidor esteja com baixa utilizao de recursos, ele continua ocupando espao fsico e desperdiando energia eltrica, gerando os mesmos custos operacionais que os de uma mquina com 100% de utilizao em tempo total. (GOLDEN & SCHEFFY, 2008, p. 3) A primeira e mais bvia vantagem da virtualizao a reduo de custos. Com apenas uma mquina que possua os recursos suficientes possvel montar uma estrutura com vrios servidores virtuais, dispensando a aquisio de vrias mquinas. Operacionalmente tambm h vantagens, pois a administrao se torna centralizada e o tempo total de manuteno inevitavelmente reduzido. (SIQUEIRA, 2007, p. 4)

16

O pensamento de GOLDEN & SCHEFFY (2008) assinala tambm estar de acordo com a proposio de SIQUEIRA (2007), quando cita que alm de uma grande conquista na reduo de custos em data centers, a virtualizao oferece a oportunidade de reduzir largamente o custo com a administrao dos sistemas, pois reduzir a quantidade de equipamentos fsicos que necessitam de administrao. Vrias tarefas associadas a administrao dos servidores (como a instalao de sistemas operacionais, aplicao de patches e a realizao de backups) continuaro existindo em ambientes virtualizados, mas podero desaparecer nos servidores fsicos.

A virtualizao proporciona novos recursos no convencionais, como a migrao em tempo real, que permite que um sistema virtualizado mude seu host hospedeiro sem comprometer a produo, recurso imprescindvel para ambientes crticos com requerimento de alta disponibilidade.

1.1

OBJETIVO

A realizao deste trabalho tem como objetivo principal explorar a virtualizao de servidores como forma de obter melhor aproveitamento de hardware, comparando trs softwares para tal finalidade: VMware Server, Xen Hypervisor e Linux KVM.

17

2

METODOLOGIA

A construo do trabalho ocorreu atravs do levantamento bibliogrfico a respeito da origem, histrico e tipos existentes de virtualizao, e de vrios softwares utilizados com essa finalidade.

Destes softwares, foram escolhidos trs para experimentao e avaliao de desempenho. Eles foram testados individualmente em cada modalidade.

Assim, a construo do trabalho foi feita em duas etapas principais, descritas abaixo:

2.1

DETALHAMENTO TERICO

Foram identificados conceitos tericos sobre o assunto, bem como o histrico da virtualizao desde sua primeira utilizao. Promoveu-se os

levantamentos de informaes tcnicas sobre alguns tipos de virtualizao, 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 produo, para o qual foram criadas mquinas virtuais utilizando os softwares VMware Server, Xen Hypervisor e Linux KVM, nas quais sero executados testes com diferentes tipos de cargas simulando o uso prtico das mesmas. Mais detalhes sobre o ambiente,

consulte o item 5.1.1 Descrio do Ambiente.

18

3

VIRTUALIZAO

3.1

A ORIGEM DA VIRTUALIZAO

O grande foco da virtualizao, atualmente, a chamada virtualizao de servidores, ou a hospedagem de mltiplos e independentes sistemas operacionais em um nico computador fsico. Esta seo discorre sobre as razes deste procedimento.

3.1.1 Viso Histrica da Virtualizao

O conceito de virtualizao antigo: Data os anos 60, com o uso mais precoce realizado no antigo IBM 7044 CTSS (Compatible Time-Share System Sistema Compatvel com Compartilhamento de Tempo); Segundo JONES (2006) este equipamento foi denominado "Projeto Atlas", oriundo de um estudo realizado em 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 implementao de chamadas supervisoras.

O sistema operacional deste mainframe (na poca chamado "Supervisor") executava duas mquinas virtuais, uma para o sistema e uma para execuo de programas, servindo de base para outros computadores que viriam aps ele.

Assim, com base nesta tecnologia, em 1966 foi lanado o mainframe IBM System/360 modelo 67, onde o hardware do equipamento era inteiramente acessado atravs de uma interface chamada VMM (Virtual Machine Monitor). O VMM funcionava diretamente no hardware bsico do equipamento, permitindo ento a execuo de mquinas virtuais. Cada mquina virtual poderia ser uma nova instncia do mesmo sistema operacional base em prvia execuo.

19

Com essa funcionalidade, o antigo termo "Supervisor" foi ento denominado "Hypervisor". Ou seja, um software que prov ambiente de virtualizao para o sistema operacional rodando acima dele.

No incio da dcada de 70, a IBM anunciou a srie de mainframes System/370, e em 1972 anunciou o sistema operacional VM/370, que permitia a criao de mltiplas mquinas virtuais para os mainframes desta srie. 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 srie System/Z, e mantm compatibilidade total com os aplicativos desenvolvidos ainda para o System/370.

3.1.2 A Virtualizao na Plataforma X86

Segundo a VMware Inc. (2008), a virtualizao perdeu foras nas dcadas de 80/90 devido a criao de novas aplicaes cliente/servidor e do declnio 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 ascenso da plataforma Linux nos servidores, assim como a adoo do sistema operacional Windows em desktops e posteriormente em alguns servidores nos anos 90, acabaram por consolidar a plataforma x86 como 1 alternativa vivel para uso na virtualizao. (VMware Inc. 2008)

Os mainframes tinham grande capacidade de processamento, o que no existia no incio da ascenso da plataforma x86. Os servidores x86 tambm no eram projetados com foco em virtualizao, como os mainframes foram nas dcadas passadas (e so at os dias atuais). Assim, de acordo com a IDC (International Data Corporation, [1999?] apud VMware Inc, 2008) em cada implementao de algum servidor x86 tpico, 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

Contedo disponvel no endereo http://www.vmware.com/overview/history.html

20

utilizava-se uma nica determinada aplicao, visando garantir boa margem de risco contra problemas que possam comprometer a produo.

Segundo GOLDEN & SCHEFFY (2008), a virtualizao quebra o molde uma aplicao, um servidor, pois veio para suportar vrias aplicaes em um s sistema fsico. Ento, em 1999, a VMware Inc. introduziu a virtualizao na plataforma x86 como uma maneira mais eficiente para utilizar o equipamento desta plataforma, aproveitando servidores x86 de propsito 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 IMPORTNCIA DA VIRTUALIZAO

De uma perspectiva empresarial, existem muitas razes para utilizar a virtualizao, principalmente na chamada Consolidao de Servidores. Ao virtualizar determinado nmero de sistemas sub-utilizados em um nico servidor fsico, voc economizar espao em estrutura fsica, espao em disco, refrigerao, energia e centralizar o gerenciamento.

Para determinar quais servidores podem ou no ser virtualizados, deve-se fazer uma avaliao de recursos utilizando-se de ferramentas como MRTG2 ou Cacti3 (ambos utilizam SNMP4) 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 fsico tambm ficar sobrecarregado, possvel migrar determinado servidor virtual para outro servidor fsico com o mesmo em produo sem necessidade de reboot. Assim, pode ser feito o balanceamento de carga entre vrios servidores fsicos hospedeiros sem afetar o funcionamento das mquinas virtuais.MRTG: Multi-Router Traffic Grapher. Software utilizado para gerar grficos de determinados equipamentos. 3 CACTI: Software utilizado para gerao de grfico e monitoramento de equipametnos. 4 SNMP: Simple Network Management Protocol, Protocolo Simples para Gerenciamento de Redes. Protocolo utilizado para obter informaes de dispositivos que o suportem para utilizao por outras aplicaes.2

21

A virtualizao tambm importante ao analisarmos a redundncia em data centers, item importantssimo em ambientes 24 x 7 (24 horas por dia, sete dias da semana). Com a migrao em tempo real, uma vez identificada a possibilidade de falha de determinada mquina fsica hospedeira (quebra de espelhamento, fonte queimando, memria despejando etc), bastaria migrar as mquinas virtuais para outros servidores fsicos. Porm, se acontecer alguma falha no esperada em algum servidor hospedeiro, todas as mquinas virtuais daquele equipamento podem ser afetadas. Exemplo, se todas as fontes de um servidor queimarem ao mesmo tempo, todas as mquinas virtuais dele desligaro. Ou, se acontecer alguma falha nos discos do servidor ou na storage de armazenamento -, todas mquinas virtuais podero ser corrompidas.

3.3

TIPOS DE VIRTUALIZAO

A virtualizao um conceito amplo e existem vrios usos e categorias para efetu-la. As principais maneiras sero abordadas nesta seo.

3.3.1 A Emulao de Hardware

Segundo JONES (2006), a emulao de hardware atualmente a forma mais complexa de virtualizao. Devido a sua complexidade, gera grandes overheads5, prejudicando o desempenho do sistema operacional guest6. Nesse mtodo, todo o hardware de uma mquina virtual criado via software no sistema hospedeiro para emular o hardware proposto, conforme exibido na Figura 1. Ou seja, at o processador da mquina virtual precisa ser criado via software, o que feito geralmente feito em assembly.

5 6

Overhead: Diferena de performance gerando latncia no sistema operacional guest Guest: Sistema operacional convidado.

22

Figura 1: Emulao de Hardware

Segundo GOLDEN & SCHEFFY (2008), a complexidade da tcnica fere o desempenho do guest. E, segundo JONES (2006), para emulaes de altafidelidade, incluindo transies de informao entre registradores para memria cache e criao de pipelines na CPU, a performance pode ser, facilmente, 1000 vezes menor.

Mas, a emulao de hardware tambm tem vantagens, Por exemplo, usando emulao de hardware, possvel rodar um sistema operacional guest sem qualquer modificao ou adaptao.

3.3.2 A Virtualizao Completa

A virtualizao completa, tambm conhecida como "virtualizao nativa", outro mtodo utilizado para virtualizao. JONES (2006) cita que esse modelo usa uma mquina virtual atravs da mediao entre o sistema operacional hospedeiro (host) e o guest conforme mostrado na Figura 2. A palavra "mediao" utilizada, pois o VMM faz a troca entre o sistema operacional virtualizado e o hardware do equipamento.

23

Figura 2: Virtualizao Completa

Segundo JONES (2006), a virtualizao completa mais rpida que a emulao de hardware, mas a performance tambm menor do que a do mesmo sistema operacional rodando nativamente. A grande vantagem da virtualizao completa que o sistema operacional pode rodar sem modificaes. A desvantagem que a mquina guest no pode rodar em host de arquitetura diferente.

Segundo VMware Inc. (2008), um grande obstculo para a virtualizao completa foi o fato de que, 17 instrues especficas dos processadores da plataforma x86 geravam erros quando essa camada de interpretao era criada, o que fazia o sistema operacional guest gerar erros crticos durante sua execuo. Esses erros variavam desde informaes no sistema operacional at a finalizao inesperada da aplicao.

Assim, essas 17 instrues foram apontados pela mesma empresa como um importante marco para a criao do primeiro ambiente de virtualizao completa da plataforma x86, o VMware Workstation em sua primeira verso, lanado em 1999.

24

3.3.3 A Paravirtualizao

A paravirtualizao uma tcnica que tem poucas semelhanas com a virtualizao completa. Esse mtodo usa o hypervisor para acesso compartilhado ao hardware do equipamento, e tambm integra cdigos de virtualizao dentro do sistema operacional nativo, agregando nele as funes de gerenciamento do hypervisor, como exibido na Figura 3.

GOLDEN & SCHEFFY (2008) cita que atravs da paravirtualizao, o hypervisor criado como uma camada abaixo do sistema operacional, que por sua vez, multiplexa o acesso dos guests ao hardware do equipamento. Assim, o prprio sistema operacional nativo (e, neste caso, de gerenciamento) transformado em mquina virtual.

Figura 3: Hypervisor

Segundo SIQUEIRA (2007), este modelo como hypervisor obtm preferncia para os ambientes virtualizados, pois, os hspedes sabem perfeitamente

25

que rodam em um ambiente virtual. Para isso, os guests precisam ser corrigidos, o que s possvel de conseguir em sistemas de cdigo aberto7.

Uma vez que os sistemas operacionais sejam adaptados, a interao entre as mquinas virtuais e a mquina fsica otimizada, o que aumenta o desempenho. Porm, a grande desvantagem deste modelo continua sendo a dependncia da alterao do sistema operacional de gerenciamento e dos guests, para que possam interagir com o hypervisor ao invs do hardware fsico.

3.3.4 Instruction Set Virtualization Virtualizao de Instrues

Outro aspecto mais recente da virtualizao chamado Instruction Set Virtualization (Virtualizao de Instrues). Neste modelo, segundo JONES (2006), um conjunto de instrues virtuais traduzido para uma instruo fsica destinada camada de hardware do equipamento. Assim, com o cdigo original sendo executado dentro de uma mquina virtual, a traduo ocorre do primeiro (set de instrues) para um segundo seguimento de cdigo, efetuando a mediao entre a aplicao 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 traduo de binrios com o nome Code7

Cdigo Aberto: Programas que possuem o cdigo de fonte disponvel para verificao e/ou estudo.

26

Morphing. O mesmo processo tambm utilizado para execuo de binrios de diferentes arquiteturas em um sistema operacional de outra plataforma, como por exemplo, para rodar binrios de um sistema Linux plataforma PowerPC em um Linux plataforma x86 com o software nspluginwrapper.

27

4

IMPLEMENTAES PARA VIRTUALIZAO

Foram analisados os aspectos relevantes de vrios softwares utilizados para virtualizao.

Os softwares descritos a seguir, foram escolhidos por serem largamente utilizados na virtualizao para desktop (com usurios que desejam testar outros sistemas operacionais e simularem ambientes) e tambm para virtualizao 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 vrias maneiras de execuo. Por padro, um emulador de hardware (e sofre com a baixa performance), mas tambm suporta emulao de processadores de outras arquiteturas, como ARM, MIPS, Sparc e PowerPC. Em modo de emulao de um computador x86, o QEMU disponibiliza os seguintes componentes de hardware:

- Chipset Intel i440FX/PIIX3 - Placa de vdeo 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 tambm pode ser apenas um emulador de binrios, e nesse modelo chamado User Mode Emulation. Dessa forma, ele pode permitir que um binrio

28

compilado para Linux em plataforma x86 rode em plataforma PowerPC, por exemplo. Outras funcionalidades so agregadas a ele com o mdulo KQEMU, que garante maior acelerao ao host em execuo quando este um x86.

4.2

XEN

O Xen um hypervisor que trabalha tanto em modo de paravirtualizao como em modo de virtualizao completa. Est localizado abaixo do sistema operacional. Ele permite que os recursos de hardware de uma mquina sejam dinamicamente distribudos entre as mquinas virtuais. E nele, as mquinas virtuais so denominadas Domains.8 O prprio sistema operacional nativo (que utilizado para gerenciamento) referenciado como um Domain.

Ao

contrrio

do

VMware

Workstation/Server,

em

modo

de

paravirtualizao, ele no tenta virtualizar completamente as chamadas do sistema operacional guest para a camada de hardware. Assim, partes do sistema operacional guest so modificadas para trabalharem em interao direta com ele, ao invs do hardware nativo do equipamento, conforme descrito em Xen Interfaces Manual.

Por isso, o Xen em modo paravirtualizado no disponibiliza pseudohardware para a mquina 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 integrao direta com o hypervisor.9

Quando utilizada a virtualizao completa no Xen, o hardware encontrado na mquina virtual criado atravs da modificao do software QEMU, e o hardware disponibilizado para o sistema operacional guest o mesmo exibido por este, exceto o processador.

8 9

Domains: Nomenclatura adotada no Xen para denominar suas mquinas virtuais. Pseudo-Hardware: Hardware visualizado pela mquina virtual.

29

Em ambos os casos, o pseudo-hardware exportado para as mquinas virtuais (CPU, memria, rede e dispositivos de bloco) gerado atravs de uma interface de controle utilizada para gerenciamento no Xen. Assim, para a abstrao de hardware das mquinas virtuais (nos dois modos), fica em constante execuo o daemon xend na mquina de gerenciamento.

O acesso a essa interface de controle restrito: Ela pode ser acessada por uma nica mquina virtual privilegiada, conhecida como Domain 0 (Domnio 0). As operaes como a criao de um novo domnio, desligamento e at migrao de um domnio em execuo para outro host fsico, so disparadas diretamente pelo Domain 0 (mquina de gerenciamento) para o hypervisor atravs do comando xm, que executa a solicitao. O Domain 0 criado automaticamente quando o sistema executa o boot10. Durante isso, o Xen agrega os privilgios de gerenciamento para este domnio, de modo que ele possa interagir diretamente com o hypervisor executando, tambm, as tais tarefas administrativas.

4.2.1 Sistemas Operacionais Suportados

Segundo o Manual do Usurio do Xen a paravirtualizao permite uma performance excelente durante o processo de virtualizao, uma vez que a arquitetura x86 s recebeu aperfeioamentos (instrues especficas) para tal uso a partir de 2006. Ento, para executar um domnio em modo de paravirtualizao, necessrio que o sistema operacional seja portado para o Xen. Atualmente, os sistemas operacionais portados para o Xen so o Linux, NetBSD e o Solaris. Esses sistemas podem ser executados no Xen em modo paravirtualizado.

Para utilizar virtualizao completa no Xen, necessrio o suporte para virtualizao via hardware. Esse suporte garantido pelas instrues VT nos processadores Intel e SVM nos processadores da AMD. Existindo essas extenses,10

Boot: Processo de inicializao do sistema.

30

possvel que o Xen crie Domains sem necessidade alguma de modificao 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 necessrio algum processador P6 (de sexta gerao), 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 padro, suporta at de 4GB de memria RAM em modo de execuo 32 bits. Como uma quantidade pequena para os servidores nos dias atuais, existe o suporte para as extenses PAE11, da Intel, que permite que sistemas operacionais x86 de 32bits possam enderear at 64GB de memria Ram. O Xen 3.0 tambm suporta as arquiteturas x86/64 bits.

4.3

LINUX KVM

Segundo a Qumranet Inc, desenvolvedora do KVM, adicionando a capacidade de virtualizao no kernel Linux, possvel aproveitar todo o cdigo j escrito do para a criao de um ambiente de virtualizao 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 no abaixo dele (exemplo do Xen), cada mquina virtual um processo normal no sistema operacional, acessada

11

PAE: Phisical Addressing Extensions. Extenses de Endereamento Fsico.

31

atravs do mdulo KVM, mdulo 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 execuo: Kernel Mode (modo kernel) e User Mode (modo usurio). Porm, por uma mquina virtual precisar de mais prioridade do que um processo normal, e por ser, tambm, bem mais complexa que um aplicativo comum, adicionado um terceiro modo de execuo: O guest mode (modo Convidado).

Na terminologia KVM, os guests so mquinas virtuais comuns, e o privileged-guest a mquina 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 programao consiste em apenas alguns milhares de linhas de cdigo. E, como mdulo do kernel, possvel manipul-lo em tempo de execuo, como se fosse um dispositivo qualquer. Seus guests tem acesso a todo sistema de memria atravs de chamadas de hardware ou

32

mesmo de DMA12 (DMA: Direct Memmory Access - Acesso direto a memria). E, o acesso dos guests ao resto do hardware ilimitado.

Assim como o Xen, o KVM tambm utiliza o QEMU para promover a abstrao de hardware na mquina virtual. Assim, exceto o processador, o hardware simulado o mesmo do QEmu

4.3.1 Componentes do KVM

Os dois componentes principais do KVM so 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 emulao do hardware de um PC comum. Para isso, utilizada uma verso modificada do QEMU.

O QEmu modificado roda como processo no sistema, e cria uma camada de hardware para a mquina virtual, mapeando a memria fsica e as chamadas do kernel (especificamente do mdulo KVM) para a execuo do guest. O I/O das mquinas 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 mquina virtual simplesmente um processo, todas as ferramentas de gerenciamento de processo do sistema Linux so reaproveitadas. possvel pausar, desligar e restaurar uma mquina virtual diretamente com o comando kill (ou usando os atalhos de teclado, como CTRL + C e

DMA: Direct Memmory Access - Acesso direto a memria. Prov acesso a memria sem a necessidade de interrupo da CPU.

12

33

CTRL + Z), assim como possvel verificar a alocao de recursos com o comando top.

4.4

VMWARE SERVER

Segundo o VMware Server Product Datasheet, o mesmo instalado como aplicao 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 fsico so tratados e distribudos uniformemente entre todas as mquinas virtuais.

O pseudo-hardware virtual criado pelo VMware para abstrao dos guests constitudo 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 tambm instala drivers adicionais no sistema operacional guest e host para otimizar o acesso dos recursos nas mquinas fsicas e virtuais. Na mquina guest, esses drivers so conhecido como VMware Tools, e conclui a instalao dos dispositivos faltantes (driver de vdeo, 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.

34

Foi includa, tambm, uma nova interface web para gerenciamento das mquinas virtuais. E este servio de virtualizao, oferecido pelo VMware Server, tambm pode ser acessado atravs do software VMware Virtual Infrastructure Client, que unifica o acesso a plataformas de virtualizao da mesma empresa.

O VMware Server tambm oferece recursos para que as mquinas virtuais possam ter at 8GB de memria RAM, 10 interfaces de rede virtuais, USB 2.0 e duas opes 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 criao de um ambiente de TI virtual, dinmico e otimizado; Ele um sistema operacional, baseado no kernel Linux, que cria uma camada de abstrao para acesso aos recursos do sistema (processadores, memrias, storages13 e dispositivos de rede) por mquinas virtuais.

Por ser um sistema operacional completo, o VMware ESX instalado diretamente no hardware (bare-metal14) do servidor, e traz consigo seu hypervisor (denominado VMkernel), que prov os recursos para execuo das mquinas virtuais. Assim, ele precisa ser acessado atravs do software VMware Virtual Infrastructure Client para que possam ser criadas as configuraes no mesmo servidor;

13

Storage: Equipamento que agrega determinadas quantidades de HDs de alta perfomance para serem acessados atravs do meio externo, muitas vezes atravs de mltiplos servidores; 14 Bare-metal: Metal nu (traduo livre); Instalado diretamente no equipamento;

35

4.5.1 VMware ESXi

Com base no VMware ESX, a VMware lanou a verso gratuita do produto, o VMware ESXi Server; O ESXi no possui os recursos de VMotion (live migration) nem suporte da empresa, mas pode ser utilizado gratuitamente. Recursos adicionais, como o prprio VMotion, podem ser comprados adicionalmente e inseridos no VMware ESXi. O VMware ESXi tambm possui uma verso embbeded15 chamada VMware ESXi Small Footprint, de apenas 32MB, que est sendo integrada em vrias placas mes de servidores de terceiros, fabricados por empresas parceiras da VMware.

4.6

VMWARE WORKSTATION

Soluo de virtualizao para desktops da VMware, o mesmo instalado como aplicao 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. Porm, esta verso utilizada para desenvolvimento e para testes de aplicativos locais, e no para uso em produo.

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 virtualizao 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;

36

O xVM tambm suporta tecnologias de virtualizao via hardware, tanto da Intel (Intel VT) quanto da AMD (AMD-V). A utilizao dessas tecnologias de virtualizao opcional para cada maquina virtual, podendo ser includa/removida facilmente. Porm, ela necessria nos seguintes casos:

- Ao virtualizar um sistema operacional raro, como o IBM OS/2, que desde sua concepo (apesar de descontinuado desde 1996) utiliza instrues complexas da plataforma x86 que no so suportadas com virtualizao 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 verses para x86) , FreeBSD, OpenBSD, Linux e Solaris.

4.8

QUADRO COMPARATIVO DAS FERRAMENTAS

O quadro a seguir exibe uma comparao entre as ferramentas utilizadas na virtualizao destacando as principais caractersticas de cada uma delas.

37

FERRAMENTA DESENVOLVEDOR

QEmu

Fabrice Bellard

XEN Hypervisor VMware Server VMware ESX/ESXi Server:

Citrix Technologies

VMware Inc.

PLATAFORMA SISTEMAS OPERACIONAL OPERACIONAIS SUPORTADOS -Windows -MS Dos -Linux e Unix x86, PowerPc (FreeBSD, NetBSD, Solaris) - etc. -Linux -NetBSD x86 -Solaris -Windows -Linux x86 -Windows -Unix x86 -Linux -Windows -Unix -Linux, -Windows -Unix (FreeBSD e Solaris)

TECNOLOGIAS UTLIZADAS

Emulao de Hardware e Virtualizao Completa Paravirtualizao e Virtualizao completa Virtualizao Completa Paravirtualizao16 e Virtualizao completa Virtualizao Completa18

VMware Inc.

Linux KVM

RedHat17

x86

16 17

A Paravirtualizao no VMware ESX/ESXi se aplica apenas a guests com sistema Linux. RedHat: A RedHat adquiriu a Qumranet, desenvolvedora original do KVM em 4 de setembro de 2008. 18 Est sendo adicionado recurso de paravirtualizao ao KVM.

38

5

EXPERIMENTOS E RESULTADOS

5.1.1 Descrio do Ambiente

Foi instalado na mquina fsica o sistema operacional CentOS 5.2 Linux 64 bits, com kernel 2.6.18, e 3GB de memria Ram, sendo que desta memria, 1GB foi destinado inteiramente para a mquina virtual em execuo. Devido a divergncias de cada uma das tecnologias, cada mquina virtual foi executada individualmente. O processador utilizado foi um Intel Core 2 Duo E6420, sendo disponibilizados apenas um ncleo para as mquinas virtuais. Foi utilizada uma partio com 49GB em um HD de 160GB, destinando 8GB para cada mquina virtual.

As tarefas designadas para cada servidor virtualizado, na criao de um ambiente de produo, foram mquinas virtuais configuradas adequadamente com as finalidades de testar o desempenho individual com softwares para benchmark, codificao de vdeo e testes com aplicativos simulando servidores reais.

5.1.2 Anlise de Desempenho

Cada mquina foi submetida a testes de processamento, de I/O e de conectividade, analisando a performance de cada uma como um todo. As tarefas submetidas foram:

a) b) c)

Codificao de vdeo utilizando o software Transcode; Anlise de performance geral com o software LMBench. Transferncia de arquivo com 4GB via NFS (cliente Linux) e SMB (cliente

Windows); d) Inundao de requisies simultneas para o servidor web utilizando o

software AB (Apache Benchmark).

39

Todos os testes do tipo cliente/servidor realizados (transferncia de arquivos e benchmark com AB) foram executados a partir de outro host na rede, utilizando o sistema operacional Microsoft Windows XP SP3 para transferncia de arquivos via SMB, e o sistema operacional Fedora Linux verso 8 para transferncia de arquivos por NFS. A inundao de requisies para os servidores Apache de cada mquina virtual, realizada pelo AB, tambm foi feita a partir deste host Linux. A rede entre as duas mquinas foi estabelecida atravs de um switch Encore 3NH908, operando a 100Mbps em modo full duplex.

Os testes de performance individuais (como a codificao de vdeo e anlise de desempenho com o LMBench) foram realizados com o sistema operacional host em IDLE19, evitando assim a influencia nos testes de cada uma delas.

5.2

LMBENCH

A execuo do LMBench verso 3 Alpha, nas mquinas virtuais testou os seguintes itens em cada uma delas:

- Manipulao de Processos; - Operaes com nmeros do tipo integer - inteiro; - Operaes com nmeros do tipo float ponto flutuante; - Operaes com nmeros do tipo double nmeros duplos; - Context Switching Troca de Contexto; - Latncia de comunicao local; - Latncia em sistema de arquivos (e manipulao destes) e memria virtual; - Largura de banda para comunicao local; - Latncia de memria.

19

IDLE: Stand-By. Equipamento em espera sem aplicao especfica em operao.

40

O detalhamento completo de cada um dos subtestes realizados pode ser obtido, em uma mquina com o sistema operacional Linux que possua o LMBench instalado, atravs do comando man lmbench, e no o objetivo deste documento. O LMBench foi executado por aproximadamente 26 horas em cada mquina virtual at a obteno do resultado. O resultado escrito devolvido pelo LMBench em cada host est anexo neste documento.

A verso utilizada era a ltima disponvel nos repositrios da distribuio adotada pelo grupo, e apesar de ser uma verso Alpha, no foi demonstrado qualquer sinal de instabilidade durante toda a realizao dos testes citados.

5.2.1 Manipulao de Processos

O Grfico 1 abaixo representa o comparativo entre o tempo de manipulao de processos em cada mquina virtual. Quanto menor o resultado obtido, maior a eficincia do virtualizador.

41

Grfico 1 - Comparativo de Processos

5.2.2 Operaes com Nmeros Inteiros

O Grfico 2 representa o comparativo de tempo para realizao de cada uma das operaes descritas utilizando nmeros inteiros. Quanto menor o resultado obtido, maior a eficincia em cada mquina virtual.

42

Grfico 2 - Operaes com Inteiros

5.2.3 Operaes com Nmeros fracionrios (Floats)

O Grfico 3 representa o comparativo de tempo para realizao de cada uma das operaes descritas utilizando nmeros fracionados (tipo float). Quanto menor o resultado obtido, maior a eficincia em cada mquina virtual.

43

Grfico 3 - Operaes com Floats

44

5.2.4 Operaes com Nmeros Dobrados (Double)

O Grfico 4 representa o comparativo de tempo para realizao de cada uma das operaes descritas utilizando nmeros dobrados (tipo double). Quanto menor o resultado obtido, maior a eficincia em cada mquina virtual.

Grfico 4 - Operaes com Doubles

45

5.2.5 Context Switching Troca de Contexto

O Grfico 5 abaixo representa o comparativo de tempo para realizao de troca de contexto em cada uma das operaes descritas. Quanto menor o resultado obtido, maior a eficincia em cada mquina virtual.

Grfico 5 - Context Switching

46

5.2.6 Latncia para Comunicao Local

O Grfico 6 representa o comparativo de latncia para comunicao local. Quanto menor o resultado obtido, maior a eficincia em cada mquina virtual.

Grfico 6 - Latncia de Comunicao Local

5.2.7 Latncia de sistema de arquivos

O Grfico 7 representa o comparativo de sistema de arquivos. Quanto menor o resultado obtido, maior a eficincia em cada mquina virtual.

47

Grfico 7 - Latncia de Sistema de Arquivos

5.2.8 Largura de banda para comunicao local

O Grfico 8 representa o comparativo entre a largura de banda para comunicao local de cada mquina virtual. Quanto maior o resultado obtido, maior a eficincia em cada virtualizador.

48

Grfico 8 - Largura de Banda para Comunicao Local

5.2.9 Latncia de Memria

O Grfico 9 representa o comparativo entre a latncia de memria de cada mquina virtual. Quanto menor o resultado obtido, maior a eficincia em cada virtualizador.

49

Grfico 9 - Comparativo de Latncia de memria

5.2.10 Mdia de Latncia de Memria

O Grfico 10 representa o comparativo entre a latncia mdia de memria de cada mquina virtual. Este dado exibido imediatamente aps a finalizao da execuo do LMBench. Quanto menor o resultado obtido, maior a eficincia em cada virtualizador.

50

Grfico 10 - Mdia de Latncia de Memria

5.3

TRANSFERNCIA DE ARQUIVOS

Foi realizada cpia de uma imagem de DVD com 4GB atravs de um host de rede, utilizando NFS (cliente Linux) e posteriormente Samba (cliente Windows).

51

5.3.1 SMB

Utilizando o Samba no houve diferena de performance entre os trs virtualizadores. A imagem foi transferida do servidor virtualizado para o cliente Windows fsico em 12 minutos.

5.3.2 NFS

Ocorreu diferena de tempo ao realizar a transferncia da mesma imagem de DVD a partir do servidor virtualizado para o cliente Linux fsico. O Grfico 11 demonstra o tempo que cada uma das ferramentas demorou para realizar a cpia do arquivo. O log da STDOUT20 durante a transferncia do arquivo est anexo neste documento.

20

STDOUT: Fluxo padro de sada de texto no sistema operacional Linux. Exibido na tela por padro.

52

Grfico 11 - Transferncia de Arquivos em NFS

5.4

CODIFICAO DE VDEO

Foi realizada a codificao de um vdeo com 55 minutos e 439MB, alterando a resoluo para 800x362 e convertendo para o formato DivX utilizando o software transcode. Houve diferena de performance entre os virtualizadores, e o log da STDOUT est anexo neste documento.

53

Grfico 12 - Codificao de vdeo

5.5

BENCHMARK DE SERVIDOR WEB

O AB faz parte da sute Apache Web Server, e recomendado para realizao de benchmarks de servidores web. Utilizando-o, foram realizadas duas sesses de testes no servidor Apache de cada mquina virtual: Ambas com o total de 200.000 requisies. Porm, na primeira sesso foram disparadas 100

54

solicitaes simultneas por rajada, e na segunda sesso, 200 solicitaes simultneas por rajada.

5.5.1 100 requisies por rajada

Os Grficos 13 e 14 comparam os tempos obtidos durante a realizao da primeira sesso dos testes com o AB. Quanto menor a quantidade de tempo para atendimento de cada requisio, melhor a eficincia do virtualizador. Os logs com as STDOUTs das sesses dos trs virtualizadores, que originaram os grficos, esto anexos no documento.

Na anlise a seguir, o grfico 13 e 15 (Connection Times) analisa os seguintes aspectos:

- Connect: Tempo estimado gasto para comear a atender a conexo. - Proccessing: Tempo estimado gasto para realizar o processamento de cada uma das conexes. - Waiting: Tempo de espera gasto entre o ltimo bit de requisio ser enviado do cliente, e o primeiro bit de resposta do servidor ser disparado para atend-lo. - Total: Tempo total para atender a requisio.

Grfico 13 - Connection Times para 100 requisies por rajada

Grfico 14 - Porcentagem de Requisies por Tempo

57

5.5.2 200 requisies por rajada

Os Grficos 15 e 16 agora comparam os tempos obtidos durante a realizao da segunda sesso dos testes com o AB. Quanto menor a quantidade de tempo para atendimento de cada requisio, melhor a eficincia do virtualizador. Os logs com as STDOUTs das sesses dos trs virtualizadores, que originaram os grficos, tambm esto anexos no documento.

O detalhamento de cada modalidade foi citado no item 5.5.1.

Grfico 15 - Connection Times para 200 requisies por rajada

Grfico 16 - Porcentagem de Requisies por Tempo

60

6

CONSIDERAES FINAIS

O VMware Server 2 obteve desempenho equilibrado nas modalidades testadas pelo LMBench, mas demonstrou excelente performance ao trabalhar com arquivos grandes em rede. O mesmo tambm possui a melhor interface de administrao, que pode ser acessada atravs do browser e garante a mesma funcionalidade do VMware Virtual Infrastructure Client, aplicao desktop da VMware Inc. para gerenciamento unificado das plataformas da empresa.

O KVM apresentou uma grande diferena entre os resultados obtidos para uso em produo e atravs da comparao de desempenho. Ele se sobressaiu em quase todas as modalidades do LMBench mas deixou a desejar no uso em produo, demorando mais tempo que os outros virtualizadores em quase todos os testes realizados, principalmente no que tange a comunicao em rede. Este problema aparenta ser causado pelo legado de rede contido no cdigo do QEMU, utilizado para criao de dispositivos na mquina virtual. Porm, por ser o mais recente de todas as ferramentas testadas, mostrou estar no caminho certo para obter boa competncia no futuro.

A verso utilizada do Xen foi a 3.0.3, a ltima disponvel no repositrio da distribuio escolhida pelo grupo para realizao dos testes. A ltima verso do Xen a 3.3.0, que segundo o lanamento oficial, realizou grande avano na parte de comunicao de rede e I/O. Os resultados alcanados poderiam ser diferentes caso a verso utilizada fosse a mais recente. Porm, esta verso ainda no foi considerada estvel pelos desenvolvedores da distribuio adotada pelo grupo, e por isso no foi utilizada. Apesar disso, o Xen obteve os melhores resultados para uso em produo comparado as outras ferramentas.

61

6.1

DIFICULDADES ENCONTRADAS

Os testes originalmente foram planejados utilizando configuraes de hardware virtual diferentes das apresentadas neste documento: Cada mquina virtual, de acordo com o projeto original, funcionaria com dois processadores lgicos, onde os resultados apresentados seriam diferentes dos expostos neste documento.

Porm, o KVM demonstrou no suportar corretamente as mquinas virtuais com mais de um processador, e com a mquina virtual uma vez configurada para utilizar dois processadores lgicos (SMP21), a mesma se tornava instvel e imprpria para uso comum, uso em produo e para realizao de qualquer outro teste. De modo que, quando a mquina virtual no carregava incorretamente o sistema operacional, o sistema guest travava devolvendo o chamado Kernel Panic aps alguns minutos de uso banal.

O Kernel Panic a falha irrecupervel de um sistema operacional Unix ou Linux. Ela, geralmente, apresentada em caso de falha de hardware (nesse caso, virtual) ou exceo no tratada pelo sistema operacional.

Este comportamento foi relatado utilizando tanto a distribuio oficial adotada (CentOS Linux 5.2 com kernel 2.6.18) quanto em outra distribuio sem finalidades acadmicas 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 comparao entre todas as ferramentas. Aps o downgrade de processador nas mquinas virtuais do Xen e do VMware Server, os testes foram refeitos e a mquina virtual executada pelo KVM funcionou perfeitamente, sem nenhuma das instabilidades antes apresentadas.

SMP: Symmetric Multi-Proccessing - Multi-processamento simtrico, procedimento que utiliza duas ou mais CPUs.

21

62

O planejamento inicial deste documento tambm previa a utilizao do VMware ESXi Server como ferramenta da VMware Inc. em substituio ao VMware Server. Porm, o VMware ESXi Server tem como exigncia uma lista de hardware compatvel (HCL22) homologada pela empresa, e no foi possvel a execuo do VMware ESXi Server no equipamento utilizado nos testes, pelo fato do hardware pelo possudo pelo grupo ter pouqussima 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 estvel durante toda a bateria de testes que o grupo realizou.

6.2

LIMITAES

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 virtualizao para uso especfico, 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 prximo experimento a realizao dos mesmos testes utilizando um servidor de marca compatvel com a HCL dos produtos VMware ESX Server e VMware ESXi Server, da VMware Inc., que so mais apropriados que o VMware Server para a utilizao em data-centers.

22

HCL:Hardware Compatible List Lista de Hardware Compatvel.

63

6.4

CONCLUSES

Aps abordada a origem da virtualizao, foram realizados testes de desempenho em mquinas virtuais anlogas em hardware e software, mantendo sua diferena 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 virtualizao utilizadas neste documento.

Isso demonstra que, com o atual avano no suporte virtualizao via hardware atravs das extenses Intel VT e AMD-V, e que so utilizadas pelos trs virtualizadores, a proximidade entre as trs ferramentas bastante evidente. Ambas as ferramentas analisadas se sobressaram em determinados testes, e o grupo elegeu ao Xen como melhor custo x benefcio para virtualizao de servidores dentre os analisados. Porm, cabe ao administrador de sistemas escolher a que mais lhe aprouver.

64

REFERNCIAS BIBLIOGRFICAS

APR Solues. Disponvel em: http://www.compaq.com.br/pyme/solucoes/apr_solucoes_01.html. Acesso em: 21set.2008. ATLAS Computer (Manchester). Disponvel 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 Super Computers. [2008]. Disponvel em: . Acesso em: 12 nov.2008. GOLDEN, Bernard; SCHEFFY, Clark. Virtualization for Dummies, Sun AMD Special Edition. Indianapolis: Wiley Publishing INC, 2008. GOMES, Lee. VMware Brings Freedom of Choice to Your Desktop. [1999]. Disponvel em: . Acesso em: 14 out.2008. HADDON, Tom. Hardware emulation with QEMU. [2005]. Disponvel em: . Acesso em: 06 out.2008. JONES, M. Tim. Virtual Linux. [2006]. Disponvel em: . Acesso em: 01ago.2008. KVM kernel-based Virtualization driver. Disponvel em: http://docs.huihoo.com/kvm/kvm-white-paper.pdf. Acesso em: 21 set.2008. MOREIRA, Daniela. Virtualizao: rode vrios sistemas operacionais na mesma mquina. [2006]. Disponvel em: . Acesso em: 21 set.2008. NSPLUGINWRAPPER. Disponvel em: http://gwenole.beauchesne.info/en/projects/nspluginwrapper. Acesso em: 08 out.2008. OITO principais desafios da virtualizao de data centers. Disponvel em: http://idgnow.uol.com.br/computacao_corporativa/2007/04/27/idgnoticia.2007-0427.3291222006/IDGNoticiaPrint_view/. Acesso em: 21 out.2008.

SINGH, Amit. Na Introduction to Virtualization. [2008]. Diponvel em: . Acesso em: 21 set.2008.

65

SIQUEIRA, Luciano; BRENDEL, Jeans-Chistoph. Linux Pocket Pro Virtualizao. So Paulo: Linux New Media, 2007. SUN xVM Virtualbox. Disponvel em: http://download.virtualbox.org/virtualbox/2.0.4/UserManual.pdf. Acesso em: 12 out.2008. VIRTUALIZAO de Servidores. Disponvel em: http://www.intel.com/portugues/business/technologies/virtualization.htm. Acesso em: 21 set.2008. VIRTUALIZATION history. Disponvel em: http://www.vmware.com/overview/history.html. Acesso em: 30 set.2008. VMWARE Datasheet ESXI. Disponvel em: http://www.vmware.com/files/pdf/vmware_esxi_datasheet.pdf. Acesso em: 12 out.2008. VMWARE Server. Disponvel em: http://www.vmware.com/br/pdf/server_datasheet_br.pdf. Acesso em: 12 out.2008. XEN Interfaces Manual. Disponvel em: http://www.xen.org/files/xen_interface.pdf . Acesso em: 12 set.2008. XEN Manual do usurio. Disponvel em: http://bits.xensource.com/Xen/docs/user.pdf . Acesso em: 12 set.2008.

66

ANEXO A: ARQUIVO DE CONFIGURAO PARA INSTALAO COM XEN

Tal arquivo de configurao foi usado para instalao CentOS 5.2 no Xen. Primeiramente foram criado os HDs virtuais, com o comando:

# dd if=/dev/zero # dd if=/dev/zero count=512

of=/var/xen/Domain1.img bsize=1GB count=8 of=/var/xen/Domain1swap.img bsize=1024

Depois, foi elaborado um arquivo de configurao para efetuar a instalao 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'

Ento, esse arquivo foi salvo com o nome de Domain1-inst.conf. Aps isso, ele foi inicializado com o comando:

# xm create c Domain1-inst.conf

67

ANEXO B: ARQUIVO DE CONFIGURAO APS A INSTALAO COM XEN

Aps instalao do sistema operacional, foi criado um novo arquivo de configurao 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'

Ento, esse arquivo foi salvo com o nome de Domain1-post-inst.conf. Aps isso, ele foi startado com o comando:

# xm create c Domain1-post-inst.conf

68

ANEXO C: CRIAO DE MQUINA VIRTUAL COM KVM

Procedimento adotado para instalao do CentOS na mquina virtual do Linux KVM. Primeiramente foi ativado o mdulo responsvel pela virtualizao:

# modprobe kvm # modprobe kvm_intel

Aps isso, foram criados os HDs virtuais, com os comandos:

# dd if=/dev/zero # dd if=/dev/zero

of=/var/kvm/hd01.img bsize=1GB count=8 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 /var/kvm/swap.img -boot c -net nic \

-hdb

\

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

69

ANEXO D: REDE BRIDGE DO QEMU-KVM

Criado o script /etc/QEmu-kvm-ifup com a seguinte configurao:

#!/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 configurao bastou para que a mquina virtual KVM adquirisse um IP e comunicao com a rede externa, a mesma da mquina fsica.

70

ANEXO E: SADA DE EXECUO 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.18x86_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.18Basic 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

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.18File & 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.1810.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

72

ANEXO F: SADA DE EXECUO 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.18x86_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.18Basic 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 ---------------------------------------------------------------------

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.18File & 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.1815.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

74

ANEXO G: SADA DE EXECUO 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 --------- ------------- ----------------------- ---- ----- ----- ------ ---VMWARE.ti Linux 2.6.18x86_64-linux-gnu 2136 8 128 1.8800 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 --------- ------------- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---VMWARE.ti Linux 2.6.18- 2136 0.41 0.57 2.54 3.80 4.74 0.63 2.07 1023 2337 5695 Basic integer operations - times in nanoseconds - smaller is better ------------------------------------------------------------------Host OS intgr intgr intgr intgr intgr bit add mul div mod --------- ------------- ------ ------ ------ ------ -----VMWARE.ti Linux 2.6.18- 0.5500 0.0100 0.2500 19.9 11.1 Basic uint64 operations - times in nanoseconds - smaller is better -----------------------------------------------------------------Host OS int64 int64 int64 int64 int64 bit add mul div mod --------- ------------- ------ ------ ------ ------ -----VMWARE.ti Linux 2.6.18Basic float operations - times in nanoseconds - smaller is better ----------------------------------------------------------------Host OS float float float float add mul div bogo --------- ------------- ------ ------ ------ -----VMWARE.ti Linux 2.6.18- 1.5800 2.1400 10.9 9.2000 Basic double operations - times in nanoseconds - smaller is better -----------------------------------------------------------------Host OS double double double double add mul div bogo --------- ------------- ------ ------ ------ -----VMWARE.ti Linux 2.6.18- 1.6400 2.7100 17.9 16.7 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 --------- ------------- ------ ------ ------ ------ ------ ------- ------VMWARE.ti Linux 2.6.18- 4.4300 5.8100 4.8400 5.7900 5.4300 5.63000 5.57000 *Local* Communication latencies in microseconds - smaller is better ---------------------------------------------------------------------

75

Host

OS 2p/0K Pipe AF UDP RPC/ TCP RPC/ TCP ctxsw UNIX UDP TCP conn --------- ------------- ----- ----- ---- ----- ----- ----- ----- ---VMWARE.ti Linux 2.6.18- 4.430 11.9 22.5 26.3 33.5 32.2 40.9 *Remote* Communication latencies in microseconds - smaller is better --------------------------------------------------------------------Host OS UDP RPC/ TCP RPC/ TCP UDP TCP conn --------- ------------- ----- ----- ----- ----- ---VMWARE.ti Linux 2.6.18File & 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 --------- ------------- ------ ------ ------ ------ ------- ----- ------- ----VMWARE.ti Linux 2.6.1829.6 10.8 96.2 370.1 27.4K 0.650 9.38380 2.439 *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 --------- ------------- ---- ---- ---- ------ ------ ------ ------ ---- ----VMWARE.ti Linux 2.6.18- 1663 810. 1071 1968.2 3105.7 718.2 715.0 2909 899.1 Memory latencies in nanoseconds - smaller is better (WARNING - may not be correct, check graphs) -----------------------------------------------------------------------------Host OS Mhz L1 $ L2 $ Main mem Rand mem Guesses --------- ----------------------------------------VMWARE.ti Linux 2.6.18- 2136 1.5300 7.0730 87.9 188.8

76

ANEXO H: SADA DE EXECUO DA CODIFICAO DE VIDEO NO KVM

[root@KVM ~]# date ; transcode -y xvid -j 64,0 -Z 800x368 -i /Compartilhada/michael\ w\ smith\ and\ hillsong\ 2007.avi -o /Compartilhada/final.avi ; date Seg Nov 17 01:55:14 BRST 2008 transcode v1.0.5 (C) 2001-2003 Thomas Oestreich, 2003-2004 T. Bitterberg, 20042008 Transcode Team [transcode] (probe) suggested AV correction -D 0 (0 ms) | AV 0 ms | 0 ms [transcode] auto-probing source /Compartilhada/michael w smith and hillsong 2007.avi (ok) [transcode] V: import format | DivX RIFF data, AVI (V=ffmpeg|A=mp3) [transcode] V: import frame | 480x320 1.50:1 [transcode] V: clip frame (PCM [import_mp3.so] tcextract -a 0 -i "/Compartilhada/michael w smith and hillsong 2007.avi" -x mp3 -d 0 | tcdecode -x mp3 -d 0 -z 12000 [export_xvid4.so] Neither './xvid4.cfg' nor '~/.transcode/xvid4.cfg' [export_xvid4.so] found. Default settings will be used instead. Audio: using new version Audio: using lame-3.98.2 [encoder.c] Delaying audio (0) [mpeg4 @ 0x37f3fcd410]overreading 9 bitsfps, EMT: 0:00:30, ( 0| 0| 9) [mpeg4 @ 0x37f3fcd410]concealing 600 DC, 600 AC, 600 MV errors encoding frames [000000-082479], 23.61 fps, EMT: 0:54:59, ( 0| 0| 4) clean up | frame threads | unload modules | cancel signal | internal threads | done [transcode] encoded 82480 frames (0 dropped, 0 cloned), clip length 3299.20 s Seg Nov 17 00:45:54 BRST 2008 [root@Dom01 Compartilhada]#

78

ANEXO J: SADA DE EXECUO DA CODIFICAO DE VIDEO NO VMWARE

[root@VMWARE timm]# date ; transcode -y xvid -j 64,0 -Z 800x368 -i /home/timm/michael\ w\ smith\ and\ hillsong\ 2007.avi -o /home/timm/final.avi ; date Dom Nov 16 12:27:09 BRST 2008 transcode v1.0.5 (C) 2001-2003 Thomas Oestreich, 2003-2004 T. Bitterberg, 20042008 Transcode Team [transcode] (probe) suggested AV correction -D 0 (0 ms) | AV 0 ms | 0 ms [transcode] auto-probing source /home/timm/michael w smith and hillsong 2007.avi (ok) [transcode] V: import format | DivX RIFF data, AVI (V=ffmpeg|A=mp3) [transcode] V: import frame | 480x320 1.50:1 [transcode] V: clip frame (