syntèse sur la virtualisation (appliquée aux systèmes d

33
Syntèse sur la virtualisation (appliquée aux systèmes d’exploitations) Benjamin OBOUSSIER 23 février 2009

Upload: others

Post on 19-Jun-2022

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Syntèse sur la virtualisation (appliquée aux systèmes d

Syntèse sur la virtualisation(appliquée aux systèmes d’exploitations)

Benjamin OBOUSSIER

23 février 2009

Page 2: Syntèse sur la virtualisation (appliquée aux systèmes d

Syntèse sur la virtualisation II INPG / CUEFA

Page 3: Syntèse sur la virtualisation (appliquée aux systèmes d

Rédacteurs : Benjamin Oboussier ([email protected])Date de rédaction : Janvier-Février 2009

Disponible en version PDF : http://www.

Révision : V0.10-Draft - redaction premiere partie.Révision : V0.20-Draft - relecture et correction première partie.Licence et droits d’utilisation : Ce document est publié sous licence Creative Commons CC BY-NC-SA 1 :

– CC : Creative Commons cf http://creativecommons.org/worldwide/fr/,– BY : Paternité. L’auteur conserve la paternité de son oeuvre, et vous ne pouvez vous attribuer quevos propres contributions,

– NC : Pas d’Utilisation Commerciale (Noncommercial). Ce travail ne peut faire l’objet d’une utili-sation commerciale 2,

– SA : Partage des Conditions Initiales à l’Identique (Share Alike). Toute altération, transformation,tout produit dérivé de ce travail doit être distribué sous une licence identique ou similaire.

1. Vous trouverez le contrat de licence complet à http://creativecommons.org/licenses/by-nc-sa/2.0/fr/legalcode2. Pour une compréhension des usages autorisés, voir le tableau www.adamfields.com/CC-NC-allowed-uses-flowchart.

pdf

Syntèse sur la virtualisation i INPG / CUEFA

Page 4: Syntèse sur la virtualisation (appliquée aux systèmes d

Syntèse sur la virtualisation ii INPG / CUEFA

Page 5: Syntèse sur la virtualisation (appliquée aux systèmes d

Table des matières

Introduction v

1 Presentation de la virtualisation 11.1 Que recouvre le terme de virtualisation ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.2 Comment est née et d’où vient la virtualisation . . . . . . . . . . . . . . . . . . . . . . . . 21.3 Contexte dans lequel s’inscrit la virtualisation . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.3.1 Rappel sur "les structures en anneaux" . . . . . . . . . . . . . . . . . . . . . . . . 31.3.2 Vision de la structure en anneaux vue depuis les Machines virtuelles . . . . . . . . 41.3.3 Evolution des microprocesseurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

1.4 Les différentes architectures de virtualisation [7] . . . . . . . . . . . . . . . . . . . . . . . . 51.4.1 La machine virtuelle (virtualisation complète) . . . . . . . . . . . . . . . . . . . . . 51.4.2 La Para-virtualisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61.4.3 Les systèmes à hyperviseur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71.4.4 Les techniques de cloisonnement (L’isolateur) . . . . . . . . . . . . . . . . . . . . . 7

1.5 Les principales solutions du marché . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81.5.1 KVM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81.5.2 VmWare (ESX) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91.5.3 Xen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101.5.4 Bilan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

2 Management de la mémoire entre Xen et ces machines virtuelles 132.1 Attribution et gestion de la mémoire des machines virtuelles . . . . . . . . . . . . . . . . . 132.2 La translation d’adresse virtuelle [17] [10] . . . . . . . . . . . . . . . . . . . . . . . . . . . 142.3 Gestion de la mémoire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

Conclusion 17

Glossaire 23Glossaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

Références 25

iii

Page 6: Syntèse sur la virtualisation (appliquée aux systèmes d

TABLE DES MATIÈRES TABLE DES MATIÈRES

Syntèse sur la virtualisation iv INPG / CUEFA

Page 7: Syntèse sur la virtualisation (appliquée aux systèmes d

Introduction

Le terme de virtualisation revient de plus en plus souvent dans les DSI (Direction des systèmesd’information), et est présenté comme un argument de poids dans la vente de solutions chez certainsprestataires.En effet depuis quelques années avec la multiplication des applications et des serveurs les supportantson parle à outrance de cette technologie dans les services informatiques et les DSI. Il peut donc êtreintéressant de chercher à comprendre si cette euphorie est le résultat d’un effet de mode ou-bien si elles’inscrit dans la continuité d’une évolution technologique.Aujourd’hui pour les entreprises, dans le contexte économique difficile dans lequel le mode semble cediriger, l’optimisation des ressources, l’augmentation de la flexibilité et la diminution d’interruption deservice, la réduction des coûts, en finissant par la sécurité sont autant de points critiques, jouant fortementpour la promotion de ces technologies, notamment sur les serveurs d’entrée et de moyenne gamme de typeX86. Dans une première partie, cette syntèse cherche à comprendre d’où vient cette "technologie", enfaisant une rétrospective depuis l’origine de l’informatique moderne, pour ensuite présenter les mécanismesmis en oeuvre, et finir en voyant les différentes variantes que l’on peux avoir à notre disposition en termede solutions pour mettre en place une architecture informatique virtualisée. Une deuxième partie présenteles mécanismes de communication mis en oeuvre en un hyperviseur (Xen) et les machines virtuelles.

v

Page 8: Syntèse sur la virtualisation (appliquée aux systèmes d

Introduction

Syntèse sur la virtualisation vi INPG / CUEFA

Page 9: Syntèse sur la virtualisation (appliquée aux systèmes d

Chapitre 1Presentation de la virtualisation

1.1 Que recouvre le terme de virtualisation ?

La virtualisation se définit au sens large comme étant l’ensemble des techniques matériels et /oulogiciels permettant à un ou plusieurs systèmes d’exploitation d’être exécutés de façon indépendante etsur un matériel physique commun. La meilleure représentation qu’il puisse en être faite sur le principeest représentée par la figure 1.1.

Figure 1.1 – Principe générale de la virtualisation

Pour être plus précis on notera que ce document aborde la virtualisation matérielle. Dans le casdu système d’exploitation, rappelons que c’est ce programme qui est en charge de gérer les ressourcesmatérielles de l’ordinateur (CPU, ram, périphériques...). Les applications (couche au dessus du systèmed’exploitation) n’ont aucun liens direct avec le matériel, elles passent toutes par l’intermédiaire de celui-ci.Par cette conception le système d’exploitation s’attend donc à avoir seul la gestion de toutes les ressourcesmatérielles de l’ordinateur et à pouvoir dialoguer directement avec le CPU comme le schèmatise la figure1.2

Les logiciels de virtualisation doivent donc tromper les multiples systèmes d’exploitation fonction-nant en parallèle pour leur faire croire qu’ils sont installés seuls sur une machine, alors qu’en fait ilssont plusieurs à se partager les mêmes ressources. Pour ce faire, il faut que le logiciel de virtualisationsimule autant de « machines virtuelles » que de système d’exploitation. Chaque système d’exploitationne voit alors que sa propre machine virtuelle et les couches sous-jacentes à celle-ci sont alors totalementtransparente pour l’utilisateur .

1

Page 10: Syntèse sur la virtualisation (appliquée aux systèmes d

Presentation de la virtualisation Comment est née et d’où vient la virtualisation

Figure 1.2 – Système d’exploitation

1.2 Comment est née et d’où vient la virtualisation

Pour comprendre la mise en place de ces évolutions techniques, il faut ce replacer dans le contexteinitial. En 1956, le premier ordinateur à transistors est créé par la Bell Labs (le Tradic), les évolutionstechnologiques sont très rapides tant au niveau des machines développées que des systèmes d’exploitationpermettant leur utilisation. Ceux-ci permettant en quelques années de passer d’un stade de savoir-fairetechnique à celui de discipline scientifique.Trois années plus tard en juin 1959, Chirtopher Strachez se penche sur la multiprogramation temps par-tagé, et publie lors de la conférence internationale sur le traitement de l’information à l’UNESCO undocument nommé "Time Sharing in Large Fast Computer", document qu’il clarifiera en 1974 auprès deDonald Knuth en expliquant que son idée porte principalement sur la multiprogramation. Cette idéede multiprogrammation se rapporte à l’idée de ne plus attendre le chargement d’un périphérique, et depouvoir travailler sur une autre tâche sur son ordinateur.En 1961 le Massachussetts Institute of Technology (MIT) lance le projet MAC 1. Celui-ci a pour but letravail simultané de plusieurs personnes sur le même ordinateur afin d’éliminer les temps d’attente dutraitement par lots. On peut considérer que ce projet est le balbutiement des systèmes d’exploitationsmulti-tache et multi-utilisateur.Trois années plus tard (1964) le MIT s’allie avec Général Electric et les Bell Labs d’AT&T pour le projetMULTICS 2 dont le but est de développer un prototype de nouvel ordinateur ainsi qu’un nouveau sys-tème d’exploitation temps partagé (time sharing). Le but du projet est de créer un système d’exploitationpour ordinateur parfaitement fiable, capable de tourner 24H sur 24, 7 jours sur 7, utilisable par plusieurspersonnes à la fois et capable en même temps de faire tourner des calculs en tâche de fond.L’architecture ainsi que les les principes mis en oeuvre dans ce nouveau système d’exploitation sont reprispour concevoir le système Unix et différentes évolution venant par la suite.

En parallèle aux différentes recherches universitaire la société IBM 3 met en place des projets (à butindustriel) ayant pour but d’évaluer les concepts naissant sur le partage du temps. Le premier de cesprojet est : M44 / 44X.La décomposition de l’architecture est la suivante :

– une machine : IBM 7044 (M44) principale– d’autres machines où chacune est une image expérimentale de la machine principale (M44)

L’espace d’adressage de 44X réside dans la hiérarchie de la mémoire de M44, implémenté via de la mé-moire virtuelle et de la multiprogrammation.Par la suite IBM développe en 1967 la machine System/360. L’idée est de faire de la virtualisationmatérielle. Pour cela IBM reprend tous les concepts développés précédemment. Cette machine a la par-

1. MAC : Multi Access Computer2. Multiplexed Information and Computing Service3. IBM : International Business Machines, société multinationale américaine présente dans les domaines du matériel

informatique, du logiciel et des services informatiques - Crée en 1911.

Syntèse sur la virtualisation 2 INPG / CUEFA

Page 11: Syntèse sur la virtualisation (appliquée aux systèmes d

Presentation de la virtualisation Contexte dans lequel s’inscrit la virtualisation

ticularité de virtualiser toutes les interfaces matérielles via la Virtual Machine Monitor (VMM), et lesystème d’exploitation (ou hyperviseur) associé à celle-ci ce nommait le TSS (Time-Sharing Système).Pour cela la VMM s’exécute directement sur le matériel physique, ceci permet l’existence de plusieursmachines virtuelles (les VM). Chaque machine virtuelle fait tourner son propre système d’exploitation.Par la suite la machine évolue pour donner l’IBM 360/67, équipée d’un "hyperviseur" appelé CP/67, ca-pable de supporter plusieurs machines virtuelles 360/65 tournant sous des versions de système différents.CP/67 a engendré VM/CMS (CMS correspond à la notion de système de temps partagé)

L’évolution de ces architecture donne les mainframes 4, qui ont pût virtualiser leurs OS avec des tech-nologies spécifiques et propriétaires, à la fois logicielles et matérielles, le système GCOS de BULL en estun exemple.

Le schéma de la figure 1.3 présente une vue graphique et minimaliste de l’évolution de ces systèmesvers ce qu’il en est l’héritage aujourd’hui.

Figure 1.3 – Schéma simplifié de l’évolution des systèmes

1.3 Contexte dans lequel s’inscrit la virtualisation

1.3.1 Rappel sur "les structures en anneaux"Il est utile avant d’expliquer l’évolution des microprocesseurs avec les mécanismes d’instruction ré-

server aux machines virtuelles de bien comprendre comment un système d’exploitation gère ses privilèges.

Les processeurs x86 par l’intermédiaire des deux derniers bits (DPL) du registre CS [15] gèrent un mé-canisme (ou privilèges) nommé de façon courante "anneaux concentriques" 5. L’anneau 0 est l’anneau leplus privilégié (root), il permet l’exécution du noyau et des pilotes, et on l’appelle communément l’espacenoyau. On y trouve le code critique ou peut s’executer tout type d’instructions (gestion des interruptions,de la mémoire, changement d’état du processeur...). En général le système d’exploitation est prévu pourfonctionner sur cet anneau, il utilise des instructions critiques afin de répartir les ressources du processeurentre les différentes applications. Si un code plante dans l’anneau 0, le noyau ne peut pas récupérer et onse trouve confronté à un crash système.Les systèmes d’exploitation, utilisent uniquement les anneaux 0 et 3. L’anneau 3 inclut toutes les "applica-tions" et est dénommé espace utilisateur (cf. figure 1.4). En opposition à l’anneau 0 certaines instructionssont interdites. Si le code plante dans les anneaux 1, 2, ou 3, une exception matérielle est générée etle système peut reprendre grâce au code de l’anneau 0. C’est ce qui se produit par exemple avec uneapplication.

La problématique qui se pose lorque la virtualisation rentre en jeux, est qu’elle s’appuie sur un hyper-viseur ou un moniteur de machine virtuelle (VMM) qui partage les resources entre divers environnements

4. Le terme mainframe (Ordinateur central en français) est utilisé en informatique pour définir un ordinateur de grandepuissance de traitement.

5. Les anneaux concentriques ou niveaux de privilèges existent depuis l’architecture des processeurs 80286

Syntèse sur la virtualisation 3 INPG / CUEFA

Page 12: Syntèse sur la virtualisation (appliquée aux systèmes d

Presentation de la virtualisation Contexte dans lequel s’inscrit la virtualisation

Figure 1.4 – Principe structure en anneaux

d’execution. L’hyperviseur s’executant dans l’anneau 0, les machines virtuelles sous son contrôle, sontalors dans un niveau moins privilégié.

1.3.2 Vision de la structure en anneaux vue depuis les Machines virtuelles

Pour que le dispositif décrit paragraphe 1.3.1 fonctionne, il doit prendre en compte les différentestypes d’instructions que le processeur peut rencontrer :

– les instructions privilégiées qui nécessitent d’être dans l’anneau 0 pour pouvoir être exécutées ;– les instructions non privilégiées qui peuvent être traitées quel que soit l’anneau dans lequel elle sontexécutées ;

– les instructions sensibles (17) qui bien que non privilégiées ont un comportement non souhaitabledans un contexte de virtualisation (consultation ou modification de l’état de la machine, accès à lamémoire, etc.).

Ce sont ces dernières 17 instructions qui posent problème et où G. Popek et R. Golberg en font consta-tation dans leur ouvrage Formal Requierments for Virtualizable Third Generation Architectures [2].La parade trouvée pour contourner l’exécution de ces 17 instructions peut se regrouper en 2 catégories.

Modification du système d’exploitation

La modification du système d’exploitation hébergé permet "d’éliminer" toutes instructions sensiblesou privilégiées (cf. 1.4.2).

Interception des instructions sensibles

L’interception de toutes instructions privilégiées ou sensibles pour la faire exécuter par le managerde machine virtuelle (VMM). Les instructions privilégiées ne posent pas de problème car elles génèrent,des exceptions. Cependant ce n’est pas le cas pour les instructions sensibles, ce qui rend leur traitementbeaucoup plus délicat. Diverses solutions existent pour prendre en compte cet écueil parmi lesquelles ladétection et traduction à la volée du code problématique avec mise en cache des sections traduites commecela peut être mis en oeuvre dans la virtualisation complète (cf. 1.4.1).

Voila comment est organiser l’exécution d’instruction dans un processeur du point de vue hyperviseur.Il est à noter que la virtualisation demande un travail plus important , car il faut prendre en compte lagestion de la mémoire, des entrées-sorties, de l’horloge CPU...

Syntèse sur la virtualisation 4 INPG / CUEFA

Page 13: Syntèse sur la virtualisation (appliquée aux systèmes d

Presentation de la virtualisation Les différentes architectures de virtualisation [7]

1.3.3 Evolution des microprocesseurs

Afin d’optimiser et de simplifier les traitements d’instructions venant des couches logiques supérieurs(VM) les principaux fondeurs (Intel et AMD) au milieu des années 2000 cherchent à supprimer la nécessitéde surveillance et de traduction d’instructions pour les machines virtuelles.Dans le cas d’Intel, l’ajout d’instructions spécials ainsi qu’une nouvelle structure de contrôle (VMCS 6) estimplémentée. Elles ont pour but l’augmentation (à leur dire) "considérable" de la vitesse des hyperviseurs.Les problèmes d’exécution d’instructions dans les anneaux se voient gommé par, par exemple l’instruction"VM entry" qui permet la bascule du processeur dans un nouveau mode d’exécution dédié aux systèmesd’exploitation invités. Ainsi sont supprimés les problèmes liés à l’exécution de l’OS invité en anneau 3 :le système d’exploitation invité peut s’exécuter en anneau 3 et quand le contexte l’exige, le processeurbascule du mode invité au mode normal. Cette bascule est décidée par des conditions fixées par le moniteurde machine virtuelle à l’aide des bits de contrôle stockées dans la VMCS.

1.4 Les différentes architectures de virtualisation [7]

Il existe plusieurs catégories de virtualisation, chacune d’elles s’appuyant sur des technologies dif-férentes. Comme le détaille Lucas Bonnet dans son livre blanc : État de l’art des solutions libres devirtualisation pour une petite entreprise les techniques de virtualisation peuvent être approchées de plu-sieurs façons différente.

1.4.1 La machine virtuelle (virtualisation complète)

La machine virtuelle est probablement l’architecture la plus connu et la plus répendu. Il s’agit d’uti-liser un logiciel tournant sur l’OS 7 - (SE) hôte (ou Machine hote). Sa principale caractéristique est defournir des drivers permettant aux systèmes d’exploitation invités de croire qu’ils dialogue directementavec le matériel physique.Son rôle est de transformer les instructions du système invité en instructions pour le système hôte. Le sys-tème s’exécutant dans celle-ci est un système d’exploitation à part entière, tel que l’on pourrait l’installersur une machine physique (Ms windows, Linux, Mac Os x...). Par cette technique les périphériques sont

Figure 1.5 – Principe de la machine virtuel

donc émulé comme le montre le schéma de la figure 1.5. Cette solution isole bien les systèmes d’exploi-tation invités, mais a un coût. En premier lieu sur les performances, dont les principales victimes seront

6. VMCS pour : Virtual. Machine. Control. Structure, technologie des processeurs Intel pour gérer les machines virtuelles.7. Operating System ou en français Système d’exploitation.

Syntèse sur la virtualisation 5 INPG / CUEFA

Page 14: Syntèse sur la virtualisation (appliquée aux systèmes d

Presentation de la virtualisation Les différentes architectures de virtualisation [7]

les entrées-sorties. Ce coût, assez important déjà s’il suffit de protéger les instructions privilégiées, peutêtre très élevé si le processeur doit être intégralement émulé. Cette solution n’est pas non plus économeen mémoire, puisque aucune économie d’échelle ne peut être réalisée en ce qui concerne les OS (kernels)chargés.On notera également qu’une architecture à base de virtualisation complète, si le système hôte est mono-polisé par un processus utilisateur (par exemple un programme consommant énormément de mémoire),les systèmes invités peuvent se voir fortement ralentis dans leur activité.

Quelques exemples de logiciel :– VMWare Server : propriétaire, émulateur de plateforme x86,– Qemu : émulateur de plateformes x86, PPC, Sparc,– Microsoft VirtualPC et VirtualServer : propriétaire, émulateur de plateforme x86,– VirtualBox : émulateur de plateforme x86.

1.4.2 La Para-virtualisation

La para-virtualisation tout comme la virtualisation complète s’appuie sur une machine virtuel quiémule le matériel. La différence réside dans le fait que le système invité est modifier pour être exécutépar cette machine virtuel. Le but étant de rendre conscient le système invité qu’il ne s’exécute pas sur dumatériel physique mais sur une machine virtuel. Comme on peut le voir sur la figure 1.6, cet empilementde couches et cette gestion donne une architecture plus performante que la virtualisation complète car lesystème invité dialogue plus étroitement avec le système hôte.Pour donner plus de détails, les pilotes virtualisés échangent directement avec la machine virtuelle, celasans avoir à passer par une émulation du matériel. Pour cela, quelques pilotes et sous-systémes doiventêtre modifiés pour tirer pleinement parti de "l’accélération". De façon général, les parties du systèmehôte modifiés sont la gestion de la mémoire et la gestion des entrées-sorties qui sont en général les deuxgoulots d’étranglement (nombre de couches d’abstraction à traverser).

Figure 1.6 – Principe de la para virtualisation

Quelques exemples de logiciel :– VMWare ESX : propriétaire, hyperviseur sur plateforme x86,– Xen : noyau léger supportant des noyaux Linux, Plan9, NetBSD,

La para-virtualisation apporte donc un gain de performance avéré, cela en partie grasse au contournementdes couches d’abstraction comme le décrivent : A. Whitaker, M. Shaw, S. Gribble dans leur rapportLightweight virtual machines for distributed and networked applications [8]. Le système d’exploitation

Syntèse sur la virtualisation 6 INPG / CUEFA

Page 15: Syntèse sur la virtualisation (appliquée aux systèmes d

Presentation de la virtualisation Les différentes architectures de virtualisation [7]

invité ne se comporte plus comme un système d’exploitation s’exécutant directement sur du matériel,mais au contraire adapte son comportement pour que l’accès au matériel soit transformé en appel directà cette dernière.Cette augmentation des performance est cependant restreinte aux systèmes d’exploitation pouvant êtremodifié (modification des drivers). Cela est possible avec des systèmes d’exploitation dit libre (notammentGNU/Linux et les systèmes BSD) ou le code peux être "adapté", cependant cela reste très difficile surles systèmes propriétaires tel MSWindows ou MacOs.

1.4.3 Les systèmes à hyperviseur

Comme vue précédemment, la virtualisation complète ainsi que la para-virtualisation mette en oeuvre,pour émuler le matériel : des machines virtuelles. Les systèmes à Hyperviseur ne repose pas sur la mêmefaçon pour faire le liens entre le matériel et les systèmes invité. En effet chaque systèmes invité a unaccès presque direct au matériel par l’intermédiaire de l’hyperviseur. Le matériel accessible est donc celuide la machine physique, cela peux donc engendrer un gain de performances significatif par rapport à lapara-virtualisation notamment sur les entrée-sortie ou le système peux utiliser toutes les extensions despériphériques pour accélérer les transferts (cf : figure 1.7).Un des rôle de l’hyperviseur est de distribuer et gérer les ressources matériels. Celui-ci peut limiter parexemple la quantité de ram attribuée à tel ou tel système invité, idem pour la gestion CPU... Cela à pourconséquence d’isoler chaque machine virtuelle avec son propre pool de ressources ce qui n’influe pas surles performances des autres machines virtuelles.

Néanmoins tout comme avec la para-virtualisation les systèmes devant s’exécuter au dessus d’unhyperviseur doivent être portés. Le but étant la aussi d’adapter les couches bas niveau du systèmed’exploitation invité pour qu’elles puissent communiquées avec l’hyperviseur plutôt qu’avec le matériel.Ce portage est lourd, car il nécessite la modification de toutes les couches d’accès au matériel.

Figure 1.7 – Principe du noyau en espace utilisateur

1.4.4 Les techniques de cloisonnement (L’isolateur)

La dernière pratique répandue de virtualisation sont les techniques de cloisonnement. Elles visent àisoler les processus s’exécutant sur un même système d’exploitation. Chaque processus est donc isolédans un conteneur dont il est en théorie impossible de sortir (cf : figure 1.8). Cela à donc pour effet auniveau du processus une visibilitée réduite, ne sachant absolument pas quel autre processus s’exécutesur le système d’exploitation. Le but principale de cette technique étant l’amélioration de la sécurité dessystèmes d’exploitation des des applications.Sur les systèmes d’exploitation de type Linux, ceux-ci disposent nativement cette fonction qui s’effectuegrâce à la commende "CHROOT". En effet celle-ci permet de crée un environnement minimal contenant

Syntèse sur la virtualisation 7 INPG / CUEFA

Page 16: Syntèse sur la virtualisation (appliquée aux systèmes d

Presentation de la virtualisation Les principales solutions du marché

Figure 1.8 – Principe de l’isolateur

uniquement ce qui est strictement nécessaire pour exécuter le programme "isolé". JAIL proposé sur lessystèmes de type BSD 8 est plus ressente et un peux plus complète de même que plus souple dans sonutilisation.Ces technologies ont en commun de s’appuyer sur la même instance du système d’exploitation, celui-ciest accessible aux processus isolés mais ne pourra pas exécuter un processus d’un système d’exploitationautre que celui sur lequel il repose.

1.5 Les principales solutions du marché

Les outils de virtualisation disponible sur le marché pour processeur de type X86 sont nombreux. Lefocus sera fait sur trois outils majeurs donc un leader : VmWare (75% de part de marché en octobre 2008,source Cabinet Gartner), ainsi que deux autres outils KVM et Xen tous deux challenger sérieux a ne pasnégliger.

1.5.1 KVM

KVM (Kernel-based Virtual Machine – machine virtuelle dans le noyau) est un projet très récent,créé en 2006 par la société Qumranet 9 et rachetée en septembre 2008 par Red-Hat. Aujourd’hui IBMfinance une partie de ce projet en y dédiant une ressource à temps plein. Il peux être également amusantde souligner que l’un des créateurs de la société Qumranet est aussi un des fondateurs de la sociétéXenSouces (cf : 1.5.3) !

Technologie mise en oeuvre sous KVM

Kvm s’apparente technologiquement à un virtualiseur complet. Le virtualiseur réel associer à celui-ciest en réalité une version patchée de Quemu. De plus pour optimisé la virtualisation KVM s’appuie sur lesjeux d’instruction CPU spécifique des architecture X86 récente. Comme le décrivent dans leurs rapportsles auteurs du rapport "kvm : the Linux Virtual Machine Monitor " de la conférence d’ottawa [9] celui-cice compose :

– d’un module noyau qui utilise les instructions de virtualisation et communique avec le processeur,– d’un programme utilisateur, qui utilise le module noyau pour toutes les opérations privilégiées.

KVM s’intègre donc comme un module du kernel, celui- est vue comme un périphérique dédié à lavitualisation (/dev/kvm) et dont l’interface est utilisée par un autre programme (programme utilisateur)

8. BSD : Berkeley Software Distribution, famille de systèmes d’exploitation informatique dérivée d’UNIX,9. Qumranet : société israélienne spécialisée en technologies de virtualisation

Syntèse sur la virtualisation 8 INPG / CUEFA

Page 17: Syntèse sur la virtualisation (appliquée aux systèmes d

Presentation de la virtualisation Les principales solutions du marché

afin de mettre en place l’espace d’adressage, d’entrée-sortie et l’affichage de la machine virtuelle dansl’espace utilisateur.

Fonctionnalités disponibles sous KVM

KVM etant basé sur l’outils Qemu, il reprend donc toutes ces fonctionnalitées à savoir :– une facilité d’usage,– une technologie d’image disque Copy-on-write,– une gestion du réseau en mode TAP, user mode networking, Vlan virtuel,

Et ceci avec des performances pour les systèmes invité plus élevé que Qemu grâce aux instructions devirtualisation CPU. KVM permet aussi le management des machines virtuelles et la migration à chaudde celle-ci.

1.5.2 VmWare (ESX)

VmWare est une société qui propose des solutions du même nom (propriértaire) de virtualisation pourles architecture de type X86. Cette société, fondé en 1998 et racheté en 2004 par EMC 10 est implanté defaçon dominante sur le marché de la virtualisation grâce à son logiciel Vmware ESX.

Technologie mise en oeuvre sous VmWare

Dans ESX la virtualisation est mis en oeuvre par une machine virtuelle, la virtualisation est donc"complète" et quatre resources sont clés : le CPU,la mémoire, le disque dure et le réseau. Elle ce composeentre autre d’un Bios, d’une carte mère avec chipset Intel, de processeurs, carte réseau, SCSI, disquettes...Toutes ces ressources sont allouées de façon dynamique par l’intermédiaire du gestionnaire de resources.Les pilotes des périphériques ainsi que les systèmes de fichier (VMFS) sont quant à eux gérés par leservice console, ces deux brique constituent le VMkernel.Le moniteur de machine virtuel est charger de virtualiser le processeur, et de faire les différents mappingpour la mémoire, les requets d’entrées-sorties (fournient au VMkernel). L’architecture de virtualisationest donc composée du VMKernel ainsi que du moniteur de machine virtuelle dont le schéma est décritfigure 1.9(sources : VMware ESX Server 2 Architecture and Performance Implications [11])

Figure 1.9 – Architecture de VmWare ESX (source VmWare Inc.)

10. EMC Corporation est une entreprise américaine de logiciels et de systèmes de stockage fondée en 1979

Syntèse sur la virtualisation 9 INPG / CUEFA

Page 18: Syntèse sur la virtualisation (appliquée aux systèmes d

Presentation de la virtualisation Les principales solutions du marché

Fonctionnalités disponibles sous VmWare [16]

ESX se manage par une interface graphique nommée Virtual Infrastructure. Via celle ci la possibilitéest donnée de manager un ou plusieurs serveur ESX ainsi que les machines virtuelles hébergées sur lesDatacenter (regroupant le stockage de VM sur les serveurs ESX ainsi que sur les stockage déportés commeles LUN des baies de stockage sur réseau SAN). Il est également grâce a l’interface de management defaire des snapchots, cloner, faire des templates, des VM, ainsi que des migration a froid de même qu’achaud avec certaines contraintes.Un autre point non négligeable, le système de fichier de ESX permet de faire de l’extension de fichierVMFS dynamiquement pour grandir un volume sans recréer le LUN ou simplement crée des volumessupérieurs à 2Go.ESX étant basé sur un noyaux de type linux il est également possible de scripter une majorité descommandes disponible sous l’interface graphique dans le but de réaliser l’installation, le déploiement, oula maintenance des VM.

1.5.3 XenXen est un contrôleur de machines virtuelles pour les architectures x86, développé à l’origine par l’uni-

versité de Cambridge au Royaume -Uni sous le nom de Xenoserver, le but étant d’héberger une centainede système invité sous une seule machine physique. En 2003, les initiateurs du projet fonde la sociétéXenSource dans le but de promouvoir le projet. En 2007 le projet et racheté par Citrix 11.

Le but de cet outil de virtualisation est de proposer un outils très simple d’utilisation à l’admi-nistrateur. Cela cache toutefois une véritable complexité technique non négligeable qu’il est souhai-table de connaître et de maîtrisé pour exploité au mieux ces possibilité (cf : documentation officiel enligne, [13], [14]).Xen se décline en plusieurs produits, une version libre (version actuel 3.3) et une version propriétairepayante ou le nombre de machines virtuelles supportées n’est pas restreint, néanmoins la technologie estidentique et donc non "bridée" sur la version libre, ce qui engendre donc des performances identiquesentre les produits.

Technologie mise en oeuvre sous Xen

Cet outil de virtualisation est un hyperviseur (cf 1.4.3), c’est donc lui qui accède au matériel de façonexclusive et répartit les ressources aux systèmes invités. Cependant il est aussi considéré comme unesolution de paravirtualisation du fait que les couches basse des systèmes d’exploitation hôte doivent êtremodifiées (voir schéma d’architecture figure [?]).Afin de pouvoir virtualiser des systèmes d’exploitation "propriétaire", comme on peux le voir dans leOfficial User’s Manual [12] ; Xen a recours aux instructions de virtualisation des CPU, dans le but d’ou-trepasser l’impossibilité de patcher ces systèmes, l’exemple le plus parlant étant MS Windows.

Xen s’appuie également sur des niveaux de privilèges pour gérer ses machines virtuelles. Deux niveauxcohabitent :

– le domaine zéro (dom0) : premier domaine démarré au boot de l’hyperviseur. Il possède des privilègesspéciaux comme le faite d’accéder au disque dure directement, de démarrer/arreter de machinesvirtuelles,

– le domaine utilisateur (domU) : domaine des systèmes d’exploitation invités (VM). L’accès a lademande de matériel ce faisant entre autre par BackendDriver et FrontendDriver.

Fonctionnalités disponibles sous Xen

Xen possède des outils permettant une configuration pointu. Il prend en effet en charge la gestion desinterfaces réseau en créant pour chaque système invité une interface virtuelle qui seront toutes redirigées

11. Citrix Systems, Inc : société américaine d’édition de logiciel et de solutions materielles. Acquière XenSource, pour unmontant d’environ $ 500 millions. Citrix entre ainsi dans le marché prometteur de la virtualisation sur les serveurs et lesstations de travail.

Syntèse sur la virtualisation 10 INPG / CUEFA

Page 19: Syntèse sur la virtualisation (appliquée aux systèmes d

Presentation de la virtualisation Les principales solutions du marché

Figure 1.10 – Architecture de Xen (source [10].)

vers une interface physique via un système de pont (on parle alors de "Bridge").Pour ce qui est du stockages des hôtes invités, cela se fait simplement sur un fichier dans un répertoiredu système hôte, qui pourrait par exemple être basé sur ext3. C’est fichiers peuvent être pour des besoinsde performance ou de sécurité être placé sur des partitions dédiées.Xen permet aussi le management poussé des machines virtuelles, les performances (consommation dutemps processeur et de la mémoire allouée) peuvent être affinées grâce aux fichiers de configurations, lesmachines virtuelles migrées à chaud.

Malgré tous ces points positif Xen reste un outil extrêmement complexe si on souhaite en tirer toute sapuissance. Mais cette complexitée a un impact directe sur les performances qui peuvent être très prochesd’un système d’exploitation s’exécutant directement sur une machine physique sans virtualisation.

1.5.4 BilanLes trois outils vue précédemment permettant de mettre en place une infrastructure de machines

virtuelles, ils s’utilisent dans des contextes et mettent en oeuvre des technologies différentes.Le tableau suivant propose le rappel des types de virtualisation mis en oeuvre dans ces outils :

VmWare KVM XenVirtualisation Complète X XPara-Virtualisation (x) XHyperviseur X

Table 1.1 – Rappel des technologies de virtualisation VS solutions de virtualisation.

Syntèse sur la virtualisation 11 INPG / CUEFA

Page 20: Syntèse sur la virtualisation (appliquée aux systèmes d

Presentation de la virtualisation Les principales solutions du marché

Syntèse sur la virtualisation 12 INPG / CUEFA

Page 21: Syntèse sur la virtualisation (appliquée aux systèmes d

Chapitre 2Management de la mémoire entre Xen et cesmachines virtuelles

La deuxième partie de cette étude a pour but de présenter les mécanismes de gestion de la mémoiremis en oeuvre entre l’hypersiseur de Xen et ces machines virtuelles.Le but étant de comprendre les mécanismes s’articulant de la demande du système invité à l’hyperviseuret de l’hyperviseur à la mémoire physique. figure 2.1

Figure 2.1 – Schéma simplifié représentant les mécanismes de mappage entre la mémoire physique et lamémoire virtuelle du système d’exploitation hôte.

2.1 Attribution et gestion de la mémoire des machines virtuelles

Dans Xen, l’hyperviseur est chargé de contrôler les allocutions mémoires. Il gère la mémoire de cesmachines virtuelles via un ficher de configuration (paramètre "memory=X" avec X méga-octés), et celapour chaque machines virtuelles. Pour rappel Xen gère ces machines virtuelles dans des DomU (cf.1.5.3),et la mémoire alouée au Dom0 est le reste de la mémoire physique disponible. La modification de cettevaleur est possible "à la volée" sous certaines conditions comme de ne pas passer sous la taille fixée dansles fichiers de configuration et de ne pas sur la somme des machines virtuelles dépasser la taille mémoireprésente sur la machine physique (via la commande shell "xm mem-set <DomainName> <Mem>").

13

Page 22: Syntèse sur la virtualisation (appliquée aux systèmes d

Management de la mémoire entre Xen et ces machines virtuellesLa translation d’adresse virtuelle [17] [10]

2.2 La translation d’adresse virtuelle [17] [10]Les procédés mis en oeuvre sous Xen pour la gestion de la mémoire des systèmes d’exploitation invités

repose sur ce qui pourrait ce traduire en français par des translations d’adresses virtuelles, faisant le lienentre les adresses de la mémoires physique et les cases mémoires demandées par les systèmes invités.Les développeurs de Xen ont tenté pour la virtualisation de la mémoire de le faire "au moindre coûts".En effet il n’a pas été mis en oeuvre comme par exemple dans VmWare de fournir pour chaque systèmed’exploitation invité une "virtual page" non visible de la MMU 1

2.3 Gestion de la mémoireEn ce qui concerne l’allocation mémoire, Xen réside dans une petite partie de la mémoire physique

de même qu’il se réserve, sur chaque espace d’adressage virtuelle du domaine, les 64 premier méga-octésde l’adressage virtuel, le reste étant laissé à l’usage du système d’exploitation hôte (on parle de "pagegranularity). L’allocation peux être faite de façon non contiguë sur la mémoire physique.Des mécanismes de "Balloon driver" peuvent également être gérés sur les systèmes d’exploitation invitéspour ajuster l’allocation mémoire de façon dynamique sans pour autant dépassé les limites fixées. Parce procédé les allocations de mémoire ce font pour chaque systèmes d’exploitation invités, ceux-ci sontisolés les uns des autres avec ce système de "partitionnement mémoire" (cf : figure 2.2).

Il peux être utile de préciser que beaucoup de système d’exploitation on des difficulté à supporterpour leurs opérations la fragmentation de l’espace d’adressage physique. Sous Xen pour faciliter la cettecontrainte les systèmes invités sont exécuté au dessus de la couche Xen.

Il faut bien avoir à l’esprit que le mémoire machine est différente de la pseudo memoire physique.La mémoire machine est la définition de toute la mémoire disponible sous sur la machine physique, elleinclue également la petite partie réservé par Xen comme vue précédemment. Celle-ci est divisée en bloquede 4K, et numérotée de façon consécutive et invariant que ce soit dans le cadre de Xen ou-bien dans lesdomaines (Système d’exploitation invité).La pseudo-memoire physique qui est celle vue par le système d’exploitation invité. Elle est présenté parXen de façon contiguë comme on peux le voir sur la figure 2.2.

Toute la subtilité de Xen est de proposer des tables de correspondance (mapping) entre les adressesphysique et les adresses pseudo-physique de l’hyperviseur comme évoqué paragraphe 2.2.Ces tables de correspondance se classe en deux catégories. D’un coté les tables dites Globales, composéde la table : "Machine-to-physical table", cette table reprend entièrement les adresses de la mémoirephysique et est donc proportionnelle en taille à la quantité de mémoire installée dans la machine. Del’autre les tables spécifiques aux domaines (dom-U), est ce compose de : "Page Table" qui est la structurede données utilisé par le système de mémoire virtuelle faisant le mapping entre les adresses virtuelleet physique , "Physical-to-Machine table" qui donne la correspondance entre les ’pseudo physical pagenumber’ et les ’machine page number’, et "Grant Table" qui fournis un mécanisme de correspondancemémoire entre les domaines (un tableau par domaine).La figure 2.3 donne le détaille de la structure de ces tables.

Cette architecture dépend du code dans le système d’exploitation invité, cela permet alors d’utiliserles tables ’machines-to-physical’ et ’physical-to-machnie’ pour fournir l’abstraction de la mémoire pseudo-physique. De façon général,seule centaine parties spécialisé du système d’exploitation (comme la ’pagetable management’) à besoin d’avoir connaissance sur la machine et les pseudo adresses physique.

1. memory-management unit :

Syntèse sur la virtualisation 14 INPG / CUEFA

Page 23: Syntèse sur la virtualisation (appliquée aux systèmes d

Management de la mémoire entre Xen et ces machines virtuelles Gestion de la mémoire

Figure 2.2 – Mapping mémoire sous Xen (source [10]).

Figure 2.3 – Structure des données utilisé dans Xen pour aceleré la virtualisation de la mémoire (source[10]).

Syntèse sur la virtualisation 15 INPG / CUEFA

Page 24: Syntèse sur la virtualisation (appliquée aux systèmes d

Management de la mémoire entre Xen et ces machines virtuelles Gestion de la mémoire

Syntèse sur la virtualisation 16 INPG / CUEFA

Page 25: Syntèse sur la virtualisation (appliquée aux systèmes d

Conclusion

L’étude présentée ici est principalement orientée sur les technologies dédiées aux systèmes d’exploita-tion s’appuyants sur des modèles de processeurs de type X86, en faisant un rapide tous des technologiesdisponibles aujourd’hui. Mais la virtualisation ne s’arrête pas seulement sur ces architectures. En effetd’autre système existe, comme par exemple les serveurs IBM avec processeurs PowerPC ayant des sys-tèmes de virtualisation qui leurs étant propre.

Comme il l’a été présenté dans cette synthèse la virtualisation est très communément utilisé et peuxs’appuyer sur des solutions pouvant être gratuite et soutenue pour une partie pas la communauté dumonde libre ou payante et propriétaire, le choix étant donné à la philosophie de la personne décidant demettre en oeuvre ces solutions en place.

Bien évidement, comme vue dans la première partie de ce document la virtualisation tel que nous laconnaissons aujourd’hui n’est qu’une succession de révolution technologique s’adaptant aux besoin envi-ronnant.

Outre la technique, il peut être utile de rappeler que la virtualisation ce doit d’impacter le businessen garantissent la pérennité de l’organisation en mettant rapidement en place des infrastructures agiless’adaptant rapidement à un marché en constante évolution, mais aussi le financier, comme en réduisantles coûts et repousant l’investissement, ou bien encore l’opérationnel, en facilitant l’administration desressources. Et c’est en l’utilisant à ces fins que le benefice tiré pourra être le plus grand.

Pour avoir plus d’informations et de détailles sur ce sujet l’auteur vous invite à vous reporter à sabibliographie.

17

Page 26: Syntèse sur la virtualisation (appliquée aux systèmes d

Conclusion

Syntèse sur la virtualisation 18 INPG / CUEFA

Page 27: Syntèse sur la virtualisation (appliquée aux systèmes d

Table des figures

1.1 Principe générale de la virtualisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.2 Système d’exploitation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.3 Schéma simplifié de l’évolution des systèmes . . . . . . . . . . . . . . . . . . . . . . . . . . 31.4 Principe structure en anneaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41.5 Principe de la machine virtuel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51.6 Principe de la para virtualisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61.7 Principe du noyau en espace utilisateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71.8 Principe de l’isolateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81.9 Architecture de VmWare ESX (source VmWare Inc.) . . . . . . . . . . . . . . . . . . . . . 91.10 Architecture de Xen (source [10].) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

2.1 Schéma simplifié représentant les mécanismes de mappage entre la mémoire physique et lamémoire virtuelle du système d’exploitation hôte. . . . . . . . . . . . . . . . . . . . . . . . 13

2.2 Mapping mémoire sous Xen (source [10]). . . . . . . . . . . . . . . . . . . . . . . . . . . . 152.3 Structure des données utilisé dans Xen pour aceleré la virtualisation de la mémoire (source

[10]). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

19

Page 28: Syntèse sur la virtualisation (appliquée aux systèmes d

TABLE DES FIGURES TABLE DES FIGURES

Syntèse sur la virtualisation 20 INPG / CUEFA

Page 29: Syntèse sur la virtualisation (appliquée aux systèmes d

Liste des tableaux

1.1 Rappel des technologies de virtualisation VS solutions de virtualisation. . . . . . . . . . . 11

21

Page 30: Syntèse sur la virtualisation (appliquée aux systèmes d

LISTE DES TABLEAUX LISTE DES TABLEAUX

Syntèse sur la virtualisation 22 INPG / CUEFA

Page 31: Syntèse sur la virtualisation (appliquée aux systèmes d

Glossaire

Glossaireext3 Système de fichiers utilisé notamment par GNU/Linux et est une évolution de ext2, le précédent

système de fichiers. Il a pour principale caractéristique la gestion d’un journal permettant d’éviterla longue phase de récupération lors de l’arrêt brutal de la machine ... 11

Hyperviseur couche logicielle servant à séparer différents systèmes d’exploitation au sein d’une machinevirtualisée. Tous les systèmes de virtualisation n’ont pas forcément recours à un hyperviseur (cer-tains peuvent faire de l’émulation pure, par exemple). Xen est un exemple d’hyperviseur, dont lerôle vis-à-vis des différents domaines (machines virtuelles) est comparable au rôle d’un noyau Unixvis-à-vis des différents processus qui s’exécutent sur la même machine.. 7

Machine hote ordinateur physique hébergeant un ensemble de machines virtuelles.. 6MMU unité de gestion mémoire (MMU pour Memory Management Unit) est un composant informa-

tique responsable de l’accès à la mémoire demandée par le processeur. Sur le matériel ancien, elleétait indépendante du processeur. Ainsi à l’époque des premiers microprocesseurs, il s’agissait d’uncircuit intégré à part. Puis la MMU a été intégrée aux microprocesseurs, à partir du 80386 pour lagamme Intel x86, à partir du 68030 pour la gamme Motorola 680x0. L’unité de gestion mémoirefait désormais partie intégrante de tous les microprocesseurs récents.. 14

Page Table à pour rôle de faire la relation entre les adresses des pages d’adresses virtuelles et les portionde la mémoires physique. La disposition des données dans la mémoire physiques peux de ce faitpour un processus être non contiguë.. 15

Quemu Emulateur de système libre (développé par Fabrice Bellard) permettant de faire tourner un ouplusieurs systèmes d’exploitation (ou seulement des processus) sur un système d’exploitation déjàinstallé sur la machine. QEMU permet d’exécuter un ou plusieurs systèmes d’exploitation (et leursapplications) de manière isolée sur une même machine physique et fonctionne sur les plateformes x86,x86-64, PPC, Sparc et ARM ainsi que sous les systèmes d’exploitation Linux, FreeBSD, NetBSD,OpenBSD, Mac OS X, Unix et Windows.Les OS invités partagent ainsi les ressources de la machine physique et n’ont pas "conscience" d’êtrevirtualisés. Ils n’ont donc pas besoin d’être adaptés pour fonctionner sur QEMU.. 9

SE Système d’Exploitation (en anglais Operating System ou OS) est un ensemble de programmes respon-sables de la liaison entre les ressources matérielles d’un ordinateur et les applications informatiquesde l’utilisateur. Il fournit aux programmes d’application des points d’entrée génériques pour lespériphériques.. 6

Tradic TRAnsistor DIgital Computer fut la première machine à n’utiliser que des transistors et desdiodes et aucun tube à vide. il fut construit par Bell Labs pour l’US Air Force qui était intéressépar le caractère léger d’un tel ordinateur pour un usage embarqué. Cette machine était constituée de700 transistors et 10000 diodes. En deux ans d’utilisation continue, seules 17 de ces diodes faillirentce qui dépassait considérablement la fiabilité les tubes à vide.. 2

23

Page 32: Syntèse sur la virtualisation (appliquée aux systèmes d

Glossaire Glossaire

VMFS Système de fichiers propriétaire de VMware sur lequel résident les fichiers représentant les disquesvirtuels des VM. Il a été conçu dans le but d’offrir un niveau de performance élevé, la possibilité destocker de très gros fichiers et l’accès concurrent depuis plusieurs machines (dans le cas d’un SAN).La fonctionnalité de migration d’une machine virtuelle d’un hôte à un autre ou la mise en placed’une grappe de serveurs virtuels requièrent cette fonctionnalité.. 10

VMM Virtual Machine Manager (IBM). IBM Virtual Machine Manager est une extension d’IBM Di-rector proposée en option. VMM permet de gérer des machines physiques et virtuelles à partird’une seule console. La combinaison d’IBM Director et de VMM permet de gérer à la fois des en-vironnements VMware ESX Server et Microsoft Virtual Server. VMM intègre également VMwareVirtualCenter et IBM Director pour une gestion avancée des machines virtuelles.. 3

Syntèse sur la virtualisation 24 INPG / CUEFA

Page 33: Syntèse sur la virtualisation (appliquée aux systèmes d

Bibliographie

[1] J. H. Saltzer. Traffic Control in a Multiplexed Computer System. (thèse), Cambridge, MassachusettsInstitue of Technology, 1966.

[2] G. J. Popek et R. P. Goldberg. Formal Requierments for Virtualizable Third Generation Architectures.Communications of the ACM, 17(7) p.412-421, Juillet 1974.

[3] D. du Colombier et J.B Campesato. Histoire d’Unix. 9 juillet 2008.Disponible au format pdf : http://www.9grid.fr/articles/unix_article.pdf.

[4] M. Re Ferre’, D. Pomeroy, M. Wahlstrom, "et al.". Virtualization on the IBM System X3950 Serverdans IBM Red books. International Technical Support Organization, p. 4-14, première édition Juin2006.

[5] T. Van Vleck. The IBM 360/67 and CP/CMS. première édition 1995, .décembre 2005.[6] R.J. Creasy. The Origin of the VM/370 Time-sharing System. dans the IBM Journal of Research and

Development, Vol. 25, No. 5, p.483 - 490, September 1981.[7] L. Bonnet. Etat de l’art des solutions libres de virtualisation pour une petite entreprise. Bearstech,

Edition du 7 décembre 2007.Disponible au format pdf : http://bearstech.com/files/LB-virtualisationEntrepriseBearstech.pdf.

[8] A. Whitaker, M. Shaw, S. Gribble. Lightweight virtual machines for distributed and networked appli-cations. USENIX Annual Technical Conference, juin 2002.

[9] A. Kivity, Y. Kamay, D. Laor "et al.". kvm : the Linux Virtual Machine Monitor. Conférence duLinux Symposium, Ottawa Canada, Juin 2007.

[10] P. Barham, B. Dragovic, K. Fraser "et al.". Xen and the art of virtualization. University of Cambridge(ISBN :1-58113-757-5), 2003.

[11] VMware Inc. VMware ESX Server 2 Architecture and Performance Implications. [en ligne] http://www.vmware.com/pdf/esx2_performance_implications.pdf, août 2005.

[12] XenSource Inc. Xen, User’s Manual. [en ligne] http://www.cl.cam.ac.uk/research/srg/netos/xen/readmes/user/user.html. 05 janvier 2008.

[13] Citrix Systems, Inc. Xen, Interface manual. [en ligne] http://wiki.xensource.com/xenwiki/XenDocs. 24 janvier 2009.

[14] Citrix Systems, Inc. Xen, User manual. [en ligne] http://wiki.xensource.com/xenwiki/XenDocs.24 janvier 2009.

[15] D.P. Bovet, M. Cesati, E. Chaput, "et al.". Le noyaux linuxl. Publié par O’Reilly France, 2001[16] NetFective Creative Technologie Formation VmWare Infrastructure 3. OpTeam mai 2008[17] A. Krapf XEN Memory Management (Intel IA-32). INRIA (Sophia Antipolis), Octobre, 2007

25