Antoine Benkemoun

04 Mai, 2010

Installation de Xen 4.0 sur Debian Lenny

Posté par Antoine dans la catégorie Libre|Unix|Virtualisation|Xen

Les tutoriels d’installation ne sont pas forcément les plus intéressants à blogger et j’en ai fait très peu pour cette raison. J’avais déjà parlé de l’installation de Xen 3.2.1 sur Debian Lenny. Au moment où j’ai écrit ce billet, cette version commençait à être relativement vieillissante. Je vais donc traiter aujourd’hui de l’installation de Xen 4.0.

Petit historique

Vous savez peut être que Xen a été quelque peu obscurcit par l’introduction de KVM dans le noyau Linux. Cette inclusion de KVM a conduit des distributions telles que Red Hat et Ubuntu à supprimer Xen de leurs distributions ou de ne laisser qu’un support pour le moins minimal. A l’époque de ces faits, Xen n’était compatible qu’avec un ou deux noyaux Linux patchés par l’équipe de Xen. Cette époque est révolue car Xen a évolué vers les noyaux dits « Paravirt Ops » ce qui signifie que la compatibilité d’un noyau Linux avec Xen ne tient plus qu’à un module de ce même noyau.

La version Xen 4.0 est particulièrement intéressante car il s’agit de la première version qui fonctionne par défaut avec les noyaux Paravirt Ops. L’installation de versions antérieures vous assurera la douleur de devoir éventuellement passer vers une version supérieure à la 4.0 lorsque vous voudrez mettre à jour vos noyaux Linux.

Installation

Nous pouvons désormais passer aux choses sérieuses. Nous allons effectuer une installation à partir des sources car il n’existe pas encore de paquets. Et puis de toute façon, une petite compilation ne vous fait pas peur !

Nous allons tout d’abord récupérer l’archive sur le site de Xen et on la dézippe :

wget http://bits.xensource.com/oss-xen/release/4.0.0/xen-4.0.0.tar.gz

tar zxvf xen-4.0.0.tar.gz

Nous allons ensuite installer tous les pré-requis et ils sont nombreux.

apt-get install bcc bin86 gawk bridge-utils iproute libcurl3 libcurl4-openssl-dev bzip2 module-init-tools transfig tgif texinfo texlive-latex-base texlive-latex-recommended texlive-fonts-extra texlive-fonts-recommended 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 iasl libbz2-dev e2fslibs-dev git-core uuid-dev gcc-multilib

Passons désormais à la compilation. Si vous avez une machine dotée de plusieurs cœurs / processeurs, n’hésitez surtout pas à utiliser l’option -jX où X est le nombre de cœurs que vous avez. Cette option permet de répartir la compilation sur tous les cœurs et ainsi de la finir plus rapidement. J’avais un BiQuad Core, donc ce sera 8 pour cet exemple.

make -j8 xen

make -j8 tools

make -j8 stubdom

Ensuite, on installe tout ca.

make -j8 install-xen

make -j8 install-tools

make -j8 stubdom

Grâce à toutes ces commandes, nous avons installé Xen ainsi que tous les outils associés. Il nous manque plus que le noyau Linux pour les domaines. A partir de là, vous pouvez soit créer votre propre noyau soit utiliser un noyau proposé par Xen. J’ai choisi de faire cela car c’était plus simple, plus rapide et plus pratique.

On va donc exécuter la commande qui va nous permettre de récupérer et de compiler le noyau qui va bien pour notre installation de Xen.

make -j8 world

Pour installer le noyau que vous avons compilé, il ne manque qu’à exécuter la commande suivante. On crée au passage l’initrd qui va bien.

make install

mkinitramfs -o /boot/initrd-2.6.31.13.img 2.6.31.13

Vous devez ensuite modifier Grub afin qu’il s’adapte à Xen. La configuration suivante fonctionne sur l’hyperviseur que j’ai eu l’occasion d’installer. Il faut adapter le root en fonction de votre serveur. Ici, il s’agissait d’un contrôleur RAID HP.

title           Xen 4.0.0 / Debian GNU/Linux, kernel 2.6.31.13
root            (hd0,1)
kernel          /boot/xen-4.0.0.gz
module          /boot/vmlinuz-2.6.31.13 root=/dev/cciss/c0d0p2 ro console=tty0
module          /boot/initrd-2.6.31.13.img

Vous pouvez ensuite rebooter sur votre nouvelle installation de Xen 4.0 avec votre noyau Paravirt Ops. Si vous souhaitez modifier des options à la compilation du noyau, il faut se placer dans le bon répertoire et activer les bons paramètres dans le menu.

cd build-linux-2.6-pvops_x86_64

make menuconfig

Il faut activer le support TUN/TAP si vous souhaitez exécuter des domaines HVM ainsi que le support du 802.1Q si vous souhaitez placer vos domaines sur différents VLAN. Ces deux options ne sont pas activées par défaut.

Au final, j’espère que ce tutoriel vous sera utile et que j’ai été clair. Le passage vers les noyaux en Paravirt Ops est une évolution majeure dans l’histoire de Xen et permettra une adoption nettement plus large.

8 Commentaires to "Installation de Xen 4.0 sur Debian Lenny"

1 | guidtz

juin 10th, 2010 at 16 h 30 min

Avatar

Bonjour,

si je peux me permettre j’ai une petite question super existentielle :-). J’ai un nouveau serveur Xen à installer en Debian Lenny. J’ai très envie de passer à Xen 4 de part ces nouvelles possibilités. La question que je me pose c’est que si j’ai besoins de passer une vm créée sur un serveur en Xen 4 sur un serveur en Xen 3.1.4 (oups ils commencent à dater :-) ), est-ce que je pourrais le faire.

Merci et félicitation pour ce site

Guidtz

2 | Antoine

juin 10th, 2010 at 16 h 39 min

Avatar

Bonjour,

Il faudra juste adapter le Kernel des VM de paravirtualisation mais ca ne devrait pas poser de soucis normalement :)
Si tu le teste, je serais curieux de savoir si ca a bien marché.

Antoine

3 | guidtz

juin 10th, 2010 at 16 h 48 min

Avatar

Ok dès que j’ai testé je te tient au courant.

Merci pour ta réponse rapide

Guidtz

4 | guidtz

juin 15th, 2010 at 18 h 19 min

Avatar

Bonjour,

as tu rencontré des problèmes avec blktap ?

J’ai des choses comme ceci quand j’essaie de démarrer xend :
blktapctrl-linux.c:92: couldn’t find device number for ‘blktap0’
blktapctrl.c:859: couldn’t open blktap interface
blktapctrl.c:922: Unable to start blktapctrl

Slts

5 | Antoine

juin 16th, 2010 at 18 h 53 min

Avatar

Ah non, jamais eu ce soucis.

6 | Oliv

juin 19th, 2010 at 16 h 50 min

Avatar

Est-ce que le Kernel (2.6.32) présent dans les backports de Lenny est compatible avec Xen 4.0 ?

8 | wym

novembre 18th, 2010 at 17 h 22 min

Avatar

Très bon article. Clair et pratique.
Il aurait juste fallu continuer et y ajouter la configuration d’un DomU, car c’est la finalité, après tout ;-)

Ajoutez votre commentaire

A propos de ce blog

Ce blog a pour objectif de partager des informations avec tous les internautes. Comme indiqué dans le titre, je traiterais de différrents sujets gravitant autour de la sécurité informatique, de la virtualisation, de la l'administration système et du réseau.