Facul t´ Facult´ e des Sci Science encess D´ epart ementt d’Inf epartemen d ’Informat ormatique ique
La Vir Virtualisa tualisation tion
Fran¸ cois Santy cois
Projet de Recherche et Communication Scientifique Ann´ee ee acad´emique emiq ue 200 2009 9 - 201 2010 0
Table des mati`eres eres 1
Introduction
1
2
De´ finition
2
3
Les domaines de la virtualisation 3.1 La virtualisation d’applications 3.2 La virtua virtualis lisati ation on de re´ seaux . . 3.3 La virtualisation de stockage . 3.4 La virtualisation de serveurs . .
4
Les avantages de la virtualisation
5
5
Les Les inco inconv´ nv´enients de la virtualisation
7
6
Les principes de la virtualisation 6.1 Vocabulaire . . . . . . . . . . . . 6.2 Pre´ requis . . . . . . . . . . . . . 6.3 Th´eor` eor`emes . . . . . . . . . . . . 6.4 Composants d’un hyperviseur
7
Les Les prob probl` l`emes emes li´es es a` la virtualisation
11
8
La virtua virtualis lisati ation on mat´erielle
13
9
Les diffe´ rents types de virtualisation 9.1 Machine virtuelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.2 Para-virtualisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.3 Virtualisatio irtualisation n au niveau du syst` syste` me d’exploitation . . . . . . . . . . . . . . . .
14 14 16 16
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
2 2 3 3 5
8 9 9 10 11
10 Conclusion
18
A Les 18 instru instruction ctionss probl´ probl´ematiques de x86
20
1
INTRODUCTION
1 Introduction La virtualisation est un outil qui change radicalement l’approche de l’informatique en repoussant les limites de nos ordinateurs. Il s’agit d’une technologie a` la port´ee de tous, du particulier qui souhaite ex´ecuter en toute s e´ curit´e une distribution Linux sur sa plate-forme Windows, aux grandes entreprises qui souhaitent rentabiliser davantage leur infrastructure informatique. Dansce document, nous commencerons parpr´esenter bri`evement lesdiff e´ rents domaines de la virtualisation, pour nous concentrer ensuite plus particuli`erement sur la virtualisation des serveurs. Apr`es avoir pr´esent´e l’historique de cette technologie nous explorerons les avantages et les inconv´enients qu’elle pr´esente. Nous nous attarderons ensuite sur la th e´ orie de Popek et Goldberg, deux chercheurs am´ericains qui se sont rapidement int´eress´es a` la virtualisation et en ont pose´ les bases. Nous nous rendrons compte par la suite que les ordinateurs actuels ne respectent malheureusement pas compl`etement cette th e´ orie, et que cela pose de nombreux probl e` mes en terme d’impl´ementation des syst`emes de virtualisation. Nous montrerons par apr`es qu’il est possible de r e´ soudre ces probl`emes au moyen de technologies mat´erielles d’aide a` la virtualisation. Nous terminerons notre analyse par une rapide pr´esentation des grandes classes de strat´egies de virtualisation.
1 / 20
3
LES DOMAINES DE LA VIRTUALISATION
2 D´efinition “Virtualization is a term that refers to the abstraction of computer resources.” “[...] virtualization is a framework or methodology of dividing the resources of a computer into multiple execution environments, by applying one or more concepts or technologies such as hardware and software partitioning, time-sharing, partial or complete machine simulation, emulation, quality of service, and many others.” [14] “Virtualization is the creation of a virtual (rather than actual) version of something, such as an operating system, a server, a storage device or network resources.” [1] Nous voyons que la virtualisation repose sur trois e´ l´ements importants : 1. L’abstraction des ressources informatiques ; 2. La r´epartition des ressources par l’interm e´ diaire de di ff e´ rents outils, de mani`ere a` ce que celles-ci puissent eˆ tre utilis´ees par plusieurs environnements virtuels ; 3. La cr´eation d’environnements virtuels. Ces trois concepts fondamentaux nous am`enent a` donner la d´efinition suivante de la virtualisation : La virtualisation est un processus qui va permettre de masquer les caract´ eristiques physiques d’une ressource informatique de mani`ere a` simplifier les interactions entre cette ressource et d’autres syst`emes, d’autres applications et les utilisateurs. Elle va permettre de percevoir une ressource physique comme plusieurs ressources logiques et, invers´ ement, de percevoir plusieurs ressources physiques comme une seule ressource logique.
3 Les domaines de la virtualisation 3.1 La virtualisation d’applications La virtualisation d’application est une technologie logicielle qui va permettre d’am´eliorer la portabilit´e et la compatibilit´e des applications en les isolant du syst`eme d’exploitation sur lequel elles sont ex´ecut´ees. Elle consiste a` encapsuler l’applicationet son contexte d’ex´ecution syst`eme dans un environnement cloisonn´e. La virtualisation d’application va n´ecessiter l’a jout d’une couche logicielle suppl e´ mentaire entre un programme donn´e et le syste` me d’exploitation ; son but est d’intercepter toutes les op e´ rations d’acc`es ou de modification de fichiers ou de la base de registre 1 afin de les rediriger de mani`ere totalement transparente vers une localisation virtuelle (g´en´eralement un fichier). Puisque cette op e´ ration est transparente, l’application n’a pas notion de son e´ tat virtuel. Le terme virtualisation d’application est trompeur puisqu’il ne s’agit pas de virtualiser l’application mais plut oˆ t le contexte au sein duquel elle s’ex´ecute (registres du processeur, syst e` me de fichiers,...).
F. 1 – Virtualisation d’applications 1
La base de registre est utilis´ee par les syst`emes Windows qui y renseignent les donn´ees de configuration du syst`eme d’exploitation et des autres logiciels install e´ s
2 / 20
3
LES DOMAINES DE LA VIRTUALISATION
La virtualisation d’applications a de nombreux avantages : elle permet d’ex´ecuter des applications qui ont e´ t´e d´evelopp´ees pour d’autres environnements d’ex e´ cution (p. ex. Wine permet d’ex´ecuter des applications Windows sur une plateforme Linux) ; elle prot`ege le syst`eme d’exploitation hote ˆ en s’assurant que l’application virtualis´ee ne viendra pas interagir avec les fichiers de configuration du syst`e me; elle e´ vite de faire appel a` une machine virtuelle qui consomme plus de ressources ; elle autorise l’ex´ecution de code incorrect (p. ex. une application pourrait vouloir e´ crire un fichier dans un r´epertoire syst`eme dont elle ne poss`ede que les droits en lecture).
3.2 La virtualisation de r´eseaux De mani`ere g´en´erale, la virtualisation des r´eseaux consiste a` partager une mˆeme infrastructure physique (de´ bit des liens, ressources CPU des routeurs,...) au profit de plusieurs r´eseaux virtuels isol´es. Un VLAN (Virtual Local Area Network) est un r´eseau local regroupant un ensemble de machines de fac¸on logique et non physique. Puisqu’un VLAN est une entit´e logique, sa cr´eation et sa configuration sont r´ealis´ees de mani`ere logicielle et non mat e´ rielle. On distingue plusieurs types de r´eseaux virtuels : • Les r´ eseaux virtuels de niveau 1, appel e´ s r e´ seaux virtuels par port ( port-based VLAN ) : ils d´efinissent un r´eseau virtuel en fonction des ports de raccordement sur le commutateur (switch). Ainsi, chaque port du commutateur est associ e´ a` un r´eseau virtuel, ind´ependamment de la machine qui y est physiquement raccord e´ e. Le principal inconv´enient d’un VLAN de niveau 1 est sa rigidit´e : si une station se raccorde physiquement au r´eseau par l’interm´ediaire d’un autre port du commutateur, alors il est n´ecessaire de reconfigurer ce commutateur afin de r´eint´egrer la station dans le bon r´eseau virtuel. • Les r´ eseaux virtuels de niveau 2, appel e´ s r´eseaux virtuels par adresse MAC ( MAC address-based VLAN ) : ils consistent a` d´efinir un r´eseau virtuel sur base des adresses MAC desstations. Uneadresse MAC estun identifiant uniqueimpl´ement´e danschaque adaptateur r´eseau. Ce type de VLAN est beaucoup plus souple que le pr´ec´edent car il est ind´ependant de la localisation de la machine. • Les r´ eseaux virtuels de niveau 3. On distingue principalement deux types de VLAN de niveau 3 : eseaux virtuels par adresse de sous-r e´ seau (Network address-based VLAN ) : ils ◦ Les r´ d´eterminent les r´eseaus virtuels sur base de l’adresse IP source des segments. Ce type de r e´ seau virtuel est tr e` s flexible puisque les commutateurs adaptent automatiquement leur configuration lorsqu’une station est d e´ plac´ee. En revanche, une l e´ g`ere d´egradation des performances peut se faire resentir puisque les segments doivent eˆ tre analys´es plus minutieusement. ◦ Les r´ eseaux virtuels par protocole (Protocol-based VLAN ). Dans ce cas, les r e´ seaux virtuels sont cr e´ e´ s sur base des protocoles utilis´es (TCP / IP, IPX,...) et les stations sont regroup e´ es en r´eseaux virtuels suivant le protocole qu’elles utilisent. Les avantages qu’off rent les r´e seaux virtuels sont les suivants : une r´eduction du traffic de diff usion (broadcast) puisque celui-ci est a` pr e´ sent contenu au sein de chaque r e´ seau virtuel ; une s´ecurit´e accrue puisque l’information est encapsul´ee dans une couche suppl´ementaire ; une meilleureflexibilit´e puisqu’une modification de la structure desr´eseauxpeut eˆ trer´ealis´ee en modifiant la configuration du commutateur.
3.3 La virtualisation de stockage La virtualisation de stockage est un proc´ed´e qui va s´eparer la repr´esentation logique et la r´ealit´e physique de l’espace de stockage. Son but est de faire abstraction des p e´ riph´eriques de stockage utilis´es et des interfaces qui leur sont associ´es (SATA, SCSI,...) afin de limiter l’impact des modifications structurelles de l’architecture de stockage.
3 / 20
3
LES DOMAINES DE LA VIRTUALISATION
F. 2 – R´eseaux virtuels Ce type de virtualisation fait appel a` une application d’administration de volumes logiques (Logical Volume Manager, LVM). Il s’agit d’une couche logicielle qui va permettre de regrouper plusieurs espaces de stockage, appel´es volumes physiques, pour ensuite d´ecouper cet espace global suivant la demande en partitions virtuelles appel´ees volumes logiques. Ce processus de virtualisation peut eˆ tre vu comme une extension du mod`ele de partitionnement classique des disques dur. La virtualisation de stockage permet : • d’adjoindre un p´ eriph´erique de stockage suppl´ementaire sans interruption des services ; • de regrouper des unit´ es de disques durs de di ff e´ rentes vitesses, de di ff e´ rentes tailles et de diff e´ rents constructeurs ; • de r´ eallouer dynamiquement de l’espace de stockage. Ainsi, un serveur n e´ cessitant un espace de stockage suppl´ementaire pourra rechercher des ressources non allou´ees sur le disque logique. Invers´ement, un serveur n e´ cessitant moins d’espace de stockage pourra lib´erer cet espace et le rendre disponible pour d’autres serveurs.
F. 3 – Virtualisation de stockage 4 / 20
4
LES AVANTAGES DE LA VIRTUALISATION
3.4 La virtualisation de serveurs La virtualisation des serveurs consiste a` masquer les ressources du serveur, c.-`a -d. le nom bre et les caract´eristiques de chaque machine physique, de chaque processeur et de chaque syst`eme d’exploitation pour les utilisateurs de ce serveur. L’administrateur du serveur va utiliser un logiciel grˆace auquel il va diviser un serveur physique (constitu e´ ou non de plusieurs machines distinctes) en plusieurs environnements virtuels isol´e s les uns des autres. es virtuels, hˆ otes, instances, conCes environnements isol´es sont parfois appel´es serveurs priv´ taineurs ou emulations. ´ La virtualisation de serveurs s’inscrit dans une tendance globale qui tend a` promouvoir la virtualisation au sein des entreprises en faisant notamment appel a` la virtualisation de stockage et a` la virtualisation de r e´ seaux. Cette tendance est une composante dans le d´eveloppement de syst`emes autonomes. Un syst`eme est dit autonome si il est capable de s’auto-g´erer sur base de l’activit e´ qu’il perc¸oit, sans aucune intervention externe, et en conservant les d´etails de son impl´ementation invisibles pour l’utilisateur. La suite de ce document concerne plus particuli e` rement la virtualisation des serveurs.
4 Les avantages de la virtualisation Au cours des derni`e res ann´ees, la virtualisation semble s’ˆetre impos´e e comme un e´ l´ement incontournable au sein des entreprises et ce sont principalement les serveurs qui sont au centre de toutes les attentions. La virtualisation pr´esente les avantages suivants : 1. Une optimisation de l’infrastructure. La virtualisation permet d’optimiser la charge de travail des serveurs physiques. En e ff et, il y a quelques anne´ es, la relation une ap plication ↔ un serveur e´ tait encore largement r´epandue. Cependant, comme le montre le sch´ema 4, cette relation introduit un gaspillage important des ressources puisqu’on estime que la charge moyenne d’un serveur se situe entre 5% et 15% [4]. L’id´ee est alors
F. 5 – Rendement d’un serveur en pr´esence de virtualisation
F. 4 – Rendement d’un serveur en l’absence de virtualisation
de r´ecup´erer ces ressources disponibles afin d’en faire b e´ n´eficier d’autres applications. La virtualisation va apporter une solution efficace : plutˆot que de faire tourner une seule application sur le serveur physique, on va installer sur celui-ci plusieurs serveurs virtuels ex´ecutant chacun une application bien pr´ecise, et c’est le logiciel de virtualisation qui se charge de r e´ partir e´ quitablement les ressources entre les di ff e´ rentes instances. De cette mani`ere, comme le montre le sch´ema 5, on optimise le rendement de chacun des serveurs physiques. 2. Une r´eduction de l’infrastructure physique et des ´economies d’´energies. Les centres de donn´ees sont d’importants consommateurs de ressources. VMware affirme qu’un serveur au repos consomme jusqu’`a 30% du pic de consommation e´ lectrique et selon
5 / 20
4
LES AVANTAGES DE LA VIRTUALISATION
Intel, 36,4% de l’´energie est utilis´ee par les composants physiques des serveurs (processeurs, m´emoire,...)tandisque les 63,6% restants sont consomm´e sparles e´ quipements de climatisation. Ces chi ff res sont interpelants et la virtualisation de l’infrastructure d’une entreprise doit devenir un de ses projets prioritaires. Puisque plusieurs applications peuvent a` pr´esent cohabiter de mani`ere efficace sur un mˆeme syst`eme, les entreprises vont pouvoir r´eduire le nombre de machines de leur centre de donn e´ es en investissant a` nouveau dans d’importants mainframes avec lesquels r´eapparaˆıt le mod`ele de centralisation de la puissance de calcul. Par cons e´ quent, les entreprises font des e´ conomies en terme d’espace mais aussi en terme de frais de ventilation et d’alimentation. La r´eduction des couts ˆ d’alimentation et de refroidissement s’inscrit
F. 6 – Centre de calcul distribu´e
F. 7 – Centre de calcul centralis´e
e´ galement dans une tendance g e´ n´erale a` la promotion du respect de l’environnement. Selon Gartner, une entreprise am´e ricaine de conseil et de recherche dans le domaine des techniques avanc´ees, l’industrie informatique serait responsable de 2% des e´ missions mondiales de CO2. La virtualisation aurait permis d’´economiser 5 milliards de kWh d’´energie e´ lectrique (source :VMware). 3. Une reprise automatique lors des incidents. La virtualisation permet d’am´eliorer la pr´e vention et la gestion des pannes ainsi que le plan de reprise de l’activit´e du syst`eme. En e ff et, les e´ quipements virtuels e´ tant constitu´es d’un ensemble de fichiers, il est tr e` s simple de les sauvegarder. Si un probl e` me survient sur une machine physique, les fichiers qui ont e´ t´e sauvegard´es auparavant pourront rapidement eˆ tre restaur´e ssurune autre machine physique, en attendant que la machine virtuelle initiale soit red´emarr´ee. 4. Une optimisation de la s´ecurit´e des donn e´ es. Par la centralisation des ressources applicatives au sein du centre de donn´ees, la virtualisation contribue a` s´ecuriser l’acc`es et l’usage des donn´ees de l’entreprise. Il est en e ff et beaucoup plus simple de contr oler ˆ l’acc`e s aux donn´ees lorsqu’elles sont regroup´ees en un lieu que lorsqu’elles sont r´eparties sur l’ensemble des sites de l’entreprise, comme c’est le cas dans un mod e` le d’informatique distribu´e . Il est n´eanmoins indispensable de disposer d’un syst`eme de synchronisation qui permettra de sauvegarder l’ensemble des informations sur un site ext´erieur. De cette mani`ere, on limite les risques li´es a` la destruction du centre de donn´ee initial. 5. Une facilit´e de migration. La virtualisation apporte la possiblit´e de migrer facilement un environnement virtuel d’une machine physique vers une autre, facilitant ainsi la mise a` jour du centre de donn´ee ou le remplacement de mat´eriel d´efectueux. De nombreux outils d’aide a` la migration ont e´ t´e d´evelopp´es. Ils peuvent eˆ treregroup´es en3grandescat e´ gories : P2V (Physical to Virtual),V2P(Virtual to Physical)etV2V(Virtual 6 / 20
5
´ LES INCONV ENIENTS DE LA VIRTUALISATION
to Virtual). Les outils P2V sont g´en´eralement utilis´es dans les projets de virtualisation d’une infrastructure informatique. Ils consistent a` convertir les serveurs physiques en serveurs virtuels. Les outils V2P, qui permettent de convertir des serveurs virtuels en serveurs physiques, sont peu demand e´ s mais une telle fonctionnalit´e rassure les entreprises qui souhaitent utiliser de la virtualisation ; elle leur permet, si elles le d´esirent, de faire marche arri e` re. Enfin, les outils V2V, qui permettent de convertir des serveurs virtuels d’un format dans un autre, sont principalement utilis´es au sein d’entreprises qui utilisent des gestionnaires de syst e` mes virtuels di ff e´ rents. 6. Flexibilit´e et compatibilit´e. La virtualisation est un outil efficace en terme de flexibilit e´ et de compatibilit´e . En eff et, elle supprime toute d´ependance entre une application donn´e eetetl’aspectmat e´ riel de la machine sur laquelle elle est ex´ecut´ee. Il devient alors possible d’ex´ecuter sur un syst`eme une application qui a e´ t´e d´evelopp´ee a` destination d’un autre syst`eme. 7. Un cloisonnement. Le d´eveloppement d’une application s’accompagne n´ecessairement de phases de tests au cours desquelles le programmeur s’assure du bon fonctionnement et de la stabilit´e de son logiciel. N´eanmoins, il est parfois risqu´e d’ex´ecuter une application lorsque l’on n’est pas certain du r e´ sultat qui sera produit. Pour r e´ duire les risques li´es a` des applications peu fiables, la virtualisation peut eˆ tre utilis´ee pour cr´eer des environnements isol´e sets´ecuris´e s qui vont servir de plateformes d’essai. Il devient d`es lors possible d’it´erer un grand nombre de fois un processus de test sans craindre de d e´ stabiliser la machine physique sur laquelle s’ex´ecute l’application.
5 Les inconv´enients de la virtualisation 1. Un point de d´efaillance unique. Il s’agit probablement du plus gros d e´ savantage de la virtualisation. Puisque plusieurs environnements virtuels s’ex´ecutent sur une unique machine physique, si cette machine tombe en panne, alors les services fournis par les environnements virtuels sont interrompus. 2. Unrecours a` desmachines puissantes. La virtualisation permetde r´ealiser des economies ´ puisque moins de machines physiques sont n´ecessaires. N´eanmoins, les outils de virtualisations sont des applications tr`es gourmandes en ressources et n´ecessitent des machines puissantes. Il est e´ videmment possible d’utiliser la virtualisation sur des machines plus modestes, mais un manque de m e´ moire ou de capacit e´ CPU peut faire chuter les performances de mani e` re dramatique. 3. Une d´egradation des performances. Bien qu’elle soit impl´ement´ee sur des machines puissantes, la virtualisation peut r´eduire les performances des applications. Suivant le type de virtualisation envisag´e, cette perte de performances peut ou non eˆ tre significative. Ce probl`eme est d’autant plus embarassant qu’il est di fficile d’estimer a` l’avance l’impact qu’aura la virtualisation sur une application donn´ee. Dans certains cas, la d´egradation des performances est telle qu’il est pr e´ f e´ rable de conserver l’application dans un environnement physique. 4. Une complexit´e accrue de l’analyse d’erreurs. La virtualisation d’un serveur implique des changements importants dans l’infrastructure du syst e` me. La couche de virtualisation vient s’ajouter aux autres et apporte potentiellement avec elle un ensemble de nouveaux probl`emes. La difficult´e de cette couche additionnelle r e´ side dans le fait que, si quelque chose ne fonctionne pas correctement, la localisation du probl e` me peut demander des e ff orts consid´erables. 5. Une impossibilit´e de virtualisation. Bien que, dans la plupart des cas, il n’est pas possible de pr´edire si une application se comportera normalement une fois virtualis´ee, il existe des applications qui sont connues pour rencontrer des di fficult´e s lors de leur virtualisation. Les bases de donn´ees sont un exemple de telles applications. En eff et, les bases de donn e´ es ont recours a` de nombreux acc`es disques et le d e´ lai d’acc`es suppl´ementaire introduit par la virtualisation peut dans certain cas rendre l’application inutilisable. 7 / 20
6
LES PRINCIPES DE LA VIRTUALISATION
6. Un d´eploiement massif de serveurs. Il ne s’agit pas r´eellement d’un d´esavantage de la virtualisation en tant que tel, mais d’un d e´ savantage de la facilit´e de mise en place d’un nouvel environnement virtuel. En e ff et, certains administrateurs estiment qu’il est plus s´e curisant de d´eployer un serveur dans un nouvel environnement virtuel, isol´e des autres, plutˆot qu’au sein d’un syst`eme d’exploitation qui ex´ecute simultan´ement d’autres applications. Cependant, l’administration et les co uts ˆ d’une telle op e´ ration ajoutent une charge suppl´ementaire qu’il est di fficile d’estimer a` l’avance. 7. Un probl`eme de standardisation. La virtualisation est une technologie largement r´epandue mais elle ne fait l’objet d’aucun protocole de normalisation. Il n’existe par cons´equent aucun outil standard aux diff e´ rentes formes de virtualisation.
6 Les principes de la virtualisation Gerald J. Popek et Robert P. Goldberg sont deux chercheurs en informatique qui, en 1974, ont pos´e les bases de la virtualisation. Leur article [11], publi e´ dans le Communications of the ACM (Association for Computing Machinery) de juillet 1974, discute les possibilit´es de virtualisation des architecture de troisi`eme g´en´eration. A l’heure actuelle, on distingue cinq g´en´erations d’architectures : 1. La premi`ere g´en´eration, de 1940 a` 1956 : les tubes sous vide. Les premiers ordinateurs utilisaient des tubes sous vide pour r e´ aliser des calculs num´eriques et stockaient les r´esultats dans de la m´emoire primaire mat´erialis´ee sous la forme de tambours magn´etiques (magnetic drums). Les op e´ rations d’entr´ees (inputs) se faisaient a` l’aide de cartes perfor´e es et les op´erations de sorties (outputs) e´ taient r´ealis´es sous forme d’impressions. 2. La deuxi`e me g´en´eration, de 1956 a` 1963 : les transistors. Invent´e s en 1947 par les Bell Laboratories, ce n’est qu’`a partir des ann´ees 1950 qu’ils se d´eploient et viennent remplacer les tubes sous vide. Les transistors sont devenus un composant cl e´ dans la fabrication de tout circuit digital et disposent de nombreux avantages par rapport aux tubes sous vide : ils sont plus petit, consomment moins d’ e´ nergie et sont moins sujets aux pannes. Les op´erations d’entr´ees / sorties sont similaires aux ordinateurs de premi`ere g´en´eration. 3. La troisi`eme g´en´eration, de 1964 a` 1971 : les circuits int e´ gr´es. Le d´eveloppement des circuits int´egr´es s’est impos´e comme la raison d’ˆetre des architectures de troisi`eme g´en´eration. Les transistors sont miniaturis e´ s et plac´es sur des puces en silicium, appel e´ semiconducteur, ce qui a pour eff et d’accroˆıtre consid´e rablement la vitesse et l’efficacit´e des ordinateurs de l’ e´ poque. Les ordinateurs de troisi e` me g´en´eration r´evolutionnent e´ galement les interactions avec l’utilisateur. Les cartes perfor´ees sont remplac´ees par un clavier et les moniteurs prennent la place des impressions. De plus, l’utilisation d’un syst`eme d’exploitation permet de g´erer l’ex´ecution de plusieurs programmes simultan´ement. 4. La quatri`eme g´en´eration, de 1971 a` aujourd’hui : les microprocesseurs. Des milliers de circuits int´egr´es sont assembl´es sur une seule puce en silicium pour donner naissance a` l’unit´e centrale de traitement (Central Processing Unit, CPU) qui e´ quipe a` l’heure actuelle tous les ordinateurs. Ce qui, dans les ann´ees 1960, n´ecessitait une pi`ece enti`ere tient a` pr´esent dans la paume de la main. Cette quatri`eme g´en´eration d’ordinateur a e´ galement vu apparaˆıtre les interfaces graphiques et la souris qui ont facilit´e les interactions avec l’utilisateur. 5. La cinqui`eme g´en´eration : l’intelligence artificielle. Bien qu’elle soit toujours en cours de d´eveloppement, certaines applications des ordinateurs de cinqui`e me g´en´eration, comme la reconnaissance vocale, sont d e´ j`a largement r´epandues. Le d´eveloppement de cette technologie a pour but de rendre le comportement des ordinateur similaire `a celui des humains.
8 / 20
6
LES PRINCIPES DE LA VIRTUALISATION
6.1 Vocabulaire Avant de poursuivre notre analyse, il est n´ecessaire de d´efinir deux termes qui seront largement utilis´es dans la suite de ce document : • Une machine virtuelle (Virtual Machine, VM) : il s’agit d’une reproduction isol e ´ e et efficace d’une machine physique. [11] • Un hyperviseur ou contr oleur ˆ de machine virtuelle (Virtual Machine Monitor, VMM) : il s’agit d’un logiciel qui va cr´eer et ge´ rer l’ex´ecution d’un certain nombre de machines virtuelles. Popek et Goldberg ont e´ tabli trois contraintes que doivent respecter les contrˆoleurs de machines virtuelles pour pouvoir eˆ tre consid´er´es en tant que tels : 1. Crit`ere d’e´ quivalence : Any program run under the VMM should exhibit an e ff ect identical with that demonstrated if the program had been run on the original machine directly, with the possible exception of di ff erences caused by the availability of system resources and di ff erences caused by timing dependencies. Ce crit`ere impose que tout programme doit montrer un comportement similaire, qu’il soit ex´ecut´e au travers d’un syst e` me de virtualisation ou bien directement sur la machine physique, a` l’exception d’une e´ ventuelle indisponibilit´e des ressources ou de contraintes temporelles. Les contraintes temporelles sont dues a` la couche logicielle de virtualisation qui intervient et a` l’existence d’autres machines virtuelles. 2. Crit`ere d’efficacit´e : The second characteristic of a virtual machine monitor is e fficiency. It demands that a statistically dominant subset of the virtual processor’s instructions be executed directly by the real processor, with no software intervention by the VMM. Cette contrainte exige qu’une majorit´e des instructions du processeur virtuel soient directement exe´ cut´ees par le processeur physique et ce, sans intervention du syst`eme de virtualisation. La virtualisation mat´e rielle (voir 8) permet de mieux r´epondre a` cette contrainte. Ce crit e` re exclut les syst e` mes purement logiciels (simulations) ainsi que l’´emulation. 3. Crit`ere de contrˆole des ressources : The VMM is said to have complete control of these resources if it is not possible for a program running under it in the created environment to access any resource not explicitly allocated and it is possible under certain circumstances for the VMM to regain control of resources already allocated. Ce crit`ere impose au syst`eme de virtualisation d’avoir un controle ˆ total des ressources. Un programme virtualis´e ne doit pas avoir la possibilit´e d’acc´eder a` une ressources autrement qu’au travers du syst e` me de virtualisation et ce dernier se r´eserve le droit de reprendre le contrˆole d’une ressource a` n’importe quel moment. Le terme ressource se r´ef e` re a` la m´emoire et aux autres p´eriph´eriques, pas uniquement au processeur.
6.2 Pr´erequis Les pr´erequis e´ nonc´e s par Popek et Goldberg sont un ensemble de conditions n´ecessaires assurant a` une architecture mat´erielle de supporter e fficacement le processus de virtualisation. Le probl`eme est de d´eterminer les caract´eristiques que doit poss´eder le jeu d’instructions d’un processeur afin de r´epondre de mani`ere efficace aux contraintes e´ voqu´ees en 6.1. Le jeu d’instructions (Instruction Set Architecture, ISA) est l’ensemble des instructions qu’un processeur est en mesure d’ex e´ cuter. Pour e´ noncer leurs th´eor`emes, Popek et Goldberg ont class´e les instructions de l’ISA en 3 groupes : 9 / 20
6
LES PRINCIPES DE LA VIRTUALISATION
F. 8 – Le sch e´ ma d’hyperviseur et de machine virtuelle pr e´ sent´e dans l’article de Popek et Goldberg de 1974 [11] Les instructions privil´egi´ees : pour les ex´ecuter, le processeur doit eˆ tre dans un mode particulier, le mode privil e´ gi´e. Si le processeur ne se trouve pas dans cet e´ tat, une interruption est d´eclench´ee et l’instruction est pi e´ g´ee (trapped). L’interruption consiste en un changement de contexte au cours duquel le syst`eme (que ce soit l’OS hˆote ou l’hyperviseur) d´ecide de la suite a` donner a` cette instruction. • Les instructions sensibles a ` la configuration : ce sont les instructions qui ont la possi bilit´e d’interroger ou de modifier la configuration du syst e` me comme par exemple le mode du processeur ou la quantit´e de m´emoire allou´ee a` un processus particulier. • Les instructions sensibles au comportement : il s’agit des instructions dont le comportement ou le r´esultat va d´ependre de l’´etat ou la disponibilit´e des ressources (si le processeur se trouve en mode privil e´ gi´e ou non,...). •
6.3 Th´eor`emes Les r´esultats de l’analyse de Popek et Golberg peuvent s’ e´ noncer suivant 2 th´eor`emes : e or`eme 1 • Th´ For any conventional third generation computer, a VMM may be constructed if the set of sensitive instructions for that computer is a subset of the set of privileged instructions. De mani`e re intuitive, le th´eor`e meaffirme que pour construire un hyperviseur pour une architecture particuli`ere, il est n´ecessaire que les instructions qui pourraient compromettre le bon fonctionnement de cet hyperviseur (instructions sensibles `a la configuration) soient pi´eg´ees et que le contr ole ˆ soit donn´e a` l’hyperviseur. Ceci garantit le crit`ere de contrˆole des ressources. Les instrutions non privil´egi´ees, quant a` elles, doivent eˆ tre ex´ecut´ees sans intervention de l’hyperviseur afin de garantir le crit e` re d’efficacit´e. Remarquons que si les instructions sensibles a` la configurations ne font pas partie des instructions privil e´ gi´ees, alors, en vertu du crit e` re d’efficacit´e, elles seront ex´ecut´ees sans intervention de l’hyperviseur et par cons´equent, le crit`ere de contrˆole des ressources n’est pas respect e´ .
•
Une d´emonstration plus rigoureuse de ce th´eor`e me est pr´esent´ee dans l’article original de Popek et Goldberg [11]. Th´e or`eme 2 A conventional third generation computer is recursively virtualizable if 1) it is virtualizable and 2) a VMM [...] can be constructed for it.
10 / 20
7
` ´ A ` LA VIRTUALISATION LES PROBLEMES LI ES
Le second th´eor`eme porte sur la possibilit´e de faire de la virtualisation r´ecursive, c’est a` dire d’ex´ecuter une ou plusieurs machines virtuelles au sein d’une machine virtuelle. Ce th´eor`eme affirme que ce processus est r´ealisable pour autant que l’architecture mat´erielle r´eponde au premier th e´ or`eme et qu’un hyperviseur puisse eˆ tre d´evelopp´e pour cette architecture.
6.4 Composants d’un hyperviseur L’hyperviseur, ou programme de contr oˆ le, est un logiciel constitu´e d’un ensemble de modules. Les modules d’un hyperviseur peuvent ˆetre regroup´es en trois cat´egories : 1. Le r´egulateur (dispatcher) : il peut eˆ tre consid´er´e comme le module de contr ole ˆ de plus haut niveau de l’hyperviseur. Son rˆole est de donner le contrˆole a` un des modules de la deuxi`eme ou de la troisi`eme cat´egorie. 2. L’allocateur : son r ole ˆ est de d e´ terminer quelle(s) ressource(s) doivent eˆ tre allou´ees aux applications virtualis´e es. Il est e´ galement du ressort de l’allocateur de ne pas donner une mˆeme ressource simultan´ement a` deux environnements virtuels distincts. Le r´egulateur fera appel a` l’allocateur chaque fois qu’un environnement virtuel tentera d’ex´ecuter une instruction privil´egi´ee qui aurait comme r´epercution de modifier les ressources allou´ees a` cet environnement virtuel. 3. Des interpr´eteurs : a` chacune des instructions privil´egi´e es ( a` l’exception de celles qui sont prises en charge par l’allocateur), on va associer une routine d’interpr e´ tation. Le role ˆ de ces routines est de simuler le r´esultat des instructions privil´egi´ees qui sont pi´eg´ees.
F. 9 – Modules d’un hyperviseur
7 Les probl`emes li´es a` la virtualisation Les probl`emes actuels de la virtualisation sont principalement li´es a` l’omnipr´esence de l’architecture x86 au sein des ordinateurs. Bien que largement r e´ pandu, le jeu d’instructions qui la compose n’est pas exempt de d´efauts. Si cette architecture se prˆe te mal a` la virtualisation, c’est a` cause de 18 instructions dites critiques. Ces instructions critiques sont des instructions sensibles a` la configuration mais qui ne font pas partie des instructions privil´egi´ees (si ces notions ne sont pas claires, nous renvoyons le lecteur au point 6.2). D’un point de vue pratique, les instructions d’un processeur sont r e´ parties en plusieurs cat´egories (ou niveaux d’abstraction) appel´ees anneaux. Un processeur qui impl´emente l’architecture x86 dispose de quatre anneaux o u` chaque anneau correspond a` un certain niveau de privil`eges. Si nous appelons D(i) le niveau de privil`ege accord´e aux applications qui s’ex´ecutent sur l’anneau i, nous pouvons d´efinir la relation suivante sur les anneaux : 11 / 20
7
` ´ A ` LA VIRTUALISATION LES PROBLEMES LI ES
D(3) < D(2) < D(1) < D(0)
Les instructions critiques n´ecessitent en th´eorie de s’ex´ecuter au niveau de privil`ege le plus e´ lev´e, c.-a` -d. a` l’anneau 0. Le probl`eme de 18 de ces instructions critiques, list e´ es dans l’annexe A, est qu’elles peuvent e´ galement s’ex´e cuter aux anneaux 1, 2 et 3. Cela constitue un r´eel proble` me pour les logiciels de virtualisation. En e ff et, il ne faut en aucun cas qu’un syst e` me virtuel ait la possibilit´e de modifier les ressources physiques de la machine. Il est donc du ressort de l’hyperviseur d’intercepter ces instructions critiques de mani e` re a` simuler leur comportement. Du point de vue des instructions privil´egi´ees, aucun probl`e me ne se pose : ces instructions vont eˆ tre pi´eg´e es (puisque le syst`e me virtuel est ex´ecut´e a` l’anneau 3) et l’hyperviseur pourra les traiter. Mais pour ces 18 instructions critiques, la situation est plus complexe. Comme elles ne seront pas pi´eg´ees (puisqu’elles ne n´ecessitent pas un niveau de privil e` ge tr`es e´ lev´e), l’hyperviseur doit eˆ tre en mesure de les d´etecter de mani`ere a` pouvoir les interprˆeter. Il en r´esulte e´ videmment une surcharge de calcul importante ainsi qu’une grande complexit e´ de l’hyperviseur. D’autre part, les syst`emes d’exploitation sont conc¸us pour eˆ tre ex´ecut´e au niveau de privil`eges 0, puisqu’ils sont sens e´ s disposer d’un contr ole ˆ total des ressources. Or, lorsqu’ils sont virtualis´es, les syst`emes d’exploitatation ne sont plus ex´ecut´es sur l’anneau 0, mais sur l’anneau 3. L’hyperviseur doit donc eˆ tre en mesure de leurrer le syst e` me d’exploitation virtualis´e afin que celui-ci ne se rende pas compte qu’il s’ex´ecute avec un faible niveau de privil`eges. Au-del`a des probl`emes li´es a` l’architecture du processeur, la virtualisation se heurte e´ galement a` des probl`emes d’adressage m´emoire. En eff et, le syst`eme virtualis´e suppose qu’il a acc`es a` toute la m´emoire, ce qui est faux puisqu’il la partage avec d’autres environnements virtuels et avec l’hyperviseur. Celui-ci doit donc e´ galement s’assurer que chaque environnement virtuel n’acc`ede pas a` un espace d’adressage m´emoire qui ne lui appartient pas et eff ectuer la traduction dynamique d’adresses virtuelles en adresses physiques. Enfin, les dispositifs d’entr e´ es / sorties constituent a` l’heure actuelle un probl e` me ma jeur dans la plupart des logiciels de virtualisation. S’il est plutˆot facile d’ajouter des unit´es de calcul sur un serveur physique afin d’am e´ liorer les performances des environnements virtuels, il n’est pas possible d’augmenter le d´ebit d’acc`es aux disques par exemple 2 . De plus, contrairement au CPU, une grande partie des p e´ riph´eriques sont e´ mul´es, ce qui signifie que chaque instruction d’acc`es au pilote d’un p´eriph´erique virtuel doit eˆ tre traduite 2
Il faudrait pour cela envisager de remplacer tout le mat e´ riel de stockage existant par du mat e´ riel plus performant
12 / 20
8
´ LA VIRTUALISATION MAT ERIELLE
en une instruction d’acc`es a` un p´eriph´erique physique, ce qui fait lourdement chuter les performances.
8 La virtualisation mat´erielle Introduite pour la premi`ere fois par IBM sur ses syst`emes 370, la virtualisation mat´erielle est une approche de la virtualisation qui vise a` am´eliorer les performances des environnements virtuels en faisant appel aux capacit´es mat´erielles des composants de la machine physique, et plus particuli e` rement du processeur. Ce chapitre mettra donc l’accent sur les technologies mat´erielles de virtualisation impl´ement´ees au sein des processeurs. La n´ecessit´e de d´evelopper des solutions de virtualisation assist e´ es par le processeur a fait son apparition avec la prolif e´ ration des syst`emes a` base d’architecture x86. Comme nous l’avons vu au point 7, cette architecture se prˆe te tr`e s mal a` la virtualisation et celle-ci n´ecessite un travail consid´erable de la part de l’hyperviseur. A l’aide de la virtualisation mat´erielle, l’hyperviseur est en mesure de virtualiser correctement l’ensemble des instructions de l’architecture x86, y compris les 18 instructions critiques qui posent probl`eme. Les deux principaux fabricants de processeurs sur le march´e, Intel et AMD, ont rapidement compris l’int´erˆet de ces solutions et, en 2006, ils ont chacun inaugur e´ s une nouvelle gamme de processeurs incluant une technologie d’aide mat´erielle a` la virtualisation. Cette technologie est connue sous le nom de Intel VT-x (anciennement Vanderpool) et AMD-V (anciennement Pacifia). Globalement, les technologies des deux concurrents sont semblables et nous ne les diff e´ rencierons pas. D’un point de vue pratique, ces processeurs incluent un nouveau mode d’ex´ecution appel´e Extension de Machine Virtuelle (Virtual Machine Extension, VMX). Puisque l’hyperviseur et l’environnement virtuel ne peuvent pas se trouver au m eˆ me niveau de privil e` ges (voir section 7), ce nouveau mode d’ex´ecution va ajouter cinq anneaux suppl´ementaires regroup´es en deux niveaux. Le premier, appel e´ niveau racine correspond a` un anneau qui se trouverait sous l’anneau 03 (le niveau racine a donc un contrˆole absolu des ressources). Le second, appel´e niveau normal, correspond aux quatres anciens anneaux (ils sont donc regroup´es au sein d’un niveau de privil`eges unique). Puisque l’hyperviseur doit g e´ rer la r´epartition des ressources, il s’ex´ecute au niveau racine tandis que les environnements virtuels s’ex´ecutent au niveau normal. Pour entrer dans le mode d’ex e´ cution virtuel, le processus ex e´ cute une instruction particuli`ere (VMXON chez Intel) et, sym´etriquement, pour quitter le mode virtuel, le processus ex´ecute l’instruction inverse (VMXOFF chez Intel). Lorsque l’hyperviseur est lanc e´ , il peut passer du mode racine au mode normal (et donc, donner le contrˆo le a` un environnement virtuel) a` l’aided’une autre instruction (appel´ee VMLAUNCH chez Intel)et,sym´etriquement, l’hyperviseur reprendra le contrˆole et passera au niveau racine au moyen de l’instruction inverse (VMRESUME chez Intel). Les technologies de virtualisation mat´erielle d’Intel et AMD impl e´ mentent e´ galement des instructions qui permettent d’acc´el´erer les sauvegardes et restaurations de contexte. En e ff et, lorsqu’un hyperviseur veut donner le contrˆole a` un autre environnement virtuel, il doit d’une part sauvegarder le contexte d’ex e´ cution de l’environnement virtuel actuellement actif et, d’autre part, restaurer le contexte d’ex´ecution de l’environnement virtuel a` qui il s’apprˆete a` donner le contrˆole. Ainsi, a` chaque environnement virtuel est associ´e unsegmentenm´emoire de quelques kBytes qui contient les donn´ees importantes du contexte d’ex´ecution de cet environnement. Il est lu a` chaque activation d’un environnement virtuel et r e´ e´ crit a` chaque sortie de celui-ci. Chez AMD, ce segment s’appelle Bloc de Contrˆ ole de la Machine Virtuelle (Virtual Machine Control Block, VMCB) ; chez Intel, ce segment s’appelle Structure de Contrˆ ole de la Machine Virtuelle, (Virtual Machine Control Structure, VMCS). 3
il est parfois aussi appel e´ anneau -1
13 / 20
9
´ LES DIFF ERENTS TYPES DE VIRTUALISATION
F. 10 – Virtual Machine Extension
9 Les di ffe´ rents types de virtualisation Il existe trois approches populaires de virtualisation de serveurs : le mod`ele de machines virtuelles, le mod`ele de para-virtualisation et la virtualisation au niveau du syst`eme d’exploitation.
9.1 Machine virtuelle ´ Egalement connue sous le nom de virtualisation compl`ete, cette strat´egie de virtualisation consiste a` cr´eer des environnements virtuels qui sont une copie d’une machine physique (m´emoire, disques,...). Les machines virtuelles se basent sur deux principes : 1. la traduction binaire des instructions que le noyau du syst`eme virtualis´e souhaite ex´ecuter ; 2. l’ex´ecution directe des instructions relatives aux applications utilisateurs. La traduction binaire ne consiste pas a` traduire les instructions d’un jeu d’instructions particulier vers un autre (p. ex. x86 → RISC), mais plutˆot de traduire les instructions d’un jeu d’instructions vers ce m eˆ me jeu d’instructions (p. ex. x86 → x86)4 . Le code traduit est plac´e dans le cache de traduction. La traduction binaire d’une instruction issue d’un environnement virtuel pourrait par exemple consister a` remplacer une instruction de manipulation du mat´e riel physique en une instruction de manipulation du mat´eriel virtuel associ´e a` cetenvironnement, ou a` remplacer une instruction privil´egi´ee par une instruction non privil´egi´ee (de mani`ere a` ce qu’elle soit pi e´ g´ee par l’OS hote). ˆ La traduction binaire repose donc sur un travail d’analyse des instructions ex´ecut´ees par le noyau du syst`eme invit´e. Cette traduction peut s’av´erer indispensable pour assurer le maintien de la stabilit e´ du syst`eme dans sa globalit´e5 . 4 5
Parfois, la traduction consiste simplement a` recopier l’instruction de d e´ part Le syst e` me hote ˆ ainsi que les autres environnements virtuels
14 / 20
9
´ LES DIFF ERENTS TYPES DE VIRTUALISATION
F. 11 – Intel VT-x
F. 12 – Virtualisation compl`ete : a` gauche, l’hyperviseur g`ere lui mˆeme le hardware sous jacent ; a` droite, l’hyperviseur transmet les requ eˆ tes aux syst`eme d’exploitation hoˆ te Les instructions utilisateurs sont quant a` elles ex´ecut´ees directement car l’hyperviseur fait la supposition qu’elles ne sont pas dangeureuses pour le syst`eme6. Elle s’ex´ecutent donc comme s’il n’existait aucune couche de virtualisation. Il existe deux types de machines virtuelles : celles o u` l’hyperviseur est une application install´ee sur un syst`eme d’exploitation h ote, ˆ et celles o`u l’hyperviseur est install´e en lieu et place du syst`eme d’exploitation hote. ˆ Avantages : • permetde fairefonctionner plusieurssyst` emesdiff e´ rentssurlamˆememachine physique ; • bonnes performances et stabilit e ´. Inconv´enients : consommation importantes des ressources (la consommation est fonction du nombre de machines virtuelles). Exemples : Microsoft Virtual PC, Microsoft Virtual Server, VirtualBox, VMware Workstation.
Selon VMware, la virtualisation compl`ete est actuellement la strat´egie de virtualisation la plus largement r e´ pandue et la plus fiable. 6
Elles seront de toute fac¸on pi e´ g´ees une fois trait e´ es par le syst e` me hote ˆ
15 / 20
9
´ LES DIFF ERENTS TYPES DE VIRTUALISATION
9.2 Para-virtualisation La para-virtualisation consiste pour le syst`eme d’exploitation virtualis´e a` communiquer plus efficacement avec l’hyperviseur de mani`ere a` accroˆıtre les performances du syst e` me. Cette strat´egie de virtualisation est e´ galement connue sous le nom de virtualisation assist´ ee par lesyst`eme d’exploitation (invit´ e). La para-virtualisation implique une modification du noyau du syst`eme d’exploitation virtualis´e afin de remplacer les instructions non virtualisables par des hyper-appels (hypercalls) qui vont communiquer directement avec la couche virtuelle de l’hyperviseur. L’hyperviseur fournit e´ galement un ensemble d’interfaces d’hyper-appels pour d’autres op´erations critiques du noyau telles que les op e´ rations de gestion de la m e´ moire, des interruptions,... La para-virtualisation est diff e´ rente de la virtualisation compl e` te ou` le syst`eme virtualis´e n’est pas conscient de son e´ tat et les instructions critiques sont pi´eg´ees et traduites. Le principal atout de la para-virtualisatio r´eside dans ses faibles coˆuts de virtualisation7 , mais ses performances par rapport a` la virtualisation compl`ete d´ependent fortement de la charge de travail de la machine physique. Puisque la para-virtualisation ne supporte paslessyst`emes non modifi´e s(et,parcons´equent, les syst`emes propri´etaires tels que Microsoft Windows), sa portabilit´e et sa compatibilit´e sont r´eduites. La para-virtualisationintroduit e´ galement des probl`e mes de maintenance et de support au sein d’environnements de d´eveloppement puisqu’elle n e´ cessite des modifications du noyau du syst`eme. Avantages : performances accrues et stabilit e´ . Inconv´enients : • N´ ecessite une adaptation du noyau des syst`emes invit´es ; • Usage limit´ e aux syst`emes libres (cons´equence du point pr´ec´edent). Exemples : Xen, Microsoft Hyper-V .
9.3 Virtualisation au niveau du syst`eme d’exploitation La virtualisation au niveau du syst e` me d’exploitation est une strat e´ gie qui consiste a` r´ealiser le processus de virtualisation au niveau du noyau du syst e` me hˆote (ce mod`ele ne fait donc pas intervenir de couche virtuelle suppl´ementaire). Cette forme de virtualisation consiste a` cr´eer des environnements virtuels (appel e´ s conteneurs) qui vont chacun dupliquer certains composants du syst`eme d’exploitation hˆote. Les capacit´es de virtualisation font d`es lors partie int´egrante du syst`eme hote ˆ et non plus de l’hyperviseur. La principale contrainte de ce mod`ele de virtualisation r´eside dans le fait que les syst`emes invit´es doivent imp´erativement eˆ tre du mˆeme type que le syst`e me hote ˆ 8. Dans le mod`eles des machines virtuelles, chaque syst`eme virtualis´e communique avec le mat´eriel au travers d’une couche de virtualisation. Plus le nombre de machines virtuelles est important et plus le syst`eme est ralentit (il faut en e ff et traduire un grand nombre d’op´erations virtuelles). Par contre, la virtualisation au niveau du syst e` me d’exploitation autoriseles environnements virtuels a` communiquer directement avec le syst`eme d’exploitation hote, ˆ comme s’il n’existait aucune couche de virtualisation, ce qui am´eliore les performances. Comme lespartitionsde virtualisation au niveaudu syst`emed’exploitation sont g´en´eralement bien plus petites que les partitions des machines virtuelles, il est possible d’ex´ecuter un grand nombre d’environnements virtuels en parall`ele. Avantages : • permet de faire fonctionner plusieurs instances du mˆ eme syst`eme de fac¸on e´ tanche. 7
Une grande partie du travail de virtualisation a ´et´e r e´ alis´e en modifiant le noyau du syst`eme invit´e On ne duplique plus virtuellement le mat´eriel sous-jacent mais bien des composants logiciels du syst`eme d’exploitation hote ˆ ; il n’est donc pas possible d’ex e´ cuter des applications qui n e´ cessiteraient un environnement d’ex´ecution diff e´ rent 8
16 / 20
9
´ LES DIFF ERENTS TYPES DE VIRTUALISATION
F. 13 – Virtualisation compl`ete performances proches du mode natif. Inconv´enients : ne permet de faire fonctionner qu’un seul type de syst e` me. Exemples : Linux VServer,Virtuozzo. •
17 / 20
10
CONCLUSION
10 Conclusion Nous avons vu que la virtualisation est une technologie aujourd’hui largement r´epandue au sein des entreprises. Elle peut prendre de nombreuses formes et est pr e´ sente a` tous les niveaux. Bien que ces solutions pr´esentent un certain nombre d’inconv´enients, les avantages qu’elles apportent peuvent s’av e´ rer d´eterminants dans la politique d’acquisition, de structuration et de gestion des ressources informatiques. Bas´ee sur le travail de deux chercheurs am e´ ricains qui ont, dans un document publi´e il y a bientˆot 40 ans, impos´e au jeu d’instructions des processeurs un certain nombre de contraintes afin de pouvoir supporter la virtualisation, celle-ci pose aujourd’hui de nombreux probl`emes. En eff et, le jeu d’instructions de l’architecture la plus r´epandue actuellement ne respecte pas ces contraintes. Ceci a pour cons e´ quence de complexifier le travail des hyperviseurs et il en r´esulte une d´egradation des performances des logiciels de virtualisation. Le besoin de pallier ces probl`e mes s’est vite fait ressentir et c’est ainsi que s’est d´evelopp´e un grand nombre de solutions d’aide a` la virtualisation directement incluses au sein du mat´eriel qui constitue nos ordinateurs. Aujourd’hui, mˆeme s’il existe beaucoup de logiciels de virtualisation, ceux-ci peuvent eˆ tre regroup´es en trois grandes classes : la virtualisation compl`ete, la para-virtualisation et la virtualisation au niveau du syst e` me d’exploitation. Pour terminer, quel est l’avenir de la virtualisation ? L’avenir de la virtualisation d´epend d’un grand nombre de facteurs. Tout d’abord, il est n´ecessaire de reconsid´erer notre vision de la technologie afin de profiter pleinement des avantages li e´ s a` la virtualisation. L’informatique est une science en constante e´ volution et il est imp´eratif de remettre en question un grand nombre de principes qui sont aujourd’hui largement r e´ pandus. Intel et AMD, bien qu’ils soient sur la bonne voie, ont encoredes eff orts a` faire pouram´eliorer le support mat´eriel de la virtualisation inclu dans leur processeurs, de mani e` re a` supporter plus e fficacement les diff e´ rentes technologies pr´esentes sur le march´e. Les constructeurs de p e´ riph´eriques d’entr´ees / sorties doivent e´ tablir de nouvelles normes pour permettre une simplification des interactions entre les environnements virtuels et les fichiers. Enfin, les d e´ veloppeurs sont tenus de standardiser les di ff e´ rentes technologies de virtualisation utilis´ees a` l’heure actuelle afin de garantir des solutions plus accessibles dans le futur.
18 / 20
R´ef´erences [1] Server
Virtualization
:
Covrering
today’s Server Virtualization topics. searchservervirtualization.techtarget.com/ . [2] AllExperts. Serveurs et Stockage. www.zdnet.fr/actualites/it-management/0, 3800005311,39711925,00.htm. [3] AnandTech. Hardware Virtualization : the Nuts and Bolts . www.anandtech.com/IT/ showdoc.aspx?i=3263&p=1 . Pourquoi virtualiser est GREEN . www.arumtec.net/fr/ [4] Arumtec. laboratoire-arumtec/faq/q5-pourquoi-virtualiser-est-green. [5] AMD Company. AMD Nested Paging. Juillet 2008. [6] Alain Devarieux. Virtualisation de serveurs, Solutions Open Source. [7] Gagnaire Laure et Lahoudere Fabien. La virtualisation. D´ecembre 2007. [8] Bernard Golden. Virtualization for Dummies. [9] Cynthia E. Irvine John Scott Robin. Analysis of the Intel Pentium’s Ability to Support a Secure Virtual Machine Monitor. Aout ˆ 2000. [10] Najmi. Generations of Computer. Aout ˆ 2004. [11] Popek and Goldberg. Formal Requirements for Virtualizable Third Generation Architectures. Juillet 1974. [12] Inc. Red Hat. Virtualization Guide : Red Hat Virtualization. 2007. [13] Hardware Secrets. Intel Virtualization Technology (VT) Explained. www.hardwaresecrets. com/article/263/1 . [14] Amit Singh. An introduction to virtualization. www.kernelthread.com/publications/ virtualization/ , Janvier 2004. [15] Genesis Multimedia Solutions. Virtualization Technologies. Juin 2009. [16] Pascal Verschaeve. Trasys - Service Presentation - Virtualization Service O ff erings. The Rise of Virtual Systems and Virtualization. [17] Virtualizationdefrag. virtualizationdefrag.com/articles/history-of-virtualization/index.php, 2009. [18] VMware. Understanding Full Virtualization, Paravirtualization, and Hardware Assist. 2007. [19] VMware. Historique de la virtualisation. www.vmware.com/fr/overview/history.html , 2008. Serveurs et Stockage. [20] ZDnet. www.zdnet.fr/actualites/it-management/0, 3800005311,39711925,00.htm.
A Les 18 instructions probl´ematiques de x86 • • • • • • • • • • • • • • • • • •
SGDT SIDT SLDT SMSW PUSHF POPF LAR LSL VERR VERW POP PUSH CALL JMP INT n RET STR MOVE