Chapitre 17. Virtualisation avec Xen

Table des matières

17.1. Installation de Xen
17.2. Installation de domaines
17.3. Démarrage et contrôle de domaines Xen à l'aide de xm
17.4. Dépannage
17.5. Pour plus d'informations

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éseaux 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 ordi­nateur, 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. En effet, 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. La version 2 de Xen ne prend pas en charge la technique PAE (Physical Address Extension - extension d'adresses physiques) et est donc limitée à 4 Go de mémoire. ACPI n'est pas pris en charge. La gestion d'énergie et les autres modes qui dépendent d'ACPI sont inopérants. Parmi les limitations de Xen, nous pouvons également citer qu'il n'est actuellement pas possible d'amorcer simplement un périphérique de bloc. L'amorçage requiert systématiquement que le kernel et l'initrd corrects soient disponibles dans le domaine-0.

Figure 17.1. Présentation de Xen

Présentation de Xen

17.1. Installation de Xen

La procédure d'installation de Xen passe par la configuration d'un domaine nommé « domaine-0 » et l'installation des invités Xen. Vous devez d'abord vous assurer que les paquetages requis ont bien été installés. Il s'agit de python, bridge-utils, xen, xen-tools, xen-tools-ioemu et d'un paquetage kernel-xen. Si vous sélectionnez Xen au cours de l'installation, 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 Xen3 
    kernel (hd0,0)/boot/xen.gz 
    module (hd0,0)/boot/vmlinuz-xen <paramètres> 
    module (hd0,0)/boot/initrd-xen

Remplacez (hd0,0) par la partition qui contient votre répertoire /boot. Reportez-vous également au Chapitre 9, Chargeur d'amorçage. Remplacez <paramètres> par les paramètres normalement utilisés 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.