Migration de Xen version 3 vers la version 4 sous GNU/Debian Lenny

Jean Baptiste FAVRE

Avril 2010

English version is available here: How to migrate Xen from version 3.2 to version 4 on GNU/Debian Lenny

Introduction

Xen est un système de virtualisation OpenSource. La version 4 de l'hyperviseur Xen a été publiée le 7 avril 2010.

L'une des principales nouveauté de la version 4 est l'ajout de la haute-disponibilité, par l'intégration du code du projet Remus.

Malheureusement, la version intégrée dans GNU/Linux Debian Lenny est la version 3.2. Pour Squeeze, il s'agit de la version 3.4. Voyons donc comment installer la version 4.

État des lieux

La plate-forme que nous allons upgrader est décrite là:

Le premier cas est le plus simple, le second ne l'est en fait pas beaucoup moins. L'infrastructure cluster ne changera pas grand'chose à notre problème.

En revanche, il y a un certain nombre de pré-requis pour que la migration se passe au mieux:

Toutes les opérations de compilation seront réalisées dans une machine virtuelles Debian. Pour d'évidente raison de sécurité, il est impensable de réaliser cette opération dans le Dom0.

Préparation de l'environnement

Au sein de la machine virtuelle de développement, nous allons installer le nécessaire pour compiler tout ce dont nous avons besoin:

Installation de l'environnement de développement
aptitude 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

Compilation de Xen

Procédure de compilation de Xen
mkdir ~/Xen
cd ~/Xen
wget //bits.xensource.com/oss-xen/release/4.0.0/xen-4.0.0.tar.gz
tar -xzf xen-4.0.0.tar.gz
cd xen-4.0.0/
make xen
make tools

Dans la mesure où nous allons conserver un noyau debian pour faire tourner le Dom0, nous n'avons pas besoin de compiler le noyau fourni par Xen. La commande make stubdom n'est donc pas utile.

Le résultat de la compilation se trouve dans la répertoire dist. Il s'agit d'un script install.sh qui se chargera de déployer l'arborescence qui se trouve dans le répertoire dist/install. Afin de faciliter le déploiement, nous allons créer une archive du répertoire dist.

Mais avant, il faut modifier quelques fichiers : en effet, pour coller au mieux aux normes Debian, il faut déplacer les fichiers de etc/sysconfig vers etc/default. Pour que tout continue à fonctionner, il faut également modifier les scripts init.

Adaptation de l'installation aux normes Debian
cd dist/install/etc
mv sysconfig default
cd init.d

Remplacer les 2 occurences de sysconfig par default (ligne 23) dans xend.

Remplacer l'occurence de sysconfig par default (ligne 38) dans xendomains.

Création de l'archive de l'hyperviseur version 4
tar -czf xen4.tar.gz dist

C'est cette archive que nous allons déployer sur les Dom0. Mais d'abord, occupons-nous de DRBD.

Compilation de DRBD

Le prochain noyau des dom0 sera le noyau 2.6.32 du dépôt backport. Il faut donc compiler le module DRBD pour ce module. Mais, évidemment, notre machine virtuelle n'utilise pas ce noyau. Q'importe, module-assistant peut compiler un module pour un autre noyau que le noyau courant.

Je ne mets ici qu'un résumé des commandes, le détail est déjà en ligne ici: Installation de DRBD > 8.3.2 sur Debian GNU/Linux Lenny

Création du paquet DRBD
apt-get install linux-headers-2.6.32-bpo.4-xen-amd64 module-assistant
dpkg -i drbd8-module-source_8.3.7-0_all.deb
m-a build -l 2.6.32-bpo.4-xen-amd64 drbd8-module

Configuration du Dom0

Avant de commencer, assurez-vous de ne plus avoir de machines virtuelles sur ce node.

Il faut commencer par installer le nouveau noyau depuis le dépôt backports:

Installation du noyau 2.3.32
echo "deb //www.backports.org/debian lenny-backports main" >> /etc/apt/sources.list
aptitude update
aptitude install debian-backports-keyring
aptitude update
aptitude install linux-image-2.6.32-bpo.4-amd64 linux-image-2.6.32-bpo.4-xen-amd64

Rebootez sur le nouveau noyau. Si tout va bien, vous pouvez supprimer tous les paquets relatifs à Xen, ainsi que l'ancien noyau. N'oubliez pas de sauvegarder les fichiers de configuration de Xen !

Une fois fait, vous pouvez récupérer l'archive Xen4 que nous avons créé, ainsi que le paquet du module DRDB8. Enfin, installez le tout:

Installation de DRBD
dpkg -i drbd8*.deb
Installation de Xen4
tar -xzf xen4.tar.gz
cd dist
./install.sh
echo "none /proc/xen xenfs defaults 0 0" >> /etc/fstab

Sans cette dernière commande, le dom0 sera incapable de communiquer avec l'hyperviseur. Il se peut que vous deviez, selon votre configurtion, charger d'autres modules. Vous pouvez les ajouter dans /etc/modules:

Ajout de modules supplémentaires Xen
blktab
xen-evtchn

Il est temps de restaurer les fichiers de configuration Xen que vous avez sauvegardé. Ensuite, il faut paramétrer le démarrage des services xend et xendomains.

Installation de Xen4
update-rc.d xend defaults 20 21
update-rc.d xendomains defaults 20 21

Une fois l'hyperviseur et les outils associés installés, et avant de rebooter, il faut installer certaines librairies. En effet, celles-ci sont nécessaires au fonctionnement de Xen. problème: la suppression des paquets Debian de Xen a entrainé la suppression des dépendances, dont ces fameuses librairies.

Installation des librairies nécessaires à Xen4
aptitude install libpci3 libsdl1.2debian libx11-6 libxext6 libgl1-mesa-glx

Cette fois, vous pouvez rebooter sur l'hyperviseur Xen4. Une fois connecté, vérifiez que Xen fonctionne bien avec la commande xm list.

Voilà, à ce stade, vous devriez avoir un serveur Xen 4 près à l'emploi. Il ne vous reste plus qu'à migrer vos VM sur ce node et à upgrader le second. Have fun !

Source et références

Sites officiels

Xen
  • //wiki.xensource.com/xenwiki/Xen4.0
DRBD
  • //www.drbd.org/
GNU/Debian Linux
  • //www.debian.org/

À propos de Jean Baptiste FAVRE

Je suis responsable d'exploitation dans le domaine de l'hébergement. Je travaille, entre autres, sur la virtualisation et l'amélioration des performances web. De temps en temps, j'arrive à décrocher de mon clavier pour lire un bon bouquin en écoutant de la musique.

License

Creative Commons License Cette publication est publiée sous contrat Creative Common by-nc-sa

Valid XHTML 1.0 Strict |  Valid CSS |  contrat Creative Common by-nc-sa

Table des matières

  1. Introduction
  2. État des lieux
  3. Préparation de l'environnement
  4. Compilation de Xen
  5. Compilation de DRBD
  6. Configuration du dom0
  7. Source et références
  8. À propos
  9. License