Howto install Xen 3.3.2 Debian Lenny 5.0

Note en passant : Salut à tous, j’ai pas posté depuis longtemps sur ce site parce que j’étais parti pendant un an en voyage. Me revoilà (tadaaa !), premier article le jour de mon anniversaire 😀 Enjoy !

J’ai décidé d’écrire ce howto parce que j’ai rencontré des problèmes à l’installation de Xen 3.3.2 avec les modules du noyau compilé « manuellement » sur une debian 5.0 , et il y a deux-trois petites astuces à connaitre aussi, et aussi que j’en ai pas trouvé en français (j’avoue que j’ai pas été plus loin que le 2 premières pages de résultat google…).
Et pourquoi se casser la tête à compiler un xen me direz-vous ? Et bien tout simplement à cause d’un ou deux bugs gênant pour moi 🙂 Vous les découvrirez en lisant ce HOWTO.

Sur une installation fraiche de debian lenny :

Installation du xen normal :

apt-get install libc6-xen  libxenstore3.0 linux-headers-2.6-xen-686 linux-headers-2.6.26-2-common-xen  linux-headers-2.6.26-2-xen-686 linux-image-2.6-xen-686  linux-image-2.6.26-2-xen-686 linux-modules-2.6-xen-686   linux-modules-2.6.26-2-xen-686 xen-hypervisor-3.2-1-i386 xen-shell  xen-tools  xen-utils-3.2-1 xen-utils-common xenstore-utils
Ici, il faut configurer le réseau, donc mettre dans la config les lignes suivantes (config minimum sans les commentaires ) :
vim  /etc/xen/xend-config.sxp
(xend-relocation-server yes)
(xend-relocation-hosts-allow  '^localhost$ ^localhost\.localdomain$')
(network-script 'network-bridge bridge=xenbr0 netdev=eth0')
(vif-script  vif-bridge)
(dom0-min-mem 196)
(enable-dom0-ballooning yes)
(dom0-cpus  1)
(vncpasswd '')

Ici il est très important de laisser dom0-cpus à 1, sinon le dom0 plantera au bout d’un certains temps. Mais cependant, de mettre le dom0 à 1 empêche le reboot des machines virtuelles. On est obligé de les tuer, ce qui n’est pas très propre. Un autre problème, c’est quand des utilisateurs sont admin de leur machine virtuelle, et qu’ils veulent faire un reboot, ça nous oblige à intervenir.

On configure l’interface réseau (à adapter selon le réseau) :

vim  /etc/network/interfaces
auto eth0
iface eth0 inet  static
address 192.168.0.15
netmask    255.255.255.0
network    192.168.0.0
broadcast 192.168.0.255
gateway 192.168.0.63
dns-nameservers 192.168.0.2 192.168.0.3

auto xenbr0
iface  xenbr0 inet static
address 192.168.0.15
netmask  255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
gateway 192.168.0.63
dns-nameservers 192.168.0.2 192.168.0.3
bridge_ports eth0
bridge_maxwait 0
bridge_hello 0
bridge_fr 0

Ici on peut faire un reboot pour déjà valider que le dom0 fonctionne bien.

Puis on install la dernière version de xen en compilant :

On installe les paquets essentiels à la compilation :

apt-get  install bcc bin86 gawk bridge-utils iproute libcurl3  libcurl4-openssl-dev bzip2 module-init-tools transfig tgif texinfo  pciutils-dev mercurial build-essential make gcc libc6-dev zlib1g-dev  python python-dev python-twisted libncurses5-dev patch libvncserver-dev  libsdl-dev libjpeg62-dev

On télécharge, on compile et on installe la source :

cd /usr/src/
wget  http://bits.xensource.com/oss-xen/release/3.3.2/xen-3.3.2.tar.gz
tar -xvzf xen-3.3.2.tar.gz
cd xen-3.3.2
make world && make  dist
(answer the few questions then take a coffee, or a rest :)...)
./install.sh
update-rc.d xend defaults 20 21
update-rc.d xendomains defaults 21  20
depmod 2.6.18.8-xen
update-initramfs -c -k 2.6.18.8-xen
update-grub

On reconfigure xen :

vim /etc/xen/xend-config.sxp
(network-script 'network-bridge bridge=xenbr0 netdev=eth0')
(vif-script  vif-bridge)
(dom0-cpus 0)

Ca y est on peut mettre dom0-cpu à 0, cool !

Et là l’astuce, c’est de modifier menu.lst de GRUB pour utiliser les modules de la version officielle (installée avant la version compilée) avec le nouveau noyau xen :

title        Xen 3.3.2 / Debian GNU/Linux, kernel 2.6.18.8-xen
root         (hd0,0)
kernel        /boot/xen-3.3.2.gz
module           /boot/vmlinuz-2.6.26-2-xen-686 root=UUID=fe72ca30-05cf-4baf-9e0f-41749cf4011a  ro console=tty0
module          /boot/initrd.img-2.6.26-2-xen-686
au lieu de
#module         /boot/vmlinuz-2.6.18.8-xen root=UUID=fe72ca30-05cf-4baf-9e0f-41749cf4011a  ro console=tty0
#module        /boot/initrd.img-2.6.18.8-xen

Reboot and enjoy !

Cheers

Inspirations et sources :
http://www.xen-support.com/?p=211

Author: Pierre-Yves Dubreucq

Passioné par les logiciels libres depuis 2001, je suis VP Bare Metal (Dedibox) chez Scaleway. Je tiens ce blog depuis 13 ans avec beaucoup moins d'assiduité malheureusement qu'à ses débuts, mais bon, le temps est une denrée rare.

Share This Post On

6 Comments

  1. Bonsoir,

    Joyeux anniversaire tout d’abord =)

    Je suis un peu étonné par ce que tu dis notamment le passage suivante :

    Ici il est très important de laisser dom0-cpus à 1, sinon le dom0 plantera au bout d’un certains temps

    C’est surprenant et ça induit une utilisation assez problématique du dom0 surtout le coup du reboot des VM.

    Je n’ai jamais eu de soucis à ce niveau là moi… Tu es sûr que c’est à cause de ca que tu as des crashs ?

    Accessoirement, tant que tu es à compiler du Xen à la main, autant mettre la version 4.0 avec les kernel pvops 😛

    Bonne soirée,

    Antoine

    Post a Reply
  2. Plop !

    Vos articles sur la virtualisation me semblent fort intéressants et complets, je vais tâcher de prendre exemple et m’essayer à l’installation de XEN pour avoir une plate-forme de tests opensource.

    Cordialement,

    Valentin

    Post a Reply
  3. Bonjour,
    Ayant fait mon server xen 3.2 sous Lenny, aujourd’hui, je rencontre un probleme, xen ne veut pas demarrer. Mes domU se trouvent sur des LVM et le dom0 sur un disc physique à part entiere. Si je prends un nouveau disc dur pour le dom0, va t il voir mes autre domU si je compile le xen 4 ? Et est il stable ?

    Post a Reply
  4. Bonjour,
    je suis en stage et je suis chargé de faire de la virtualisation sur un serveur de test, un debian 2.6.32-5-amd64
    J’ai suivi votre tuto est voici c- dessous l’erreur que j’ai lorsque je fais la commande
    xen-create-image –hostname=XenUbuntu

    ça serait vraiment gentil s’il y a quelqu un qui pourrait m’aider
    merci d’avance

    General Information
    ——————–
    Hostname : XenUbuntu
    Distribution : gutsy
    Mirror : http://archive.ubuntu.com/ubuntu
    Partitions : swap 128Mb (swap)
    / 4Gb (ext3)
    Image type : sparse
    Memory size : 128Mb
    Kernel path : /boot/vmlinuz-2.6.32-5-xen-amd64
    Initrd path : /boot/initrd.img-2.6.32-5-xen-amd64

    Networking Information
    ———————-
    IP Address : DHCP [MAC: 00:16:3E:6E:B0:1D]

    Creating partition image: /var/xen/domains/XenUbuntu/swap.img
    Done

    Creating swap on /var/xen/domains/XenUbuntu/swap.img
    Done

    Creating partition image: /var/xen/domains/XenUbuntu/disk.img
    Done

    Creating ext3 filesystem on /var/xen/domains/XenUbuntu/disk.img
    Done
    Installation method: debootstrap
    Done
    System installation failed. Aborting
    /tmp/038mS6GGMN/etc/ssh/ssh_host_rsa_key.pub: No such file or directory

    Logfile produced at:
    /var/log/xen-tools/XenUbuntu.log
    Removing: /var/xen/domains/XenUbuntu

    Post a Reply

Trackbacks/Pingbacks

  1. Tweets that mention Howto install Xen 3.3.2 Debian Lenny 5.0 | L'admin sous Linux - Blog Libre -- Topsy.com - [...] This post was mentioned on Twitter by Planet-Libre, Pierre-Yves Dubreucq. Pierre-Yves Dubreucq said: Howto install #xen 3.3.2 #debian Lenny…

Submit a Comment

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *