Você está na página 1de 98

FACULDADE DE TECNOLOGIA SENAI DE DESENVOLVIMENTO GERENCIAL FATESG CURSO TCNICO EM REDES DE DADOS

Andr Cardozo Andr Luiz Souza Ferreira Eduardo Macedo Santos

VIRTUALIZAO DE SERVIDORES COM XEN SOURCE

Goinia 2010

Andr Cardozo Andr Luiz Souza Ferreira Eduardo Macedo Santos

VIRTUALIZAO DE SERVIDORES COM XEN SOURCE

Trabalho de Concluso de Curso TCC apresentado Faculdade de Tecnologia SENAI de Desenvolvimento Gerencial FATESG, para a obteno do ttulo de Tcnico em Redes de Dados. Orientador: Prof. Esp. Ricardo

Goinia 2010

CURSO TCNICO EM REDES DE DADOS

Andr Cardozo Andr Luiz Souza Ferreira Eduardo Macedo Santos

Virtualizao De Servidores Com Xen Source

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

Aprovada em ___ de ______________ de 2010

Professor Examinador

Professor Esp. Ricardo Martins Moreira

Dedicamos este trabalho de concluso de curso para todos os nossos amigos e familiares que acreditaram e nos apoiaram, a FATESG por ter acreditado no curso Tcnico em Rede de Dados, ao orientador, Professor que, com no dedicao decorrer e

conhecimento, trabalho.

orientou-nos

deste

Agradecemos, primeiramente a DEUS, que nos deu muita fora para caminharmos e chegar onde estamos hoje, sade e disposio neste ano. Tambm aos amigos e familiares pela compreenso de nossa ausncia para elaborao do mesmo.

E pelo conhecimento se enchero as cmaras com todos os bens preciosos e agradveis. (Provrbios 24:4)

RESUMO Hoje, 75% dos servidores que acessamos so virtuais de alguma forma, consistindo em um sistema hospedeiro e um sistema convidado, emulando um servidor dentro de outro servidor, compartilhando o hardware, atingindo a mais alta excelncia em tecnologia e reduo de custos, com mnima perda de desempenho. Este trabalho destinado implementao de servidores Xen Source. Xen Source um monitor de maquinas virtuais, chamado de Hypervisor, de cdigo aberto, fazendo com que uma mquina fsica execute at mesmo em um hardware comum vrias mquinas virtuais, tanto Windows como Linux. Sero tratados os conceitos, o que , caractersticas, sua histria, outras formas de virtualizao, exemplos de solues de virtualizao, instalao, configurao e gerenciamento.

PALAVRAS-CHAVE: Virtualizao, Xensource, Hypervisor, Linux.

ABSTRACT Today, 75% of the servers that we access are virtual in some way, consisting in a host system and a guest system, emulating a server in another server, sharing the hardware, reaching the most highest excellence in technology and cost reduction, with a minimal loss of performance. This work is destined to implementation of Xen Source servers. Xen Source is a Virtual Machine Monitor, called Hypervisor, from Open Source, making that a physical machine run even on a common hardware multiple virtual machines, both Windows and Linux. Will be dealt the concepts, what this is, characteristics, history, other virtualization ways, solution examples of virtualization, installation, configuration and management.

KEYWORDS: Virtualization, Xensource, Hypervisor, Linux.

LISTA DE ILUSTRAES

FIGURA 1: CONCEITO DA VIRTUALIZAO DE SERVIDORES.............................................................................17 FIGURA 2: VISO GERAL DE EMULADORES .....................................................................................................19 FIGURA 3: VISO DA VIRTUALIZAO COMPLETA ..........................................................................................21 FIGURA 4: VISO DA PARAVIRTUALIZAO ....................................................................................................23 FIGURA 5: VISO DA VIRTUALIZAO EM NVEL DE SISTEMA OPERACIONAL .................................................24 FIGURA 6: VISO DA VIRTUALIZAO COMPLETA COM HYPERVISOR HOSPEDADO........................................26 FIGURA 7: HYPERVISOR XEN ...........................................................................................................................29 FIGURA 8: HYPERVISOR XEN COM DOMAIN-0 ................................................................................................31 FIGURA 9: TELA DE BOAS VINDAS DO CD DE INSTALAO DEBIAN .................................................................41 FIGURA 10: INSTALAO DEBIAN SQUEEZE OPO DE ESCOLHA DO IDIOMA ..............................................42 FIGURA 11: INSTALAO DEBIAN SQUEEZE OPO DE ESCOLHA DA LOCALIZAO ....................................42 FIGURA 12: INSTALAO DEBIAN SQUEEZE ESCOLHA DO MAPA DE TECLAS ................................................43 FIGURA 13: INSTALAO DEBIAN SQUEEZE INFORMANDO O NOME DA MQUINA ....................................44 FIGURA 14: INSTALAO DEBIAN SQUEEZE INFORMANDO O DOMNIO DA MQUINA ...............................44 FIGURA 15: INSTALAO DEBIAN SQUEEZE SELECIONANDO O FUSO HORRIO ...........................................45 FIGURA 16: INSTALAO DEBIAN SQUEEZE ERRO ENQUANTO O PARTICIONADOR INICIADO ...................45 FIGURA 17: INSTALAO DEBIAN SQUEEZE ESCOLHENDO O MTODO DE PARTICIONAMENTO ...................46 FIGURA 18: INSTALAO DEBIAN SQUEEZE ESCOLHENDO MODELO DO HARDWARE DO TECLADO .............48 FIGURA 19: INSTALAO DEBIAN SQUEEZE SELECIONANDO OS RECURSOS A SEREM INSTALADOS .............50 FIGURA 20: INSTALAO DEBIAN SQUEEZE ERRO DURANTE A INSTALAO DO GRUB ................................50 FIGURA 21: INSTALAO DEBIAN SQUEEZE PERGUNTA SOBRE A INSTALAO DO GRUB NO MBR .............51 FIGURA 22: INSTALAO DEBIAN SQUEEZE LISTA DE BOOT DO GRUB .........................................................51 FIGURA 23: VISO DO FUNCIONAMENTO DO LVM. ........................................................................................64 FIGURA 24: CRIAO DA MQUINA MODELO LOCALES A SEREM GERADOS.............................................72 FIGURA 25: VM EM VIRTUALIZAO COMPLETA ACESSO POR VNC. ............................................................88 FIGURA 26: VM EM VIRTUALIZAO COMPLETA SOLICITAO DE SENHA NO ACESSO POR VNC. ................89 FIGURA 27: VM EM VIRTUALIZAO COMPLETA INSTALAO DO SISTEMA OPERACIONAL CONVIDADO ...89 FIGURA 28: VM EM VIRTUALIZAO COMPLETA SISTEMA OPERACIONAL CONVIDADO RODANDO.............90 FIGURA 29: GERENCIAMENTO DAS MQUINAS VIRTUAIS XEN MANAGER TOP ...........................................93

LISTA DE ABREVIATURAS, SIGLAS E SMBOLOS

AMD Advanced Micro Devices AMD-V AMD Virtualization ARM Advanced Risc Machine CPU Central Processing Unit DOMID DOMain ID EPIC Explicit Parallel Instruction Computing HD Hard Disk HVC Hypervisor Virtual Console HVM Hardware Virtual Machine IBM International Business Machines LVM Logical Volume Management MIPS Microprocessor without Interlocked Pipeline Stages NAS Network Attached Storage NIC Network Interface Card NUMA Non-Uniform Memory Access PAE Physical Addressing Extensions RISC Reduced Instruction Set Computer RPM Rotaes Por Minuto SMP Symmetric Multi-Processing SO Sistema Operacional SPARC Scalable Processor Architecture UUID Universally Unique IDentifier VE Virtual Environment VM Virtual Machine VMI Virtual Machine Interface

VMM Virtual Machines Monitor VMX Virtual Machine Extensions VNC Virtual Network Computing VT Intel Virtualization Technology

SUMRIO

SUMRIO ........................................................................................................................................................12 1 INTRODUO ............................................................................................................................................14 1.1 OBJETIVO .................................................................................................................................................. 14 2 METODOLOGIA .........................................................................................................................................15 2.1 DETALHAMENTO TERICO ....................................................................................................................... 15 2.2 DEMONSTRAO E PRTICA .................................................................................................................... 15 3 CONCEITOS DE VIRTUALIZAO ................................................................................................................16 3.1 HISTRICO DA VIRTUALIZAO................................................................................................................ 16 3.2 VIRTUALIZAO........................................................................................................................................ 17 3.3 HYPERVISOR ............................................................................................................................................. 18 3.4 TCNICAS DE VIRTUALIZAO .................................................................................................................. 19 3.4.1 Emuladores ...................................................................................................................................... 19 3.4.2 Virtualizao Completa .................................................................................................................... 20 3.4.3 Paravirtualizao ............................................................................................................................. 22 3.4.4 Virtualizao em Nvel de Sistema Operacional............................................................................... 24 3.4.5 Virtualizao Completa com Hypervisor Hospedado ....................................................................... 25 4 HYPERVISOR XEN ......................................................................................................................................26 4.1 ORIGENS DO XEN ...................................................................................................................................... 26 4.2 O HYPERVISOR XEN................................................................................................................................... 29 4.3 O DOMAIN-0 DO XEN................................................................................................................................ 31 4.4 DOMAIN-0 EM SO ..................................................................................................................................... 32 4.5 DAEMON XEND......................................................................................................................................... 32 4.6 ARQUIVOS DE LOG DO XEND .................................................................................................................... 33 4.7 XENSTORE................................................................................................................................................. 34 4.8 REQUISITOS DE HARDWARE ..................................................................................................................... 35 4.8.1 Processadores .................................................................................................................................. 35 4.8.2 Discos e Controladores ..................................................................................................................... 37 4.8.3 Interface de Rede ............................................................................................................................. 38 4.8.4 Dispositivos Grficos ........................................................................................................................ 38 4.8.5 Memria Fsicas ............................................................................................................................... 39 5 DEMONSTRAO ......................................................................................................................................39 5.1 HARDWARE UTILIZADO NA DEMONSTRAO .......................................................................................... 40 5.2 INSTALAO DO DEBIAN SQUEEZE NO HOST ........................................................................................... 40 5.3 INSTALAO DO XEN HYPERVISOR NO HOST ........................................................................................... 52 5.4 CRIANDO AS MQUINAS VIRTUAIS........................................................................................................... 57 5.4.1 Levantando as Informaes ............................................................................................................. 57
5.4.1.1 Escolher o Sistema Operacional da Mquina Virtual ..................................................................................57 5.4.1.2 Escolher o tipo de Virtualizao .................................................................................................................57 5.4.1.3 Escolher a Forma de Armazenamento do Sistema .....................................................................................57 5.4.1.3.1 Criando Imagens de Discos de Tamanho Fixo ....................................................................................58 5.4.1.3.2 Criando Imagens de Discos de Tamanho Dinamicamente Expansvel ................................................59 5.4.1.3.3 Criando Parties Para as Mquinas Virtuais .....................................................................................61 5.4.1.4 Definir a Forma de Instalao do Sistema ..................................................................................................69

5.4.2 Criar Mquina Virtual Paravirtualizada ........................................................................................... 69


5.4.2.1 A Mquina Modelo .....................................................................................................................................70 5.4.2.2 Criar e Configurar a Mquina Virtual Paravirtualizada ...............................................................................75

5.4.3 Criando Mquina Virtual em Virtualizao Completa ..................................................................... 84


5.4.3.1 Criando os Discos........................................................................................................................................85 5.4.3.2 Criando a Mquina Virtual..........................................................................................................................86

5.5 GERENCIAMENTO DAS MQUINAS VIRTUAIS .......................................................................................... 90 5.5.1 Carregar Mquinas Virtuais Automaticamente no Boot.................................................................. 93 6 CONCLUSO ..............................................................................................................................................95 7 REFERNCIAS BIBLIOGRFICAS ..................................................................................................................96

14

1 INTRODUO

Em Tecnologia da Informao, virtualizao se define como a utilizao de um nico equipamento para a execuo de vrios sistemas operacionais, cada um desses sistemas rodando dentro das chamadas VM (Virtual Machine - Mquina Virtual). Uma VM se comporta como se fosse um computador fsico e independente do hardware real onde ela est rodando.

Em um ambiente onde no utilizada a virtualizao, para cada servidor adicional, so necessrios estudos sobre o novo equipamento a ser adquirido e do local a ser instalado este novo hardware, como instalaes eltricas, comunicao e refrigerao. necessrio tambm levar em considerao, o fato de que este novo servidor representa um maior gasto com energia eltrica, custo de manuteno por toda a vida til e, possivelmente uma futura ampliao de suas capacidades operacionais, caso seja necessrio.

Com a virtualizao, este processo no demanda, necessariamente, a aquisio de um novo equipamento, visto que basta criar a mquina virtual no servidor de mquinas virtuais, assim pode-se economizar custos, por exemplo, com energia eltrica, espao fsico e refrigerao, alm do fato de que podemos tambm fazer uma centralizao do gerenciamento das mquinas na rede.

At aqui vimos que a maior vantagem da virtualizao, visvel em primeira impresso, a reduo de custos, j que pode ser feito o papel de vrias mquinas com os gastos de eletricidade, manuteno e espao fsico de apenas uma.

1.1 OBJETIVO

Como objetivo, temos na realizao deste trabalho, a demonstrao da virtualizao de servidores, com a utilizao do software Xen Hypervisor como soluo de cdigo aberto para ambientes de virtualizao de servidores.

15

2 METODOLOGIA

Este trabalho foi construdo atravs de pesquisa bibliogrfica por assuntos a respeito da virtualizao, tais como a origem do conceito da virtualizao e o histrico do desenvolvimento deste at os dias de hoje, softwares de virtualizao e tipos existentes de virtualizao.

O Xen Hypervisor o software com esta finalidade que foi escolhido para ser demonstrado, por ser de cdigo aberto e operar em um ambiente gratuito, o Linux, desta forma, os custos com licena de uso de softwares para a criao do ambiente de virtualizao praticamente no existem.

Com este caminho definido, a construo do trabalho aconteceu em duas etapas principais descritas abaixo:

2.1 DETALHAMENTO TERICO

Foram levantadas informaes sobre a virtualizao e o Xen Hypervisor, com o objetivo de mostrar a histria por trs da virtualizao de hoje e como comeou e tem evoludo o projeto Xen Source.

2.2 DEMONSTRAO E PRTICA

Esta etapa tem a inteno de mostrar o uso do Xen Hypervisor na prtica, de forma a se tornar um verdadeiro guia prtico para o usurio, com guias passo a passo e detalhamento de opes de configurao.

16

3 CONCEITOS DE VIRTUALIZAO

3.1 HISTRICO DA VIRTUALIZAO

A virtualizao certamente uma parte importante dos ambientes de computao modernos. Um fato que as razes da virtualizao datam das origens da computao moderna. Hoje podemos ver o reaparecimento da virtualizao que passaram despercebidas pela gerao que testemunhou o surgimento da computao pessoal. Sua origem data dos primrdios da dcada de 1960 em computadores de grande porte da IBM (International Business Machines). Os pesquisadores neste perodo estavam interessados no aumento da robustez e estabilidade dos hypervisors ou VMM (Virtual Machines Monitor Monitor de Mquinas Virtuais). O primeiro computador disponvel comercialmente projetado para oferecer a virtualizao, foi o Sistema 370 da IBM em 1977, com a introduo do sistema operacional da IBM CP/CMS onde mltiplas VM podiam ser executadas simultaneamente. Esta cooperao de hardware e software para suportar a virtualizao foi um dos principais atrativos da linguagem computacional de grande porte da IBM.

J na dcada de 1990, Mendel Rosemblum usou maquinas virtuais para permitir que sistemas operacionais comuns executassem em hardware de computadores de acesso no uniforme memria (NUMA, Non-Uniform Memory Access) que uma memria compartilhada por todos os processadores. Este projeto ficou conhecido pelo nome de Disco em Stanford. Neste caso o sistema operacional era da IRIX da Silicon Graphics, desenvolvido para executar no MIPS (Microprocessor without Interlocked Pipeline Stages), mas este no foi projetado para dar suporte a virtualizao completa. Os desenvolvedores do projeto utilizaram uma tcnica mais tarde conhecida como paravirtualizao permitindo assim a introduo de modificaes especficas para permitir a virtualizao.

A equipe de Stanford voltou sua ateno para uma plataforma comum no projetada para a virtualizao, para fazer modificaes. Este passo teve uma influencia muito grande para a fundao da VMWare, que impulsionou o primeiro

17

produto comercial para virtualizao desta plataforma. Eles conseguiram atravs da traduo simultnea durante a execuo para instrues da arquitetura x86 modificada, executar os arquivos binrios sem alterao de sistema operacional como o Windows.

Com a Tecnologia de Virtualizao, desde 2005 os fabricantes de processadores como a Intel e AMD (Advanced Micro Devices) aumentaram o suporte via hardware em suas linhas de produtos. A Intel usa para designar seus processadores com suporte virtualizao, a sigla VT (Virtualization Technology), foi desenvolvida utilizando o codinome de Vanderpool e a AMD usa a sigla AMD-V (AMD Virtualization), usando o codinome Pacifica. Esses hardwares promovem os objetivos da virtualizao em plataformas comuns.

3.2 VIRTUALIZAO

Virtualizao tem como base principal, ocultar as caractersticas fsicas de uma plataforma computacional um computador com HD (Hard Disk), memrias, processadores, e outros dispositivos de hardware, essa tcnica permite compartilhar e utilizar recursos de um nico sistema computacional para varias VM que por sua vez oferece um sistema computacional completo muito similar a uma mquina fsica, podendo ter seu prprio sistema operacional, aplicativos e oferecer servios de redes. Veja a demonstrao de virtualizao na figura 1.

Figura 1: Conceito da Virtualizao de Servidores

18

Podemos dizer vendo esta figura que uma mquina com todos os seus dispositivos de E/S, como por exemplo, HD, Placa de Rede, Processadores, Placa de Vdeo, ir conter hspedes ou VMs, disponibilizando o compartilhamento desses dispositivos entre estas VMs, atravs de um hypervisor fazendo este gerenciamento. Veja alguns benefcios da virtualizao.

A Depurao de Sistemas Operacionais permite que um desenvolvedor teste novos sistemas operacionais como hspedes em ambientes mais estveis, pelo fato de consumir muito tempo e exigir uma programao excepcional.

Servidores Finais de Virtualizao com alta taxa de utilizao fazem melhor uso da potncia eltrica, reduzindo assim o consumo da mesma e gerando menor necessidade por infraestrutura de resfriamento.

Capacidade de executar sistemas operacionais e aplicativos antigos em plataformas de hardware modernas.

A maior parte das vantagens da virtualizao, especialmente em plataformas comuns como a x86, derivam da abundncia do poder de computao disponvel em uma nica maquina.

Sistemas virtualizados podem migrar de um computador fsico para outro mesmo enquanto esto rodando, isso se chama de migrao ativa.

3.3 HYPERVISOR

Os Hypervisors so muito importantes para a computao moderna, pois permite que diferentes sistemas operacionais e configuraes coexistam na mesma maquina fsica. O Hypervisor controla a mquina em questo, permitindo que ela seja usada por hspedes (VMs) ao mesmo tempo e dando a cada sistema a iluso de que ele est sendo executado em um hardware privado, ou seja, os hspedes usam os recursos fornecidos tratando deles como se fossem reais.

19

3.4 TCNICAS DE VIRTUALIZAO

A Virtualizao possui muitos detalhes tcnicos que so similares, mesmo assim existem muitas abordagens para resolver problemas convenientes de diferentes implementaes. A virtualizao na computao moderna permite a utilizao de quatro principais arquiteturas para sistemas isolados: emuladores, virtualizao Completa, Paravirtualizao e Virtualizao em Nvel de SO (Sistema Operacional).

3.4.1 Emuladores Neste tipo de virtualizao a VM simula todo o conjunto de hardware, emulando seu comportamento para executar hspedes sem nenhuma modificao seja necessria, para diferentes arquiteturas de hardware. Seu uso est mais focado na criao de novos sistemas operacionais ou microcdigo de hardware antes que esteja disponvel fisicamente. Seu desempenho baixo. Exemplos emuladores PearPC, Bochs e QEMU.

Figura 2: Viso Geral de Emuladores

PearPC um tipo de emulador da arquitetura de processadores da IBM PowerPC G3/G4 portado para Windows e Linux.

20

Bochs simulador de computadores de arquitetura x86, para executar uma variedade de plataformas, incluindo o x86, PowerPC, SPARC (Scalable Processor Architecture), Alpha e MIPS. Pode ainda ser configurado para emular arquiteturas de computao incluindo 386, 486, Pentium Pro e mais modernas de 64 bits. Suporta instrues de processadores como MMX, SSE, SSE2 e 3DNow. O Bochs simula o sistema inteiro incluindo os perifricos necessrios para operao normal.

QEMU trabalha em duas diferentes situaes de operao. Na primeira operao ele faz uma simulao completa do sistema que e semelhante ao Bochs. Neste modo uma serie de arquiteturas de processadores pode ser simulada, com x86, x86_64, ARM (Advanced Risc Machine), SPARC, PowerPC e MIPS, utilizando uma velocidade razovel para tradues dinmicas. Pode emular tanto ambientes Windows como Linux, Solaris e FreeBSD. O segundo conhecido como Emulador em Modo Usurio, por sua vez s esta disponvel quando se hospeda em Linux e permite que arquivos binrios sejam executados em arquiteturas diferentes.

3.4.2 Virtualizao Completa Tambm conhecida como virtualizao nativa, a virtualizao completa permite que sejam executados dentro de uma mquina virtual, sistemas operacionais sem modificaes que so projetados para executar numa mesma arquitetura de hardware presente na mquina fsica, permitindo assim execuo direta no hardware, o monitor de mquinas virtuais (VMM) controla o acesso ao hardware dando a iluso ao sistema operacional de ter plenos poderes sobre o hardware.

21

Figura 3: Viso da Virtualizao Completa

Para arquiteturas x86, sistemas so geralmente classificados como de virtualizao completa se podem executar os arquivos binrios dos sistemas operacionais sem modificaes. Mas alguns desses fazem algumas alteraes simplificadoras nos x86 para facilitar a virtualizao e ainda assim conseguem um alto desempenho, a arquitetura x86 reconhecidamente difcil de virtualizar.

Exemplos de Virtualizao Completa: VMWare, Hyper-V (Microsoft) e Linux KVM.

VMWare atualmente possui uma extensa linha de produtos para solues de virtualizao para a arquitetura x86, lembrando que foi a primeira empresa a oferecer comercialmente software para a virtualizao neste tipo de arquitetura. A VMWare tem produtos que pode ter instalao direta, como o caso do ESX Server, nele um hypervisor fica entre os sistemas operacionais hspedes e o hardware. Possui ainda o VMWare Workstation (Estao de Trabalho), o hypervisor executado como um aplicativo instalado sobre um sistema operacional base, como o Windows e Linux. Estes por sua vez so verses comerciais, a VMWare possui uma outra linha para virtualizao que pode ser adquirida no site

22

oficial da VMWare, so o VMWare Player que permite que executem maquinas virtuais criadas pelos servidor ou pelo Workstation, e o VMware Server que permite a criao, administrao e execuo de VMs. Outras linhas de produtos disponveis para virtualizao so, para plataformas de data center VMWare vSphere 4, VMWare Server, VMWare ESXi e o VMWare GO.

Hyper-V O Hyper-V, da Microsoft, um hypervisor que est disponvel tanto isolado ou independente como uma caracterstica do Windows Server 2008, tem uma arquitetura de hypervisor micro-kernel de 64-bits que permite que o YPF-V mantenha uma ampla lista de mtodos de suporte aos dispositivos. Executa tanto sistemas de 32 ou 64 bits de diferentes plataformas de servidores, com o prprio Windows, Linux, e outros. Outro produto, chamado de VirtualPC, por sua vez precisa ser executado hospedado em um sistema da Microsoft.

Linux KVM (Kernel Virtual Machine) Este tipo de virtualizao tem como base a modificao no kernel do Linux que o transforma em um hypervisor quando se acrescenta um modulo adicional. Ele uma soluo de virtualizao completa durante o desenvolvimento do kernel 2.6.20. Cada hospede na KVM na verdade executado no espao dos usurios do sistema hospedeiro, aparecendo como um processo normal ao kernel hospedeiro, sendo um esquema de isolamento mais fraco que outros modos j mostrados. O agendador de processos do kernel se bem ajustado vai efetuar tarefas de um hypervisor.

3.4.3 Paravirtualizao Outra tcnica bastante conhecida a paravirtualizao, que fornece uma VM completa, nela o hypervisor exporta uma verso modificada do hardware fsico, sendo a mquina virtual da mesma arquitetura. Modificaes especficas so introduzidas para facilitar e acelerar o suporte a mltiplos sistemas operacionais hspedes. Apenas pequenas modificaes so realmente necessrias nos sistemas operacionais hspedes, se o cdigo fonte do sistema operacional for fechado como o caso do Windows, da Microsoft, fica difcil de dar suporte, pois distribudo somente na forma binria.

23

Sua grande vantagem inclui desempenho, capacidade de alterar a escala e gerenciamento. Os dois exemplos mais comuns deste uso so o Linux em modo usurio (UML, User-mode Linux) e o Xen, que abordaremos mais adiante.

Figura 4: Viso da Paravirtualizao

User-mode Linux UML esta implementao permite que este sistema operacional execute outros sistemas Linux em espao de usurio, ou seja, cada instancia de maquina virtual executa um processo no Linux hospedeiro. Este mtodo de virtualizao foi consolidado durante o perodo de desenvolvimento do kernel 2.6 do Linux. Esta estratgia adequada para os ambientes de computao heterogneos da atualidade, pois o UML controla somente maquinas Linux.

Lguest este mtodo de virtualizao foi consolidado durante o perodo de desenvolvimento do kernel 2.6.23 do Linux e mantido por Rusty Russel. Uma observao interessante de umas de suas caractersticas sobre o Lguest que ele implementado como um mdulo do kernel, muito diferente dos outros mtodos mencionados anteriormente. Ele uma ferramenta para aprendizado e

experimentao de implementaes para virtualizao devido sua quantidade de cdigo relativamente pequena, pois no to funcional como os outros mtodos.

24

Paravirt_ops uma VMI (Virtual Machine Interface) este mtodo no obriga que exista nenhuma API (Application Programming Interface) em particular, permitindo assim seleo em tempo de execuo da implementao efetiva de mtodos na API. Sendo assim cada plataforma de virtualizao pode implementar suas prprias funes para essa interface comum.

3.4.4 Virtualizao em Nvel de Sistema Operacional Uma observao que se difere de todos os outros tipos de virtualizao e fato de que este tipo quase virtualizao, pois no existe VMM. Tudo feito com uma imagem de sistema operacional tradicional, so sistemas que suportam esta tcnica para prover o compartilhamento de tempo com a capacidade de isolamento de recursos. Os hspedes nesta tcnica so percebidos como se fossem mquinas separadas com seus prprios sistemas de arquivos, endereos IP e configuraes de software. Veja a estrutura demonstrada na figura 5.

Figura 5: Viso da Virtualizao em Nvel de Sistema Operacional

Essa tcnica tem como vantagem uma menor duplicao de recursos. A principal ideia por trs da arquitetura exigir menos memria fsica para um sistema hspede. Essa tcnica excepcional em situaes que exijam extrema capacidade

25

de

mudana

de

escala

grande

quantidade

de

hospedes

executando

simultaneamente.

Implementaes neste tipo de tcnica incluem Linux VServers, OpenVZ, Virtuozzo, Solaris Containers, FreeBSD jails e HP UX 11i Source Resource Partitions. Conhea alguns destes mencionados:

Linux VServer Linux Virtual Server um exemplo de sistema operacional para hardware comum, suportado tanto pelo kernel 2.4 como o 2.6, opera em plataformas de hardware (x86, x86-64, SPARC, PowerPC, MPIS, ARM) e virtualiza uma nica instncia do kernel do Linux de forma que mltiplos hospedes possam ser instanciados em espao de usurio, esses hospedes so chamados de servidores privativos virtuais (VPS).

OpenVZ este mtodo e implementado como um kernel modificado que suporta seu prprio ambiente virtual e espao de usurios isolados conhecidos como VE (Virtual Environment) e so tambm chamadas de VPSs como o Linux VServer. Os recursos das VEs so controlados por um construtor chamado de beanconstrutor literalmente Contador de Feijo, que por sua vez definem quantidade de memria disponvel para cada instancia e outros parmetros de sistema. uma implementao de virtualizao via sistema operacional e suporta uma variedade de arquiteturas de hardware como o x86, x86-64 e PowerPC.

3.4.5 Virtualizao Completa com Hypervisor Hospedado Esta tcnica de virtualizao consiste em um hypervisor que depende do sistema operacional do hospedeiro para rodar, ou seja, o hypervisor roda como um processo no sistema operacional da mquina hospedeira, nesta tcnica existe uma camada adicional entre o hypervisor e o hardware em relao virtualizao completa, o que faz com que esta tcnica tenha um pior desempenho, esta camada o sistema operacional.

26

A virtualizao completa com hypervisor hospedado mais lenta, porm oferece um ambiente mais fcil utilizao, e recomendado para uso em desktops e estudo de sistemas operacionais diferentes do instalado no hospedeiro.

Figura 6: Viso da Virtualizao Completa com Hypervisor Hospedado

So exemplos de solues que utilizam esta tcnica: Microsoft VirtualPC, VMWare Workstation, VMWare Server e Oracle VirtualBox.

4 HYPERVISOR XEN

4.1 ORIGENS DO XEN

No ano de 2001 o Xen surgiu como parte do projeto XenoServer no Laboratrio de Computao da Universidade de Cambridge, sua finalidade era prover uma infra-estrutura pblica para computao distribuda em amplas reas, com um sistema onde plataformas de execuo do XenoServer estariam espalhadas

27

pelo planeta para uso por qualquer membro no pblico-alvo. O Xen foi criado para ser o ncleo do XenoServer, permitindo hospedar mltiplos sistemas operacionais comuns num nico servidor baseado na arquitetura x86.

No ano de 2003 o Xen foi apresentado ao pblico atravs de um artigo acadmico da Associao de Equipamentos de Computao (ACM). A comunidade acadmica ficou super interessada com a afirmao de o Xen executar virtualizao rpida em mquinas x86 comuns, um grande nmero de grupos se interessou por esta abordagem de virtualizao. Ao passar do tempo dessa publicao do Xen, muitos testes e melhorias, com atualizaes significativas ocorreram no projeto, permitiu melhorias nas funcionalidades, confiabilidade e desempenho do Xen.

Com a fundao da empresa Xensource, foi promovida uma enorme adoo dos hypervisors de cdigo aberto Xen pelo mundo empresarial, a Xensource concentrava-se em dar suporte ao desenvolvimento de todo o ncleo do Xen, sendo que ao mesmo tempo vendia para outras corporaes pacotes e softwares de gerenciamento. Com o desenvolvimento do Xen 1.x, a Microsoft em colaborao com a Universidade de Cambridge, desenvolveu parte do Windows XP para o Xen, mas devido o programa de licenciamento acadmico da Microsoft, os termos desta licena nunca foram publicados.

Ao final do ano de 2004, o Xen 2.0 foi lanado, com diversas atualizaes e modificaes com grande flexibilidade na configurao de dispositivos virtuais de E/S dos sistemas operacionais hospedes. Nesta parte importante ressaltar que os usurios do Xen podem configurar regras de firewall arbitrrias, desde roteamento e pontes de interfaces hospedes virtuais de rede. Foi acrescentado um suporte para volumes LVM (Logical Volume Management) de cpia durante gravao bem como para arquivos de retorno (Loopback) para manter imagens de discos de sistemas operacionais hspedes. Nesta verso ainda podemos falar do suporte a multiprocessamento simtrico, embora imagens de hospedes continuem com processadores nicos. Mas o que mais impressionava nesta verso do Xen foi a adio de um recurso chamado de Live Migration ou simplesmente Migrao Ativa, um recurso que faz que um sistema hspede que esta em um hardware diferente

28

seja migrada via rede para outro hardware em execuo sem interrupes notveis nos servios.

Essa tendncia de virtualizao era notvel, pois no incio de 2006 o Xen j tinha conseguido uma participao significativa nas virtualizaes em uso, tanto no meio acadmico como no empresarial. Foi neste ano que foi lanado a todos o Xen 3.0 que introduzia uma camada extra para as tecnologias de virtualizao de hardware oferecidas pela INTEL com o VT-x e a AMD com o AMD-V, permitia que hspedes sem alteraes, os HVM (Hardware Virtual Machine) e hspedes paravirtualizados se hospedassem no Xen. Alm de outras caractersticas como o suporte para sistemas hspede de multiprocessamento simtrico (SMP), com este suporte foi acrescentado um agendador para CPUs com limites de balanceamento de carga, foi incluindo CPUs virtuais de conexo dinmica, suporte a grande quantidade de memrias e uma verso para a arquitetura IA64. Uma ferramenta que permite aos desenvolvedores aperfeioar o cdigo para obter ainda mais desempenho do Xen, esta ferramenta se chama Xen-Oprofile.

Em 2007, a Critrix comprou a XenSource e esta se tornou o Grupo do Produto XenServer Citrix, no mesmo ano foi lanado a verso 3.1. Com uma caracterstica de dar suporte XenAPI, uma interface de programao para comandos Xen que permitia a interao de ferramentas de gerenciamento de terceiros, incluindo as baseadas no Modelo Comum de Informaes da Fora Tarefa de Gerenciamento Distribuido (DMTF CIM), que est se tornando um padro para gerenciamento de agrupamentos de maquinas heterogneas. Tambm capaz de salvar, restaurar, migrar e ter controle dinmico de memria para hspedes HVM.

O hypervisor Xen 4.0 foi lanado em 7 de Abril de 2010, com comandos bsicos e ferramentas de gerenciamento. Nele podemos us-los com qualquer distribuio Linux, uma soluo de virtualizao de alto desempenho, podendo ser adicionadas ferramentas de terceiros para ter uma gesto muito mais eficaz. O Xen 4.0 constri e inclui um novo pvops ou dom0 (domnio 0) que ajuda no gerenciamento das mquinas virtuais que se denominam domU, a partir do Kernel 2.6.31.

29

4.2 O HYPERVISOR XEN

O hypervisor o corao do Xen, ele fica interagindo, controlando e alocando os recursos, fica situado entre os domnios hspedes e hardware fsico. Dessa forma o hypervisor apresenta aos domnios hspedes uma interface de hardware virtual, no lugar do hardware fsico. Veja a figura 6, que ilustra este contexto.

Figura 7: Hypervisor Xen

Nesta imagem vemos como trabalha o Hypervisor Xen, monitorando e gerenciando as requisies de hardware dos sistemas hospedes, alocando assim dispositivos virtuais para que os hspedes presentes achem que esto em uma mquina privada e no virtualizadas. O gerenciamento mais comum do hypervisor criar hospedes, remover hospedes, parar, inicializar, suspender ou pausar hospedes e adicionar e remover dispositivos.

importante que o sistema hospede fique o mais parecido com o hardware em questo, pois modificaes mnimas so feitas nos sistemas operacionais e aplicativos de usurios dentro dos sistemas hspedes.

30

As caractersticas mais determinantes do Hipervisor Xen so:

Pores de todos os recursos da mquina fsica so dadas aos sistemas hospedes, ou seja, o hypervisor no expe toda a potncia da mquina subjacente para nenhum hspede, fazendo assim uma alocao de partes dos recursos para cada hspede. Estes recursos que vo desde memrias, Disco Rgido, NIC (Network Interface Card), CPUs, etc.

O hypervisor expe dispositivos idealizados em vez de fazer uma simulao dos dispositivos fsicos reais, ele faz uma exportao dos dispositivos simplificando-os. Por exemplo, no importa se uma placa de rede da 3com Etherlink, ela por sua vez pode ser mostrada como um dispositivo de rede genrico.

O Xen expe uma verso simplificada dela para sistemas operacionais hspedes, modificando partes da estrutura fsica que sejam difceis de virtualizar, caso da arquitetura x86, podendo assim facilitar a virtualizao.

Sistemas Operacionais comuns possuem uma posio privilegiada em relao aos aplicativos de usurio, ele usa esta posio privilegiada para proteger os aplicativos uns dos outros. Estes privilgios esto presentes na maioria das arquiteturas dos processadores com pelo menos dois nveis de privilgios. O hypervisor Xen deve esta em uma posio privilegiada no sistema, pois ele tem o trabalho de alocar recursos para domnios hspedes e proteg-los uns dos outros, fornecendo assim uma virtualizao eficiente.

Esses nveis de privilgios so chamados de Anis de Proteo, na arquitetura x86 existe mais de dois nveis de privilgios, esta arquitetura possui quatro nveis. Enumerados de 0 a 3, sendo que o nvel 0 o maior privilegio, e o 3 de menor. Assim, o hypervisor Xen executado no anel 0, os sistemas operacionais hospedes no 1 e os aplicativos de usurios no 3. Isto garante ao hypervisor o poder necessrio para garantir o compartilhamento de recursos e o isolamento entre os domnios hspedes. As extenses provenientes das tecnologias da Intel com o VT-x

31

e da AMD com a AMD-V, esses anis de proteo adicionais oferecem dois modos, o raiz e o no-raiz, cada um com anis de 0 a 3.

4.3 O DOMAIN-0 DO XEN

O Domain0 ou Dom0 um domnio privilegiado, trabalhando em conjunto com o hypervisor na tarefa de administrar os domnios hospedes no sistema, dando ao hypervisor uma interface administrativa, permitindo que seja uma camada leve. Assim como o Domain0 conhecido como Dom0 os sistemas hospedes so chamados de DomU. O Domain0 o primeiro domnio ativo quando o sistema e inicializado, podendo ser usado para criar e configurar todos os outros domnios hspedes comuns. Ele possui acesso fsico direto para todo o hardware e exporta os dispositivos genricos para os DomUs. Para isto o Domain0 executa um driver especfico para cada dispositivo fsico real e ento se comunica com outros DomUs atravs de transporte assncrono de memria compartilhada.

Figura 8: Hypervisor Xen com Domain-0

O domain0 pode delegar responsabilidade a um dispositivo particular para outro domnio, ou seja, um domnio de driver, que dado acesso fsico a um dispositivo a fim de compartilh-lo com outros domnios e um DomU que executa um kernel mnimo e um backend para um dispositivo particular. Um backend nada mais do que um programa sendo executado indiretamente, por outro programa no caso o Domain0 que delega esta responsabilidade, ao contrrio temos o frontend que

32

seria um driver genrico executado pelo DomU. Os backend oferecem a cada forntend a iluso de um dispositivo genrico que dedicado quele DomU. Assim o backend entende os detalhes do hardware fsico real e agrupa as requisies genricas de cada frontend de forma apropriada a encaminh-las ao hardware.

4.4 DOMAIN-0 EM SO

O Linux o padro e a escolha mais utilizada para o Domain0. Pois existem algumas limitaes para sistemas operacionais executarem em um sistema operacional hspede comum, sem suporte a hardware, sistemas operacionais precisam ser modificados para executar em um domnio hspede. O Linux e NetBSD foram adequados com os ganchos de sistema e as ferramentas necessrias, para dar este suporte ao compartilhamento de dispositivos entre sistemas hspedes. Atualmente, selecionar o Linux oferece ao operador de sistema uma maior documentao, suporte a drivers e informaes sobre possveis problemas, pois as mquinas virtuais hspedes executam igualmente bem com qualquer tipo de Domain0.

4.5 DAEMON XEND

Xend o daemon do Xen, um processo especial que roda no Domain0, sendo uma parte crtica do Xen, ele est localizado em /etc/xen/xen-config.sxp. Geralmente utilizada uma interface com o Xend via comandos de gerenciamento do Xen, o xm (Xen Management), comandos para executar determinadas tarefas de gerenciamento como iniciar, parar, pausar, criar, remover e gerenciar os dispositivos dos sistemas hspedes, alocando assim as quantidades mximas para cada hspede. O xend e o xm so na verdade aplicativos Python. Onde o daemon xend fica esperando por requisies em uma porta de rede aberta, j os comandos xm geralmente enviam requisies a um daemon xend que esta em execuo na mesma mquina.

33

Os comandos para se controlar o daemon xend tem os seguintes argumentos: Start usado para inici-lo se este j no estiver sendo executado. Exemplo: root@dom0# xend start Stop usado para parar uma instancia que esta sendo executada no momento. Exemplo: root@dom0# xend stop

Restart geralmente usada quando foram feitas modificaes no arquivo de configurao. Se uma instncia estiver sendo executada, este comando ir reinici-la, mas se uma instncia estiver inoperante e for usado o comando, ela ser iniciada. Exemplo: root@dom0# xend restart

Status pode ser til checar sua condio num dado momento, quando o xend estiver executando. Exemplo: root@dom0# xend status

4.6 ARQUIVOS DE LOG DO XEND

Os arquivos de log so mantidos em /var/log ou /var/log/xen/ usando um arquivo de nome mais comum chamado xend.log. Estes arquivos so tratados pelo xend da seguinte forma, ele cria uma srie de logs enquanto est executando, pois estes logs so uma forma de importante de informar as condies de uma instncia de xend em execuo.

Conforme estes arquivos crescem muito, so movidos para xend.log.1, xend.log.2, etc. At serem deletados. Outro arquivo similarmente importante o

34

debug.log, que nada mais que os eventos do xend que so movidos para este arquivo.

Consultar esses arquivos de logs o primeiro passo importante para um diagnstico de qualquer problema que venha a ser enfrentado na configurao de seu sistema Xen.

4.7 XENSTORE

O XenStore uma parte da estrutura administrativa muito importante, ele por sua vez uma base de dados de informaes de configurao compartilhadas entre domnios, os domnios escrevem na base de dados do XenStore para poderem comunicar-se com outros domnios. Seu uso geral esta baseado em controlar dispositivos em domnios hspedes, semelhante ao sistema de arquivos /proc ou sysfs no Linux. Ele armazena pequenas quantidades de informaes, onde os drivers possam escrever requisies ou informaes de concluso no XenStore. Seu arquivo de localizao fica em um nico arquivo /var/lib/xenstore/tdb, tdb vem do acrnimo de Tree DataBase, traduzido em Base de Dados em rvore. Esta base de dados do XenStore contm uma rvore de arquivos com trs caminhos principais que so os seguintes:

/vm Internamente, este arquivo possui reas dedicadas aos domnios individuais, ou seja, cada domnio possui nmeros de identificao que no caso do /vm so dois o UUID (Universally Unique IDentifier) e DOMID (DOMain ID). O /vm indexado pelo UUID, onde o UUID um numero de identificao que continua igual mesmo se o hspede for movido por migrao ativa para outra mquina, fazendo com que cada domnio e armazenada informaes de configuraes tal como o nmero de CPUs, memrias alocadas virtualmente para o domnio hspede. J o segundo identificador o Identificador de Domnio (DOMID), que se refere a uma instncia em particular, o DOMID geralmente alterado quando o hspede migrado para outra mquina.

35

/local/domain Este tambm possui arquivos dedicados aos domnios individualmente /local/domain/<DOMID>, este indexado pelo DOMID que contem informaes como CPU atual qual o domnio est vinculado, permitindo assim a possibilidade de migrao para outra mquina, onde o UUID vai continuar o mesmo e ser somente alterado o DOMID. Este arquivo possui mais informaes sobre os domnios hspedes que o arquivo /vm, pois h diversos subdiretrios como, por exemplo, memria, console, CPUs e armazenamento.

/tool um arquivo dedicado a manter informaes de ferramentas e no indexado por domnio.

4.8 REQUISITOS DE HARDWARE

O Xen para ser instalado e configurado, como qualquer outro software necessita de uma srie de requisitos de hardware para ser executado. Vamos iniciar este tpico com os seguintes contedos; processadores, discos e controladores, Interface de Rede, dispositivos grficos e memria RAM.

4.8.1 Processadores Ao se falar de processadores compatveis com a virtualizao do Xen devemos levar em conta o conhecimento em determinadas siglas como as seguintes:

x86 nome genrico dada a famlia de processadores da Intel, os primeiros processadores foram baseados no modelo 8086, o 80186, o 80286, o 80386 e o 80486.

IA64 um tipo de microprocessador desenvolvido pela Intel e HP, para plataformas SMP de 64 bits, usa a arquitetura chamada pela Intel de EPIC (Explicit Parallel Instruction Computing). Estas caractersticas do a capacidade de aceder at 16TB de RAM.

36

X86_64 so processadores da famlia Intel que trabalham com conjunto de 64 bits por vez.

PowerPC uma arquitetura da famlia de processadores RISC. RISC favorece um conjunto simples e pequeno instrues com prioridade de execuo. bastante adotada para processadores de videogames modernos dedicando-se a execuo prioritria.

A arquitetura x86 a melhor proposta para instalao do Xen, existem tambm verses para IA64, x86_64 e Power PC, mas a melhor arquitetura para hospedar a x86. Processadores como as linhas de processadores da INTEL e AMD os mais recentes no mercado como por exemplo:

Linha INTEL: o Xeon o Pentuim 71xx, 7041, 7040, 7030, 7020, 5050, 5060, 5063, 5080. 662,672.

o Core Duo - T2600, T2500, T2400, T2300, L2300. o Core 2 Duo - T7600, T5600, T7200, E6400, E6700, E6600

Linha AMD: o Athlon 64 x2- 5200+, 5000+, 4800+, 3800+, 4200+. o Athlon 64 FX FX-62. o Turion 64 x2 Dual Core TL-50, TL-60, TL-52, TL-56. o Opteron 22xx e 88xx base F, 12xx base AM2.

Esta lista se estende pelo avano da tecnologia de processadores cada vez melhores e por isso no se limite a usar como referncia, o importante que isto mostra a quantidade de processadores que suportam a virtualizao do Xen. Busque as listas completas nos sites dos fabricantes que disponibilizam todas as referencias tcnicas de cada processador.

37

Outro ponto fundamental a se escrever sobre uma tecnologia implementada nestes processadores. Para se obter uma virtualizao eficiente utilizado em alguns processadores como mencionado anteriormente tanto Intel com a VT (Virtual Tecnology), quanto em processadores da AMD com a tecnologia AMDV.

A VT, da INTEL, uma tecnologia voltada a dar suporte para virtualizao, funciona como se fossem vrios processadores trabalhando em paralelo, permitindo assim que vrios sistemas operacionais sejam executados ao mesmo tempo em uma mesma mquina compartilhando o hardware que a compem. Mas partindo para sua caracterstica principal, esta tecnologia consiste em um conjunto de instrues e registradores, denominado de VMX (Virtual Machine Extensions), que uma estrutura de controle entre VMM e VMX. A VMX trabalha com dois modos de operao chamados de VMX root, onde a VMM executa suas tarefas, e a VMX non-root, onde os S.Os convidados executam. Dentro deste contexto, estas instrues servem para facilitar a troca de informaes entre VMM e VMs.

A AMD-V tambm includa como tecnologia para virtualizao assim como o VT da Intel. Como o prprio nome mostra e uma tecnologia de virtualizao da AMD. Sua maior caracterstica trabalhar com a maioria das configuraes de hardware com a arquitetura x86, I/O Virtualization ativa dispositivos para a VM ter acesso direto ao hardware sem haver intermediador, hypervisor neste caso.

4.8.2 Discos e Controladores Os domain0 requerem alguma forma de armazenamento persistente para manter seus dados, este armazenamento deve ser feito por um disco local dentro da mquina, pois o Xen funciona melhor com discos anexados localmente. Dentro deste contexto podemos dizer com exatido que o importante para o Xen no so os tipos de discos utilizados para armazenamento, mas o ponto vital em um sistema Xen a baixa latncia e alta velocidade para obter uma virtualizao bem-sucedida. Como um reflexo disso, podemos considerar discos novos e mais rpidos como a

38

ATA Serial (SATA) e os discos SCSI, onde freqentemente existem em suas controladoras configuraes com altas taxas de RPM (Rotaes por Minuto) e tempos de acesso baixos. Algumas caractersticas como a migrao ativa, exigem unidades de armazenamento anexadas na rede para funcionar melhor, como o caso de NAS (Network Attached Storage), lembrando que na migrao ativa para os DomUs hspedes, um Domain0 no pode ser migrado dinamicamente, embora possvel fazer esse tipo de implementao com sistemas de arquivos distribudos numa rede.

4.8.3 Interface de Rede Os tipos de interfaces de redes neste tpico no so levados em considerao, mas os pontos mais predominantes so; garantir que o kernel do Domain0 contenha os drivers necessrios para utilizar o dispositivo de rede, e que esse kernel tambm inclua os dispositivos de backend do Xen, pode-se querer que inclua o suporte para pontes Ethernet (bridging) e um endereo de retorno (Loopback). O suporte para dispositivos de rede no Xen mantido por controladores encontrados no Domain0.

4.8.4 Dispositivos Grficos Os projetos de sistemas de virtualizao no tem se mostrado preocupados com a virtualizao propriamente dita de adaptadores grficos. As VMs so geralmente acessadas utilizando um protocolo grfico na rede ou um protocolo de conexo remota. Uma tecnologia alternativa de visualizao de VMs a NoMachineNX, que pode ter um desempenho prximo das locais e alta disponibilidade para aplicativos. Desde a verso do Xen 3.0.4 h um recurso muito utilizado chamado de rea de armazenamento temporrio de quadros virtuais (Virtual Frame Buffer).

39

4.8.5 Memria Fsicas Os requisitos efetivos de memria necessrios para uma implementao do Xen deve haver um planejamento do que se pretende utilizar. Implementaes com hspedes somente Linux, os requisitos sero mais leves, mas para implementaes com sistemas operacionais heterogneos com Windows, Linux e Unix, deve ser planejado que tipos de servios sero fornecidos e assim estipular uma quantidade maior de memria. Um bom incio neste tipo de situao saber quantas mquinas virtuais ter o sistema Xen a ser implantado, assim recomendado fazer uma somatria dos requisitos bsicos dos fabricantes que estipularam uma quantidade mnima e mxima para seu sistema operacional, acrescentando ainda 25% do valor obtido para migrao ativa, gerenciamento das VMs e futuras criaes de sistemas hspedes. Assim seu sistema Xen ter memria suficiente para executar os hspedes e ainda ter memria extra. O clculo ficaria assim: somatrio da quantidade de memria por VM multiplicado por 2 e acrescentados 25% do valor obtido.

O Xen para verses de 32 bits suporta at 4GB de memria RAM, a partir da verso 3 e superiores so suportadas Extenses de Endereamento Fsico (PAE, Physical Addressing Extensions) com ele o hardware fica capacitado e a arquitetura x86 de 32 bits suporta at 64GB de memria fsica, embora nem todas as placas mes suportem tais grandes configuraes de memrias.

J o Xen para verses de 64 bits da arquitetura x86, como sistemas de AMD64 ou EM64T da Intel possvel utilizar ate 1TB de RAM. As especificaes da Xensource levam em considerao geral o uso padro de 1GB de RAM.

5 DEMONSTRAO

Nesta etapa, iremos demonstrar como implantar o servidor Xen em uma mquina Linux Debian Squeeze, este processo ser mostrado na forma de passo a passo, com a instalao do Debian Squeeze na mquina, seguida da instalao do

40

Xen Hypervisor 4.0 e a criao de uma mquina paravirtualizada Debian e virtualizao completa com Windows.

5.1 HARDWARE UTILIZADO NA DEMONSTRAO

Computador: HP Pavilion DV4-2140us Entertainment Notebook Processador: Mobile DualCore AMD Turion II M520 2,3 Ghz Memria RAM: 4 GB DDR2 800Mhz (2 x 2GB) (3,75 GB Utilizveis) Placa-Me: Hewlett-Packard HP Pavilion dv4 Notebook PC Motherboard Chipsets: North Bridge AMD RS880M North Bridge AMD K10 IMC South Bridge AMD SB750 HD: Seagate Momentus 7200.4 320423 320GB SATA-II 7200 RPM 16 MB Buffer GPU: ATI Mobility Radeon HD 4200 128 MB + 256 MB Rede: Realtek RTL8139/810x Fast Ethernet Adapter Atheros AR9285 802.11b/g/n Wireless Network Adapter

Este hardware conta com um processador com suporte tecnologia de virtualizao AMD-V da AMD, necessria para as CPUs virtuais a serem criadas na virtualizao completa. Caso o processador seja da Intel, a tecnologia de virtualizao que ele dever ter suporte se chama VT-x. Vale lembrar tambm que estes recursos devem estar habilitados no setup da placa-me.

5.2 INSTALAO DO DEBIAN SQUEEZE NO HOST

O Debian Squeeze foi escolhido para ser o sistema operacional da Dom0 porque, apesar de ser ainda uma verso de testes do Debian, j est prximo do

41

seu lanamento estvel, alm de todos os pacotes necessrios para a instalao do Xen Hypervisor 4.0 compilados e disponveis nos repositrios oficiais do Debian.

Para a instalao necessrio termos o primeiro CD ou DVD de instalao do Debian Squeeze, que podemos encontrar a imagem ISO no endereo http://www.debian.org/CD/http-ftp/.

Fazendo o boot pelo disco de instalao do Debian Squeeze, apresentada a seguinte tela de boas vindas:

Figura 9: Tela de boas vindas do cd de instalao Debian

Para iniciar a instalao basta escolher a opo Install.

Primeiramente, o instalador do Debian pede que seja informado o idioma a ser utilizado no sistema.

42

Figura 10: Instalao Debian Squeeze Opo de escolha do idioma

Depois de escolher o idioma o instalador solicita a configurao de localizao.

Figura 11: Instalao Debian Squeeze Opo de escolha da localizao

A partir do idioma selecionado o instalador vai selecionando as possveis escolhas automaticamente.

43

O prximo passo ser informar o mapa de teclas que ser utilizado, ou seja, qual o teclado instalado na mquina.

Figura 12: Instalao Debian Squeeze Escolha do mapa de teclas

Aps selecionar estas opes o sistema continuar a ser carregado, para dar continuidade instalao.

No passo seguinte ser configurada a rede, caso exista mais de um adaptador de rede, uma lista aparecer para que o adaptador primrio seja escolhido, e logo aps o instalador tentar conseguir um IP pelo protocolo DHCP.

Com as configuraes bsicas de rede definidas, ser requerido o nome que ser atribudo mquina e o nome do domnio onde ela se encontrar.

44

Figura 13: Instalao Debian Squeeze Informando o nome da mquina

Figura 14: Instalao Debian Squeeze Informando o domnio da mquina

Com as configuraes de rede definidas, o instalador parte para as configuraes de fuso-horrio, como anteriormente selecionamos o Brasil para a configurao de localizao, estaro listadas para escolha as cidades com configurao de fuso-horrio que o Linux tem para o Brasil, a opo So Paulo estar selecionada por padro.

45

Figura 15: Instalao Debian Squeeze Selecionando o fuso horrio

Aps configurar o relgio, o particionador iniciado, para que sejam configuradas as parties que sero utilizadas no sistema.

Enquanto o particionador carregado, o seguinte erro pode ser exibido:

Figura 16: Instalao Debian Squeeze Erro enquanto o particionador iniciado

Este erro diz que no foi possvel determinar o tamanho do setor fsico para o disco rgido, e ir utilizar o tamanho para setores lgicos, sempre que aparecer este erro, basta escolher a opo para continuar o processo.

Aps o particionador ser carregado, o mesmo d opes sobre o mtodo de particionamento.

46

Figura 17: Instalao Debian Squeeze Escolhendo o mtodo de particionamento

Esta opo varia bastante, de acordo com a forma desejada para o servidor Xen funcionar, em nosso teste escolhemos a opo manual, para configurar a partio destinada ao LVM.

As configuraes de particionamento escolhidas para o nosso teste foram as seguintes:

#1 Tamanho da Partio: 100MB Usar Como: ext3 Ponto de Montagem: /boot Opes de Montagem: Relatime Rtulo: Nenhum Blocos Reservados: 5% Uso Tpico: Padro Flag Inicializvel: Ligado Tipo: Primria

47

#2 Tamanho da Partio: 2GB Usar Como: rea de Troca (swap) Flag Inicializvel: Desligado Tipo: Primria

#3 Tamanho da Partio: 40GB Usar Como: ext3 Ponto de Montagem: / Opes de montagem: Defaults Rtulo: Nenhum Blocos Reservados: 5% Uso Tpico: Padro Flag Inicializvel: Desligado Tipo: Primria

#4 Tamanho da Partio: 268GB Usar Como: Volume Fsico para LVM Flag Inicializvel: Desligado Tipo: Primria

Com as configuraes de particionamento definidas, necessrio escolher a opo Finalizar o particionamento e escrever as mudanas no disco, a tela que exibida em seguida pergunta se voc tem certeza que deseja aplicar as mudanas no disco.

Ento ser iniciado o processo de aplicao das configuraes de particionamento no disco, em seguida o sistema bsico comear a ser instalado.

Durante a instalao dos pacotes bsicos do sistema, pode ser solicitado o modelo de hardware do teclado instalado na mquina, neste caso, selecione o modelo utilizado e d continuidade ao processo de instalao.

48

Figura 18: Instalao Debian Squeeze Escolhendo modelo do Hardware do Teclado

Aps instalar os primeiros pacotes do sistema bsico, o instalador pedir as configuraes de usurio. Primeiro, ser requerida a senha utilizada pelo usurio root, o root o usurio administrador do sistema, e tem total liberdade para fazer qualquer coisa no sistema, esta senha deve ser informada duas vezes, para conferncia. Em seguida, sero solicitados o nome completo para um novo usurio, o nome de usurio para a conta, e a senha do usurio, que novamente deve ser informada duas vezes para conferncia.

Com estas configuraes at aqui concludas, ser dado incio o processo de catalogar os pacotes disponveis para prosseguir com a instalao, primeiro so catalogados os pacotes disponveis em CD e DVD, a cada disco que lido, aparece uma caixa de mensagem informando qual disco foi lido procurando saber se existe um prximo disco a ser catalogado, quando todos os discos forem lidos, pode-se selecionar a opo para no catalogar outro CD ou DVD.

Depois que os discos so catalogados, a hora de escolher um espelho de rede, este espelho de rede pode ser um repositrio de pacotes na rede local ou na internet, o instalador pergunta se voc deseja utilizar um espelho de rede,

49

recomendvel que sim, pois um repositrio na rede ou na internet pode ter pacotes mais atuais que os contidos em CD ou DVD.

Na escolha de um espelho de rede primeiro perguntado o pas de origem e em seguida dada uma lista de repositrios disponveis no pas selecionado, ou se preferir, voc pode escolher a opo Digitar informao manualmente, ainda na lista de pases, e digitar o endereo do espelho desejado. Antes de buscar informaes no espelho, o instalador pede as configuraes referentes ao proxy de rede, caso existam.

A partir da o espelho selecionado ser lido e o sistema bsico ser atualizado, esta operao pode demorar um pouco, dependendo da banda entre o servidor que estamos instalando e o repositrio.

Depois de ler os repositrios e atualizar a lista de pacotes, o instalador pergunta sobre a configurao do concurso de utilizao de pacotes, caso seja permitida esta participao, uma vez por semana enviado um relatrio dos pacotes instalados, esta estatstica ajuda a decidir quais so os pacotes Debian que estaro disponveis nos primeiros discos de instalao da prxima verso.

Aps atualizar e instalar mais alguns pacotes bsicos do sistema, exibida uma lista para saber quais recursos sero instalados, por se tratar de um servidor, recomendvel que apenas os utilitrios padro de sistema sejam instalados, para posteriormente instalar os servios, mas isto no o impede de instalar o ambiente de trabalho grfico, mas esteja ciente que isto tomar mais recursos do hardware.

Neste passo selecione os recursos desejados e selecione a opo Continuar, para que seja concluda a instalao. Nesta etapa, ser feito o download de mais alguns pacotes, que esto disponveis no espelho de rede ou nos discos de instalao, em seguida, estes pacotes sero instalados no sistema.

50

Figura 19: Instalao Debian Squeeze Selecionando os Recursos a Serem Instalados

Durante a concluso da instalao do sistema, o utilitrio de instalao instala o GRUB, o GRUB um carregador de boot para os sistemas operacionais instalados, na instalao do GRUB para o Debian Squeeze, o seguinte erro pode ser exibido:

Figura 20: Instalao Debian Squeeze Erro Durante a Instalao do GRUB

Este erro diz voc escolheu no instalar o GRUB em nenhum dispositivo, e pode ser impossvel carregar o sistema posteriormente sem o ele, e ento pergunta se deseja continuar sem instalar o GRUB, podemos escolher que sim, pois logo em seguida o utilitrio de instalao pergunta se voc deseja instalar o GRUB no MBR, para que seja carregado durante o boot, neste caso escolha sim.

51

Figura 21: Instalao Debian Squeeze Pergunta Sobre a Instalao do GRUB no MBR

Por fim exibida uma tela informando que a instalao foi finalizada, retire o disco de instalao e selecione continuar para que o computador seja reiniciado, quando iniciar o GRUB ser carregado e uma lista dos sistemas operacionais instalados ser exibida, por padro o Debian estar selecionado e ser iniciado automaticamente.

Figura 22: Instalao Debian Squeeze Lista de boot do GRUB

52

5.3 INSTALAO DO XEN HYPERVISOR NO HOST

Com o Debian Squeeze instalado, partiremos para a instalao dos pacotes necessrios para a instalao do Xen, todos os comandos devem ser feitos com o usurio root. Esta instalao do Debian Squeeze ser a Dom0 do Xen Hypervisor.

Primeiramente, devemos atualizar a base de dados de pacotes do APT e o sistema com os seguintes comandos:

root@dom0# apt-get update

root@dom0# apt-get upgrade

A fim de facilitar o processo de instalao, foram instalados, o servidor ssh e o vim, o servidor ssh utilizado para acesso remoto, e o vim um editor de texto.

root@dom0# apt-get install ssh vim

Em servidores interessante que o IP seja fixo, por isso fixamos o IP da Dom0, editando o arquivo /etc/network/interfaces, nas linhas referentes interface de rede primria, seguindo o seguinte modelo.

#The primary network interface auto <interface de rede> iface <interface de rede> inet static address <endereo IP fixo> netmask <mscara de sub-rede> gateway <endereo IP do gateway>

53

Em nosso teste, o arquivo ficou da seguinte forma:

#The primary network interface auto eth0 iface eth0 inet static address 192.168.1.15 netmask 255.255.255.0 gateway 192.168.1.1

Para aplicar estas configuraes necessrio salvar o arquivo e reiniciar o servio de rede com o comando a seguir:

root@dom0# /etc/init.d/networking restart

Depois de reiniciar o servio de rede, pode-se verificar se as novas configuraes foram realmente ativadas com o comando ifconfig.

Para a instalao do Xen Hypervisor 4.0, requerida uma srie de pacotes adicionais e suas dependncias, podemos instalar todos estes pacotes com o seguinte comando:

root@dom0# apt-get install bcc bin86 gawk bridge-utils iproute libcurl3 libcurl4-openssl-dev bzip2 module-init-tools transfig tgif texinfo texlive-latex-base texlive-latex-recommended pciutils-dev

texlive-fonts-extra

texlive-fonts-recommended

mercurial build-essential make gcc libc6-dev zlib1g-dev python python-dev python-twisted libncurses5-dev patch libvncserverdev libsdl-dev libjpeg62-dev iasl libbz2-dev e2fslibs-dev gitcore uuid-dev ocaml libx11-dev less ntpdate tcpdump wget

A instalao destes pacotes exige um download de cerca de 500 MB, e aps a instalao cerca de 1160 MB sero ocupados no disco rgido.

54

Para sistemas amd64, necessria tambm a instalao do pacote gccmultilib.

root@dom0# apt-get install gcc-multilib

Os pacotes instalados anteriormente so necessrios para que o Xen Hypervisor 4.0 funcione corretamente, o prximo passo instalar os pacotes referentes ao Xen especificamente, estes pacotes podem ser instalados atravs dos seguintes comandos:

Para a plataforma i386:

root@dom0# apt-get install xen-hypervisor-4.0-i386 xen-utils4.0 xen-linux-system-2.6.32-5-xen-686 xenwatch xen-tools Para a plataforma amd64:

root@dom0# apt-get install xen-hypervisor-4.0-amd64 xen-utils4.0 xen-linux-system-2.6.32-5-xen-amd64 xenwatch xen-tools O download dos pacotes e suas dependncias de cerca de 51 MB, e aps a instalao, aproximadamente 158 MB adicionais sero utilizados no disco.

Com esse procedimento, o Xen Hypervisor foi instalado, para que ele funcione, necessrio carregar no momento do boot, o kernel modificado para o Xen, para isso devemos reiniciar o servidor com o comando reboot.

root@dom0# reboot

A opo que dever ser selecionada na lista do grub para que o Xen Hypervisor funcione corretamente, a que contm o contedo Debian GNU/Linux, with Linux 2.6.32-5-xen-<arquitetura> and XEN 4.0-<arquitetura>, ao carregar o sistema nesta opo, o Xen Hypervisor estar ativo e funcionando.

55

Como necessrio carregar o kernel modificado para o Hypervisor, o passo de selecionar a opo correta toda vez que o servidor inicia acaba se tornando incmodo, para isso, podemos fazer com que esta opo esteja no topo da lista com apenas dois comandos.

Primeiro devemos renomear o arquivo referente ao kernel para o Xen, a fim de aumentar a prioridade.

root@dom0# mv /etc/grub.d/20_linux_xen /etc/grub.d/09_linux_xen

Em seguida necessrio atualizar o arquivo de configurao do GRUB.

root@dom0# update-grub

Quando o servidor reiniciar novamente, poderemos ver que o kernel para o Xen aparece em primeiro lugar na lista.

Para que as mquinas virtuais estejam na rede, devero utilizar uma interface do tipo bridge, podemos fazer a configurao da interface bridge ao editar o arquivo /etc/network/interfaces, e adicionar as linhas referentes nova interface de rede utilizando o modelo a seguir.

Caso seja necessrio utilizar IP esttico na bridge:

auto <Bridge> iface <Bridge> inet static address <IP esttico atribudo para a interface> netmask <Mscara de sub-rede> gateway <IP do gateway a ser utilizado> bridge_ports <Interface real de rede a ser utilizada>

56

O endereo tambm IP pode ser atribudo bridge automaticamente por DHCP, seguindo o modelo:

auto <Bridge> iface <Bridge> inet dhcp bridge_ports <Interface real de rede a ser utilizada>

A seguir o exemplo utilizado em nosso teste, como podemos ver foi atribudo um endereo IP esttico interface bridge:

auto xenbr0 iface xenbr0 inet static address 192.168.1.16 netmask 255.255.255.0 gateway 192.168.1.1 bridge_ports eth0

Normalmente, interfaces bridge costumam demorar mais do que as interfaces reais para que estejam prontas para o uso, e a interface fsica de rede utilizada funcionar apenas para esta bridge, no nosso teste, por exemplo, a interface eth0 respondia pelo IP 192.168.1.15, com a bridge ativa, a eth0 passou a no responder por mais nenhum IP, enquanto que o servidor continuou acessvel, mas pelo IP 192.18.1.16 da interface bridge.

Para ativar as alteraes feitas, basta salvar o arquivo e rodar o seguinte comando:

root@dom0# /etc/init.d/networking restart

Com estes passos feitos, o Xen Hypervisor estar instalado e configurado, para comearmos a criar as mquinas virtuais, chamadas no Xen de Domnios, ou DomU.

57

5.4 CRIANDO AS MQUINAS VIRTUAIS

Os domnios podem ser criados no Xen Hypervisor de forma bastante simples, uma vez que sejam levantadas as propriedades do domnio a ser criado.

5.4.1 Levantando as Informaes Antes de criar o domnio, devemos especificar alguns pontos, como o sistema operacional que ser utilizado, o tipo da virtualizao e a forma de armazenamento do sistema do domnio.

5.4.1.1 Escolher o Sistema Operacional da Mquina Virtual

importante definir o sistema operacional que ser utilizado, pois cada sistema ter uma forma de instalao, de acordo com o tipo de virtualizao utilizado.

5.4.1.2 Escolher o tipo de Virtualizao

A escolha de qual sistema operacional a ser utilizado ajuda a decidir o melhor tipo de virtualizao para a mquina virtual. Por exemplo, se o sistema operacional ser Windows, ento a mquina deve ser criada para o mtodo de virtualizao completa, pois no existe um kernel Windows modificado para a paravirtualizao com o Xen, j se a mquina virtual rodar um Linux, podemos escolher a paravirtualizao, pois os mdulos necessrios podem ser facilmente instalados e a paravirtualizao apresenta um melhor desempenho da mquina virtual.

5.4.1.3 Escolher a Forma de Armazenamento do Sistema

Podemos contar com duas formas de armazenamento para o sistema da VM no Xen, a primeira por arquivo da imagem de disco, tambm chamado de

58

loopback image, em que um arquivo localizado em um diretrio funciona como dispositivo de armazenamento da VM, a segunda o uso de uma partio do sistema, em que recomendado o uso do LVM.

Utilizando uma partio do sistema podemos ter um melhor desempenho das VMs, mas obrigatoriamente todo o espao da partio alocado para a VM.

Com o uso das imagens de disco, acontece uma certa perda de desempenho em relao s parties do sistema, em compensao, podemos utilizar imagens dinamicamente expansveis, em que o tamanho do arquivo do disco virtual comea mnimo, e vai aumentando conforme a mquina virtual exige mais espao em disco, at que seja atingido um tamanho mximo previamente definido.

5.4.1.3.1 Criando Imagens de Discos de Tamanho Fixo O comando dd, que acompanha as distribuies Linux, copia o contedo de algum arquivo ou dispositivo para uma imagem de disco local, podemos utiliz-lo para criar os arquivos de imagens de disco para as VMs do Xen.

Para criarmos um arquivo de imagem de disco, temos o seguinte modelo:

root@dom0# dd if=<input file> of=<output file> bs=<block size> count=<conta> Neste modelo esto os seguintes parmetros:

if Dispositivo de origem de dados, para criar uma imagem de disco vazia, devemos fornecer o valor /dev/zero.

of Arquivo de sada da operao, aqui informamos a localizao e o nome do arquivo a ser criado.

bs Tamanho do bloco (bs Block Size), neste parmetro informamos o tamanho de bloco do arquivo, para facilitar a criao do arquivo de imagem

59

podemos informar 1 MB para o tamanho do bloco, neste caso o valor a ser indicado 1M.

count Esta a conta de quantos blocos sero copiados, por exemplo, se o valor do parmetro bs for indicado em 1M, no parmetro count devemos inidicar quantos MB ter o arquivo de imagem.

Seguindo este modelo, temos o seguinte comando como exemplo, criando um arquivo apenas com contedo zero, com 40000 MB (aproximadamente 40 GB):

root@dom0#

dd

if=/dev/zero

of=/home/xen/domains/vm1/disk1.img

bs=1M count=40000

Assim, na criao da imagem loopback, todo o tamanho especificado para ela ocupado no HD.

5.4.1.3.2 Criando Imagens de Discos de Tamanho Dinamicamente Expansvel Algumas mudanas no modelo de criao para as imagens de tamanho fixo permitem a criao das imagens dinamicamente redimensionveis:

root@dom0#

dd

if=<input

file>

of=<output

file>

bs1

count=<conta> seek=<tamanho total>

Neste novo modelo, alguns valores devem ser alterados para que a imagem seja de fato dinamicamente expansvel:

if e of Para estes dois parmetros vale o mesmo do modelo para a criao das imagens de tamanho fixo.

60

bs e count Como o tamanho inicial da imagem dinamicamente expansvel deve ser mnimo, para estes dois parmetros devemos informar 1 byte para o bs, e 1 para o count.

seek Aqui especificamos o tamanho mximo da imagem de disco, que pode ser informado em bytes, Kilobytes (K), Megabytes (M), Gigabytes (G) ou at em Terabytes (T).

Por este modelo, o exemplo a seguir cria um disco virtual com tamanho mximo de 40 GB ocupando o tamanho mnimo no disco:

root@dom0#

dd

if=/dev/zero

of=/home/xen/domains/vm1/disk1.img

bs=1 count=1 seek=40GB

Ao listarmos o contedo do diretrio onde o arquivo foi criado, podemos ver que o arquivo informado com o valor mximo definido:

root@dom0# ls /home/xen/domains/vm1 lah

total 24K drwxr-xr-x 2 root root 4,0K Set drwxr-xr-x 3 root root 4,0K Set -rw-r--r-- 1 root root 38G Set 6 17:29 . 6 17:28 .. 6 17:29 disk1.img

Isso acontece porque no cabealho do arquivo est informado que ele tem o tamanho mximo, para saber o quanto o arquivo realmente est utilizando no HD basta utilizar o comando du, conforme o exemplo:

root@dom0# du /home/xen/domains/vm1/disk1.img h

16K

disk1.img

61

5.4.1.3.3 Criando Parties Para as Mquinas Virtuais Como j foi dito, podemos utilizar parties do sistema para as mquinas virtuais, de modo a ter um melhor desempenho.

O particionador fdisk, apesar de no ser o mais fcil de utilizar recomendado por ser compatvel com diversos sistemas de arquivos e tipos de parties, inclusive para LVM, para manipular as parties de um determinado dispositivo a sintaxe do comando fdisk <caminho do dispositivo> conforme o exemplo a seguir:

root@dom0# fdisk /dev/sda

Este comando abre um console do fdisk para editar as parties no dispositivo selecionado, logo, passam a ser utilizados os comandos do fdisk, a qualquer momento o comando m pode ser enviado, de forma a exibir um menu das opes disponveis para a edio das parties.

Os comandos bsicos para edio das parties so os seguintes:

n Cria uma nova partio.

d Exclui uma partio.

p Mostra a tabela de parties.

t Edita o tipo de uma partio.

l Lista os tipos de parties suportados pelo fdisk.

w Salva a tabela de parties e sai.

q Sair sem salvar a tabela de parties.

62

O processo de edio da tabela de parties bastante intuitivo, mesmo parecendo complicado.

Vamos criar uma nova partio, com o comando n so exibidos os seguintes passos:

Comando (m para ajuda): n

Na tabela de parties so permitidas at 4 parties primrias apenas, mas o nmero total de parties pode ser ampliado se for utilizada uma partio estendida, que abrigar as parties lgicas, caso ainda exista lugar para parties primrias perguntado se a nova partio dever ser primria ou estendida, se j existir uma partio estendida a pergunta se ser primria ou lgica:

Comando ao e p estendida partio primria (1-4)

<Resposta>

ou

Comando ao l p lgica (5 ou superior) partio primria (1-4)

<Resposta>

Se todos os espaos para parties primrias ou estendidas j tiverem sido ocupados, obrigatoriamente ser criada uma partio lgica, j ser solicitado o nmero do primeiro cilindro da partio, que por padro ser o primeiro cilindro do primeiro espao livre no disco.

Primeiro cilindro (12952-38914, default 12952): Using default value 12952

63

Em seguida solicitado final da partio, que pode ser o nmero do cilindro, o caractere + seguido do nmero de cilindros na partio, ou o caractere + seguido do tamanho da partio especificado em Kilobytes (K), Megabytes (M) ou Gigabytes (G), por padro estar selecionado o ltimo cilindro do espao livre e a partio ser criada com o tipo 83 (Linux).

Last

cilindro,

+cilindros

or

+size{K,M,G}

(12952-38914,

default 38914): +20G

Para excluir uma partio o comando d utilizado:

Comando (m para ajuda): d

O fdisk pede o nmero da partio, que informado no comando p, por exemplo, se a partio a ser excluda a /dev/sda6 ento o nmero o 6:

Nmero da partio (1-6): 6

Aps feitas todas as alteraes, para gravar a nova tabela de parties, basta utilizar o comando w no console do fdisk:

Comando (m para ajuda): w A tabela de parties foi alterada! Chamando ioctl() para reler tabela de parties. Sincronizando discos.

Se a tabela de parties for alterada no disco onde o sistema est instalado, o seguinte aviso ser exibido:

WARNING: Re-reading the partition table failed with error 16: Dispositivo ou recurso est ocupado. The kernel still uses the old table. The new table will be used at the next reboot or after you run partprobe(8) or

kpartx(8)

64

Este aviso informa que o dispositivo est em uso pelo kernel, e a nova tabela ser utilizada na prxima inicializao do sistema, neste caso, para utilizar a nova tabela de parties reinicie o servidor.

Depois que o servidor reiniciar, as novas parties criadas estaro prontas para serem utilizadas pelas mquinas virtuais.

Apesar de ser simples a utilizao de parties no disco para o Xen, recomendvel o uso do LVM, pela maior facilidade de administrao dos volumes lgicos, como no ser necessrio reiniciar o servidor toda vez que a tabela de parties for alterada, por exemplo.

No LVM, os volumes lgicos fazem parte de um grupo de volumes, que por sua vez, est abrigado em um ou mais volumes fsicos, que podem ser parties reais do disco.

Figura 23: Viso do funcionamento do LVM.

65

Uma partio destinada ao LVM pode ser criada pelo fdisk, depois de criada uma partio do tipo Linux (83), esta pode ser alterada para o tipo Linux LVM (8e), utilizando o comando t no console do fdisk:

Comando (m para ajuda): t

Com o comando t para trocar o tipo da partio, a primeira informao solicitada o nmero da partio destinada troca.

Nmero da partio (1-6): 6

Depois de escolher qual partio ser alterada, devemos informar qual ser o novo tipo da partio, que ser dado por um nmero hexadecimal, no caso do Linux LVM o nmero o 8e, para ter uma lista completa dos tipos de parties suportados pelo fdisk basta informar L.

Cdigo hexadecimal (digite L para listar os cdigos): 8e O tipo da partio 6 foi alterado para 8e (Linux LVM)

Depois de alteradas as parties, devemos gravar a nova tabela de parties, conforme demonstrado anteriormente, com o comando w.

Com as parties destinadas ao LVM criadas, devemos ento criar os volumes fsicos do LVM, que um UUID das parties para uso com o LVM, para isto utilizado o comando pvcreate, para cada partio do tipo Linux LVM que foi criada.

root@dom0# pvcreate /dev/sda6 Physical volume "/dev/sda6" successfully created root@dom0# pvcreate /dev/sda7 Physical volume "/dev/sda7" successfully created

66

Para exibir os volumes fsicos do LVM criados utilizado o comando pvdisplay.

root@dom0# pvdisplay

"/dev/sda6" is a new physical volume of "40,01 GiB" --- NEW Physical volume --PV Name VG Name PV Size Allocatable PE Size Total PE Free PE Allocated PE PV UUID 40,01 GiB NO 0 0 0 0 t5UyqZ-yBlK-t4eM-1sTf-FvSV-tnlK-eTd9AY /dev/sda6

"/dev/sda7" is a new physical volume of "158,87 GiB" --- NEW Physical volume --PV Name VG Name PV Size Allocatable PE Size Total PE Free PE Allocated PE PV UUID 158,87 GiB NO 0 0 0 0 RDkPj9-0iRz-3B1d-VvdO-7puK-hyFN-F4zG2j /dev/sda7

Nota-se que no necessrio informar o nome do volume fsico, o endereo dele como dispositivo utilizado como nome do volume fsico do LVM.

Com os volumes fsicos definidos e indexados, necessria a criao do grupo de volumes, para esta operao utilizado o comando vgcreate, onde

67

devemos especificar o nome do novo grupo de volumes seguido dos volumes fsicos utilizados.

root@dom0# vgcreate VGxen /dev/sda6 /dev/sda7

Volume group "VGxen" successfully created

Para exibir os grupos de volumes existentes, basta utilizar o comando vgdisplay.

root@dom0# vgdisplay

--- Volume group --VG Name System ID Format Metadata Areas Metadata Sequence No VG Access VG Status MAX LV Cur LV Open LV Max PV Cur PV Act PV VG Size PE Size Total PE Alloc PE / Size Free PE / Size lvm2 2 1 read/write resizable 0 0 0 0 2 2 198,88 GiB 4,00 MiB 50912 0 / 0 50912 / 198,88 GiB tUnnAj-JdbA-WxiV-Ny0D-NxOl-9Bzm-2uK7Fx VGxen

VG UUID

68

Com os grupos de volumes criados, partimos para a criao dos volumes lgicos que sero utilizados, o comando utilizado para esta tarefa o lvcreate, conforme o exemplo a seguir.

root@dom0# lvcreate -name windows1.disk -size 20G VGxen

Em que no parmetro --name informado o nome do novo volume lgico, --size" recebe o tamanho do novo volume lgico em Megabytes (M) ou em Gigabytes (G), seguido do nome do grupo de volumes em que o novo volume deve ser criado.

Aps a criao do novo volume lgico do LVM, o mesmo pode ser encontrado em /dev/<nome do grupo de volumes>/<nome do volume lgico> e pode ser utilizado com o Xen, os volumes lgicos do LVM podem ser exibidos pelo comando lvdisplay, se desejar exibir apenas os volumes lgicos de um determinado grupo de volumes, basta informar tambm o nome do grupo de volumes, conforme a sintaxe lvdisplay <nome do grupo de volumes>.

root@dom0# lvdisplay VGxen

--- Logical volume --LV Name VG Name LV UUID LV Write Access LV Status # open LV Size Current LE Segments Allocation Read ahead sectors - currently set to Block device /dev/VGxen/windows1.disk VGxen 6kxPi3-RN4d-cSba-u1W8-KnqB-5LSu-7VpGf7 read/write available 0 20,00 GiB 5120 1 inherit auto 256 254:0

69

Para remover volumes lgicos ou grupos de volumes inteiros, so utilizados os comandos lvremove e vgremove, respectivamente. O lvremove deve ser acompanhado pelo caminho do volume lgico a ser removido, o vgremove deve ser acompanhado pelo nome do grupo de volumes que ser excludo conforme os exemplos a seguir.

root@dom0# lvremove /dev/VGxen/windows1.disk

root@dom0# vgremove VGxen

5.4.1.4 Definir a Forma de Instalao do Sistema

Para a instalao do sistema operacional na mquina virtual, existem duas formas diferentes, para virtualizao completa, recomendado o uso de imagens iso do disco de instalao, e na paravirtualizao, aplicaes como o debootstrap e rinse podem ser utilizadas.

O uso das imagens iso em casos que se depende de um disco de instalao, como mquinas virtuais em HVM, recomendado, pois podem ser criadas vrias imagens iso no disco, possibilitando assim deixar o dispositivo fsico de CD e DVD livre para o uso, e instalar vrios sistemas operacionais diferentes em vrias VMs ao mesmo tempo, pois cada VM pode fazer uso de uma imagem diferente ou da mesma imagem.

O debootstrap e o rinse, so utilizados para criar instalaes de distribuies debian-like e rpm-like, respectivamente, para uso da tcnica de paravirtualizao.

5.4.2 Criar Mquina Virtual Paravirtualizada Como a paravirtualizao apresenta um melhor desempenho em relao s outras tcnicas de virtualizao, interessante o uso desta tcnica para VMs que utilizem sistemas operacionais com suporte virtualizao, como o prprio Linux.

70

Ser demonstrada a criao de uma mquina virtual Linux Debian Lenny paravirtualizada.

5.4.2.1 A Mquina Modelo

Em um ambiente de virtualizao de servidores, vrias mquinas virtuais podem ser criadas, uma para cada servio de rede, por exemplo, assim, importante que seja criada uma mquina modelo, para economizar tempo e facilitar a configurao de novas mquinas virtuais, pois o sistema operacional das VMs instalado apenas uma vez.

Primeiro deve ser criado o diretrio para a mquina modelo, onde abrigaremos os arquivos do sistema operacional para o modelo:

root@dom0# mkdir /mod_debian

Para a instalao do debian na mquina virtual, podemos utilizar o debootstrap, que pode ser instalado pelo apt.

root@dom0# apt-get install debootstrap

O debootstrap baixa os pacotes para a instalao do Linux Debian e instala os arquivos do sistema em um local determinado no comando, no nosso caso, na pasta da mquina modelo a sintaxe do comando deboostrap <distribuio debian> <diretrio para o sistema> <endereo do espelho>.

root@dom0#

debootstrap

lenny

/mod_debian

http://ftp.br.debian.org/debian

Aps este comando, ser feito o download dos pacotes para a instalao de um sistema bsico do Linux Debian, e o sistema ser instalado no diretrio indicado.

71

Com o Linux Debian instalado, necessrio que seja feita a configurao do sistema das VMs, para que a paravirtualizao seja utilizada.

Antes da configurao, os arquivos /etc/fstab e /etc/network/interfaces devem ser copiados para o diretrio da mquina modelo.

root@dom0# cp /etc/fstab /mod_debian/etc/

root@dom0# cp /etc/network/interfaces /mod_debian/etc/network/

Para configurar o novo sistema preciso se enjaular no diretrio, para que seja possvel a instalao e configurao dos mdulos necessrios paravirtualizao.

root@dom0# chroot /mod_debian

J dentro da jaula montamos o diretrio /proc.

dom0# mount /proc

Para baixar os pacotes dos mdulos para a paravirtualizao, deve ser editado o arquivo /etc/apt/sources.list, adicionando o repositrio oficial e o de updates de segurana, de forma que o arquivo fique com o seguinte contedo:

deb http://ftp.br.debian.org/debian lenny main deb http://security.debian.org/ lenny/updates main

Para a utilizao dos novos repositrios a lista do apt deve ser atualizada, com o comando apt-get update.

dom0# apt-get update

72

necessrio que sejam feitas as configuraes de localizao e internacionalizao do sistema, para isso devem ser executados os seguintes comandos:

Para instalar o locales:

dom0# apt-get install locales

Para configurar o locales:

dom0# dpkg-reconfigure locales

Com o ltimo comando aparece uma tela apresentando uma lista de seleo dos locales a serem gerados.

Figura 24: Criao da Mquina Modelo Locales a serem gerados.

As opes a serem selecionadas so a pt_BR ISSO-8859-1 e a pt_BR.UTF-8 UTF-8, assim o idioma portugus brasileiro ser configurado.

Em seguida aparece outra tela para selecionar qual o locale padro para o ambiente do sistema, a opo pt_BR.UTF-8 a recomendada.

73

O prximo passo configurar o fuso horrio:

dom0# dpkg-reconfigure tzdata

Ser feita a seleo da rea geogrfica para o fuso horrio, para o Brasil, o recomendado a opo Amrica na primeira tela e Sao_Paulo na segunda.

Na paravirtualizao, a mquina virtual utiliza o kernel do hospedeiro, assim, necessria a instalao de alguns mdulos na mquina virtual:

Caso o hospedeiro utilize sistema i386:

dom0# apt-get install less linux-image-2.6-xen-686 mc ntpdate tcpdump

Caso o hospedeiro utilize sistema amd64:

dom0#

apt-get

install

less

linux-image-2.6-xen-amd64

mc

ntpdate tcpdump

O HVC (Hypervisor Virtual Console) o console do Xen com a mquina virtual, para que ele seja habilitado na mquina virtual necessrio editar o arquivo /etc/inittab da mquina modelo, quase no final do arquivo esto as configuraes dos consoles, com o contedo a seguir:

(...)

1:2345:respawn:/sbin/getty 38400 tty1 2:23:respawn:/sbin/getty 38400 tty2 3:23:respawn:/sbin/getty 38400 tty3 4:23:respawn:/sbin/getty 38400 tty4 5:23:respawn:/sbin/getty 38400 tty5 6:23:respawn:/sbin/getty 38400 tty6 (...)

74

A linha para setar o hvc0 deve ser adicionada de preferncia logo acima do tty1, ficando o arquivo da seguinte forma:

(...) xen:2345:respawn:/sbin/getty 38400 hvc0 1:2345:respawn:/sbin/getty 38400 tty1 2:23:respawn:/sbin/getty 38400 tty2 3:23:respawn:/sbin/getty 38400 tty3 4:23:respawn:/sbin/getty 38400 tty4 5:23:respawn:/sbin/getty 38400 tty5 6:23:respawn:/sbin/getty 38400 tty6 (...)

At aqui foram feitas as configuraes universais do sistema operacional das mquinas virtuais paravirtualizadas, para reduzir o tamanho da mquina modelo, podemos excluir os arquivos temporrios baixados durante os comandos apt-get:

dom0# apt-get clean

Para finalizar a configurao da mquina modelo, desmontado o diretrio /proc e ento se sai da jaula, com os seguintes comandos:

dom0# umount /proc

dom0# exit

Como vimos, com uma mquina modelo, vrios passos necessrios para a criao das mquinas virtuais so feitos apenas uma vez, restando as configuraes especficas de cada VM.

75

5.4.2.2 Criar e Configurar a Mquina Virtual Paravirtualizada

Definidas as especificaes da mquina virtual, partimos para a criao da mesma, e finalizao das configuraes.

Primeiramente devem ser criados os discos virtuais, que podem ser parties, volumes lgicos ou imagens de disco, como foi informado anteriormente.

Basicamente, para o Linux devem ser criados dois discos virtuais, um para o diretrio raiz (o /), e outro para funcionar como rea de troca (swap). De acordo com as tarefas que a mquina virtual ir desempenhar, pode ser necessria a criao de mais discos virtuais para montar os outros diretrios, como o /var, o /usr e o /home, por exemplo.

Como exemplo, utilizaremos o seguinte esquema de particionamento:

Disco virtual 1 de 1 GB para o diretrio /.

Disco virtual 2 de 4 GB para o diretrio /usr.

Disco virtual 3 de 8 GB para o diretrio /home.

Disco virtual 4 de 1 GB para o diretrio /var.

Disco virtual 5 de 512 MB para a rea de troca (swap).

Com este esquema, os discos virtuais so criados, conforme demonstrado anteriormente:

Para uso de imagens de disco dinamicamente expansveis:

root@dom0#

dd

if=/dev/zero

of=/home/xen/domains/pvm1/root.img

bs=1 count=1 seek=1G

76

root@dom0#

dd

if=/dev/zero

of=/home/xen/domains/pvm1/usr.img

bs=1 count=1 seek=4G

root@dom0#

dd

if=/dev/zero

of=/home/xen/domains/pvm1/home.img

bs=1 count=1 seek=8G

root@dom0#

dd

if=/dev/zero

of=/home/xen/domains/pvm1/var.img

bs=1 count=1 seek=1G

root@dom0#

dd

if=/dev/zero

of=/home/xen/domains/pvm1/swap.img

bs=1 count=1 seek=512M

Para uso de imagens de disco de tamanho fixo:

root@dom0#

dd

if=/dev/zero

of=/home/xen/domains/pvm1/root.img

bs=1M count=1000

root@dom0#

dd

if=/dev/zero

of=/home/xen/domains/pvm1/usr.img

bs=1M count=4000

root@dom0#

dd

if=/dev/zero

of=/home/xen/domains/pvm1/home.img

bs=1M count=8000

root@dom0#

dd

if=/dev/zero

of=/home/xen/domains/pvm1/var.img

bs=1M count=1000

root@dom0#

dd

if=/dev/zero

of=/home/xen/domains/pvm1/swap.img

bs=1M count=512

Antes de criar as imagens de disco para os discos virtuais, o diretrio onde os arquivos se encontraro deve ser criado, com o comando mkdir.

root@dom0# mkdir /home/xen/domains/pvm1 -p

77

Para uso de volumes lgicos do LVM:

root@dom0# lvcreate -name pvm1.root.disk -size 1G VGxen

root@dom0# lvcreate -name pvm1.usr.disk -size 4G VGxen

root@dom0# lvcreate -name pvm1.home.disk -size 8G VGxen

root@dom0# lvcreate -name pvm1.var.disk -size 1G VGxen

Com os discos virtuais criados necessrio criar o sistema de arquivos dos mesmos, para que possam ser utilizados pelo sistema, para as parties dos arquivos do sistema, pode ser utilizado o sistema de arquivos ext3, para a rea de troca o sistema de arquivos swap:

Para imagens de disco:

root@dom0# mkfs.ext3 /home/xen/domains/pvm1/root.img

root@dom0# mkfs.ext3 /home/xen/domains/pvm1/usr.img

root@dom0# mkfs.ext3 /home/xen/domains/pvm1/home.img

root@dom0# mkfs.ext3 /home/xen/domains/pvm1/var.img

root@dom0# mkswap -f /home/xen/domains/pvm1/swap.img

Para volumes lgicos do LVM:

root@dom0# mkfs.ext3 /dev/VGxen/pvm1.home.disk

root@dom0# mkfs.ext3 /dev/VGxen/pvm1.root.disk

78

root@dom0# mkfs.ext3 /dev/VGxen/pvm1.usr.disk

root@dom0# mkfs.ext3 /dev/VGxen/pvm1.var.disk

root@dom0# mkswap -f /dev/VGxen/pvm1.swap.disk

Com os sistemas de arquivos criados, podemos copiar o sistema para os discos virtuais, mas antes necessrio finalizar as configuraes do sistema, para isso, devemos primeiro copiar o sistema da mquina modelo para uma pasta temporria:

root@dom0# mkdir /tmp/tempmodelo -p

root@dom0# cp /mod_debian/* /tmp/tempmodelo -rfv

Novamente necessrio se enjaular e montar o diretrio /proc, agora na pasta temporria:

root@dom0# chroot /tmp/tempmodelo

dom0# mount /proc

Com esses passos, podemos continuar a configurao do sistema, primeiramente devemos editar o arquivo /etc/hostname, que contm o nome da mquina, aqui devemos informar o nome da mquina virtual na rede.

necessrio alterar tambm o arquivo /etc/hosts, e adicionar uma linha seguindo o modelo <IP da mquina virtual> <nome da mquina virtual>, conforme o exemplo a seguir:

(...) 192.168.1.20 (...) pvm1

79

necessrio tambm ajustar as configuraes das interfaces de rede da mquina virtual, editando o arquivo /etc/network/interfaces:

(...) auto eth0 iface eth0 inet static address 192.168.1.20 netmask 255.255.255.0 gateway 192.168.1.1 (...)

No

arquivo

/etc/resolv.conf

tambm

devem

estar

configurados

corretamente os servidores DNS utilizados.

(...) nameserver 192.168.1.1 (...)

O arquivo /etc/fstab tambm deve ser editado, j que onde est a configurao dos diretrios montados, como foi feita uma cpia deste arquivo a partir da dom0, basta adaptar as alteraes necessrias, abaixo est como o arquivo ficou pelo nosso exemplo.

(...) # <file system> <mount point> <type> <options> proc /dev/xvda1 /dev/xvda2 /dev/xvda3 /dev/xvda4 /dev/xvda5 (...) /proc / /home /usr /var none proc ext3 ext3 ext3 ext3 swap defaults <dump> 0 0 2 2 2 0 <pass> 0 1

errors=remount-ro defaults defaults defaults sw 0 0 0 0

80

Nota-se que os dispositivos de disco so especificados como xvdX, pois para a paravirtualizao, o Xen utiliza este nome para especificar os discos rgidos, e no sdX ou hdX, como de costume. importante guardar esta configurao de montagem para quando for criado o arquivo de configurao da mquina virtual, pois nele que deveremos especificar quais dispositivos sero representados pelos discos virtuais.

Para finalizar a configurao do sistema da mquina virtual, falta especificar a senha do usurio root, pelo passwd:

dom0# passwd root

Finalizadas as configuraes, podemos desmontar o diretrio /proc e sair da jaula:

dom0# umount /proc

dom0# exit

O prximo passo copiar os arquivos do sistema para os discos virtuais, para isso, basta montar os discos virtuais um de cada vez e copiar o contedo do diretrio que cada um armazenar, conforme os exemplos a seguir:

Para as imagens de disco:

root@dom0# mount /home/xen/domains/pvm1/usr.img /mnt o loop root@dom0# mv /tmp/tempmodelo/usr/* /mnt root@dom0# umount /mnt root@dom0# mount /home/xen/domains/pvm1/var.img /mnt o loop root@dom0# mv /tmp/tempmodelo/var/* /mnt root@dom0# umount /mnt

81

root@dom0# mount /home/xen/domains/pvm1/home.img /mnt o loop root@dom0# mv /tmp/tempmodelo/home/* /mnt root@dom0# umount /mnt

root@dom0# mount /home/xen/domains/pvm1/root.img /mnt o loop root@dom0# mv /tmp/tempmodelo/* /mnt root@dom0# umount /mnt

Para os volumes lgicos do LVM:

root@dom0# mount /dev/VGxen/pvm1.usr.disk /mnt root@dom0# mv /tmp/tempmodelo/usr/* /mnt root@dom0# umount /mnt

root@dom0# mount /dev/VGxen/pvm1.var.disk /mnt root@dom0# mv /tmp/tempmodelo/var/* /mnt root@dom0# umount /mnt

root@dom0# mount /dev/VGxen/pvm1.home.disk /mnt root@dom0# mv /tmp/tempmodelo/home/* /mnt root@dom0# umount /mnt

root@dom0# mount /dev/VGxen/pvm1.root.disk /mnt root@dom0# mv /tmp/tempmodelo/* /mnt root@dom0# umount /mnt

Depois de copiar os arquivos, hora de criar o arquivo de configurao da mquina virtual, que por onde o Xen ir obter informaes sobre a criao da VM, o arquivo da mquina virtual deve ser criado no diretrio /etc/xen:

root@dom0# touch /etc/xen/pvm1.cfg

Editando o arquivo de configurao da mquina virtual, devem ser informados alguns parmetros bsicos:

82

import commands Esta linha determina que os comandos oriundos do sistema operacional do host sejam importados para a criao da mquina virtual.

KERNEL0 Neste parmetro requerido o nome do kernel da dom0.

name Este parmetro informa o que ser o nome da mquina virtual, pelo nome que ela ser identificada no console de gerenciamento. kernel Parmetro onde deve ser informado o caminho do kernel da dom0, para ser utilizado pela VM.

ramdisk Caminho do ramdisk utilizado pelo kernel.

memory Quantidade de memria RAM, indicada em MB.

vif Neste parmetro so especificadas as interfaces virtuais de rede, descritas em um array.

Exemplo:

vif=['type=ioemu,bridge=xenbr0,mac=00:16:3e:18:54:3c']

disk um array especificando os dispositivos virtuais de disco, onde so informadas informaes como se o dispositivo do disco virtual fsico ou um arquivo de imagem de disco, o caminho do dispositivo, o nome do dispositivo para a mquina virtual, e permisses, que so w para leitura e escrita, e r para somente leitura.

Exemplo para volumes lgicos:

disk=['phy:/dev/VGxen/pvm1.root.disk,xvda1,w']

83

Exemplo para imagens de disco:

disk=['file:/home/xen/domains/pvm1/root.img,xvda1,w']

extra Em extra so informadas opes extras para o boot da mquina virtual.

Exemplo:

extra= 'root=/dev/xvda1 ro rootdelay=10'

Fazendo uso desses parmetros, possvel criar o arquivo de configurao da mquina virtual, pelo exemplo de criao de mquina virtual aqui demonstrado, o arquivo de configurao da mquina virtual fica da seguinte forma:

import commands KERNEL0=commands.getoutput('uname -r') name='pvm1' kernel='/boot/vmlinuz-' + KERNEL0 ramdisk='/boot/initrd.img-' + KERNEL0 memory=512 root='/dev/xvda1 ro' vif=[ 'bridge=xenbr0,mac=00:16:3e:18:54:3c' ] disk=[ 'phy:/dev/VGxen/pvm1.root.disk,xvda1,w', 'phy:/dev/VGxen/pvm1.home.disk,xvda2,w', 'phy:/dev/VGxen/pvm1.usr.disk,xvda3,w', 'phy:/dev/VGxen/pvm1.var.disk,xvda4,w', 'phy:/dev/VGxen/pvm1.swap.disk,xvda5,w' ] extra='rootdelay=10'

84

Esta configurao indica os volumes fsicos para serem utilizados como discos virtuais, como visto na configurao do parmetro disk, para utilizar os arquivos de imagens de disco, basta substituir phy por file no array e indicar o caminho do arquivo de imagem de disco.

Aps salvar o arquivo de configurao da mquina virtual, basta utilizar o comando xm create <nome do arquivo>, para carregar a nova mquina virtual.

root@dom0# xm create pvm1.cfg

5.4.3 Criando Mquina Virtual em Virtualizao Completa A virtualizao completa recomendada para mquinas virtuais em que o sistema operacional a ser instalado nelas no possui suporte paravirtualizao com o Xen.

Para a virtualizao completa so requeridas as tecnologias VT-x, para processadores Intel, e AMD-V, para processadores AMD, este suporte pode ser consultado carregando o kernel nativo do linux no boot e inserindo o seguinte comando:

root@dom0# egrep -i "vmx|svm" /proc/cpuinfo

Se retornar algo, o processador possui suporte virtualizao de hardware.

As VMs em virtualizao completa apresentam um desempenho pior em relao paravirtualizao, mas podem rodar praticamente qualquer sistema operacional e apresentam uma configurao mais simples.

Ser demonstrada para esta tcnica de virtualizao, a criao de uma mquina virtual em HVM e instalao do Sistema Operacional Windows 2003 Server.

85

5.4.3.1 Criando os Discos

Como na configurao de uma mquina virtual paravirtualizada, o primeiro passo para criar uma mquina em virtualizao completa, a criao de um disco virtual, que tambm pode ser tanto uma imagem de disco quanto um volume fsico ou lgico.

A seguir, exemplos da criao dos discos virtuais:

Para imagens de disco de tamanho fixo:

root@dom0#

dd

if=dev/zero

of=/home/xen/domains/hvm1/disk1.img

bs=1M count=20000 Para imagens de disco de tamanho dinamicamente expansvel:

root@dom0#

dd

if=dev/zero

of=/home/xen/domains/hvm1/disk1.img

bs=1 count=1 seek=20G

Para volumes lgicos do LVM:

root@dom0# lvcreate -name hvm1.disk1.disk -size 20G VGxen

Alm de um disco virtual para a VM, devemos obter uma imagem do disco de instalao, para obter uma imagem a partir de um CD ou DVD, podemos utilizar o comando dd, com o disco no drive de CD ou DVD do servidor:

root@dom0# dd if=/dev/cdrom of=/ISO/W2003Server.iso

86

5.4.3.2 Criando a Mquina Virtual

O Xen Hypervisor utiliza modelos de dispositivo do qemu para rodar mquinas virtuais em HVM, estes mdulos podem ser instalados na dom0 pelo apt:

root@dom0# apt-get install xen-qemu-dm-4.0

Com os modelos do qemu instalados, j podemos partir para a criao do arquivo de configurao, onde os parmetros so ligeiramente diferentes dos utilizados na paravirtualizao:

kernel Como kernel, em HVM utilizado o carregador da virtualizao completa, que instalado junto com os modelos de dispositivos do qemu.

Exemplo:

kernel="/usr/lib/xen/boot/hvmloader"

device_model Neste parmetro deve ser informada a localizao do arquivo do modelo de dispositivos.

builder Funo para construir o domnio, o valor padro linux, para HVM o valor hvm.

memory Memria RAM, especificada em MB.

vcpus O nmero de CPUs virtuais a serem criadas para a VM.

shadow_memory Quantidade de memria de sombra, especificada em MB.

name Nome da mquina virtual.

vif Array com as interfaces de rede virtuais.

87

disk Array com os dispositivos de disco virtuais.

boot Sequencia de boot dos discos virtuais para a mquina virtual.

sdl Define se o modelo de dispositivos utilizar SDL.

vnc Define se o vnc ser utilizado, importante habilitar esta opo quando se utiliza HVM, pois ser a nica forma de acesso VM durante a instalao do sistema operacional.

vnclisten Qual endereo IP da dom0 onde servidor VNC escutar para a VM, o valor 0.0.0.0 indica que o servidor VNC escutar em todos os endereos IP da dom0.

vncdisplay Indica qual tela do servidor VNC ser utilizada, por exemplo, se neste parmetro for atribudo o valor 5, para acessar a VM o servidor VNC escutar na porta 5905, o nmero 5900 acrescido do nmero do vncdisplay

vncpasswd Especifica a senha do VNC para acessar a tela da VM.

A seguir, um exemplo de como fica o arquivo de configurao de uma mquina virtual em HVM:

kernel = "/usr/lib/xen/boot/hvmloader" device_model = '/usr/lib/xen/bin/qemu-dm' builder='hvm' memory = 512 vcpus = "1" shadow_memory = 16 name = "hvm1" vif = [ 'type=ioemu, bridge=xenbr0'

88

] disk = [ 'file:/ISO/W2003Server.iso,hdd:cdrom,r', 'phy:/dev/VGxen/hvm1.disk1.disk,hda,w' ] boot="dc" sdl=0 vnc=1 vnclisten="0.0.0.0" vncdisplay=5 vncpasswd='thundercat'

O arquivo deve ser salvo no diretrio /etc/xen da dom0, para o gerenciador do Xen o encontrar, depois de salvar o arquivo possvel carregar a VM pelo comando xm create, abaixo temos o comando para um arquivo chamado hvm1.cfg que foi salvo:

root@dom0# xm create hvm1.cfg

Depois de criada, a mquina virtual pode ser acessada por um visualizador VNC, no IP da dom0 e na porta criada para ela, de nmero 5900 mais o valor especificado no parmetro vncdisplay, pela sintaxe <IP da dom0>:<Porta VNC> conforme o exemplo a seguir:

Figura 25: VM em Virtualizao Completa Acesso Por VNC.

Caso tenha sido informada alguma senha para o VNC no arquivo de configurao da mquina virtual, ela ser solicitada:

89

Figura 26: VM em Virtualizao Completa Solicitao de Senha no Acesso Por VNC.

Aps informar a senha, a tela da VM ser exibida pelo visualizador VNC, desta forma possvel guiar a mquina virtual nos prximos passos da instalao do sistema operacional e a prpria operao da mesma.

Figura 27: VM em Virtualizao Completa Instalao do Sistema Operacional Convidado

90

Figura 28: VM em Virtualizao Completa Sistema Operacional Convidado Rodando

5.5 GERENCIAMENTO DAS MQUINAS VIRTUAIS

O Xen Manager, que acompanha o Xen Hypervisor, a ferramenta responsvel pelo gerenciamento das VMs no Xen, pode ser acessado pelo comando xm, com a sintaxe xm <funo> <argumentos>, e tem vrias funes, abaixo podemos ver algumas delas:

console Abre o console do domnio informado.

Exemplo: root@dom0# xm console pvm1

create Carrega um domnio baseando-se em um arquivo de configurao informado.

Exemplo: root@dom0# xm create pvm1.cfg

91

destroy Mata um domnio imediatamente, ou seja, comparando com uma mquina real, como se casse a fora da mquina.

Exemplo: root@dom0# xm destroy pvm1

domid Converte o nome de um domnio, informando o ID do mesmo.

Exemplo: root@dom0# xm domid pvm1

domname Converte o ID de um domnio, informando o nome dele.

Exemplo: root@dom0# xm domname 2

list Lista informaes sobre todos ou alguns domnios, informa o nome, o ID, a quantidade de memria RAM utilizada, o nmero de CPUs virtuais, o estado, e o tempo de processamento total. Podem ser informados stados dos domnios:

r significa que o domnio est utilizando o tempo de processamento;

b significa blocked e aparece quando o domnio no est utilizando o tempo de processamento no momento ou no pode utilizar por estar aguardando alguma informao de entrada/sada;

p informado quando o domnio est pausado.

c aparece quando o domnio parou de funcionar por alguma falha.

Exemplos:

root@dom0# xm list

root@dom0# xm list pvm1 hvm1

92

pause Pausa a execuo de um domnio.

Exemplo: root@dom0# xm pause hvm1

unpause Faz com que um domnio pausado continue a funcionar.

Exemplo: root@dom0# xm unpause hvm1

reboot Reinicia a mquina virtual, semelhante ao boto de reset presente nos gabinetes das mquinas reais.

Exemplo: root@dom0# xm reboot hvm1

rename Renomeia um domnio.

Exemplo: root@dom0# xm rename hvm1 windows0

shutdown Desliga um domnio.

Exemplo: root@dom0# xm shutdown windows0

uptime Exibe o tempo de carga, para todos ou alguns domnios como na funo list.

Exemplo: root@dom0# xm uptime

top Abre um monitor do host e dos domnios em tempo real, parecido com o comando top no linux.

Exemplo: root@dom0# xm top

93

Figura 29: Gerenciamento das Mquinas Virtuais Xen Manager Top

vcpu-list Lista as CPUs virtuais existentes, para todos ou alguns domnios como na funo list.

Exemplo: root@dom0# xm vcpu-list

5.5.1 Carregar Mquinas Virtuais Automaticamente no Boot Por padro, ao desligar o servidor Xen, os estados dos domnios so salvos, para serem recarregados no prximo boot, mas podem acontecer casos em que, por algum motivo, o servidor Xen venha a parar subitamente o funcionamento, como, por exemplo, em uma queda de energia, neste caso, como o estado das mquinas virtuais no foi salvo, o servidor no as carrega quando ligado novamente, e as VMs permanecem sem funcionar.

Este problema pode ser resolvido criando um link simblico para os arquivos de configurao das mquinas virtuais, dentro do diretrio /etc/xen/auto/, por padro, o durante a instalao do Xen, este diretrio no criado, com o comando mkdir isto pode ser feito:

root@dom0# mkdir /etc/xen/auto

Com o comando ln podemos criar o link simblico dentro do diretrio, como no exemplo a seguir:

root@dom0# ln s /etc/xen/pvm1.cfg /etc/xen/auto/

94

Assim, quando o servidor iniciar, o xend examinar o diretrio /etc/xen/auto/, encontrar os links simblicos para os arquivos de configurao das mquinas virtuais, e recriar as mquinas virtuais no boot.

95

6 Concluso

Conclumos que o Xen Hypervisor, alm de ser uma soluo gratuita para ambientes de virtualizao de servidores, bastante verstil, tendo tambm um desempenho convincente, o que o faz uma soluo bastante recomendada, tanto para finalidades acadmicas quanto para empresas.

Por ser gratuito, o Xen Hypervisor no possui um suporte especializado alm da comunidade, o que dificulta o desenvolvimento da implantao em um servidor. Apesar das dificuldades na implantao, o resultado obtido satisfatrio, com mnima perda de desempenho e bastante operacional.

A criao de ambientes de virtualizao de servidores se faz interessante para as organizaes por representar uma economia significativa com aquisio e manuteno de hardware, aproveitando melhor os recursos fsicos, o uso do Xen Hypervisor refora esta ideia, por ser uma opo sem custos de licena, aumentando ainda mais essa economia de recursos monetrios.

A centralizao da administrao dos servidores, sendo uma das vantagens da virtualizao, facilita a vida do administrador, sendo assim, o Xen Hypervisor se mostra bastante eficiente como Monitor de Mquinas Virtuais a ser utilizado.

96

7 REFERNCIAS BIBLIOGRFICAS

Xen 4.0 Release Notes Disponvel em: http://wiki.xen.org/xenwiki/Xen4.0 ltimo acesso em 11 de Agosto de 2010 s 11:20h.

Xen 4.0 no Debian Squeeze Disponvel em: http://www.eriberto.pro.br/wiki/index.php?title=Xen_4.0_no_Debian_Squeeze ltimo acesso em 11 de Agosto de 2010 s12:06h.

Virtual Disk Image Tools Infohit Blog Disponvel em: http://www.infohit.net/blog/post/virtual-disk-image-tools.html ltimo acesso em 3 de Setembro de 2010 s 18:59h.

dd invocation - GNU Coreutils Disponvel em: http://www.gnu.org/software/coreutils/manual/html_node/dd-invocation.html ltimo acesso em 3 de Setembro de 2010 s 20:40h.

Como Fazer Para Criar e Gerenciar um Logical Volume Manager (LVM) Disponvel em: http://www.dotsharp.com.br/artigos/Linux/Como_Fazer_Para_Criar_e_gerenciar_um _Logical_Volume_Manager.html ltimo acesso em 6 de Setembro de 2010 s 18:40h.

Virtualizao Wikipdia, a enciclopdia livre Disponvel em: http://pt.wikipedia.org/wiki/Virtualizao ltimo acesso em 6 de Setembro de 2010 s 18:17h.

97

PearPC - About Disponvel em: http://pearpc.sourceforge.net/about.html ltimo acesso em 6 de Setembro de 2010 s 18:20h.

Produtos de Virtualizao VMware para servidores virtuais, desktops virtuais e data center Disponvel em: http://www.vmware.com/br/products/ ltimo acesso em 6 de Setembro de 2010 s 18:30h.

Virtualizao e Consolidao com o Hyper-V Disponvel em: https://www.microsoft.com/brasil/servidores/windowsserver2008/virtualization/default. mspx ltimo acesso em 8 de Setembro de 2010 s 15:00h.

API Wikipdia, a enciclopdia livre Disponvel em: http://pt.wikipedia.org/wiki/API ltimo acesso em 8 de Setembro de 2010 s 15:23h.

Linux VServer Disponvel em: http://linux-vserver.org/Welcome_to_Linux-VServer.org ltimo acesso em 8 de Setembro de 2010 s 15:30h.

PowerPC Wikipdia, a enciclopdia livre Disponvel em: http://pt.wikipedia.org/wiki/PowerPC ltimo acesso em 8 de Setembro de 2010 s 15:48h.

64 BIT Wikipdia, a enciclopdia livre Disponvel em: http://pt.wikipedia.org/wiki/64_bits ltimo acesso em 10 de Setembro de 2010 s 10:40h.

Itanium Wikipdia, a enciclopdia livre Disponvel em: http://pt.wikipedia.org/wiki/IA64 ltimo acesso em 10 de Setembro de 2010 s 10:44h.

98

x86 Wikipdia, a enciclopdia livre Disponvel em: http://pt.wikipedia.org/wiki/X86 ltimo acesso em 10 de Setembro de 2010 s 10:46h.

RISC Wikipdia, a enciclopdia livre Disponvel em http://pt.wikipedia.org/wiki/RISC ltimo acesso em 10 de Setembro de 2010 s 11:00h.

Xen-4.0.0-debian-lenny Disponvel em: http://wiki.xen-br.org/Xen-4.0.0-debian-lenny ltimo acesso em 13 de Setembro de 2010 s 08:42h.

Por Que Virtualizar? Disponvel em: http://wiki.xen-br.org/Por_que_Virtualizar ltimo acesso em 13 de Setembro de 2010 s 09:00h.

MATHEWS, Jeanna N., DOW, Eli M., DESHANE, Todd, HU, Wenjin, BONGIO, Jeremy, WILBUR, Patrick F., JOHNSON, Brendan. Executando o Xen Um Guia Prtico Para a Arte da Virtualizao. So Paulo: Alta Books, 2009.

Xen Configuration File Options Disponvel em: http://www.xen.org/files/Support/XenConfigurationDetails.pdf ltimo acesso em 13 de Setembro de 2010 s 14:15h

HOWTO Xen 3 Debian Etch Disponvel em: http://www.jack.eti.br/www/?p=271 ltimo acesso em 13 de Setembro de 2010 s 15:20h