Installation de Xen 4 sur une Debian Squeeze

 

Squeeze est la future version de la Debian Stable, elle est actuellement en période de freeze et "devrait" (toujours rester au conditionnel avec les dates de sorties des versions stable de Debian) sortir en fin d'année.

Ayant à disposition un nouveau serveur, j'ai voulu pérénniser l'installation de celui-ci avec cette version de Debian et avec une version récente de l'hyperviseur Xen.

Le prérequis de cet article est d'avoir une Debian Squeeze installée. Mon serveur possède un processeur 64 bits.

Installation de l'hyperviseur et des outils

Il est possible de compiler tout les composants de Xen à la main de façon à bénéficier des dernières versions. Dans ce cas je vous invite à lire cet article http://www.antoinebenkemoun.fr/2010/05/installation-de-xen-4-0-sur-debian-lenny/

Pour cette fois-ci ce sera une installation à partir des paquets Debian. La version de l'hyperviseur sera la 4.0.1 :

# apt-get install linux-image-2.6-xen-amd64 xen-tools xen-utils

Attention à ce niveau la si on redémarre le serveur l'hyperviseur ne sera pas chargé :

# xm info
WARNING!  Can't find hypervisor information in sysfs!
Error: Unable to connect to xend: No such file or directory. Is xend running?

Squeeze est fourni avec la nouvelle version de Grub, et il faut modifier les templates pour mettre en place le boot avec l'hyperviseur.

 

Paramétrage de grub

On commence par modifier le fichier /etc/default/grub, qui devrait ressembler à ceci :

GRUB_DEFAULT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=10
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""

 

Puis on modifie le fichier /etc/grub.d/40_cutom :

#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.
menuentry "Xen 4 / Debian Squeeze kernel 2.6.32-5 pvops" {
insmod ext2
set root='(hd0,gpt1)'
multiboot (hd0,gpt1)/xen-4.0-amd64.gz
module (hd0,gpt1)/vmlinuz-2.6.32-5-xen-amd64
module (hd0,gpt1)/initrd.img-2.6.32-5-xen-amd64
}

gpt1 correspond à une table de partition de type GPT, voir article Partitionnement GPT avec parted sous Debian. Pour un partitionnement classique de type msdos vous devriez avoir msdos1.

Reste à faire une mise à jour de grub :

# update-grub

 

Tentez un redémarrage, pour vérifier :

# xm info
host                   : srv-backup
release                : 2.6.32-5-xen-amd64
version                : #1 SMP Fri Sep 17 22:00:48 UTC 2010
machine                : x86_64
nr_cpus                : 2
nr_nodes               : 1
cores_per_socket       : 2
threads_per_core       : 1
cpu_mhz                : 2926
hw_caps                : bfebfbff:20100800:00000000:00000940:0408e3bd:00000000:00000001:00000000
virt_caps              :
total_memory           : 8190
free_memory            : 0
node_to_cpu            : node0:0-1
node_to_memory         : node0:0
node_to_dma32_mem      : node0:0
max_node_id            : 0
xen_major              : 4
xen_minor              : 0
xen_extra              : .1
xen_caps               : xen-3.0-x86_64 xen-3.0-x86_32p
xen_scheduler          : credit
xen_pagesize           : 4096
platform_params        : virt_start=0xffff800000000000
xen_changeset          : unavailable
xen_commandline        : placeholder
cc_compiler            : gcc version 4.4.5 20100824 (prerelease) (Debian 4.4.4-11)
cc_compile_by          : waldi
cc_compile_domain      : debian.org
cc_compile_date        : Fri Sep  3 15:38:12 UTC 2010
xend_config_format     : 4

 

Une fois les tests sur le nouveau kernel avec l'hyperviseur validé, il faudra modifier le kernel qui bootera par défaut dans le fichier /etc/default/grub :

GRUB_DEFAULT=x