Retrouvez cet article dans : Linux Magazine 87
Bien qu’existants depuis très longtemps, les produits de virtualisation sont de plus en plus nombreux. IBM commercialisa, il y a plus de trente ans déjà, son très populaire VM/370 et, de nos jours, VMware est la référence en matière de virtualisation de l’architecture x86. Toutefois, le domaine du Logiciel libre ainsi que le monde de la recherche ne sont pas en reste et démontrent une étonnante créativité notamment avec Xen [1].
D’autres projets du monde libre comme QEMU [2] (Linux Magazine 74), Bochs [3], User Mode Linux (UML) [4], Plex86 [5] ou encore Denali [14] témoignent de cette vitalité dans ce domaine. Xen, qui provient de l’université anglaise de Cambridge est en train d’émerger singulièrement puisque les plus grands éditeurs du monde libre le proposent (Novell-SLES10) ou le proposeront (RHEL 5, Fedora Core 6) en standard. Par ailleurs, des acteurs de pointe du secteur informatique comme Voltaire [8] dans le domaine du calcul scientifique annoncent aussi son utilisation dans des solutions de grid computing.
En outre, Xen, bien qu’initialement un sous-projet de XenoServers [6], acquiert une notoriété importante. Il a même engendré la création de la société californienne XenSource [7] qui passe des accords technologiques avec Microsoft à propos de la future offre de virtualisation du serveur Longhorn. Avant de décrire succinctement l’architecture et l’installation de Xen, nous proposons une classification des différentes solutions existantes et donnons quelques définitions relatives à la virtualisation
Brièvement, Xen permet de disposer de plusieurs instances de Linux (ou Net/Free BSD) sur un unique serveur, ordinateur personnel, ou même portable. Ainsi, il est possible d’effectuer des tests sans crainte de détruire une de ces instances. Autrement dit, Xen permet une mise en œuvre simple de machines éphémères encore appelées bac-à-sable ou sandboxes. Il existe de nombreux autres avantages à la virtualisation des systèmes informatiques comme le retour sur investissement (ROI) pour les entreprises qui pourront consolider plusieurs serveurs dans une même machine physique. Le projet Xen permet de bénéficier de tous ces avantages, tant sa richesse de fonctionnalités est complète. Outre la migration " live " de ses machines virtuelles d’un serveur vers un autre, Xen est capable d’ajuster dynamiquement la mémoire allouée aux différentes machines virtuelles, d’interrompre momentanément leur exécution ou encore de fonctionner sur des gros serveurs SMP de 32 processeurs.
Classification des techniques de virtualisation
Plusieurs approches sont possibles pour classifier les différentes techniques de virtualisation [10]. Nous décrirons ici une classification très simplifiée, mais représentative des produits existants sur le marché. Un premier type de virtualisation est constitué par les produits créant des compartiments au sein d’une même instance d’un système d’exploitation. Les applications fonctionnant à l’intérieur d’un même compartiment étant complètement isolées de celles des autres compartiments. Virtuozzo de Swsoft [11] permet par exemple de créer plusieurs environnements virtuels (VE) ayant chacun une adresse IP propre et pouvant être redémarrés les uns indépendamment des autres. SUN Microsystems commercialise Zones [13], fonctionnant sur une base Solaris et pouvant être placé dans cette première catégorie. Toujours dans cette même catégorie de virtualisation par compartiments, appelés aussi " containers ", il existe des projets du monde libre comme le Linux-Vserver [12]. Un deuxième type de produits est constitué par les machines virtuelles hébergées qui donnent la possibilité de démarrer des instances de systèmes d’exploitation sur une machine hôte, au côté d’autres applications. Les exemples les plus connus sont la VMware Workstation le VMware Server (précédemment connu sous le nom de GSX). Microsoft est présent dans cette catégorie avec Virtual PC 2004. Dans le monde libre, les projets les plus représentatifs sont le User Mode Linux (UML) [4] et QEMU [2], largement décrit dans Linux magazine 74. En troisième lieu, nous pouvons considérer les produits du type de VMware ESX, Microsoft Virtual Server, HP Integrity VM, Xen ou encore les micropartitions d’IBM. Ils disposent tous d’une couche logicielle plus ou moins intégrée au silicone et complètement dédiée à la gestion de machines virtuelles. Cette couche est dénommée " Moniteur de Machines Virtuelles " (VMM) ou encore " Hyperviseur " ou " Platform Monitor " (PMAN) et même " hôte " (host). Les machines virtuelles s’appuyant sur ces VMM sont appelées " guests " ou systèmes invités. La figure 1 décrit l’agencement logique des différents composants constituant un ensemble complet [matériel, VMM, systèmes invités]. Les caractéristiques ainsi que le " taux de virtualisation " des VMM varient selon les produits ou projets de virtualisation. Par exemple, QEMU dans son mode d’émulation complète est capable de présenter une architecture matérielle de type PowerPC au système invité (guest) tout en s’appuyant sur un ou des processeurs physiques de type x86. En revanche, HP Integrity VM est capable d’héberger uniquement les versions Itanium® de Linux, Windows, HP-UX et (bientôt) OpenVMS.
Figure 1 : Moniteur de machine virtuelle
Xen : Moniteur de machines para-virtuelles
Xen et un moniteur de machines virtuelles faisant partie de notre troisième catégorie. Toutefois, il existe une différence fondamentale entre Xen et les autres produits ; le noyau de ses systèmes invités doit avoir été modifié au préalable avant de pouvoir démarrer " au dessus de Xen ". Le barbarisme " Xenification " des systèmes invités est quelquefois employé pour qualifier ces modifications et la documentation ajoute même le préfixe " Xen " devant le nom du système d’exploitation modifié (ex. : XenLinux, XenBSD, XenWindows). C’est à cause de ces modifications que l’on dit que Xen est un des produits de paravirtualisation, par opposition aux autres qui permettent le démarrage de systèmes d’exploitation " intacts ". Il est toutefois important de noter que les applications de type utilisateur des systèmes invités de Xen ne nécessitent pas de modifications (cf. Figure 2, " Unmodified User Software "). Les modifications apportées sur les systèmes invités ont pour but d’améliorer les performances globales de la machine virtuelle. Ces améliorations sont possibles et substantielles, car le travail de virtualisation du VMM est moindre puisque déjà préparé dans le système invité. En contrepartie, seuls les systèmes xenifiés sont éligibles comme systèmes invités au-dessus de Xen (sur des machines ne disposant pas de processeurs intégrant des technologies de virtualisation. Cf. paragraphe " virtualisation et silicone "). Une autre particularité de Xen vient de sa terminologie. Celle-ci différencie une machine virtuelle, du contexte dans laquelle elle évolue. Ce contexte est appelé " domaine ". Selon le manuel de l’utilisateur, " la relation entre les machines virtuelles et les domaines, est similaire à celle entre les programmes et les processus : une machine virtuelle est une entité persistante qui réside sur disque (un peu comme un programme). Quand elle est chargée pour exécution, elle fonctionne dans un domaine. Chaque domaine possède un identificateur unique, analogue à un identificateur de processus. " Aujourd’hui, les noyaux Linux (2.4 et 2.6) et NetBSD/FreeBSD peuvent constituer des domaines Xen. Par ailleurs, les chercheurs des laboratoires de Microsoft disposent d’une version xenifiée de Windows mais non commercialisée.Le Domaine privilégié
Sur la figure 2, la couche matérielle est directement surmontée du moniteur Xen. Sur la gauche, et au-dessus de ce moniteur, se trouve le domaine0 encore appelé " domaine privilégié " (privileged domain). Le domaine0 est particulier, car il peut utiliser des appels système spécifiques (hypercalls) que lui seul est capable de mettre en œuvre. Ainsi, le contrôle des autres domaines (création, modification, effacement de domaines…) se fait à partir de ce domaine privilégié. C’est le processusVirtualisation et silicium
L’engouement pour la virtualisation ainsi que le potentiel d’amélioration des performances des machines virtuelles en reléguant certains travaux aux processeurs, font qu’Intel et AMD intègrent dans leur dernière puce des techniques de virtualisation. La proximité des centres de recherche d’Intel, de Microsoft et du campus de l’université de Cambridge en Angleterre favorise aussi la communication entre les chercheurs de ces différents centres… Intel propose la technologie de virtualisation VT-i, présente dans ses processeurs x86 et Itanium®. AMD met à disposition AMD-v connu sous le nom de code Pacifica. Ces technologies sont potentiellement bénéfiques à tous les hyperviseurs d’instructions IA-32 ou IA-64 et elles permettent à Xen d’accepter des systèmes invités non xenifiés (Figure 2, bloc de droite) comme par exemple Windows. D’ailleurs, XenSource explique comment effectuer cette opération sur son site Internet [18] avec Xen 3.0.2. Notons qu’IBM, qui conçoit à la fois ses puces et son hyperviseur de micropartitions, intègre complètement son système de virtualisation de silicone de ses systèmes basés sur le processeur POWER5TM.
Figure 2 : Architecture de Xen 3.0
Mise en œuvre de Xen et du domaine0
Le moyen le plus simple pour jouer avec Xen est de télécharger le live-CD de démonstration depuis le site de XenSource [7]. Ce CD permet de démarrer Xen 3.0, ainsi que le domaine privilégié dont le noyau est basé, soit sur une Debian Etch ou alors CentOS 4.1. Ensuite, l’utilisateur, après s’être connecté sur ce domaine0, pourra créer plusieurs autres domaines en suivant les instructions apparaissant sur les différents écrans (kernel-xen-2.6.16-1.2290_EL.i686.rpm xen-3.0.2-9.i386.rpm libvirt-0.1.0-1.i386.rpm libvirt-python-0.1.0-1.i386.rpm bridge-utils-1.0.6-2.i386.rpm
Création d’un domaine>0
Dès que le domaine0 est démarré, il est possible de créer un ou plusieurs autres domaines en éditant, pour chacun, un fichier de configuration. Des exemples se trouvent dans le répertoireDomaine0# cat /etc/xen/ttylin1.conf kernel = "/boot/vmlinuz-2.6.12.6-xen3_7.1_rhel4.1" root = "/dev/sda1 ro" disk = [ ‘file:/xenvm/ttylinux-xen,sda1,w’ ] memory = 64 name = "ttylin1"La variable kernel contient le chemin complet dans le domaine0 du noyau XenLinux à utiliser pour démarrer. En l’occurrence, nous allons utiliser un noyau Linux 2.6.12.6 provenant d’une distribution RHEL4.1, et " patché " par Xen 3. Ce noyau fut installé par les scripts d’installation automatiques de XenSource. Les paramètres de la variable
Domaine0# ls -l /xenvm/ttylinux-xen -rwx------ 1 root root 16384000 Dec 30 2005 /xenvm/ttylinux-xenIl est alors possible de lancer la commande de création du domaine :
Domaine0# xm create –c /etc/xen/ttylin1.confL’exécutable

Figure 3 : Liste des domaines
Si l’on souhaite visualiser l’évolution en temps réel des différents domaines, la commande
Figure 4 : xentop renseigne périodiquement sur l’état des domaines
Blocs de stockages virtuels (VBD)
Bien que l’exemple précédent soit très simple à mettre en œuvre et nécessite peu d’espace disque (la distributionRéseau
Par souci de simplicité, l’exemple de création de domaine précédent ne met pas en œuvre le réseau. Cette fonctionnalité est bien sûr activable dans Xen. Son architecture ne requiert aucun effort de compréhension, car elle repose sur la notion de " pont réseau " (bridge) qui fut développée pour le noyau Linux 2.2 et incorporée aux noyaux 2.4 et 2.6. Le paquetnics=1 vif = [ ‘mac=00:16:3e:73:ae:8a, bridge=xenbr0’ ] dhcp=”dhcp”Xen étant encore jeune, la syntaxe du fichier de configuration évolue. Dans la version 3.0.2, la variable
Caractéristiques dynamiques de Xen
" L’Ultime " pour un système de virtualisation est de pouvoir accepter de multiples modifications dynamiquement, sans redémarrage. Dans cette catégorie, Xen n’a pas à rougir devant les autres produits, puisqu’il est possible d’ajouter ou de supprimer à la volée des CPU virtuels, d’augmenter ou de rétrécir la taille de la mémoire (balloon driver) des domaines. Les deux commandes suivantes modifient, respectivement la mémoire et le nombre de CPU virtuels du domaine 6 :Domain0# xm mem-set 6 768 Domain0 xm vcpu-set 6 2Il est aussi possible de déplacer un système hôte vers un autre (live motion chez VMware) grâce à
Conclusion
Avec le projet Xen, le monde du Logiciel libre démontre sa créativité, sa crédibilité et son pouvoir fédérateur ; durant la seule année 2006, on apprend que les majors RedHat et Novell/Suse l’intègrent dans leurs distributions d’entreprise, que les fabricants de puces électroniques mettent sur le marché des produits avec des techniques facilitant la virtualisation des instructions x86 et IA64. Cela permet donc à Xen d’héberger des domaines non xenifiés. Il est aussi important de noter que les grands constructeurs de matériel, tels HP et IBM, annoncent le support de Xen sur leurs machines x86, Itanium® et PowerPC. Mais surtout, Microsoft passe des accords technologiques avec XenSource, afin de combler le vide existant entre Windows et le monde du Libre. Autrement dit, on peut dire, sans risque de se tromper, que ce projet a un bel avenir. Références :- [1] http://www.cl.cam.ac.uk/Research/SRG/netos/xen/
- [2] http://www.qemu.org/
- [3] http://bochs.sourceforge.net/
- [4] http://user-mode-linux.sourceforge.net/
- [5] http://plex86.sourceforge.net/
- [6] http://www.xenoservers.net/
- [7] http://www.xensource.com/
- [8] http://www.voltaire.com/
- [9] http://www.ecsl.cs.sunysb.edu/tr/TR179.pdf
- [10] http://www.cs.nps.navy.mil/people/faculty/irvine/publications/2000/VMM-usenix00-0611.pdf
- [11] http://www.swsoft.com/en/products/virtuozzo/
- [12] http://linux-vserver.org/
- [13] http://www.sun.com/bigadmin/content/zones/
- [14] http://denali.cs.washington.edu/
- [15] http://prdownloads.sourceforge.net/xen/ttylinux-xen.bz2
- [16] http://sourceforge.net/projects/xenman
- [17] http://enomalism.com/
- [18] http://www.xensource.com/files/
- [19] http://linux-net.osdl.org/index.php/Bridge
Retrouvez cet article dans : Linux Magazine 87





Donnez votre avis
Vous devez avoir ouvert une session pour écrire un commentaire.