km.azerttyu.net

Accueil > Du km au texte > informatique > Amorcer ses DomU avec son propre noyau (pyGrub)

Amorcer ses DomU avec son propre noyau (pyGrub)

mercredi 29 août 2012, par km

Depuis sa version 4, Xen intégre dans ses outils pyGrub, un script python permettant d’émuler Grub depuis le DomU et de charger un noyau indépendant du dom0.

Présentation rapide

pyGrub permet d’émuler Grub pour les machines virtuelles Xen (domU). Pour le moment seule la version 1 de Grub est supportée (autrement nommé Grub Legacy).

Lors du démarrage de la machine virtuelle, pyGrub va interpréter le contenu du fichier /boot/grub/menu.lst du domU.et démarrer la VM selon ces informations.

On isole ainsi les différents noyaux des VM et de l’hyperviseur. Les VM ne sont plus dépendantes de l’hyperviseur pour démarrer et ont leur propre contexte de démarrage.

Installation Coté DomU

Coté domU, il s’agit principalement d’installer et configurer grub legacy.

Comme grub est émulé coté domU, on pourrait ne créer que le fichier /boot/grub/menu.lst.
Cette solution n’est pas retenue ici car l’idée est de limiter autant que possible les actions de maintenance, de suivi, mise à jours, ....

Comme l’indique la documentation de Grub, il est necessaire d’avoir au préalable le répertoire /boot/grub. Voici ce que cela donne avec une VM de type Debian :

  1. mkdir /boot/grub/
  2. apt-get install grub-legacy
  3. update-grub default

Télécharger

Ainsi nous avons grub legacy d’installé avec un menu.lst généré dynamiquement. Petite remarque à chaque mise à jour du noyau, Grub actualisera de lui même ce fichier.

La seconde étape consiste à installer un kernel, n’oublions pas que nous dépendons de Xen. Par exemple toujours avec la même VM de test :

  1. apt-cache search linux-image xen
  2. linux-headers-2.6.26-2-xen-686 - Header files for Linux 2.6.26-2-xen-686
  3. linux-image-2.6.26-2-xen-686 - Linux 2.6.26 image on i686, oldstyle Xen support
  4. linux-image-2.6-xen-686 - Linux 2.6 image on i686, oldstyle Xen support
  5. linux-image-xen-686 - Linux image on i686, oldstyle Xen support
  6.  
  7. apt-get install linux-image-xen-686

Télécharger

Nous pouvons vérifier la présence et le contenu de /boot/grub/menu.lst

Spécificité de pyGrub

pyGrub ne reconnait que l’ancienne déclaration des partitions soit (hdx,y). Cependant update-grub génere par défaut la forme (/dev/xvdaX).
Nous devons donc mettre à jour le fichier /boot/grub/menu.lst et remplacer par exemple (/dev/xvda2) par (hd0,0)

Il est à noter que pyGrub charge la première partition définie dans le fichier de configuration du domU. Ainsi dans l’exemple précédent xvda2 est la première partition indiquée dans la variable disk.

Vérifier la bonne configuration

Pour vérifier la configuration du domU, il est possible d’exécuter pyGrub directement en ligne de commande.

  1. /usr/lib/xen-default/bin/pygrub /dev/raid/ma_domU-disk

Si tout va bien, on obtient un résultat comme celui ci :

Si ce n’est pas le cas, il faut revoir les points précédents.

Mettre à jour la configuration Dom0

La dernière étape consiste à indiquer au dom0 de charger le kernel du domU.
Dans le fichier de configuration du domU, nous :

  • retirons les références à kernel et ramdisk
  • ajoutons bootloader = ’/usr/lib/xen-default/bin/pygrub’

Lancer la VM

Et maintenant l’instant de vérité avec :

  1. xm create /etc/xen/ma_domU.cfg -c

Et zou !!!


Références :

Un message, un commentaire ?

Qui êtes-vous ?
Votre message
  • Pour créer des paragraphes, laissez simplement des lignes vides.