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