Table des matières
Résumé
Xen permet d'exécuter plusieurs systèmes LINUX sur une même machine physique. Le matériel associé aux différents systèmes est fourni sous forme virtuelle. Ce chapitre présente les possibilités et les limites de cette technologie, présentation complétée par les sections relatives à l'installation, la configuration et l'utilisation de Xen.
En général, les machines virtuelles doivent émuler le matériel nécessaire à l'exécution d'un système. L'inconvénient de cette technique tient au fait que le matériel émulé est bien plus lent que l'équipement d'origine. L'approche Xen est différente. L'émulation est limitée au plus petit nombre de composants possible. Pour y parvenir, Xen utilise la technique dite de paravirtualisation. Celle-ci consiste à présenter les machines virtuelles de manière similaire mais non identique au matériel sous-jacent. C'est ainsi, par exemple, que les systèmes d'exploitation hôtes et invités sont adaptés au niveau du kernel. L'espace utilisateur, quant à lui, reste inchangé. Xen contrôle le matériel à l'aide d'un hyperviseur et d'un invité de contrôle, également appelé domaine-0, qui fournissent l'ensemble des périphériques par blocs et réseau virtualisés requis. Les systèmes invités utilisent ces périphériques par blocs et réseau virtuels pour exécuter le système et se connecter à d'autres invités ou au réseau local. Lorsque plusieurs machines physiques exécutant Xen sont configurées de façon à ce que les périphériques par blocs et réseau virtuels soient disponibles, il est également possible de faire migrer un système invité d'un élément d'équipement vers un autre en cours d'exécution. À l'origine, Xen a été développé pour pouvoir exécuter jusqu'à 100 systèmes invités sur un même ordinateur, mais ce nombre est étroitement lié aux spécifications des systèmes hôtes actifs, et notamment à leur consommation de mémoire.
Afin de limiter la sollicitation de l'unité centrale, l'hyperviseur de Xen propose trois planificateurs distincts. Il est également possible de modifier le planificateur en cours d'exécution du système hôte, ce qui permet d'en modifier l'ordre de priorité. À un niveau supérieur, la migration d'un invité peut aussi permettre d'ajuster la puissance de traitement disponible.
Le système de virtualisation Xen n'est pas sans certains inconvénients en ce qui concerne le matériel pris en charge :
Plusieurs pilotes propriétaires, comme ceux commercialisés par Nvidia ou ATI, ne fonctionnent pas comme prévu. Dans ce cas, vous devez utiliser les pilotes libres disponibles, même s'ils ne prennent pas en charge toutes les capacités des composants. En outre, plusieurs puces WLAN et ponts CardBus ne sont pas pris en charge sous Xen.
Dans la version 2, Xen ne prend pas en charge la technique PAE (Physical Adress Extension - extension d'adresses physiques) et est donc limité à 4 Go de mémoire.
Le standard d'interface ACPI n'est pas pris en charge. La gestion d'énergie et les autres modes qui dépendent d'ACPI sont inopérants.
La procédure d'installation de Xen passe par la configuration d'un domaine « domaine-0 » et l'installation des clients Xen. Vous devez d'abord vous assurer que les paquetages requis ont bien été installés. Il s'agit de python, bridge-utils, xen et d'un paquetage kernel-xen. Si vous utilisez des paquetages SUSE, Xen doit être ajouté à la configuration GRUB. Dans les autres cas, vous devez entrer des informations dans le fichier boot/grub/menu.lst. Cette entrée doit avoir l'aspect suivant :
title Xen2
kernel (hd0,0)/boot/xen.gz dom0_mem=458752
module (hd0,0)/boot/vmlinuz-xen <parameters>
module (hd0,0)/boot/initrd-xen
Remplacez (hd0,0) par la partition qui contient votre répertoire /boot. Vous pouvez aussi consulter le Chapitre 29, Chargeur d'amorçage. Modifiez la quantité de mémoire dom0_mem en fonction de votre système. La valeur maximum correspond à la capacité de votre mémoire système en Ko moins 65536. Remplacez <paramètres> par les paramètres utilisés normalement pour démarrer un kernel LINUX. Redémarrez ensuite le système en mode Xen. L'hyperviseur Xen est lancé au démarrage et le kernel LINUX est légèrement modifié, la plupart du matériel étant géré par le domaine-0. En dehors de ces exceptions, tout devrait fonctionner comme en mode normal.