XEN : 4.0 sur Debian

Cet article est destiné à présenter "mon" passage à XEN 4.0 depuis la compilation des sources. 
J'ai déjà compilé XEN 3.4.3 et quelques noyaux, la plupart des utilitaires et autres "includes" nécessaires sont donc déjà présents dans ma machine. 
Il  faut, au moins disposer de :

  • libssl-dev
  • zlib-dev
  • bin86
  • bcc
  • elks-libc
  • python2.6-dev
  • python-xml   pour xml_proc


Après la récupération des sources depuis le site xensource et installation dans un répertoire propre il faut lancer la compilation, comme je dispose de noyaux Linux récents je ne compile pas le noyau standard de XEN. 
Il suffit donc de lancer les commandes 
make xen    2>&1 | tee XEN.LOG 
make tools  2>&1 | tee TOOLS.LOG 
pour compiler le tout et garder trace de l'événement. 

La commande "make tools" déclenche automatiquement le chargement des sources de la version correspondante "xenifiée" de QEMU. 
La vérification avant compilation des "tools" montre : 
Checking check_crypto_lib: OK 
Checking check_curl: unused, OK 
Checking check_openssl_devel: OK 
Checking check_python: OK 
Checking check_python_devel: OK 
Checking check_uuid_devel: OK 
Checking check_x11_devel: OK 
Checking check_xgettext: OK 
Checking check_xml2: unused, OK 
Checking check_zlib_devel: OK 
Checking check_zlib_lib: OK 
Cela donne une bonne indication des paquets de développement nécessaires. 
make xen se passe bien, la première tentative d'installation achoppe sur l'absence d'un répertoire "check" dans l'arborescence "dist" : 
./install.sh 
Installing Xen from './dist/install' to '/'... 
- installing for udev-based system 
- modifying permissions 
All done. 
Checking to see whether prerequisite tools are installed... 
cd: 53: can't cd to ./dist/install/../check 
./install.sh: 54: ./chk: not found 
All done. 
Je récupère le répertoire "check" dans la verson 3.4.3 et la recopie "bêtement" ... et cela a l'air de fonctionner : 
./install.sh 
Installing Xen from './dist/install' to '/'... 
- installing for udev-based system 
- modifying permissions 
All done. 
Checking to see whether prerequisite tools are installed... 
Xen CHECK-INSTALL  lundi 26 avril 2010, 20:02:06 (UTC+0200) 
Checking check_brctl: OK 
Checking check_crypto_lib: OK 
Checking check_curl: unused, OK 
Checking check_iproute: OK 
Checking check_python: OK 
Checking check_python_xml: OK 
Checking check_udev: /sbin/udevadm OK 
Checking check_xml2: unused, OK 
Checking check_zlib_lib: OK 
All done. 
Les nouveautés dans le répertoire "/boot" : 
-rw-r--r-- 1 root root 669914 26 avril 22:50 xen-4.0.0.gz 
lrwxrwxrwx 1 root root     12 26 avril 23:37 xen-4.0.gz -> xen-4.0.0.gz 
lrwxrwxrwx 1 root root     12 26 avril 23:37 xen-4.gz -> xen-4.0.0.gz 
On va bien vite voir si cela "boote" ! Eh non, un problème, il faut charger le package "python-profiler" pour que "xend" et compagnie se lancent normalement. Une fois ce paquet installé le boot est OK, et on peut lancer une machine virtuelle sans modifier son paramétrage. 
Par contre mon "ancienne" installation (version 3.4.3) n'est plus utilisable pour diverses incompatibilités au niveau des scripts "python", le passage est donc un passage sans retour (à moins d'avoir réalisé une image de son disque système avant !). 
J'ai ensuite refait les tests de migration "live" vers une machine tournant en XEN 3.4.3, la migration échoue. Un autre test : 
 "xm save machine fichier_sur_disque_partagé" 
suivi (sur l'autre machine) d'un "xm restore fichier_sur_disque_partagé" 
échoue. La compatibilité n'est donc pas évidente entre les versions 3.4 et 4, comme ce sont des versions "majeures" on ne s'en étonnera que peu.