Première approche de Xen
Installation de Xen
Pour l'installation que nous allons faire, nous utiliserons comme distribution une Ubuntu Feisty Fawn 7.04 mais il faut savoir que Xen peut être installé sur la majorité des distributions. Nous utiliserons une configuration de base mais nous utiliserons une partition spéciale pour contenir l'ensemble de nos images Xen. Cette partition sera formatée en ext3 et sera montée dans le répertoire /xen.
Le but de cette installation sera de créer une image de notre Ubuntu, pour ensuite la virtualiser dans Xen. Pour rappel, nous effectuerons cette installation sur une Ubuntu Feisty Fawn 7.04.
Nous allons commencer par nous occuper du Domain-0, donc de notre machine hôte.
Domain-0
Xen est disponible dans les dépôts Universe d'Ubuntu. Si vous n'avez pas activé ces dépôts, vous devez le faire maintenant en éditant le fichier /etc/apt/sources.list et en décommentant les lignes correspondant aux dépôts Universe.
Nous installons maintenant Xen Server :
sudo apt-get install ubuntu-xen-server
Vous pouvez maintenant redémarrer la machine pour utiliser Xen.
Nous allons maintenant passer à la création de notre image et à sa configuration.
DomU
Nous allons commencer par créer un fichier de taille importante qui contiendra notre image:
dd if=/dev/null of=/xen/image1.img bs=1024k count=3500
L'attribut count de la commande dd nous permet de définir la future taille de notre fichier image. Ici, nous créons un fichier de 3.5 Go. Vous pouvez définir votre propre taille suivant vos besoins.
Nous formattons notre image en ext3 :
sudo mke2fs -j /xen/image1.img
Nous allons maintenant monter notre image pour pouvoir y créer l'image de notre Ubuntu que nous utilisons en ce moment même.
sudo mnt -o loop /xen/image1.img /mnt/image1
Pour créer une image de l'Ubuntu que nous sommes en train d'utiliser nous allons utiliser debootstrap qui permet d'installer une distribution minimale basée sur un système déjà lancé.
sudo apt-get install debootstrap
debootstrap feisty /mnt/image1
Nous copions maintenant les modules du kernel que nous utilisons dans notre image :
cp -R /lib/modules/2.6.19-4-server /mnt/image1/lib/modules
Nous finissons par installer une libc pour Xen :
sudo apt-get install libc6-xen
Maintenant, nous pouvons configurer notre machine invitée comme notre distribution actuelle. Nous allons commencer par définir les disques montés au démarrage en éditant le fichier /mnt/image1/etc/fstab :
proc /proc proc defaults 0 0
/dev/hda1 / ext3 defaults,errors=remount-ro 0 0
Vous pouvez ensuite éditer tous les paramètres que vous souhaitez comme un système normal. Par exemple, le fichier /mnt/image1/etc/network/interfaces pour votre réseau.
Une fois votre configuration terminée, vous pouvez démonter l'image :
sudo umount /xen/image1.img
Nous allons maintenant terminer en créant un fichier de configuration pour Xen qui permettra de lancer notre machine invitée dans le fichier /etc/xen/image1.sxp
name = "Image 1"
kernel = "/boot/vmlinuz-2.6.19-4-server"
ramdisk = "boot/initrd.img-2.6.19-4-server"
root = "/dev/hda1 ro"
disk = ['file:/xen/image.img, hda1, w']
memory = 128
dhcp = "on"
On peut facile comprendre les différentes instructions de ce fichier de configuration :
- name : nom de la machine invitée
- kernel : chemin vers le kernel
- ramdisk : image minimale d'un système utilisée au démarrage
- root : disque dur de la partition root (/)
- disk : disque à monter et options de montage
- memory : mémoire accordée à la machine invitée
- dhcp : activation du dhcp ou non
Nous pouvons maintenant lancer notre machine invitée de base dans Xen grâce à la commande suivante :
sudo xm create /etc/xen/image1.sxp