Você está na página 1de 57

FACULDADE ESTCIO DE ALAGOAS

CURSO DE SISTEMAS DE INFORMAO

VIRTUALIZAO DE SERVIDORES UTILIZANDO


SOFTWARE LIVRE

Leonardo Orestes Damasceno

MACEI, JUNHO DE 2011

Leonardo Orestes Damasceno

VIRTUALIZAO DE SERVIDORES UTILIZANDO


SOFTWARE LIVRE

Monografia apresentada ao curso de


Sistemas de Informao da Faculdade
Estcio de Alagoas como requisito para a
obteno do grau de Bacharel em Sistemas
de Informao. Orientador: Davy Baa

MACEI, JUNHO DE 2011

Virtualizao de servidores utilizando software livre

Aprovado em ____de _______________ de ______

____________________________________________________
Nome
Orientador

____________________________________________________
Nome
Membro da Banca Avaliadora

____________________________________________________
Nome
Membro da Banca Avaliadora

DEDICATRIA
Dedico esse trabalho primeiramente meu pai Luciano Hermanes Romeiro
Damasceno, minha me Cleony Ribeiro Orestes Damasceno e a minha noiva Liziane
Eulina Alves e Silva. Agradeo principalmente aos seguintes professores: Prof. Davy
Baia, Prof. AnaniasPereira Batista Filho.

AGRADECIMENTO
Agradeo todo o apoio do professor Davy Baia, e Mrcio Robrio para a
realizao deste trabalho.

RESUMO
A virtualizao tem por objetivo executar mais de um sistema operacional no
mesmo hardware de forma simultnea, tendo um maior aproveitamento dos recursos do
hardware, que em um datacenter (Espao fsico utilizado para a disponibilizao da
tecnologia), a ociosidade pode chegar em at 70%, segundo empresas como Microsoft e
Sun (MATHEWS, 2007).
Visto como fruto de uma grande economia e de grande funcionalidade, empresas
comearam a adotar a virtualizao em seus ambientes, desde os mais simples, aos mais
complexos. Continuando neste desenvolvimento, a virtualizao de desktops j uma
realidade, porm no to aproveitada como a virtualizao de servidores, onde a meta
ter um ambiente totalmente virtual, no havendo mais problemas de desorganizao da
parte fsica, que incluem vrios cabos de rede utilizados para a interligao e
comunicao, computadores que servem como hospedagem de servios da rede de
computadores e outros.
Atualmente, o mercado possui duas empresas que se destacam neste segmento e
que do totais condies de virtualizar qualquer ambiente com suporte e qualidade em
seus produtos, so elas VMWare e Citrix. Neste trabalho, ser feita uma abordagem
sobre a introduo a virtualizao e a implantao desta em um ambiente simplificado
com dois servidores que hospedam respectivamente os servios de distribuio
dinmica de endereos IP e publicao de pginas na internet.
O objetivo deste trabalho de concluso foi exibir as facilidades e funcionalidades
proporcionadas quando se utiliza est tecnologia. A exibio de resultados positivos
quando comparados aos ambientes antes encontrados foram frequentes principalmente
na utilizao de um firewall virtualizado com o sistema de arquivos LVM (Logical
Volume Management).

Palavras-chave: virtualizao, xen, VMWare, Citrix, ambientes.

ABSTRACT
The virtualization has for objective execute more than one operating system at
the same hardware simultaneously where the resources are more used because in the
datacenter the idleness can get until 70% by fonts like Microsoft and Sun.
Seen as a grant tool for economy and functionality, companies started to adopt
the virtualization on your environments sent the more simple to the more complex.
Moving on with this development, the Desktop virtualization already is a reality but
isn't so exploited like the server virtualization where the objective is have a fully virtual
environment not having more problems of physical disorganization which include many
network cables and computers which is used to host services.
Currently the market has two companies that stand out in this segment and give
all conditions to virtualize your environment with support and product quality, they are
VMWare and Citrix. In this paper will be presented a virtualization introduction and the
implantation of this on a simplified environment with two servers which host services
like DHCP and WEB (Apache) respectively.
The objective of this paper was show the facilities and functionality provided
when this technology is used. The exhibition of the positive results when it is compared
to the old environment founded was frequent when the firewall was virtualized with the
LVM (Logical Volume Management) file system.
Key Words: virtualization, xen, VMWare, Citrix, environment.

LISTA DE ILUSTRAO
Figura 1: Estrutura do Xen .........................................................................................15

Figura 2: XenBUS ......................................................................................................38

LISTA DE TABELAS
Tabela 1: Particionamento do sistema ........................................................................17

Tabela 2: Comandos LVM ..........................................................................................19

Tabela 3: Modelo de particionamento com LVM .....................................................20


Tabela 4: Visualizao do campo state ..................................................................34
Tabela 4: Opes do comando xm ......................................................................35

LISTA DE ABREVIATURAS E SIGLAS


AMD - Advanced Micro Devices.

AMD-V

Advanced

Micro

DevicesVirtualization,

tecnologia

utilizada

em

processadores AMD para virtualizao.

BIOS - Basic Input/Output System.

Bootloader - Carregador e gerenciador de sistemas operacionais.

CPU - Central Processing Unit (Unidade central de processamento), utilizada para


executar tarefas requisitadas por um software.

Datacenter - Centro de processamento de dados, o local onde os equipamentos


utilizados para o funcionamento da rede de computadores so concentrados.
Desktop Gabinete que aloja os componentes do computador.

Domain0 - Sistema operacional com kernel modificado para virtualizao onde as


mquinas virtuais sero controladas e iniciadas a partir deste.
Downtime Refere-se ao perodo em que o sistema encontra-se indisponvel.
GB GigaByte, unidade de medida de informao. utilizado para efetuar a medida de
componentes em dispositivos como H.D.
Guest Mquina virtual que executada utilizando o hypervisor Xen.

HD - Hard Disk, disco rgido utilizado para armazenamento de informaes.

HVM - Hardware Virtual Machine.


Hypervisor Gerenciador de mquinas virtuais.

Intel-VT Tecnologia utilizada pela Intel em seus processadores para virtualizao.


IP Internet Protocol, protocolo de comunicao.

I/O - Input/Output, Entrada/Sada.


Kernel o componente central do sistema operacional utilizado para o controle do
mesmo.

KVM -Kernel-based Virtual Machine uma soluo de virtualizao completa para


Gnu/Linux na arquitetura de hardware x86.
LVM Logical Volume Manager.
MB MegaByte, unidade de medida de informao similar a GB, porm est unidade
inferior quando se trata de espao disponvel.

MACMedia AcessControl, endereo fsico do dispositivo de rede.

MIPS - Microprocessor without Interlocked Pipeline Stage.


ML Milissegundos.

MMU - Memory Management Unit, Unidade de Gerenciamento de Memria.


NAT Network AddressTranslation

NUMA - NonUniformMemory Access.

Open Source - Cdigo aberto.


PC Personal Computer, computador pessoal.

PVM - Paravirtualized Virtual Machine.


RAM Random Access Memory.

Software - uma sequncia de instrues que sero executadas com um objetivo.

UML - User-Mode Linux.


URL UniformResourceLocator, o endereo de um recurso, seja este uma impressora
ou o endereo de um website.

VES - Virtual Environments.


VGA Video Graphics Array.

VPS - Virtual Private Server.


Xen Hypervisor utilizado para virtualizao.

x86 - o nome genrico definido para a famlia de processadores baseados no Intel


8086, da Intel Corporation.

2D - Twodimensions, Duas dimenses.

3D - Threedimensions, Trs dimenses.

Sumrio
INTRODUO ...............................................................................................................1
INTRODUO A VIRTUALIZAO .........................................................................4
POSSIBILIDADES PARA A UTILIZAO DO HYPERVISOR XEN .................. 11
FUNCIONAMENTO DO HYPERVISOR XEN.........................................................13
LOGICAL VOLUME MANAGER..............................................................................16
INSTALAO DO HYPERVISOR XEN ...................................................................25
CRIANDO E ADMINISTRANDO GUESTS ..............................................................31
GERENCIAMENTO DE DISPOSITIVOS .................................................................36
VIRTUALIZAO DE REDE ....................................................................................41
CONCLUSO................................................................................................................43
REFERNCIAS BIBLIOGRFICAS ........................................................................44

1. INTRODUO
Virtualizao de servidores um assunto que hoje abordado com muita frequncia,
porm, no novo. Teve seu incio em meados dos anos 60 (Sessenta) para 70 (Setenta) em
grandes computadores para a realizao de testes. No incio, houveram questionamentos sobre
algumas necessidades para a criao desta tcnica, como por exemplo, por que utilizar apenas
um sistema operacional por vez em um computador com um poderoso hardware, se possvel
executar vrios sistemas operacionais com tarefas distintas. A virtualizao pode ajudar a ter o
aproveitamento total do hardware, diminuir os custos, relacionados a espao fsico, energia e
outros (HAGEN, 2008).
Dos artigos e livros que foram utilizados para a realizao deste trabalho, percebe-se
que a preocupao est em aproveitar totalmente o hardware do computador em questo.
Um dos motivos bsicos para a utilizao da virtualizao, que computadores
possuem muito mais poder de processamento do que as tarefas exigem. Desde a primeira
gerao de computadores, a inteno era executar vrias tarefas ao mesmo tempo, foi quando
na segunda gerao de computadores isso tornou-se possvel, pois era programvel, desta
forma era possvel executar mais de uma tarefa por vez. A virtualizao proporciona a
utilizao de boa parte, seno total do hardware, permitindo a consolidao de servidores
virtuais em apenas uma mquina fsica, sem perda de segurana e ganhandocom um
isolamento completo das mquinas virtuais (CHRISNALL, 2007).
O que era apenas um estudo virou realidade, vendo as enumeras possibilidades que se
tem com a virtualizao de servidores, e sabendo disso, sero abordadas algumas tcnicas de
virtualizao neste trabalho, como a virtualizao total e a paravirtualizao. Antes de
qualquer conceito voltado para a parte prtica, interessante saber como surgiu essa
tecnologia to utilizada nos dias de uma forma mais aprofundada e que foi desenvolvida por
profissionais da rea, e estudiosos.
O conceito de virtualizao se resume a permisso de uma nica mquina fsica
(Computador), criar vrias instncias de mquinas virtuais (servidores), cada uma com seus
componentes (processador, espao de armazenamento, espao de memria, e outros). So
vrios os benefcios ofertados pela implementao da virtualizao de servidores. A primeira
vista, o impacto grande pelo motivo da diminuio da necessidade de espao nos
datacenters, economia de energia, cabos e toda a estrutura necessria de um grande datacenter
(MATHEWS, 2007).

Virtualizao tem um conceito similar a emulao, porm com a emulao, um


sistema pretende se tornar um outro sistema. Com a virtualizao, um sistema pretende tornarse um ou mais sistemas, iguais ao seu sistema base.
A maioria dos sistemas operacionais atuais, possuem um sistema de virtualizao
bastante simples. Cada processo que executado deve ser capaz de agir como se fosse o nico
sendo executado. Componentes do hardware como CPU e memria so virtualizados
(CHRISNALL, 2007).
Assim como citado anteriormente, o incio dos estudos e implementaes foi dado em
1960, com a utilizao de grande mainframes como servidor fsico para a hospedagem de
mquinas virtuais, com a inteno de particionar grandes hardwares, porm, considerado
que o ponta p inicial foi dado de fato de 1970 em diante, com grandes resultados obtidos. Em
1972, um cientista da computao americano, Robert P. Goldberg, lanou a base terica da
arquitetura para sistemas computacionais virtuais em sua dissertao na universidade de
Harvard. Ento, comeou realmente a evoluo desta tcnica, que muitos consideram que s
foi possvel graas a IBM, que investiu com o IBM 370 em 1977, sendo o primeiro
computador vendido comercialmente, projetado para a virtualizao. O sistema operacional
que era executado neste hardware foi chamado de CP/CMS, que foi projetado para mltiplas
instncias serem executadas em um hardware de grande porte. Com o tempo, outras empresas
tambm comearam a investir, que foi o caso da VMWare, onde esta investiu na tecnologia
IA-32 de computadores, em 1999. No ano de 2000, a IBM lanou a linha de sistemas z/VM
(MATHEWS, 2007).
Uma pequena lista com as datas e nomes dos lanamentos baseados na tecnologia
citados neste trabalho podem ser visualizados mais abaixo:
IBM 370 1997
VMWare IA-32 1999
IBM z/VM 2000
VMWare x86 - 2001
Xen 2003
Microsoft Virtual PC 2003
Xen 2.0.5 2005
Xen 3.0.1 2006
Xen 4.0.0 2010

Xen 4.1.1 - 2011

Percebe-se que ao incio dos estudos da virtualizao, o hardware utilizado no era


comum at a dcada de 1990, onde comearam os estudos para a virtualizao em um
hardware pessoal (PC, Personal Computer).
O projeto Disco em Standford, liderado por Mendel Rosemblum, utilizou mquinas
virtuais para permitir que sistemas operacionais comuns, fossem executados sobre um
hardware de computadores de acesso no uniforme memria, conhecido como NUMA (Non
Uniform Memory Access). Neste caso, o sistema operacional que estava sendo utilizado para
tal estudo era o IRIX da Silicon Graphics, que at ento, foi projetado para executar
exclusivamente no MIPS1 R1000. O que chama ateno neste caso, que este processador
no foi projetado para suportar a virtualizao completa, ao contrrio dos computadores da
IBM como foi explicado anteriormente. Posteriormente os desenvolvedores deste projeto
utilizaram uma tcnica que hoje conhecida como paravirtualizao. O cdigo fonte do
sistema operacional IRIX foi recompilado, permitindo ento, que fosse executado na mesma
arquitetura virtual modificada. A partir desta linha de estudos e de vrias outras contribuies
ao redor do mundo, a virtualizao comeou a avanar rapidamente na linha do tempo
horizontal dos sistemas operacionais virtualizados em computadores pessoais. O prximo
passo ento, era liberar a execuo de sistemas virtualizados em todas ou pelo menos na
maioria das arquiteturas computacionais. Foi ento, que a equipe de desenvolvimento de
Standford, voltou sua ateno para a modificao de outra plataforma no projetada para tal
tarefa, virtualizar sistemas operacionais. O desafio era com a arquitetura x86 o que
diretamente influenciou a fundao da VMWare e a introduo do primeiro produto comercial
de virtualizao dessa plataforma. A partir deste estudo, sobre tal arquitetura, foi possvel
executar os binrios do sistema sem a necessidade de nenhuma alterao nos sistemas
operacionais, tal como Windows da Microsoft (MATHEWS, 2007).

Microprocessor without Interlocked Pipeline Stage

2. INTRODUO A VIRTUALIZAO
A virtualizao de sistemas operacionais, tornou-se algo concreto, principalmente para
a utilizao em computadores pessoais, considerados de hardware bsico. Empresas como
Intel e AMD comearam ento a estender o seu hardware para tal operao no ano de 2005. A
tecnologia

de

virtualizao

da

Intel,

conhecida

como

Intel-VT

(Intel

VirtualizationTechnology), e a definio para esta tecnologia, define-se por ser um mtodo no


qual sistemas operacionais baseados na plataforma x86 so executados sob outro sistema
operacional x86 ( o nome genrico definido para a famlia de processadores baseados no
Intel 8086, da Intel Corporation) hospedeiro, com pouca ou nenhuma modificao do sistema
hspede. Seu funcionamento semelhante a uma mquina virtual, mas implementada em
hardware. No deve ser confundido com hyper-threading, ou multitarefa.
J por parte da AMD, a tecnologia que suporta a virtualizao de sistemas
operacionais relacionados a tal hardware, conhecida como AMD-V, e foi lanada em 23 de
maio no ano de 2006, onde esta trabalha com a arquitetura 64-bit x86. Os processadores
pioneiros que a AMD lanou foram definidos como Athlon 64 ("Orleans"), Athlon 64 X2
("Windsor") e Athlon 64 FX ("Windsor"). No site citado abaixo, existe uma breve lista de
processadores que suportam a virtualizao completa, tanto por parte da Intel como por parte
da AMD http://wiki.xensource.com/xenwiki/HVM_Compatible_Processors.
Ao final dos estudos relacionados ao incio da virtualizao, podendo ser completa ou
no, acredita-se que de alto interesse pessoal de cada leitor deste trabalho o entendimento de
como surgiu essa tecnologia. Porm, at ento no foi abordada a utilizao da virtualizao
com software livre, onde posteriormente est ser apresentada. Neste momento o hypervisor
Xen ser abordado, pois serviu de base para este trabalho. O Xen surgiu em meados de 2001,
na Universidade de Cambridge como parte do projeto conhecido como XenoServer, onde o
objetivo deste projeto era criar uma infraestrutura pblica para computao distribuda.
possvel obter mais informaes atravs do site deste projeto www.xenoservers.net.

Em 2003, o Xen foi apresentado em um artigo acadmico, e suas caractersticas logo


chamaram ateno de todos que al se faziam presentes, pois at ento a virtualizao rpida
em mquinas comuns com a arquitetura x86 era uma inovao, e logo vrios acadmicos se
interessaram por tal projeto. O apoio foi grande, tanto por parte da comunidade open-source
como por parte das empresas, que por sinal, a Microsoft contribuiu com este projeto junto a
Universidade de Cambridge desenvolvendo parte do Windows XP para o Xen 1.x, mas
infelizmente devido a questes de licena, est nunca foi publicada. J em 2004, foi fundada a
empresa com o nome de XenSource, que visava promover uma grande adoo dos
hypervisors de cdigo aberto Xen no mundo das empresas. Vrias empresas contriburam por
interesse da utilizao do produto, ou no. Foram elas: IBM, Sun, HP, RedHat, Intel, AMD,
SGI, Novell, NAS, Samsung e outras. Ento, com o rpido crescimento de seu cdigo, com
uma grande contribuio da comunidade e das empresas, ao final do ano de 2004, j era
esperada a verso 2.x do Xen, e de fato foi o que aconteceu. Quanto a essa verso, um dos
pontos que chamou mais ateno foi a melhora e incluso de qualidade na questo dos
dispositivos de entrada e sada (E/S) virtuais, suporte a mais mquinas virtuais (Guests,
hspedes), incluindo Gnu/Linux, Open-Solaris, Plan9, BSD e outros . Ento, novas melhoras
foram acontecendo, com novas contribuies chegando, ideias e motivos para continuar esse
maravilhoso projeto. No ano de 2006, o consagrado Xen 3.x (Especificamente na verso 3.0)
foi lanado, com vrias outras inovaes, como uma camada de abstrao para as tecnologias
de virtualizao, como Intel-VT e AMD-V, assim, no sendo mais necessria a modificao
do cdigo fonte de sistemas operacionais hspedes (Hspedes que no precisam de
modificao so conhecidos como HVM (Hardware Virtual Machines), tambm foi includo o
suporte a o multiprocessamento simtrico dos hspedes, que inclua as CPUs virtuais de
conexo dinmica (MATHEWS, 2007).
No ano de 2007, a XenSource foi comprada pela Citrix. Neste mesmo ano, foi lanado
o Xen 3.1, com vrios outros benefcios, como a capacidade de salvar, restaurar e migrar
mquinas virtuais com virtualizao completa. No ano anterior da publicao deste trabalho
(2010), foi liberada a verso 4.0.0 do Xen, que trouxe novas caractersticas, como por
exemplo, utilizao de guests HVM com uma alta performance de grficos 3D, ideal para
quem gostaria de virtualizar uma mquina para jogos.
A virtualizao no exclusivamente feita pelo hypervisor Xen, e tambm no por
padro paravirtualizada ou virtualizada completamente. Existem outros tipos de virtualizao
que sero explicadas neste momento.

Basicamente, so quatro tipos de virtualizao que hoje esto no mercado. Todas sero
apresentadas aqui, e detalhadas para um melhor entendimento dos leitores deste trabalho.
Tambm sero apresentadas outras tcnicas de virtualizao com suas respectivas
explicaes:
Emuladores
o Os emuladores simulam todo o hardware necessrio para a execuo dos
guests, assim, estes no necessitam de modificao. Uma das vantagens da
emulao que as mquinas virtuais (guests) podem conter diversos tipos de
arquitetura de hardware sobre o hardware fsico. Cada hardware emulado,
permite a instalao de mais de um sistema operacional sem a necessidade da
alterao de cdigo do sistema operacional guest, pois cada sistema tem acesso
ao seu determinado hardware atravs do emulador.
Bochs
o O Bochs uma mquina virtual escrita em C++, que altamente portvel, ou
seja, o seu cdigo-fonte compilvel em praticamente qualquer plataforma
(pode-se executar em sistemas operacionais de plataforma x86, Windows,
MacOS X e em vrias verses do Unix). Isto ao mesmo tempo o ponto forte
e o ponto fraco do Bochs em relao a outras mquinas virtuais: Todo o
equipamento virtual (a BIOS, os cartes VGA, emulao de som) feito em
software, o que valoriza a portabilidade, mas detm a velocidade (Trulli, Jarno.
BOCHS

emulador

de

x86.

So

Paulo,

2005.

<http://www.vivaolinux.com.br/artigo/BOCHS-O-emulador-de-x86>.
Acessado em: 6 de Maio 2011).

QEMU
o QEMU um software livre escrito por FabriceBellard que implementa um
emulador de processador, permitindo uma virtualizao completa de um
sistema PC dentro de outro. O QEMU um hypervisor e semelhante a
projetos como o Bochs, VMware Workstation e o PearPC, mas possui vrias
caractersticas que faltam nestes, incluindo aumento de velocidade em x86,
(atravs de um acelerador, e suporte para mltiplas arquiteturas. Usando
traduodinmica, atinge uma velocidade razovel, no deixando de ser fcil a
converso

para

novos

processadores

(Wikipedia.

<http://pt.wikipedia.org/wiki/QEMU>. Acessado em: 6 de Maio 2011).

QEMU.

Virtualizao Completa
o Este tipo de virtualizao (tambm conhecida como virtualizao nativa),
semelhante a emulao, e tambm no precisa de modificao nos guests.
Existem algumas diferenas, que so importantes, como por exemplo, os
sistemas hspedes so executados na mesma arquitetura de hardware presente
na mquina fsica. Alm disso, possui um hypervisor que controla todo o
acesso das mquinas hspedes ao hardware, dando a iluso de que estes esto
acessando, de fato, o hardware fsico da mquina (MATHEWS, 2007).
VMWare
o Foi fundada em 1998, sendo a primeira empresa a oferecer software para
virtualizao comercialmente para arquitetura de hardware x86. Atualmente, o
produto gratuito mais utilizado da VMWare o VMWare Player, que
utilizado para executar as mquinas criadas pelo VMWare Workstation. Porm,
comercialmente um dos seus principais produtos o vmware ESX, que
trabalha como uma camada de abstrao, entre o software e o hardware, assim,
sendo comparado ao Xen em sua forma de virtualizao completa
(CHRISNALL, 2007).
Microsoft VirtualPC
o A Microsoft entrou no mercado da virtualizao no ano de2003, inicialmente
com um produto chamado VirtualPC, que foi comprado de uma empresa
chamada Connectix. Hoje, existem duas ferramentas para tal operao, HyperV Server (Vem em conjunto com o Windows 2008 Server), e VirtualPC que
gratuita (MATHEWS, 2007).
KVM
o KVM (Kernel-based Virtual Machine) uma soluo de virtualizao
completa para Gnu/Linux na arquitetura de hardware x86, contendo extenses
de virtualizao (Intel-VT ou AMD-V). Consiste em um mdulo de kernel
carregvel, kvm.ko. Usando KVM, possvel executar mltiplas mquinas
virtuais executando em um Linux no modificado, ou imagens de Windows.
Cada mquina virtual possui um hardware virtualizado privado: Um carto de
rede, disco, adaptadores de grfico, etc (KVM. KVM. <http://www.linuxkvm.org/page/Main_Page>. Acessado em: 7 de Maio 2011).
Paravirtualizao

o uma das alternativas a virtualizao completa. Geralmente, a utilizao em


computadores da virtualizao completa, dada pelas tecnologias Intel-VT ou
AMD-V, porm, se o computador em questo no possui uma dessas
tecnologias, provvel ento, que a melhor opo seja a utilizao da
paravirtualizao. Na utilizao desta prtica de virtualizao, necessria a
modificao dos guests. Tambm existem outras limitaes, como a instalao
de sistemas guests (mquinas virtuais), basicamente so realizadas utilizando
uma URL com o sistema modificado atravs da internet. Existem vrios outros
aspectos que podem ser abordados como caractersticas da paravirtualizao,
um destes a questo da utilizao de no mximo 16 GB de memria ram por
guest x86, e 68 GB de memria RAM para guests utilizando x86_64. Cada
guest suporta 256 dispositivos, e um mximo de 15 dispositivos de rede. Bom,
uma das vantagens que chama ateno para a paravirtualizao, a alta
performance dos guests virtualizados (MATHEWS, 2007).
Linux em modo usurio
o Conhecido como User-Mode Linux (UML), permite que o sistema hospedeiro
(sistema atual na mquina fsica), execute outros sistemas operacionais, e que
estes sejam reconhecidos no sistema hospedeiro como processos. Este tipo de
paravirtualizao, foi projetada para a utilizao de um sistema hospedeiro
Gnu/Linux, com guests (as mquinas virtuais) Gnu/Linux. Uma das
desvantagens, que no recomendada a utilizao deste tipo de virtualizao
em ambientes heterogneos (MATHEWS, 2007).
Lguest
o Foi implementado na verso 2.6.23 do kernel. Uma curiosidade a respeito
deste tipo de paravirtualizao, que este foi implantado como um mdulo do
kernel. Foi criado, e mantido por Rusty Russel. Mais informaes podem ser
encontradas

atravs

do

site

do

projeto

(Russel,

<http://lguest.ozlabs.org/>. Acessado em: 10 de Maio 2011).


paravirt_ops

Rusty.

lguest.

o Uma definio segundo o site xensource :paravirt_ops (Abreviao pv-ops)


um pedao da infraestrutura do kernel do Linux, que permite a execuo da
paravirtualizao no hypervisor. Atualmente suporta Vmware's VMI, Lguest, e
o mais interessante, Xen. A infraestrutura permite a compilao de um nico
kernel binrio que ser carregado nativamente no boot no hardware puro.
Tambm pode ser carregado no boot totalmente paravirtualizado em qualquer
ambiente, basta habilitar na configurao do kernel, e depois definir tambm o
xen como dom0 (Xen. Xen paravirt_ops for upstream Linux kernel.
<http://wiki.xensource.com/xenwiki/XenParavirtOps>. Acessado em: 10 de
Maio 2011).
Virtualizao em nvel de sistema operacional (paenevirtualization)
o Utiliza uma infraestrutura de computao homognea. utilizada uma imagem
de sistema operacional nica como base para os guests, logo, fica claro que os
sistemas nas mquinas virtuais, inicialmente so idnticos a imagem
compartilhada. Caso a inteno da virtualizao, obter desempenho, essa
opo pode ser utilizada, mas se a inteno utilizar vrios sistemas
operacionais, no ser possvel. Uma das grandes vantagens deste tipo de
virtualizao, a questo da alocao de memria para os guests. J o grande
problema considerado pelos escritores deste trabalho, a utilizao de vrias
mquinas virtuais hspedes (guests), onde se uma necessitar de mais recursos,
as outras sero prejudicadas (caso no haja a configurao para a limitao do
consumo por parte dos guests), mostrando assim, que o isolamento entre as
mquinas virtuais hspedes no to forte, quanto as outras tcnicas mostradas
acima (MATHEWS, 2007).
Linux-VServer
o Segundo a descrio do site oficial (http://linux-vserver.org): Prov a
virtualizao para sistemas Gnu/Linux. realizado pelo nvel de isolamento do
kernel, permitindo executar vrias unidades virtuais. Essas unidades so
suficientemente isoladas para garantir a segurana, mas utiliza recursos
disponveis eficientes, como eles executam no mesmo kernel (Linux VServer.
Linux VServer. <http://linux-vserver.org>. Acessado em: 14 de Maio 2011).
OpenVZ

10

o Este tipo de virtualizao exige que todas as mquinas virtuais sejo


Gnu/Linux (Cada uma separada em um container). Segundo o site oficial,
quando comparado a servidores standalone, ele tem uma perda de apenas 1-3%
aproximadamente, mostrando assim, que uma ferramenta altamente
confivel. Suas mquinas virtuais (guests) no OpenVZ so conhecidas como
instncias, VPSs (Virtual Private Servers), ou Ves (Virtual Environment). A
Parallels patrocina este projeto, que nasceu da base do software
ParallelsVirtuozzo Containers. Ao descrever o tipo de virtualizao em nvel de
sistema operacional, foi citada a parte que mostra que o isolamento, por padro
fraco, mas ao adicionar algumas opes, pode-se modificar, ento, uma breve
leitura relacionada as opes que podem ser utilizadas para a limitao de
recursos

com

OpenVZ,

pode

ser

feita

aqui:

http://wiki.openvz.org/UBC_parameters_table (MATHEWS, 2007).


Outro fator a ser comentado como o hardware e seus processos so tratados quando a
virtualizao utilizada. Inicialmente, como dito nas primeiras pginas deste trabalho, a
memria RAM e a CPU so virtualizadas, e se um processo tenta consumir todo o espao de
execuo do processador (CPU), o sistema operacional ir se antecipar e permitir um
compartilhamento justo para no haver nenhum problema. Estes processos so alocados na
memria RAM, estes possuem um espao de endereo virtual, onde o sistema operacional
realiza um mapeamento deste para a memria fsica, logo, os processos tm a iluso de
estarem sendo executados diretamente na memria RAM. importante ter o conceito da
virtualizao dos dispositivos para um melhor entendimento do funcionamento da
virtualizao, independente do software utilizado para isto.
A unidade central de processamento (CPU) na virtualizao considerada at certo
ponto fcil, onde um processo executa com exclusividade por algum tempo at ser
interrompido, ento o estado da CPU salvo, e outro processo executado. Depois de certo
tempo, este processo repetido aproximadamente a cada 10 milissegundos em computadores
considerados da nova gerao, ou prximo disto. Porm, ao iniciar o sistema operacional
deve-se executar a CPU em modo privilegiado. Existe uma relao entre a CPU e a memria,
onde est particionada e recebe uma instruo privilegiadapara acessar a memria, que
pausada e substituda. As CPUs mais modernas incluem uma MMU (Memory Management
Unit, Unidade de Gerenciamento de Memria), que faz a traduo citada acima.

11

A virtualizao da CPU e da memria, considerada fcil, pois comparada a outros


dispositivos, como por exemplo, os de entrada e sada (I/O, Input and Output), pois estes no
tem a mnima noo de que podem ser designados para tarefas virtualizadas. Um exemplo
bsico de dispositivos que podem ser um pouco mais fceis de virtualizar do que outros, o
H.D (Hard Disk, Disco Rgido), que virtualizado do mesmo modo da memria central. At
este ponto, no existem muitas dificuldade, mas ao tentar, por exemplo, virtualizar uma placa
de vdeo ou qualquer carto grfico, pois estes fornecem uma acelerao 2D e 3D,
modificando todo o quadro mostrado at ento, pois possuem vrios estados internos, e a
maioria no fornece algum tipo de mecanismo para salvar, e recuperar o estado, mesmo
alternando entre as mquinas virtuais isto um problema (CHRISNALL, 2007).
Ao finalizar a abordagem inicial sobre a teoria da virtualizao, outras instrues de
melhoria e praticidade para a utilizao desta sero descritas abaixo, como a utilizao de
volumes lgicos para um melhor gerenciamento das mquinas virtuais. Todos os testes
realizados deste trabalho foram feitos em computadores pessoais (PC), desta forma o impacto
na aquisio do hardware no grande quando tudo o que foi exemplificado neste trabalho for
colocado em prtica.

3. POSSIBILIDADES PARA A UTILIZAO DO HYPERVISOR XEN


Ao nvel bsico de virtualizao algumas possibilidades so encontradas para a
utilizao do hypervisor Xen, onde a escolha da possibilidade feita de acordo com o
administrador e suas caractersticas para a administrao da infraestrutura.
Duas opes sero listadas, onde ambas foram utilizadas para o desenvolvimento deste
trabalho, so elas:
XenSource
o Utilizado para a virtualizao de servidores e servios em ambiente
computacional. Este disponibiliza tanto o uso quanto o cdigo-fonte sem a
necessidade de licena ou pagamento.
Citrix XenServer
o Utilizado para a virtualizao de servidores e servios em ambiente
computacional. Este disponibiliza a utilizao, porm necessita de uma licena
que pode ser obtida com um simples cadastro no site oficial do projeto Xen de
forma gratuita. Est licena precisa ser renovada anualmente.

12

Na maior parte deste trabalho a possibilidade XenSource foi utilizada, onde est foi
escolhida pelo fato de trazer mais atualizaes e obter uma maior flexibilidade e facilidade
para a administrao e entendimento do hypervisor. Ao disponibilizar uma atualizao do
hypervisor, os responsveis pelo projeto disponibilizam uma verso para que qualquer usurio
deste tenha a possibilidade de efetuar o download. Ao utilizar a possibilidade Citrix
XenServer, as atualizaes no so lanadas e disponibilizadas com a mesma frequncia,
logicamente est verso atualizada porm com uma maior periodicidade.
Ao efetuar comparativos, uma melhor administrao utilizando uma interface de
gerenciamento foi feita utilizando XenServer, porm este demonstra uma maior dificuldade
com a administrao utilizando a linha de comando da distribuio escolhida, que para este
trabalho foi CentOS. Basicamente, os passos seguidos para a utilizao do hypervisor Xen em
sua verso XenServer, so seguidos a partir de uma fcil instalao, pois este no
disponibiliza apenas o pacote do hypervisor, e sim uma distribuio modificada a partir da
distribuio Redhat, possuindo tudo que necessrio para iniciar uma virtualizao. Logo
aps, foi efetuada a instalao do software OpenXenCenter, sabendo que existe o software
XenCenter, que atualmente s possui sua verso de instalao para Microsoft Windows.
Estudos foram realizados sobre a utilizao deste software em ambiente Gnu/Linux atravs do
software wine, onde este emula as bibliotecas necessrias para a execuo de um software
com extenso .exe (Arquivo executvel para a plataforma Microsoft Windows), infelizmente
no foram obtidos bons resultados, desta forma foi utilizado o software OpenXenCenter como
explicado anteriormente o motivo de sua utilizao.

13

Este trabalho sempre esteve focado em exibir resultados diante da virtualizao com
software livre, pois poucas alternativas eram possveis e nem todas eram totalmente
funcionais, logo com a evoluo do pensamento ao passar dos anos, as possibilidades foram
aumentado, e atualmente possvel ter um ambiente computacional totalmente virtualizado,
deste um simples servidor que hospeda servios web, at mesmo um firewall, onde este se faz
presente na maioria dos ambientes, tendo em vista que este considerado a primeira barreira
para combate a ameaas encaminhadas atravs da internet. Isto possvel pois com a
utilizao do hypervisor Xen na possibilidade XenSource, pode-se utilizar um dispositivo de
rede, tal como uma placa de rede, apenas em um guest, onde est mesma placa de rede seria
isolada at mesmo do domnio0. A utilizao do XenServer torna o trabalho um pouco rduo,
pois como explicado anteriormente a flexibilidade no to grande quanto em sua verso
open-source. Para efetuar o mesmo objetivo, necessrio trabalhar com redes virtuais , ou
utilizar o isolamento a partir de comandos, porm no foram obtidos bons resultados a partir
desta forma.

4. FUNCIONAMENTO DO HYPERVISOR XEN


O entendimento do funcionamento do hypervisor Xen essencial, principalmente
quando pretende-se utilizar este como principal virtualizao em uma rede de computadores.
O termo Open Source agrada as pessoas envolvidas diretamente com tecnologia, pois a
inteno utilizar o software sem ter custos, mas estes custos sero gerados futuramente se
quem administra o software no tiver um conhecimento aprofundado em caso de problemas.
Este apenas um dos motivos para que qualquer tipo de software que seja implantado
necessite de um administrador com prvio conhecimento sobre o ponto em questo. Ao
utilizar o inicialmente Xen (Se nenhuma ferramenta de administrao grfica for utilizada), j
se faz necessrio um certo conhecimento para instalar e tambm administrar utilizando a linha
de comando do Sistema Operacional definido para ser o domnio0.
Um ambiente Xen possu alguns componentes para o funcionamento do mesmo. Os
componentes aqui so definidos de acordo com um quadro de funcionamento real e estes so
definidos abaixo com suas respectivas descries:

Xen hypervisor

14

o Este definido como uma camada bsica de abstrao de software que assenta
diretamente sobre o hardware abaixo de qualquer sistema operacional.
responsvel pelo agendamento de CPU e particionamento de memria das
mquinas virtuais (guests) executados no dispositivo de hardware. Este
tambm controla a execuo das mquinas virtuais como os guests
compartilham o ambiente de processamento comum.
Domain0
o Este definido como o Sistema Operacional (S.O) que possu um kernel
modificado executado como mquina virtual nica com direito a acesso direto
aos recursos fsicos de I/O (Input/Output, Entrada/Sada). Existe a interao
deste com as mquinas virtuais que esto sendo executadas. Existem dois
drivers para o controle da rede no Domain 0, estes so conhecidos como
Network Backend Driver e BlockBackend Driver, onde o primeiro aqui citado
utilizado para realizar a comunicao direta com o hardware de rede local
para processar todas as requisies das mquinas virtuais (Domain U). O
segundo aqui citado utilizadopara efetuar a comunicao com o
armazenamento local de disco para ler e escrever dados da unidade om base
em requisies dos guests (Domain U).
Domain U
o Estes so basicamente conhecidos como mquinas virtuais (guests), onde no
possuem acesso direto ao hardware fsico, logo um domnio U conhecido
como um domnio sem privilgios. As mquinas virtuais criadas so definidas
em duas categorias, P.V (Paravirtualization) e HVM (Hardware Virtual
Machine) onde a diferena bsica entre os tipos de virtualizao das mquinas
virtuais pode ser definido por modificar ou no modificar o sistema
operacional selecionado para instalao. Um exemplo bsico disso, seria
escolher criar e instalar uma mquina virtual do tipo P.V (Paravirtualizada),
desta forma no haveria possibilidade de efetuar a instalao de um sistema
operacional proprietrio sem a modificao no cdigo deste, tal como o
sistema operacional Windows em suas verses. Sistemas proprietrios so
executados como HVM guests, uma vez que no h a necessidade de modificar
absolutamente nada no cdigo do sistema operacional.

15

A utilizao de um guest paravirtualizado contm dois drivers para o funcionamento


da rede e acesso aos discos, so estes P.V Network Driver e P.V Block Driver. Ao utilizar um
guest HVM a estrutura de funcionamento modificada no possuindo os drivers citados
acima, onde no lugar destes inicializado um daemon para cada guest HVM, este conhecido
como Qemu-dm. Um fator interessante sobre guests HVM, que estes precisam serem
inicializados como mquinas tpicas onde o software (Xen virtual firmware) adicionado a
mquina virtual (Guest HVM) para sumular a BIOS que o sistema operacional esperaria na
inicializao.
Atualmente, em sua verso 4.1.1, o Xen est trabalhando com uma API para
virtualizao conhecida como libvirt. Est possui suporte para virtualizao com Xen, Qemu e
KVM.
Segue abaixo uma imagem para um melhor entendimento da estrutura de
funcionamento do hypervisor Xen:

Figura 1: Estrutura do Xen

A virtualizao em ambiente Xen possui alguns daemons e comandos para o controle e


gerenciamento sobre o que existe no Domain0. Estes so listados abaixo com suas respectivas
descries:

Xend
o Este daemon uma aplicao feita na linguagem de programao Python, onde
interpretado como gerenciador do sistema em ambientes Xen.
Xm

16

o o comando utilizado na linha de comando do domain0 para obter a entrada


do usurio e passar para o Xend.
Xenstored
o Este armazena o registro de informaes que incluem memria e links dos
canais de evento entre o domnio 0 e os guests (Domains U).

5. LOGICAL VOLUME MANAGER


O LVM (Logical Volume Manager, do portugus, Gerenciador de volume lgico), tem
como funo gerenciar os volumes lgicos, que substituem as tradicionais parties criadas
nos discos rgidos, alm de fornecer um nvel maior de abstrao acima dos dispositivos de
bloco reais. A maioria das distribuies Gnu/Linux j possuem o LVM por padro, que
atualmente encontra-se na verso 2 (dois) (Hugo Costa de Alemo Cisneiros, LVM no Linux,
1, So Paulo. Disponvel em <http://www.devin.com.br/lvm>. Acesso em 11/06/2011).
A utilizao do LVM tanto para a virtualizao como para a utilizao do Gnu/Linux
para outras funcionalidades, possui enormes benefcios ao ponto de vista de vrios estudiosos
na rea, e antes de qualquer demonstrao de algum benefcio do LVM, necessrio o
entendimento de sua funo. A descrio anterior, foi de que o LVM capaz de gerenciar os
volumes lgicos, como ponto inicial de extrema importncia o entendimento sobre estes.
Um volume lgico, nada mais do que uma representao virtual de pedaos de um
dispositivo fixo. Enquanto as parties definem estes pedaos "cruamente", o volume lgico
permite flexibilidade na hora de definir quem so esses pedaos. Por exemplo, um volume
lgico pode ter seu espao dividido em 3 ou mais HDs, mas para o sistema operacional vai
parecer como se fosse apenas um dispositivo. Sendo assim, comeam a ficar claras as
vantagens. O LVM gerencia volumes fsicos, representados pela abreviao P.V, que seriam
dispositivos de blocos, como os discos rgidos locais, anexados rede ou at mesmo
parties. Os pedaos virtuais citados mais acima, tambm so conhecidos como extenses
fsicas (PE), que podem ser concatenadas ou separadas pelo LVM para aumentar, ou diminuir
os PVs contidos (MATHEWS, 2007).

17

Um ou mais P.Vs so combinados para ento, criar o V.G (Volume Group), que pode
possuir vrios L.Vs (Logical Volumes), estes so utilizados pelos clientes (mquinas virtuais).
Este trabalho utiliza Volumes Lgicos (LVs) como disco para as mquinas virtuais, pela
facilidade de utilizao, redimensionamento e outras comentadas acima (Hugo Costa de
Alemo

Cisneiros,

LVM

no

Linux,

1,

So

Paulo.

Disponvel

em

<http://www.devin.com.br/lvm>. Acesso em 11/05/2011).


Ser utilizado um exemplo claro e bsico da utilizao do LVM em um sistema
Gnu/Linux, especificamente a distribuio CentOS verso 5.5.
A tabela a seguir exibe o particionamento a ser feito no sistema:

/boot

1 GB

10 GB

/etc/xen

149 GB
Tabela 1: Particionamento do sistema

18

Supondo que nesse sistema no esteja sendo utilizado LVM, e sim um sistema de
arquivos um pouco mais comum, como o ext3 ou ext4, e se por algum motivo a partio
/etc/xen est saturada,no sobrando espao algum, o indicado seria formatar a partio para
aumentar o tamanho da mesma, ou, adicionar outro H.D, e realizar uma manuteno
emergencial para essa questo. No caso do LVM, pode-se redimensionar essa partio, e de
certa forma, transparente para o sistema operacional.
Um fato interessante a se comentar, que a utilizao de ferramentas do prprio
sistema operacional so pouco utilizadas, ou desconhecidas. Ouve-se muito falar da questo
dos Snapshots da VMWare, onde permitido que uma "imagem" exata do sistema
operacional seja congelada, servindo assim de backup para um problema futuro com essa
mquina. O Xen tem uma opo interessante que ser apresentada adiante, e que ser
explorada com detalhes. Mas, a questo nesse momento, que o LVM, faz algo similar, pois
ele consegue "congelar" a partio especificada, logicamente do tipo LVM. Essa conhecida
como LVM Snapshots (Hugo Costa de Alemo Cisneiros, LVM no Linux, 1, So Paulo.
Disponvel em <http://www.devin.com.br/lvm>. Acesso em 11/06/2011).
Antes de iniciar de fato a utilizao do LVM, necessrio perpassar por mais alguns
tpicos dentro desse assunto para um maior entendimento dessa "ferramenta". Outra opo do
LVM, a questo da utilizao do mesmo como um RAID, e para melhor entendimento, um
exemplo ser citado aqui.
A utilizao de dois HDs para funcionar como apenas um volume lgico, o LVM caso
esteja trabalhando de uma certa forma, estar dividindo os dados entre os HDs, aumentando a
velocidade, justamente no conceito de RAID 0.
Talvez duas das nicas desvantagens que pode-se levantar sobre o LVM seria a
dificuldade que as pessoas tem de adaptar-se este novo modelo (sempre a resistncia a
mudanas) e uma forma de pensar em como montar o LVM sem comprometer a segurana
dos dados caso um HD falhe. Por exemplo, se um volume lgico contiver 3 HDs, e um deles
falhar, pode ser que este volume lgico fique corrompido. Para situaes mais complexas
como esta, geralmente se usa um conjunto de tcnicas de RAID e LVM (Hugo Costa de
Alemo

Cisneiros,

LVM

no

Linux,

1,

<http://www.devin.com.br/lvm>. Acesso em 11/06/2011).

So

Paulo.

Disponvel

em

19

Sequencialmente, os comandos para a utilizao do LVM sero detalhados:


vgdisplay

Visualiza

informaes

sobre

os

VolumeGroups
lvdisplay

Visualiza informaes sobre os Logical


Volumes criados dentro dos VolumeGroups

pvcreate

Cria volumes fsicos

lvcreate

Cria volumes lgicos

vgcreate

Cria grupos de volumes

lvextend

Aumenta o tamanho de um volume lgico

lvreduce

Diminui o tamanho de um volume lgico

lvremove

Remove volumes lgicos

vgremove

Remove grupos de volumes

pvremove

Remove volumes fsicos


Tabela 2: Comandos LVM

20

Com toda a teoria sobre LVM, pode-se ento iniciar a parte prtica para a utilizao do
mesmo. O ideal que seja separado um disco para o LVM, caso no seja possvel, pode-se
utilizar uma partio do tipo LVM.
Ao iniciar o particionamento no CentOS, voc pode escolher o sistema de arquivos, e
algumas opes so possveis, como:
ext2
ext3
physical volume (LVM)
software RAID
swap
vfat

O passo inicial selecionar o tipo do sistema de arquivos como: physical volume


(LVM). Logo aps, a finalizao da instalao ser feita. Ao iniciar o sistema, pode-se
conferir todas as parties previamente formatadas e com um sistema de arquivos definidos
utilizando o comando fdisk, com a opo l:

# fdisk -l

Supondo que a partio LVM esteja definida no sistema como /dev/sda3, e outras duas
definidas respectivamente como ext3 (utilizada como raiz do sistema), e SWAP o modelo
seria o que segue abaixo:
Partio

Tipo

Comentrio

/dev/sda1

ext3

Partio utilizada como raiz


do sistema

/dev/sda2

SWAP

rea de troca, para utilizao


da memria com uma parte
do disco rgido alocada

/dev/sda3

LVM

Partio utilizada para os


estudos

Tabela 3: Modelo de particionamento com LVM

21

Se no foi definido o tipo do sistema de arquivos para a partio /dev/sda3, apenas foi
realizada a formatao da mesma, ser preciso criar o Volume fsico (P.V), e para est
operao utiliza-se o comando pvcreate, desta forma:

# pvcreate /dev/sda3

vlido lembrar que utilizando o comando pvcreate na partio sda3, ir deletar


qualquer contedo desta.
Se na instalao, a partio /dev/sda3 foi formatada e previamente definida como
LVM, a utilizao do primeiro comando, pvcreate, no necessrio pois ao escolher o tipo do
sistema de arquivos como LVM, a instalao do CentOS j faz isso. Basicamente foi
explicado como realizar essa operao anterior para que qualquer outra distribuio do
Gnu/Linux possa ser usada.
Com o Volume Fsico criado, pode-se criar o Volume Group (VG), lembrando da
ordem que foi definida anteriormente, onde P.Vs possuem V.Gs, que por sua vez possuem
L.Vs. Para criar um Grupo de volume, necessrio utilizar o comando vgcreate:

# vgcreate xenvg /dev/sda3

A sada do comando acima provavelmente ser:

Volume group "xenvg" successfullycreated

Neste exemplo, o nome do grupo foi definido como xenvg e este grupo est alocado na
partio /dev/sda3. Logicamente, permitida a criao de vrios outros grupos dentro do
volume fsico criado anteriormente.
J que o grupo de volume foi criado dentro do volume fsico, qualquer volume lgico
pode ser criado para a utilizao dos discos das mquinas virtuais (guests). Um exemplo
bsico seria:

# lvcreate -L 10G -n Servidor_Web_Debianxenvg

A sada para a execuo do comando acima seria:

22

Logical volume "Servidor_Web_Debian" created

Neste exemplo, foi criado um volume lgico de 10 GigaBytes, com o nome


Servidor_Web_Debian no grupo xenvg. Para conferir os volumes e grupos criados, pode-se
acessar ou visualizar o contedo do diretrio /dev, procurando pelo nome do grupo. Foi criado
o grupo xenvg, ento todo o volume lgico criado, tem que estar dentro desse diretrio.
Ocomando ls utilizado para visualizar diretrios e arquivos, como no exemplo:

# ls /dev/xenvg

A sada para o comando acima seria:

Servidor_Web_Debian

Se um volume lgico foi adicionado, e est no era a inteno, voc pode remover o
mesmo, utilizando o comando lvremove, da seguinte forma:

# lvremove /dev/xenvg/Servidor_Web_Debian

A sada ser:

Do you really want to remove active logical volume Servidor_Web_Debian? [y/n]: y

Logical volume "Servidor_Web_Debian" successfully removed

Note, que foi especificado o caminho completo onde se encontrava o volume lgico, o
que necessrio se o usurio corrente do sistema no estiver dentro do diretrio /dev/xenvg,
ento a sada ser semelhante a est:

# lvremove Servidor_Web_Debian

Volume group "Servidor_Web_Debian" not found


Skipping volume group Servidor_Web_Debian

23

Para a remoo de qualquer V.G (Volume Group), pode-se utilizar a seguinte sintaxe
com o comando vgremove:

# vgremovexenvg

Volume group "xenvg" successfully removed

Finalizando a questo da adio e remoo de volumes fsicos, lgicos e grupos de


volumes, remover um volume fsico bastante simples como no exemplo abaixo:

# pvremove /dev/sda3

A sada ser semelhante a est:

Labels on physical volume "/dev/sda3" successfully wiped

Outro assunto bem interessante e que uma das caractersticas do LVM, justamente
a questo do redimensionamento de L.V (Logical Volume), que pode ser feita com o comando
lvextend, como no seguinte exemplo:

# lvextend -L 15G /dev/xenvg/Servidor_Web_Debian

A sada ser semelhante a est:

Extending logical volume Servidor_Web_Debian to 15,00 GB


Logical volume Servidor_Web_Debian successfully resized

24

Um detalhe importante, que quando um L.V (Logical Volume) redimensionado,


aumentado o tamanho do mesmo, necessrio tambm aumentar o tamanho do sistema de
arquivos da mquina virtual para utilizar o novo espao. Logo, o sistema de arquivos
utilizado, tambm deve suportar o redimensionamento. Nos exemplos deste trabalho foi
utilizado o sistema de arquivos para o Domain0, ext3. Alm disso, o ext3 e ReiserFS
suportam o redimensionamento on-line, assim, no necessrio desmontar nenhum
dispositivo em funcionamento.
Algo que foi vivenciado pelos autores deste trabalho, que se o tamanho escolhido
para o redimensionamento do L.V (Logical Volume) for maior que o tamanho disponvel com
o comando:

# lvextend -L 180G /dev/xenvg/Servidor_Web_Debian

O seguinte erro ser exibido:

Extending logical volume Servidor_Web_Debian to 180,00 GB


Insufficient free space: 2304 extents needed, but only 1746 available

A prxima etapa, ser redimensionar o sistema de arquivos subjacente para usar o


novo espao. O comando resize2fs pode realizar essa tarefa, com sistemas de arquivos ext2 e
ext3. Caso um tamanho no seja definido ao utilizar o comando resize2fs, ser utilizado o
tamanho mximo permitido. Pode ser feito da seguinte forma:

# resize2fs /dev/xenvg/Servidor_Web_Debian

25

6. INSTALAO DO HYPERVISOR XEN


Antes de qualquer procedimento para efetuar a instalao, necessrio realizar a
escolha do tipo de instalao, onde os meios possveis so arquivo compactado, atravs de
repositrios do prprio sistema operacional de acordo com a distribuio escolhida ou
utilizando a prpria distribuio modificada pela organizao responsvel pela criao e
administrao do hypervisor, Citrix. Aps alguns anos de estudos realizados com foco no
mercado a Citrix resolveu liberar a utilizao do XenServer, onde este grtis porm no
possui o cdigo-fonte liberado, alm da necessidade de renovar a licena gratuita anualmente.
Este ltimo aqui citado possui caractersticas interessantes, iniciando por sua interface
de administrao conhecida como XenCenter, onde com a utilizao deste software o
administrador da virtualizao consegue manipular mquinas virtuais de forma fcil e
funcional, alm de contar com outras opes, como migrao de mquinas virtuais, snapshots
e outras facilidades. Infelizmente no existe suporte para a execuo deste software am
ambientes de cdigo aberto, como Gnu/Linux, FreeBSD e outros. Uma alternativa utilizada
para gerenciar o hypervisor de forma grfica a utilizao do OpenXenCenter, onde este tenta
facilitar a administrao por parte do responsvel pela administrao com uma interface fcil
porm no to funcional quanto o software anteriormente citado, alm de conter uma srie de
erros ao realizar determinadas operaes como migrao de mquinas e alterao no tamanho
da memria RAM de mquinas virtuais existentes. Ao iniciar o servidor de virtualizao
atravs deste hypervisor aqui citado, um console de gerenciamento conhecido como xsconsole
facilita a administrao utilizando o modo texto, pois nos estudos realizados para a elaborao
deste trabalho foram feitos certos comparativos entre a administrao de mquinas virtuais
utilizando XenSource e XenServer, percebeu-se que existe uma maior facilidade com relao
aos comandos para administrao por parte do XenSource.
Logo, recomenda-se a instalao do XenSource em ambientes de desenvolvimento
para testes de virtualizao, pode-se efetuar esta operao atravs de repositrios da
distribuio selecionada, onde uma das dificuldades existentes neste modo foi a questo da
atualizao, necessrio realizar uma busca de repositrios com a verso mais atual do
hypervisor, e nem sempre estes repositrios so confivel, porm a forma mais fcil e rpida
de realizar a instalao pois com est sendo feita atravs de compilao existe uma certa
demora alm da quantidade grande de bibliotecas a serem instaladas de forma manual,
entretanto qualquer atualizao nas verses do Xen so primeiramente divulgadas e
publicadas em formato compactado, geralmente com a compactao tarball.

26

Ser utilizada a instalao por meio de repositrios, onde est pode ser iniciada atravs
de comandos, como yum. Este comando responsvel por gerenciar os pacotes com formato
.rpm atravs de repositrios existentes em um local especfico determinado em seu arquivo de
configurao. A linha de comando utilizada com os subcomandos para a instalao definida
abaixo:

# yum install kernel-xenxenvirt-manager

No momento que foi testada a instalao do Xen no CentOS 5.5, foi feito download de
exatamente 29 (Vinte e nove) pacotes. Detalhando a utilizao de cada pacote instalado, segue
uma breve descrio:

kernel-xen
o O kernel do Linux compilado para operaes com mquinas virtuais Xen.

Xen
o Monitor de mquinas virtuais.

virt-manager
o Atravs desse pacote, instalado o executvel virt-install, e com ele possvel
criar mquinas virtuais com muita facilidade.

vlido lembrar que est operao utiliza o mirror padro do CentOS, que neste caso
foi utilizada a verso 5.5 da distribuio CentOS, logo uma conexo com a internet se faz
necessria.
Antes de iniciar o sistema com todas a atualizaes feitas inclusive com o novo kernel
modificado para a utilizao do Hypervisor Xen, algumas alteraes devem ser feitas.

27

Na maioria dos casos, deve-se desabilitar o avahi-daemon. O Avahi uma


implementao do protocolo Zeroconf, que nasceu como uma idia da Apple para facilitar a
configurao da rede, permitindo que as mquinas divulguem e descubram os servios
disponveis. uma daquelas idias que parecem boas na teoria, mas viram uma baguna
quando implementadas na prtica. A menos que o responsvel pela implantao da rede seja
um administrador desta e deseje utilizar o Zeroconf, recomendvel desativar o avahidaemon. Em situaes normais, este no ir atrapalhar, mas em determinadas situaes ele
pode consumir excessivamente recursos do sistema e retardar a resoluo de nomes, tornando
o acesso mais lento (Carlos Eduardo Morimoto da Silva, Servios de sistema: dando nome
aos bois, 1, So Paulo. Disponvel em <http://www.hardware.com.br/dicas/servicossistema.html>. Acesso em 11/05/2011).
Para tal operao, pode-se utilizar o comando chkconfig com sua opo off, onde este
no ser mais inicializado junto ao sistema.
necessria a reviso do arquivo de configurao do GRUB (Responsvel por
gerenciar os sistemas operacionais existentes no disco rgido), para que ao iniciar a mquina
virtual sem nenhuma interferncia humana, o GRUB seja capaz de iniciar o kernel do Xen.
Para isso, necessrio alterar o arquivo de configurao do GRUB utilizando um editor de
texto (No caso dos exemplos aqui citados, o editor de texto utilizado conhecido como VIM):

# vim /boot/grub/menu.lst

Um dos parmetros interessantes a se estudar o default, pois este menciona qual o


sistema ser inicializado por padro se no houver nenhuma escolha manual. A configurao
da inicializao do Xen estar logo no comeo do arquivo fazendo com que o nmero que
menciona a posio correta do mesmo, seria zero, desta forma default=0.
No necessrio, porm existe a possibilidade de alterar a espera para a inicializao
de determinado sistema, alterando o valor da opo timeout. Por padro, essa opo possui o
valor 5. Outra opo que pode ser alterada, mas que no necessria, seriatitle. Est exibe o
nome determinado na tela do GRUB.

28

Se todas as alteraes at aqui foram feitas, o prximo passo seria remover um arquivo
que causa um problema relacionado a configurao de rede do servidor. Deve-se desabilitar o
"Bridge NAT" feito pelo pacote instalado libvirt, que uma dependncia do pacote virtmanager. O cenrio aqui definido, que o servidor de virtualizao Xen ser implantado em
uma rede que j possui todos os servios essenciais para o funcionamento da mesma, como
DNS, Firewall, e outros.
O libvirt cria regras no iptables (Firewall nativo do Gnu/Linux), realizando de fato o
NAT (Network AddressTranslator) e algumas regras de acesso, liberando apenas o acesso a
uma das interfaces virtuais criadas pelo Xen. Ou seja, todas as outras interfaces ficam sem
acesso. Nesta situao a interface de rede que possui acesso a rede local, a eth0. Ento, sem
executar a instruo abaixo, a mquina utilizada aqui para a virtualizao com xen, no ser
acessada por outras mquinas na rede local, criando assim um isolamento nico do servidor
de virtualizao. Para prevenir-se disto a ao abaixo necessria ( vlido lembrar que a
instalao aqui mostrada baseada na verso 5.5 do CentOS Gnu/Linux e do Xen 3.x, onde
ao utilizar a verso 6.0 da distribuio Gnu/Linux aqui citada e o Xen 4.x a instalao no
pode ser feita com os procedimentos da verso antiga):

# rm -f /etc/libvirt/qemu/networks/autostart/default.xml

Ento, com a combinao dos passos acima (Desabilitao do daemonavahi-daemon, e


remoo do arquivo default.xml), no haver problema relacionado conectividade na rede
de computadores, pois no ser criada nenhuma regra de bloqueio no firewall local, ou a
interface criada na instalao do xen ser alocada para a utilizao. O contedo do arquivo
default.xml excludo, era (O contedo abaixo mostrado por questo de conhecimento):

<network>
<name>default</name>
<uuid>c553f4e5-6b13-4683-8f48-b23d61f50887</uuid>
<bridge name="virbr0" />
<forward/>
<ip address="192.168.122.1" netmask="255.255.255.0">
<dhcp>
<range start="192.168.122.2" end="192.168.122.254" />
</dhcp>

29

</ip>
</network>

Ao abrir o arquivo /etc/xen/xend-config.sxp, deve-se comentar todas as linhas que


iniciam com network... para que o hypervisor XEN no faa nenhuma ponte (Bridge) para a
interface eth0, assim, o acesso via rede essa interface fica disponvel.
Com todas alteraes realizadas, o sistema est pronto para ser utilizado como
Domain0, ento deve-se reiniciar o CentOS Gnu/Linux utilizando o comando reboot.
Na verso 3.x, existe um bug (erro) bem considervel quando tratado em nvel de rede.
Ao efetuar a instalao do Xen, reiniciar a mquina e utilizar o kernel do mesmo,
possivelmente ser visualizada a seguinte mensagem a todo momento:

"vif0.0: received packet with own address as source address"

A interface de sada para a internet, que faz a comunicao com arede, simplesmente
no se comunica. A interface do xen, que utilizada para realizar o modo bridge, xenbr0,
assume a responsabilidade pela interface padro (eth0), ento ao tentar utilizar o comando
dhclient, que retorna um IP via rede (Logicamente, o servio para distribuio de IPs de
forma dinmica precisa existir e estar em funcionamento), utilizar a interface do xen, xenbr0.
Ainda sim, no possvel se comunicar com nenhum outro computador em rede ou mesmo
sair para a internet.
A soluo para tal bug, editar o arquivo /etc/xen/scripts/network-bridge, alterando o
contedo do arquivo de acordo com a referncia deste pargrafo (David Barrera, peth0:
receivedpacketwithownaddress

as

sourceaddress.

Disponvel

em

<http://bugzilla.xensource.com/bugzilla/show_bug.cgi?id=339>. Acesso em 18/04/2011).


Aps finalizar a instalao, o servidor de virtualizao entrar em funcionamento aps
carregar o kernel do hypervisor, que foi compilado durante a instalao. Ao iniciar, possvel
verificar se realmente houve o carregamento do kernel correto utilizando o comando uname.
Aps obter a confirmao, possvel criar e administrar mquinas virtuais, mas antes
necessrio que seja definido qual o tipo de virtualizao que ser utilizada.
O recomendado, que se existe a possibilidade de utilizao de sistemas proprietrios,
utilize-se a virtualizao total, mas se a utilizao deste servidor de virtualizao ser voltada
para sistemas de cdigo aberto, como FreeBSD, Gnu/Linux e outros, a melhor opo utilizar
a paravirtualizao.

30

Como citado anteriormente, a virtualizao com o xen utiliza paralelamente as


tecnologias de virtualizao do hardware, ento para a virtualizao total necessrio que o
hardware em questo possua est tecnologia. Existe uma forma fcil e rpida de verificar isto
e para isso pode-se utilizar o comando catseguido de outro comando para filtrar a sada:

# cat /proc/cpuinfo | grepsvm


# cat /proc/cpuinfo | grepvmx

No primeiro exemplo, a pesquisa efetuada em busca da tecnologia de virtualizao


da AMD, representada por svm, e no segundo exemplo a procura pela tecnologia de
virtualizao da Intel, representada por vmx. A seguir, a sada em caso de existncia do
suporte em ambos os casos so exibidas:

model name: AMD Turion(tm) 64 Mobile Technology MK-36


flags: fpuvme de psetscmsrpaemce cx8 apicsepmtrrpgemcacmov pat pse36 clflush
mmx fxsrsse sse2 syscallnxmmxextfxsr_opt lm 3dnowext 3dnow pni cx16 lahf_lmsvm
cr8legacy ts fid vid ttp tm stc

model name: Intel(R) Core(TM)2 CPU

T5600 @ 1.83GHz

flags: fpuvme de psetscmsrpaemce cx8 apicmtrrpgemcacmov pat pse36 clflushdtsacpi


mmx fxsrsse sse2 ssht tm pbenx lm constant_tscpni monitor ds_cplvmxest
tm2 ssse3 cx16 xtprlahf_lm

Caso nenhum dos comandos tenha retorno, significa que o hardware em questo no
tem suporte para tal operao. Neste caso, temos a opo de utilizao da paravirtualizao,
onde no necessria est tecnologia.

31

7. CRIANDO E ADMINISTRANDO GUESTS


Ao definir qual tipo de virtualizao deve-se utilizar e realizar a instalao do Xen, j
possvel criar as mquinas virtuais conforme a necessidade.
Vrias verses do CentOS podem ser instaladas, mas para este caso foi definido o
CentOS verso 5.5 sem ambiente grfico, pois o mesmo consome recursos do sistema, onde
estes poderiam estar sendo consumidos pelo domnio0. Vale pontuar que existem ferramentas
grficas para o gerenciamento do Xen, uma delas o Convirt.
Pode-se utilizar ferramentas grficas no prprio servidor de virtualizao com
ambiente grfico (Onde foi explicado acima o porque de no utilizar ambiente grfico no
servidor de virtualizao), ou em outro computador, de forma remota.
necessrio o entendimento do funcionamento das mquinas virtuais em nvel de
sistema. Iniciando est breve introduo, a criao de mquinas virtuais utilizando o Xen pode
ser feito de duas formas:

Ferramenta para criao de mquinas (virt-install e/ou outras)


o Est ferramenta prov uma criao fcil e rpida, onde necessrio passar
parmetros,

como

no

exemplo

abaixo

para

uma

mquina

virtual

paravirtualizada ou de virtualizao completa:

Paravirtualizao: virt-install -n Fedora13_WEB -r 768 --vcpus=1 -f


/dev/xenvg/f13

-p

-l

"http://ftp.funet.fi/pub/mirrors/fedora.redhat.com/pub/fedora/linux/relea
ses/13/Fedora/i386/os"

Virtualizao completa: virt-install -n WIN2003SERVER -r 1024 f


/dev/xenvg/Windows2003Server

-b

xenbr0

-v

/var/lib/xen/images/Windows2003Server.iso --vnc --vncport 5900 -force

Onde os parmetros passados aqui significam:


-n: Nome da mquina virtual
-r: Memria RAM
--vcpus: Quantidade de unidades centrais de processamento (CPU) virtuais
-f: Especificao da localizao do disco (H.D) da mquina virtual, que pode ser uma
partio ou um volume lgico, que neste caso est sendo utilizada a segunda opo com LVM

32

-p: Especifica que o Guest ser paravirtualizado


-l: Origem da instalao, que neste caso est sendo feita utilizando um link para os
guests PVM (Paravirtualized Virtual Machine) ou uma imagem para os guests HVM
(Hardware Virtual Machine)
-b: Especifica a interface utiliza para fazer a ponte com a interface real, como por
exemplo, eth0.
-v: Virtualizao total

Finalizando desta forma a criao de mquinas virtuais atravs da ferramenta virtinstall

(Hugh

Brock,

virt-install(1)

Linux

manpage.

Disponvel

em

<http://linux.die.net/man/1/virt-install>. Acesso em 18/04/2011).

Manualmente
o A utilizao deste forma para qualquer iniciante difcil, porm d uma maior
liberdade para certas alteraes, nada que no possa ser feito na mquina
virtual aps a criao com o virt-install. Inicialmente, o Xen possui alguns
arquivos de configurao pr-definidos em seu diretrio padro (/etc/xen),
onde possvel modificar alguns destes, realizar uma cpia e utilizar. Existem
vrias opes dentro do arquivo que precisam ser definidas, como por
exemplo, a quantidade de memria, onde o H.D est localizado, e assim por
diante.

Alguns exemplos dos parmetros utilizados nestes arquivos so:


memory = 128: Define a memria utilizada, neste caso, 128 MB
name = "Fedora13_WEB": Nome da mquina virtual
vcpus = 1: Quantidade de CPU's virtuais
disk = ['phy:hda1,xvda,w']: Localizao dos discos

Para criar um domnio Ubuntu ou Debian Gnu/Linux, pode-se efetuar o download de


um

arquivo

de

configurao

pr-definido

http://fi.archive.ubuntu.com/ubuntu/dists/lucid/main/installeramd64/current/images/netboot/xen/xm-debian.cfg

atravs

deste

link:

33

Algumas alteraes so necessrias, portanto deve-se acessar o arquivo e alterar a


linha amd64. Neste ponto inicial, deve-se definir qual a arquitetura da mquina virtual, logo
procura-se pela palavra amd64, onde iro existir duas linhas, semelhantes a esta abaixo:

use='Debian mirror to install from (default: amd64)'

Altera-se de amd64 para i386 (Em caso de modificao na escolha). Modifica-se


tambm a linha bootloader com o caminho completo, como no exemplo abaixo:

if not xm_vars.env.get('install'):
bootloader="/usr/bin/pygrub"
else:

Ao definir as opes bsicas para a criao da mquina virtual, deve-se sair e salvar o
arquivo para ento utiliz-lo.
Aps criar a mquina virtual, possvel inici-la utilizando o comando xmcom o
subcomandocreate. Este comando utilizado para o gerenciamento dos domnios sem
privilgios (DomU, Guests, Mquinas virtuais), com vrias aes diferentes, como listar os
guests, sua situao (Em funcionamento, em boot, parada, etc), iniciar guests, reiniciar guests,
e outras possveis aes.

# xmcreate -c /etc/xen/Fedora13_WEB.cfg

A opo -c especifica o arquivo de configurao criado que ser iniciado. possvel


verificar o andamento da mquina, assim como quais mquinas virtuais existem em execuo
atualmente com o comando:

# xmlist

Logo a sada do comando exibida:

Name

ID Mem VCPUs

State

Time(s)

Domain-0

389

r-----

1414.9

Fedora13_WEB

128

-b----

10.6

34

O primeiro domnio a ser mostrado, o prprio domnio0, depois pode-se visualizar o


guest criado, que est com o ID 6 (Seis), a quantidade de memria 128 MB, utilizando uma
CPU virtual, com 10.6 segundos de tempo, que a quantidade de tempo em segundos que o
domnio est utilizando a CPU, e o estado, definido neste caso como b.
Um dos campos mais importantes desta visualizao o campo State, onde este
exibir o estado da mquina. Para um melhor entendimento sobre as possibilidades existentes
neste campo, deve-se visualizar a tabela abaixo:
Abreviao

Nome completo

Descrio

Executando

Significa que o guest est em


execuo

Bloqueado

Significa que o domnio est


parado, esperando alguma
ao

Pausa

Diferente

do

Bloqueado,

este

status
status

exibido quando o domnio


est pausado, mas no est
aguardando nenhuma ao
s

Encerrado

Este status exibido quando


o domnio em questo foi
desligado, mas os recursos
ainda no foram liberados

Falha

Significa uma falha crtica


que parou o domnio

Desligando

O desligamento do domnio
foi iniciado, mas ainda no
completou o processo de
desligamento

normal,

ou

causado por falha


Agendado

Quando

nenhum

sinal

exibido, significa que este


domnio

tem

tarefas

realizar mas atualmente no

35

est sendo executado


Tabela 4: Visualizao do campo state

Segue abaixo uma tabela definindo os principais subcomandos utilizados do comando


xm:
Comando

Descrio

xm console

Acessa o console do domnio especificado

xm create

Inicia o domnio especificando

xm destroy

Finaliza o domnio de forma forada

xm list

Lista os domnios existentes, junto com


alguns campos relacionados, como memria,
status e outros

xm mem-set

Define a memria do guest em tempo de


execuo

xm migrate

Migra este domnio para outro servidor de


virtualizao Xen (Domnio0)

xm pause

Pausa o domnio

xm reboot

Reinicia o domnio

xm top

Exibe dados do domnio em tempo real

xm unpause

Retira o guest do status de pausado, para o


funcionamento normal
Tabela 5: Opes do comando xm

36

8. GERENCIAMENTO DE DISPOSITIVOS
A virtualizao total e a emulao dos dispositivos do hardware, daria uma falsa
concluso para cada guest, de que todos teriam seus prprios dispositivos dedicados
exatamente como um dispositivo fsico. Utilizando a paravirtualizao, existe uma mudana
para tal operao, pois os guests sabem que o dispositivo foi modificado, ento para eles
bem mais simples de visualizar o mesmo, precisando executar a nova interface, justamente o
inverso do procedimento da virtualizao total ou da emulao que continua com a mesma
interface, sem necessidade de execut-la novamente. Dentro deste conceito, possvel
manipular a concesso de dispositivos para um guest em especfico e exclusivo (MATHEWS,
2007).
Para uma melhor explicao e entendimento, deve-se segmentar a utilizao dos
conceitos de gerenciamento de dispositivos para a paravirtualizao e a virtualizao
completa, porm, primeiramente faz-se necessrio o conceito para tal entendimento que
descrito abaixo.
O objetivo geral do gerenciamento de dispositivos por parte do domnio privilegiado,
tambm conhecido como domnio0 (Sistema que hospeda o servio Xen e consequentemente,
todos os guests), buscar as informaes do hardware e exportar para os guests (domnios
no-privilegiados) (HAGEN, 2008).

Paravirtualizao
o O conceito geral um pouco modificado, na parte em que do domnio0 exporta
odriver do dispositivo para os guests, pois ao realizar essa operao, o driver
exportado do tipo genrico, ocultando assim os detalhes e complexidades do
dispositivo fsico. Uma das vantagens desse mtodo, que ao utilizar esse
mesmo guest em outro computador (Servidor) com o Xen instalado e
configurado, os guests iro visualizar e tratar o hardware de forma
transparente, j que para estes o driver o mesmo (pois foi passado como
genrico). Ento fica claro, que basta o domnio0 reconhecer o driver, que para
o domnio no-privilegiado ser transparente e funcional (MATHEWS, 2007).

Virtualizao completa

37

o Neste tipo de virtualizao, o guest tem a iluso de que est utilizando um


dispositivo dedicado, idntico ao dispositivo real. Um ponto ruim que pode ser
citado neste tipo de virtualizao, que no se tem a mesma flexibilidade de
utilizar um guest de uma mquina domnio0 para outra com um hardware no
semelhante, tornando assim, menos portvel. Seria necessrio que a outra
mquina fsica possusse dispositivos idnticos (MATHEWS, 2007).

A utilizao do gerenciamento de dispositivos algo muito importante para a


utilizao dos guests. possvel alocar um dispositivo, como uma placa de rede, para ser
utilizada apenas pelo guest. Um exemplo da utilizao desse mtodo, quando na rede local
existe um proxy, e no recomendado o compartilhamento da placa de rede do servidor de
virtualizao para todas as mquinas virtuais, sabendo que o proxy vai realizar uma grande
utilizao da mesma relacionado ao trfego de dados. possvel ento alocar esse dispositivo
para a utilizao exclusiva do servidor proxy, ou ainda compartilhar a interface a partir dele.
O compartilhamento do dispositivo feito pelo domnio0, atravs do mecanismo
backend, que recebe informaes dos domnios clientes pelo frontend. Porm, possvel
configurar um driver backend para a comunicao em rede local com outras mquinas
virtuais, a partir de um domnio. A desvantagem desta utilizao, que se a placa de rede que
compartilhada atravs do domnio zero causa algum problema, todas as mquinas virtuais
que a utilizam iro sofrer do mesmo problema, ento supondo que para a resoluo do
problema seja preciso reiniciar o servidor que compartilha este dispositivo (domnio0), isso
significa que todos os guests iro precisar ser reiniciados. Isso realmente um problema, pois
todos os servios que esto sendo executados nas mquinas virtuais precisaro ser parados
para a reinicializao dos mesmos (CHRISNALL, 2007).
Uma prtica que est sendo estudada e foi comprovada e teve sua robustez
comprovada foi a virtualizao de firewall, alocando os dispositivos de rede para a mquina
virtual que servir de firewall para a rede local, justamente utilizando o mecanismo de
compartilhamento de dispositivos a partir de um domnio cliente.
Toda a comunicao de requisio de um frontend para um backend feita atravs do
xenbus, onde a imagem abaixo faz a ilustrao desta comunicao:

38

Figura 2: XenBUS

Como no exemplo citado anteriormente (Utilizao do proxy), foi vinculado um


dispositivo (placa de rede) ao domnio especificado. Para tal tarefa, necessrio obter
algumas informaes, como por exemplo, o nmero desta placa (O nmero de identificao
para o Xen). Pode-se conseguir todas as informaes necessrias utilizando o comando nativo
do Gnu/Linux lspci, que tem a funo de listar todos os dispositivos do tipo PCI.

Abaixo pode-se visualizar a execuo junto a sada, de forma bem simples:

[root@teste ~]# lspci | grep Ethernet

01:00.0 Ethernet controller: Marvell Technology Group Ltd. Device 4380 (rev 10)

O interesse na sada deste comando, o comeo da linha exibida. No incio da linha


exibida, pode-se visualizar a identificao da placa de rede para o sistema, 01:00.0. Se o
mesmo comando for digitado em qualquer outro computador, o resultado dever ser diferente,
s no ser se o hardware for igual. Adicionando 0000 na frente da identificao anterior,
deixando igual a 0000:01:00.0, no influenciar em nada, pois este primeiro conjunto 0000,
pode ser retirado para a utilizao da placa. Para um melhor entendimento, uma breve
explicao do conjunto de nmeros feita abaixo:

0000
Domnio (Refere-se a um domnio PCI e no a um domnio Xen)
01

39

BUS, possui sempre dois caracteres


00
Slot, possui sempre dois caracteres
0
Nmero da funo

Assim, segue o padro <domnio>:<bus>:<slot>.<funo>. Pode-se ocultar este


dispositivo para o domnio0, deixando disponvel para outros domnios, como um guest
chamado servidorproxy. Para ocultar ao inicializar o kernel do xen, possvel editar o arquivo
de configurao do GRUB, como /boot/grub/menu.lst, e adicionar essa funcionalidade com
pciback.hide=(IDENTIFICAO), onde IDENTIFICAO corresponde a identificao da
placa de rede (MATHEWS, 2007). Como neste exemplo:

title CentOS Xen


kernel /boot/xen-3.x.gz dom0_mem=512
module

/boot/vmlinuz-2.6-xen0

root=/dev/sda1

ro

console

tty0

pciback.permissivepciback.hide=(01:00.0)

As opespciback.permissivee pciback.hide, so utilizadas para ocultar determinado


dispositivo PCI do domnio0. Para finalizar, passando o dispositivo para a utilizao do
mesmo em um domnio escolhido, como em nosso exemplo, o servidorproxy, existem duas
possibilidades para tal operao. Ao iniciar o domnio, possvel utilizar o parmetro pci,
como no exemplo abaixo:

[root@teste ~]# xmcreateservidorproxy.cfgpci=01:00.0

A desvantagem dessa utilizao, que sempre que for preciso iniciar o domnio
especificado, ser necessria a utilizao deste parmetro, pci. Ento, uma tima prtica seria
adicionar este parmetro no prprio arquivo de configurao, adicionando apenas
pci=['01:00.0'].
Se para tal operao, so utilizados dois ou mais dispositivos PCI, basta utilizar
uma vrgula, e adicionar outro identificador de um dispositivo pci, como neste exemplo:

pci=['01:00.0','02:00.0']

40

At ento, foi exemplificado e descrito como os dispositivos do hardware funcionam


em conjunto com a paravirtualizao, porm, na virtualizao total um pouco diferente e um
pouco mais complexo, onde tudo relacionado a dispositivos gira em torno do Qemu-dm. A
virtualizao completa passa para o cliente (guest) a iluso de que est utilizando o prprio
driver fsico, de forma exclusiva.
O QEMU um software para virtualizao open-source, que permite a virtualizao
de por exemplo CPU e outros dispositivos fsicos. Inclusive, este realiza vrias aes que o
Xen tambm realiza, ento pode-se dizer que o QEMU um tipo de concorrente ao Xen,
porm, no de forma direta. O gerenciador de dispositivos do QEMU chamado de qemu-dm,
e trabalha como um servio que executado como back-end no domnio0, fazendo a
comunicao com os guests HVM. Um detalhe a ser comentado, que o suporte do QEMU
para dispositivos USB, PAE, ACPI e APIC, por padro, no ser iniciado junto ao domnio
cliente, a no ser que seja ativado no arquivo de configurao (MATHEWS, 2007).
A parte do arquivo de configurao que indica a utilizao do qemu-dm junto aos
dispositivos citados pode ser visualizada abaixo:

device_model = '/usr/' + arch_libdir + '/xen/bin/qemu-dm'


pae=0
acpi=0
apic=0
usb=1

No caso acima, utilizado o suporte apenas dos dispositivos USB, com o qemu-dm.
Desta forma, para habilitar a utilizao dos outros tipos basta editar o arquivo, alterando o
valor de 0 (Zero) para 1 (Um).

41

9. VIRTUALIZAO DE REDE
A virtualizao de rede criada desde a inicializao do primeiro guest, onde
necessrio definir se este ir utilizar a internet, ter apenas acesso local ou ainda utilizando
NAT atravs de um gateway. Em estudo realizados, percebe-se a dificuldade em entender o
funcionamento simples de uma rede atravs da virtualizao, seja ela de servidores ou no.
Para o entendimento de todos os tipos recomenda-se pelo autor deste trabalho a interao com
software para virtualizao que sejam executados em Desktop, tal como VirtualBox.Ao
utilizar softwares para a virtualizao deste tipo, percebe-se que o aprendizado inicial
grande, logo pode-se migrar para a virtualizao de servidores sem nenhum problema quanto
ao entendimento do funcionamento de uma rede virtual.
O hypervisor Xen compartilha a interface de rede detectada pelo sistema com seus
guests por padro, desta forma deve-se selecionar quais iro ou no ter acesso para qualquer
destino atravs da placa de rede fsica do servidor de virtualizao em questo, pois todos os
domnios que possuem uma placa de rede iro utilizar a interface de rede fsica atravs de
uma multiplexao feita para a sada de dados. Anteriormente, foi exibida a forma ideal de
isolar uma placa de rede para a utilizao de apenas um guest, desta forma nem mesmo o
Domnio0 iria utilizar est teoricamente, onde este tipo de uso frequente em virtualizaes
de firewall. Se as mquinas virtuais no iro acessar a rede fsica ou a internet, no
necessrio ter uma placa de rede no servidor de virtualizao, pois est ir tratar os pacotes
para

que

estes

sejam

enviados

corretamente

para

cada

mquina

virtual

requisitante(MATHEWS, 2007).
Ao definir a topologia de rede a ser utilizada com suas opes, como quantas
interfaces utilizar em cada guest, se estes guests iro utilizar um gateway NAT, iro estar
interligados diretamente at a rede fsica, deve-se ento criar as mquinas virtuais com sua
configurao pr-definida, com um MAC e um IP diferente para cada guest. Estes podem ser
definidos de forma dinmica, atravs de DHCP, onde necessrio ter um servidor na rede de
computadores que fornea IPs de forma dinmica automaticamente, na questo do MAC o
Xen gera automaticamente um ao criar o domU. Pode-se tambm definir estas opes de
forma manual, porm, o recomendado que permita que o Xen gere o MAC, e o
administrador defina o IP das mquinas virtuais de acordo com seu planejamento de
organizao de endereos da rede (MATHEWS, 2007).
O Xen disponibiliza trs modos para que as mquinas virtuais tenha acesso a rede
fsica, estes so explicados abaixo:

42

Ponte
o Este modo utiliza uma interface presente no domnio0, onde suas
informaes podem ser visualizadas atravs do comando ifconfig. Essa
interface da rede virtual visvel na camada Ethernet, desta forma,
qualquer computador na rede fsica pode se comunicar com guests
utilizando este modo. Neste modo, o trfego retransmitido entre
diversas interfaces da rede com base em um endereo MAC, onde este
independente de qualquer protocolo de maior nvel.
Roteamento
o Este modo disponibiliza o IP do guest para a visualizao na camada
Ethernet, porm, a interface de rede virtual no visvel.Para o trfego,
este envia o pacote em uma camada mais alta com base no IP fornecido.
NAT
o Este modo no disponibiliza um IP visvel para a camada Ethernet, e
nem torna a interface de rede virtual visvel. O trfego neste modo,
traduz um IP rotevel em um IP no rotevel globalmente.

43

CONCLUSO
A implantao da virtualizao de servidores em um ambiente organizacional vlida
desde que seja implantada e administrada de forma correta, indicando desta forma uma maior
economia com os gastos relacionados a energia e aquisio da tecnologia, alm de um melhor
aproveitamento do espao alm de uma eficincia incontestvel.
Para a realizao deste trabalho foram utilizadas vrias referncias que levantaram
alguns questionamentos, como se realmente vlido implantar a virtualizao em um
ambiente corporativo. Para os questionamentos feitos durante os estudos existem respostas
com representaes estatsticas, onde organizaes como Microsoft e Sun podem garantir a
eficincia desta.
Conclu-se atravs dos estudos realizados para a elaborao deste trabalho, que
altamente indicado que organizaes migrem com um planejamento para a virtualizao,
desta forma os servidores se tornaram mais eficientes e com uma maior disponibilidade para a
administrao e utilizao deste se o diagrama da rede de computadores do local favorecer.

44

REFERNCIAS
MATHEWS, Jeanna N. Running Xen: A Hands-On Guide to the Art of Virtualization .1. ed. Boston: Prentice
Hall, 2008. 624 p.
HAGEN, William von.Professional Xen virtualization. 1. ed. Indianapolis: Wiley Publishing Inc, 2008. 433 p.
SILVA, F. R. A. da.Vantagens e desvantagens na utilizao de software de virtualizao em servidores de
empresas de pequeno e mdio porte: Estudo de casos em faculdades particulares no Recife. 2007. 52 f.
Trabalho de Concluso de Curso (Bacharelado em Sistemas de Informao) Faculdade Santa Maria, Recife,
2007.

[Orientador:

Prof.

Msc.

Marcio

Nogueira].

Disponvel

em:

http://www.nogueira.eti.br/profmarcio/obras/Fabio%20-%20Virtualizacao.pdf. Acesso em: 15 mar. 2011.


NEVES,

Glauco;

PACHECO,

Guilherme.

Xen

Hypervisor.

Disponvel

em:

http://www.lisha.ufsc.br/teaching/os/ine5412-2008-2/work/xen.pdf. Acesso em: 10 mar. 2011.


Costa, Hugo. LVM no Linux. Disponvel em: http://www.devin.com.br/lvm. Acesso em: 11 mai. 2011.
CHRISNALL, David. The definitive guide to the Xen Hypervisor. 1. ed. Westford: Prentice Hall, 2007. 307 p.
XAVIER, A. C. Processamento informacional de um jornal histrico com vista sua disponibilizao na
internet. 2007. 80 f. Trabalho de Concluso de Curso (Bacharelado em Gesto da Informao) Universidade
Federal do Paran, Curitiba, 2007. [Orientador: Prof. Dr. Ulf Gregory Baranow]. Disponvel em: . Acesso em: 6
nov. 2008.
Hugh Brock, virt-install(1) - Linux man page. Disponvel em http://linux.die.net/man/1/virt-install. Acesso em
18/04/2011.
Krkkinen,

Pasi.

Xen

paravirt_ops

for

upstream

Linux

kernel.Disponvel

em:

http://wiki.xensource.com/xenwiki/XenParavirtOps. Acessado em: 10 de Maio 2011.


Morimoto,

Carlos.

Servios

de

sistema:

dando

nome

aos

bois.

Disponvel

em:

http://www.hardware.com.br/dicas/servicos-sistema.html. Acesso em 11/05/2011.


Trulli, Jarno. BOCHS - O emulador de x86. Disponvel em: http://www.vivaolinux.com.br/artigo/BOCHS-Oemulador-de-x86>. Acesso em: 6 de Maio 2011.
KVM Team. KVM. Disponvel em: http://www.linux-kvm.org/page/Main_Page. Acesso em: 7 de Maio 2011.

Você também pode gostar