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: 91.140 ]

Por: Bruno Roberto em 05/11/2008


Criando a VM de modelo



Criarei uma VM de modelo Debian Linux que dará origem a todas as outras VMs que serão criadas. Com isso você não precisará repetir todo esse processo lento e trabalhoso toda vez que quiser criar uma VM.

1. Crie um diretório /xen/modelo.

2. Instale o pacote debootstrap (necessário para se fazer uma instalação do Debian dentro de um diretório).

3. Execute:

# debootstrap --include=libc6-xen lenny /xen/modelo http://ftp.br.debian.org/debian

Obs.1: aqui será criada uma instalação básica do Debian Lenny dentro do diretório /xen/modelo, com a opção de instalar a biblioteca libc6-xen.

Obs.2: mais uma vez, esse trecho será um pouco demorado. ;-)

Para a instalação das VMs é necessário compilar um novo kernel. Usaremos o que compilamos no capítulo anterior.

4. Acesse novamente /usr/src/xen-3.3.0/linux-2.6.18-xen.hg e deixe a seguinte linha no arquivo Makefile conforme abaixo. Mudaremos de "dom0" para "domU":

EXTRAVERSION = .8-xen-domU

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

# make menuconfig

6. No menu principal, em "XEN", deixe a opção conforme abaixo:

[ ] Privileged Guest (domain 0)

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

# make
# make modules_install


8. Copie /usr/src/xen-3.3.0/linux-2.6.18-xen.hg/arch/i386/vmlinuz para /boot/vmlinuz-2.6.18.8-xen-domU. Copie /lib/modules/2.6.18.8-xen-domU para /xen/modelo/lib/modules.

9. Nessa instalação "modelo" é necessário instalar alguns pacotes e fazer algumas configurações, seguem:

9.1. Execute:

# chroot /xen/modelo (a partir de agora todas as alterações serão feitas nesse "modelo")

9.2. # mount /proc

9.3. Edite /etc/environment adicionando as linhas:

LANG="pt_BR"
LANGUAGE="pt_BR:pt:pt_PT"

9.4. Carregue o arquivo:

# source /etc/environment

9.5. Adicione a entrada "export LC_ALL=pt_BR" ao arquivo /etc/profile.

9.6. Carregue as alterações:

# source /etc/profile

9.7. Edite /etc/apt/sources.list:

deb http://ftp.br.debian.org/debian testing main contrib non-free

9.8. # apt-get update

9.9. # apt-get install vim less build-essential locales ssh nmap udev

9.10. Descomente as linhas abaixo no arquivo /etc/locale.gen:

pt_BR ISO-8859-1
pt_BR.UTF-8 UTF-8

9.11. Execute:

# locale-gen

9.12. Edite /etc/inittab adicionando a entrada abaixo para permitir fazer logon no console da VM (MUITO IMPORTANTE):

co:2345:respawn:/sbin/getty 38400 xvc0

9.13. Crie senha para usuário root:

# passwd

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

10. # umount /proc

11. Saia do chroot:

# exit

Usaremos o LVM (Logical Volume Manager) para criar os discos que serão usados pelas VMs.

12. Instale as ferramentas de administração do LVM no Domain-0.

12.1. # apt-get install lvm2 dmsetup

12.2. Inicie o LVM:

# /etc/init.d/lvm2 start

13. Verifique se há no disco uma partição (no meu caso sda3) criada especialmente para abrigar as discos criados via LVM:

# fdisk -l /dev/sda

Obs.: se não houver, deverá ser criada via "fdisk". Essa recomendação é feita no capítulo "Preparando o sistema hospedeiro (dom0)".

14. Crie um Physical Volume nessa partição:

# pvcreate /dev/sdaX

Cuidado! Especifique exatamente a partição que você disponibilizou para o LVM.

15. Crie o Volume Group de nome "xenvg" nesta partição.

# vgcreate xenvg /dev/sdaX

Cuidado! Especifique exatamente a partição que você disponibilizou para o LVM.

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

Até onde é vantajoso o Cloud Computing?

Cygwin, um Linux dentro do Windows

GIMP 2.0: Tutoriais rápidos

Docker - Infraestrutura simples e rápida

Automação e Sensoreamento Remoto utilizando Software Livre "SCADA"

  
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