Instalando Xen 3.3.0 no Debian Lenny Linux

Neste artigo abordo a instalação do Xen 3.3.0 no Linux Debian Lenny. O Xen é uma plataforma de virtualização livre para arquitetura x86. Com ele é possível executar vários sistemas operacionais (inclusive Windows) em cima de um mesmo hardware.

[ Hits: 90.564 ]

Por: Bruno Roberto em 05/11/2008


Instalando o Xen



Após os preparativos iniciais, vamos para a instalação do Xen no sistema.

1. Baixe a última versão do Xen (nesse caso 3.3.0): download xen-3.3.0.tar.gz

2. Após o download, descompacte-o em /usr/src.

3. Acesse /usr/src/xen-3.3.0 e execute:

# make dist

e depois:

# ./install

Obs.: com o make dist será iniciado um processo de compilação que poderá levar muito tempo dependendo do seu hardware, é normal.

4. Se tudo ocorrer normalmente, após o ./install é possível ver várias verificações na tela com a mensagem de OK, significa que o Xen está instalado. Observe em /boot que foi criado um arquivo (xen-3.3.0.gz) e vários links para o mesmo arquivo. Este é o já citado hypervisor. Observe também que foi criado um kernel (vmlinuz-2.6.18.8-xen), que é o kernel com as modificações para a execução do Xen.

5. Por questões de compatibilidade, esse kernel pode não iniciar no seu computador. O make dist tenta fazer algo bem genérico para funcionar em todas as plataformas, mas as vezes não funciona (isso aconteceu comigo.... glu ;-) ). Então é necessário recompilar esse kernel.

6. Não vou abordar toda a recompilação de um kernel porque é muita coisa. Fica difícil até de explicar. Falarei somente do que é necessário estar ativado (ou desativado) para o Xen funcionar. Acesse /usr/src/xen-3.3.0/linux-2.6.18-xen.hg.

7. Edite a seguinte linha no arquivo Makefile:

EXTRAVERSION = .8-xen-dom0

8. Abra o menu de configuração do kernel:

# make menuconfig

Obs.: Lembre-se de dar suporte ao sistema de arquivos que você utilizou para formatar as partições e já ative o sistema de arquivos que você pretende utilizar nas VMs. Recomendo usar ext3 para todos.

9. Em "Processor type and features" altere a "Subarchitecture Type (Xen-compatible)" para Xen-compatible.

10. Volte ao menu principal e em "XEN" ative e desative as opções para ficar como abaixo:

  [*] Privileged Guest (domain 0)
  <*> Backend driver support
  <*>   Block-device backend driver
  <*>   Block-device tap backend driver
  <*>   Network-device backend driver
  [ ]     Pipelined transmitter (DANGEROUS)
  <*>     Network-device loopback driver
  <*>   PCI-device backend driver
  PCI Backend Mode (Virtual PCI)  --->
  [*]     PCI Backend Debugging
  <*>   TPM-device backend driver
  <*>   SCSI backend driver
  <*> Block-device frontend driver
  <*> Network-device frontend driver
  < >   Network-device frontend driver acceleration for Solarflare NICs
  <*> SCSI frontend driver
  <*> User-space granted page access driver
  [ ] Scrub memory before freeing it to Xen
  [*] Disable serial port drivers
  <*> Export Xen attributes in sysfs
  Xen version compatibility (3.1.0 and later)  --->

11. Saia do menu de configuração, lembre-se de salvar quando ele perguntar e recompile o novo kernel:

# make

e depois:

# make modules_install

12. Copie /usr/src/xen-3.3.0/linux-2.6.18-xen.hg/arch/i386/vmlinuz para /boot/vmlinuz-2.6.18.8-xen-dom0.

13. Altere as configurações do GRUB para a inicialização do Xen. Edite /boot/grub/menu.lst adicionando as entradas abaixo. Perceba que o parâmetro "kernel" receberá o hypervisor e o parâmetro "module" é que receberá o kernel propriamente dito. Isto significa que o hypervisor será iniciado antes do kernel.

title      Debian Xen
root      (hd0,1) # vai depender de qual partição no disco está instalado o /root, no meu caso /dev/sda2 = hd0,1
kernel   /boot/xen-3.3.0.gz
module /boot/vmlinuz-2.6.18.8-xen-dom0 root=/dev/sda2 ro console=tty0 # aqui o parâmetro root também depende de como está sua instalação

14. Antes de iniciar o novo kernel, instale o pacote libc6-xen.

15. Edite /etc/ld.so.conf.d/libc6-xen.conf, trocando "hwcap 1 nosegneg" para "hwcap 0 nosegneg".

16. Reinicie o computador com a opção do novo kernel.

17. Após o computador iniciado, ative o daemon Xen:

# /etc/init.d/xend start

18. Para confirmar o correto funcionamento do Xen, use o comando "xm list". Você verá informações sobre o Domain-0.

19. Vamos automatizar a inicialização do Xen, para tanto crie links simbólicos no runlevel padrão do seu sistema:

# ln -s /etc/init.d/xend /etc/rc2.d/S20xend
# ln -s /etc/init.d/xendomains /etc/rc2.d/S21xendomains


Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Preparando o sistema hospedeiro (dom0)
   3. Instalando o Xen
   4. Criando a VM de modelo
   5. Criando a VM real
   6. Apêndice: Comandos básicos para administração
Outros artigos deste autor

Acesso seguro a um desktop remoto utilizando Linux, OpenVPN e Nxserver

Leitura recomendada

Elastix - Identificação de chamadas pelo nome do chamador

Virtualização - VirtualBox em modo texto e acesso remoto

GRIP - Conversão e ripagem de CDs em Linux

Exaile! O substituto do amaroK para Gnome

WindowMaker forever: instalando o fork -crm no Slackware 13.37

  
Comentários
[1] Comentário enviado por andrefreire em 05/11/2008 - 19:53h

Parabéns pelo artigo ! Bastante detalhado e assim que tiver tempo vou testar, porém só uma dúvida. Por que você não usou um kernel já compilado pra XEN do próprio Debian ?

[2] Comentário enviado por brunaocomanda em 06/11/2008 - 08:36h

Opa André,

Cara, nada impede que vc use um kernel pré-compilado do próprio Debian, inclusive, que vc instale o Xen via apt, mas a questão é que eu gosto de deixar o kernel bem "enxuto", só com aquilo que é realmente necessário. Isso é uma forma de ter mais controle também, por isso eu faço assim.

[3] Comentário enviado por giaco em 06/11/2008 - 09:02h

Cara, ótimo artigo!
Como faria para instalar um Windows virtualizado no Xen?

[4] Comentário enviado por brunaocomanda em 06/11/2008 - 09:23h

Pra instalar o Windows, vc deve criar uma imagem ISO do cd de instalação do windows no HD (pra isso use o comando "dd"); Deve tambem criar o volume onde será instalado o windows (windows.disk) e usar o exemplo abaixo como arquivo de configuração desta VM, salvo em /etc/xen/windows.vm
#---------------------------------------------------------------------------------------------------
builder='hvm'
memory = 512
shadow_memory = 8
name="WindowsXP"
vcpus=2
vif = [ 'mac=00:16:3e:00:00:02, type=ioemu, bridge=eth0' ]
disk=[ 'phy:xenvg/windows.disk,ioemu:hda,w','file:/opt/windows.iso,ioemu:hdc:cdrom,r' ]
cdrom = "/opt/windows.iso"
on_poweroff = 'destroy'
on_reboot = 'restart'
n_crash = 'restart'
device_model= '/usr/lib/xen/bin/qemu-dm'
ne200 = 1
boot = "d"
sdl = 1
vnc = 0
#----------------------------------------------------------------------------------------------

Inicie a vm com xm create windows.vm, ela será iniciada a partir da ISO do cd (opção "boot = d"), depois de instalado o windows, mude esta opção para "boot = c". Tente ai e boa sorte!!!

[5] Comentário enviado por apscherbach em 13/11/2008 - 12:14h

A pergunta é: é preciso ter um processador específico ou com uma tecnologia específica para fazer isso?

Pelo artigo entendi que há processadores com recursos para potencializar a virtualização, mas não ficou claro se iso é um requisito para desempenho ou para realmente ter a solução.

Muito bom o artigo.

Abraço,
Adriano

[6] Comentário enviado por brunaocomanda em 13/11/2008 - 12:48h

Caro apscherbach,

A tecnologia presente nos novos processadores com certeza melhora o desempenho das VMs, porque é feito pra isso, mas a maior utilidade dessa tecnologia é permitir que dois sistemas operacionais distintos rodem no mesmo nível de execução do processador. Por isso é possível executar o Windows num esquema de paravirtualização. Sem esses recursos no processador, o Xen funciona, mas a execução do windows é feita com virtualização total. No caso do Linux, como tem que haver as modificações no kernel, ele sempre é executado no modo de paravirtualização, independente ou não do processador. Conforme falei, os recursos do processador apenas aumentam (e muito) o desempenho das Vms.

[7] Comentário enviado por apscherbach em 14/11/2008 - 12:18h

Maravilha meu caro, muito obrigado.

Eu estava usando VMWare, mas estou achando a versão 2 bem mais lenta que a 1. Tentei o qemu também. Vamos ver como ficará com o Xen.

Valeu abraço.

[8] Comentário enviado por removido em 11/11/2010 - 23:50h

Bruno, no Xen tem como dar boot via usb?

[9] Comentário enviado por jeff.jno em 08/10/2011 - 12:17h



Meu amigo muito obrigado e parabéns.
BrunoaComanda, Ficou ótimo seu artigo muito bom mesmo. Estou precisando de uma solução e o sistema da Vmware é muito caro no meu caso que trabalho para uma instituição de ensino você já pode imaginar o quão é difícil conseguir dinheiro se quer para comprar novos mouses, imagine então para comprar uma solução da vmware que me ofereceram por 11k por processador. tem base!

Queria fazer algumas perguntinhas:

1) conseguira eu rodar isso no ubuntu server 2.38-8? Ou você me indica mesmo o Debian?
2) Tentei instalar no unbutu e deu erro, usando esse kernel 2.38 precisaria eu usar um kernel mais antigo como o 2.11?
3) preciso baixar o kernel para compilar e gerar o arquivo que vou madar o link para o /boot
4) eu conseguiria rodar um tipo de cluster com essa solução exemplo... 4 ou 5 computadores rodando o Xem e eu instalar por exemplo uma máquina virtual onde se uma cair as outras continuam rodando os processos?
5) Se possível for fazer o cluster queria saber se tem como eu configurar por exemplo um cluster de HP e outro de HA, uma analogia bem simploria seria uma RAID 0+1 com computadores rsrs ou quem sabe até uma RAID 5?

Bruno desculpe se fiz um monte de pergunta boba ou sem sentido sou vigem nesse assunto a alguns anos atrás comecei a estudar KVM mas me roubaram o livro...

Agradeço por compartilhar seu conhecimento,


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts