Serveurs virtuels
From All4Dev
Configuration (par l'exemple) de XEN 3.0.1 sur Debian GNU/Linux 3.1 (sarge)
L'installation est appliquée sur une installation de base, avec trois RAID1 logiciels (swap,/,le reste) et du lvm (volume groupe vg_1) sur le 3ème RAID1.
- Installation des paquetages nécessaires
- Modifier /etc/apt/sources.list
# Xen pre-release packages deb http://packages.debianbase.de/sarge/i386/xen3/ ./ deb http://www.backports.org/debian/ sarge-backports main
- Modifier /etc/apt/preferences
Package: * Pin: release a=sarge-backports Pin-Priority: 200 Package: udev Pin: release a=sarge-backports Pin-Priority: 999 Package: lsb Pin: release a=sarge-backports Pin-Priority: 999 Package: module-init-tools Pin: release a=sarge-backports Pin-Priority: 999
- Installer les paquetages
aptitude install xen linux-patch-xen udev/sarge-backports lsb-base/sarge-backports module-init-tools/sarge-backports bridge-utils
- Compilation du noyau xen0
- Récupérer les sources du noyau (la version 3.0.1 de XEN s'appuie sur une version 2.6.12.x)
cd /usr/src wget ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-2.6.12.tar.bz2
- Décompresser les sources
tar xjf linux-2.6.12.tar.bz2
- Appliquer le patch XEN
cd linux-2.6.12 /usr/src/kernel-patches/i386/apply/xen
- Choisir les options de compilation
make ARCH=xen menuconfig
Outre les options propres au boot de la machine, il faut ici veiller a bien selectionner les options suivantes dans la section XEN
CONFIG_XEN_PRIVILEGED_GUEST=y CONFIG_XEN_PHYSDEV_ACCESS=y CONFIG_XEN_BLKDEV_BACKEND=y CONFIG_XEN_NETDEV_BACKEND=y
- Compiler le noyau
make-kpkg clean mak-kpkg --revision=x1 --append_to_version="-xen0" --arch xen kernel_image
- Installer le noyau
- Installation du paquetage
dpkg -i ../kernel-xen0-2.6.12-xen0_x1_i386.deb
- Modification de la configuration grub
Ajouter dans le fichier /boot/grub/menu.lst la section suivante, en bas du fichier sous la ligne "### END DEBIAN AUTOMAGIC KERNELS LIST"
title Debian GNU/Linux, kernel 2.6.12 XEN root (hd0,1) kernel /boot/xen-3.0.gz module /boot/xen-linux-2.6.12-xen0 root=/dev/md1 md=1,/dev/sda2,/dev/sdb2 ro libata console=tty0 savedefault boot
Adapter les options root à l'environnement ;)
Il faut également dire à grub d'utiliser ce noyau par défaut en changeant l'option "default" dans ce même fichier.
- Redémarrage
- Désactiver TLS
mv /lib/tls /lib/tls.disabled
- Rebooter et recompiler le noyau précédent jusqu'à ce que la machine boote correctement ;)
- Compiler un noyau "xenU" pour les machines virtuelles
Reprendre la même procédure que précédemment en:
- Changeant désactivant les options XEN précédentes et en activant les suivantes
CONFIG_XEN_BLKDEV_FRONTEND=y CONFIG_XEN_NETDEV_FRONTEND=y
- Changeant l'option de compilation "--append_to_version" pour mettre par exemple "xenu0"
- Installer le kernel xenU
dpkg -i ../kernel-xen0-2.6.12-xenu0_x1_i386.deb
- Préparer une partition pour la première machine virtuelle
- Création du volume logique
lvcreate -n x_test -L 3G vg_1
- Formater la partition
mkfs.ext3 /dev/vg_1/x_test
- Monter la partition et y installer un système de base
mount /dev/vg_1/x_test /mnt rsync -av / /mnt --exclude="/mnt/*" --exclude="/sys/*" --exclude="/proc/*"
- Nettoyer le système virtuel
- supprimer tout ce qui a été installé précédemment pour xen sauf le dernier noyau "xenU"
- changer le nom d'hôte dans les fichiers appropriés
- changer l'adresse IP
- modifier fstab
# /etc/fstab: static file system information. # # <file system> <mount point> <type> <options> <dump> <pass> /dev/hda1 / ext3 defaults,errors=remount-ro 0 1 proc /proc proc defaults 0 0
- Démonter la partition du système virtuel
umount /mnt
- Créer le fichier de configuration du serveur virtuel
Créer le fichier /etc/xen/test avec le contenu suivant
kernel = "/boot/xen-linux-2.6.12-xenu0" memory = 64 name = "test" vif = [ ] disk = [ 'phy:vg_1/x_test,hda1,w' ] root = "/dev/hda1 ro" extra = "2"
Ajuster ces paramêtres en s'inspirant des exemples dans /usr/share/doc/xen.
- Démarrer ce nouveau serveur
xm create -c test
Pour quitter le terminal Ctrl+]
- Activer le serveur virtuel au démarrage
cd /etc/xen/auto ln -s ../test .

