Hyperviseur Xen sur une Debian Lenny

 

Nous allons voir ici comment installer l'hyperviseur Xen sur une Debian Lenny. Nous utiliserons les paquets de la distribution.

Inventaire du matériel

J'ai la chance d'avoir une machine assez puissante composée des éléments suivants :

  • 1 processeur Intel Core 2 Quad Q6600
  • 8 Go de Ram
  • 1 carte mère ASUS avec deux cartes réseau Gigabit
  • 1 disque dur de 1 To
  • 1 carte PCI 4 ports ethernet D-Link
  • 1 carte PCI 4 ports USB
  • 1 alim silencieuse

Installation Debian Lenny amd64

Je ne vais pas faire de procédure d'installation de GNU / Debian Lenny.

Il en existe suffisamment sur le net, par exemple la formation Debian d'Alexis De Lattre : http://formation-debian.via.ecp.fr/

Mes pré-requis sont simplement les suivants :

  • /boot sur une partition primaire standard
  • une partition primaire de 20Go en lvm nommée sys, dans laquelle on aura les volumes logiques :
    • root de 3Go montée sur /
    • usr de 3Go montée sur /usr
    • tmp de 1Go montée sur /tmp
    • var de 2Go montée sur /var
    • src de 2Go montée sur /usr/src
    • le reste on le garde de côté en cas de besoins
  • une partition primaire de swap de 1Go
  • une partition primaire avec le reste en lvm nommée xen_disk

Pour le reste, faire une installation de base de Debian. Il faut que le serveur ait une en ip fixe sur le réseau. Vérifier la date et l'heure et vérifier les locales. On supprime aussi certains services inutiles :

# apt-get remove --purge exim4 exim4-base exim4-config exim4-daemon-light

Installation

On utilise les paquets Debian Lenny pour installer l'hyperviseur et l'ensemble des outils nécessaires à la gestion des machines virtuelles :

# apt-get install xen-hypervisor-3.2-1-amd64 xen-linux-system-2.6.26-1-xen-amd64 xen-utils-3.2-1 
xenstore-utils xenwatch xen-shell xen-tools

Avant de redémarrer, on vérifie que grub est bien mis à jour. On peut  maintenant redémarrer le serveur.

Vérifications au démarrage

Si le login s'affiche, on peut supposer que tout à démarré correctement. On va vérifier que l'hyperviseur est bien installé et fonctionne correctement. La commande suivante devrait nous donner à quelque chose prêt le résultat suivant :

shandy:~# xm info
host                   : shandy
release                : 2.6.26-1-xen-amd64
version                : #1 SMP Fri Mar 13 21:39:38 UTC 2009
machine                : x86_64
nr_cpus                : 4
nr_nodes               : 1
cores_per_socket       : 4
threads_per_core       : 1
cpu_mhz                : 2404
hw_caps                : bfebfbff:20000800:00000000:00000140:0000e3bd:00000000:00000001
total_memory           : 8191
free_memory            : 128
node_to_cpu            : node0:0-3
xen_major              : 3
xen_minor              : 2
xen_extra              : -1
xen_caps               : xen-3.0-x86_64 xen-3.0-x86_32p hvm-3.0-x86_32 hvm-3.0-x86_32p hvm-3.0-x86_64
xen_scheduler          : credit
xen_pagesize           : 4096
platform_params        : virt_start=0xffff800000000000
xen_changeset          : unavailable
cc_compiler            : gcc version 4.3.1 (Debian 4.3.1-2)
cc_compile_by          : waldi
cc_compile_domain      : debian.org
cc_compile_date        : Sat Jun 28 09:32:18 UTC 2008
xend_config_format     : 4

Quelques lignes nous intéressent dans ce résultat :

  • la version du noyau :  release : 2.6.26-1-xen-amd64
  • le nombre de cpus :  nr_cpus : 4
  • la mémoire totale disponible : total_memory : 8191
  • la version de l'hyperviseur :  xen_major : 3 | xen_minor : 2
  • les capacités de l'hyperviseur (le type de machin virtuelles que nous allons pouvoir créer) :  xen_caps : xen-3.0-x86_64 xen-3.0-x86_32p hvm-3.0-x86_32 hvm-3.0-x86_32p hvm-3.0-x86_64

En conclusion notre hyperviseur fonctionne correctement.

Noyau 32 bits

L'avantage d'installer notre serveur Xen sur une architecture 64 bits c'est que nous allons pouvoir virtualiser des serveurs en 64 bits et en 32 bits. Cependant le noyau mis à disposition ici est 64 bits et peux gêner dans certains cas quand on installe une machine virtuelle 32 bits. Nous allons donc récupérer un noyau et des modules 32 bits. Pour cela, il faut récupérer les fichiers sur une machine en 32 bits. Il nous faut récupérer les fichiers suivants :

  • vmlinuz-2.6.26-1-xen-686 à mettre dans /boot
  • initrd.img-2.6.26-1-xen-686 à mettre dans /boot
  • le répertoire 2.6.26-1-xen-686 à mettre /lib/modules

Je vous mets à disposition une archive contenant l'ensemble des fichiers nécessaires :

{filelink=1}