sexta-feira, junho 27

Instalando CentOS domU (Debian and CentOS dom0)

Já faz um tempo que utilizo o xen como ferramenta de virtualizacão para fins de desenvolvimento e em até producao. O melhor case é um server de virtualizacao de um Active Directory para cerca de mil usuarios junto com servidores linux com servicos de proxy, firewall, jboss, todos os guest's rodando em uma única máquina fisica. Desde aquele dia, tenho confiado no xen.
No Debian, sempre tive algumas dificuldades para instalar guests de outras Distros. Essa é a motivacao para escrever o artigo.
Vou considerar que você já possui o Xen instalado e funcionando, pelo menos para domU utilizando Debian.

Inicio
Estou utilzando o dvd do CentOS5, com Debian Etch, Xen3.0.3

1) Imagens para boot inicial
Para o boot inicial, é necessário os arquivos images/xen/initrd.img e images/xen/vmlinuz. Eles são responsáveis por iniciar o processo de instalacão do CentOS no DomU.

1.1) Arquivo de configuracao do xen (inicial)
Escolha uma das opcoes de disco, e descomente!
kernel = "/media/cdrom/images/xen/vmlinuz"
ramdisk = "/media/cdrom/images/xen/initrd.img"
# extra = "text ks=http://localserver/minimal-ks.cfg"
# bootloader = "/usr/lib/xen-3.0.3-1/bin/pygrub"
name = "centos"
memory = "256"
# disk = [ 'phy:/dev/vgscooby/xen_centos,xvda,w' ]
# disk = [ 'file:/xen/centos.iso,xvda,w' ]
vif = [ 'bridge=br0' ]
vcpus = 1
on_reboot = 'destroy'
on_crash = 'destroy'

xm create -c /etc/xen/centos

A instalacao inicia normalmente (modo texto). Utilizei NFS durante a instalacao, exportando /media/cdrom no Debian (Dom0).

Após a instalacao é necessário alterar o arquivo de configuracao do xen (/etc/xen/centos):
bootloader = "/usr/lib/xen-3.0.3-1/bin/pygrub"
name = "centos"
memory = "256"
disk = [ 'phy:/dev/vgscooby/xen_centos,xvda,w' ]
#disk = [ 'file:/xen/centos.iso,xvda,w' ]
vif = [ 'bridge=br0' ]
vcpus = 1
on_reboot = 'destroy'
on_crash = 'destroy'

2) Ai comecam os problemas
O bootloader tem um bug no debian id=390678 que exige a seguinte alteracao:
arquivo => /usr/lib/xen-3.0.2-1/lib/bin/pygrub
alterar isto => sys.path = [ '/usr/lib/python' ] + sys.path
alterar para => /usr/lib/xen-3.0.3-1/lib/python/

3) Instalar pacotes
Para compilar os passos abaixo é necessário os pacotes python2.4-dev e e2fslibs-dev

4) Baixar os fontes do Xen
http://bits.xensource.com/oss-xen/release/3.0.3-0/src.tgz/xen-3.0.3_0-src.tgz
Baixe e descompacte os fontes do Xen, eles são necessários para compilar um modulo do python utilizado pelo bootloader que não vem no Debian.

tar xvf xen-3.0.3_0-src.tar
cd xen-3.0.3_0-src/tools/pygrub
make
ls -la build/lib.linux-i686-2.4/grub/fsys/
total 16
drwxr-xr-x 3 root root 4096 2008-06-27 03:25 .
drwxr-xr-x 3 root root 4096 2008-06-27 03:25 ..
drwxr-xr-x 2 root root 4096 2008-06-27 03:25 ext2
-rw-r--r-- 1 root root 2072 2006-10-15 09:22 __init__.py

4.1) Copie todo o diretorio build/lib.linux-i686-2.4/grub/fsys/ext2 para /usr/lib/xen-3.0.3-1/lib/python/grub/fsys/

5) mkdir /var/lib/xen
Esse diretorio (mesmo vazio) é necessario

6) Finalmente! Rode seu DomU com CentOS!

Links Interessantes para Referencia
http://strugglers.net/~andy/blog/2008/01/20/red-hat-based-linux-under-xen-from-debian-etch/
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=390678
http://www.kuro5hin.org/story/2007/4/23/3719/35994

Nenhum comentário: