Sunteți pe pagina 1din 22

Facult´e des Sciences

D´epartement d’Informatique

La V i r t u a l i s a t i o n

Fran¸cois Santy

Projet de Recherche et Communication Scientifique


Ann´ee acad´emique 2009 - 2010
Table des mati`eres
1 Introduction 1
2 D´efinition 2
3 Les domaines de la virtualisation 2
3.1 La virtualisation d’applications . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
3.2 La virtualisation de r´eseaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
3.3 La virtualisation de stockage . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
3.4 La virtualisation de serveurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
4 Les avantages de la virtualisation 5
5 Les inconv´enients de la virtualisation 7
6 Les principes de la virtualisation 8
6.1 Vocabulaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
6.2 Pr´erequis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
6.3 Th´eor`emes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
6.4 Composants d’un hyperviseur . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

7 Les probl`emes li´es a `la virtualisation 11


8 La virtualisation mat´erielle 13

9 Les differents
´ types de virtualisation 14
9.1 Machine virtuelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
9.2 Para-virtualisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
9.3 Virtualisation au niveau du syst`eme d’exploitation . . . . . . . . . . . . . . . . 16

10 Conclusion 18
A Les 18 instructions 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´ecurit´e une distribution Linux sur sa plate-forme
Windows, aux grandes entreprises qui souhaitent rentabiliser davantage leur infrastructure
informatique.
Dans ce document, nous commencerons par pr´esenter bri`evement les diff erents
´ 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´eorie de Popek et Goldberg, deux chercheurs
am´ericains qui se sont rapidement int´eress´es a` la virtualisation et en ont pos´e les bases.
Nous nous rendrons compte par la suite que les ordinateurs actuels ne respectent mal-
heureusement pas compl`etement cette th´eorie, et que cela pose de nombreux probl`emes en
terme d’impl´ementation des syst`emes de virtualisation.
Nous montrerons par apr`es qu’il est possible de r´esoudre 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 some-
thing, such as an operating system, a server, a storage device or network resources.” [1]
Nous voyons que la virtualisation repose sur trois el´ements
´ importants :
1. L’abstraction des ressources informatiques ;
2. La r´epartition des ressources par l’interm´ediaire de diff erents ´ outils, de mani`ere a` ce
ˆ utilis´ees par plusieurs environnements virtuels ;
que celles-ci puissent etre
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’application et 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´ementaire entre un programme donn´e et le syst`eme d’-
exploitation ; son but est d’intercepter toutes les op´erations d’acc`es ou de modification de
fichiers ou de la base de registre1 afin de les rediriger de mani`ere totalement transparente
vers une localisation virtuelle (g´en´eralement un fichier). Puisque cette op´eration est trans-
parente, l’application n’a pas notion de son etat ´ virtuel. Le terme virtualisation d’application
est trompeur puisqu’il ne s’agit pas de virtualiser l’application mais plutotˆ le contexte au
sein duquel elle s’ex´ecute (registres du processeur, syst`eme 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´es

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 et´e
´ d´evelopp´ees pour d’autres environnements d’ex´ecution (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 inter-
agir avec les fichiers de configuration du syst`eme ; elle evite
´ 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 ecrire
´ 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 meme ˆ infras-
tructure physique (d´ebit des liens, ressources CPU des routeurs,...) au profit de plusieurs
r´eseaux virtuels isol´es. Un VL AN (Virtual Local Area Network) est un r´eseau local regroupant
un ensemble de machines de fac¸on logique et non physique. Puisqu’un VL A N est une entit´e
logique, sa cr´eation et sa configuration sont r´ealis´ees de mani`ere logicielle et non mat´erielle.
On distingue plusieurs types de r´eseaux virtuels :
• Les r´eseaux virtuels de niveau 1, appel´es r´eseaux virtuels par port (port-based VLAN) :
ils d´efinissent un r´eseau virtuel en fonction des ports de raccordement sur le com-
mutateur (switch). Ainsi, chaque port du commutateur est associ´e a` un r´eseau virtuel,
ind´ependamment de la machine qui y est physiquement raccord´ee. Le principal in-
conv´enient d’un VL AN de niveau 1 est sa rigidit´e : si une station se raccorde physique-
ment 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´es r´eseaux virtuels par adresse MAC (MAC
address-based VLAN) : ils consistent a` d´efinir un r´eseau virtuel sur base des adresses
MAC des stations. Une adresse MAC est un identifiant unique impl´ement´e dans chaque
adaptateur r´eseau. Ce type de VL AN 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 VL AN
de niveau 3 :
◦ Les r´eseaux virtuels par adresse de sous-r´eseau (Network address-based VLAN) : ils
d´eterminent les r´eseaus virtuels sur base de l’adresse IP source des segments. Ce type
de r´eseau virtuel est tr`es flexible puisque les commutateurs adaptent automatique-
ment leur configuration lorsqu’une station est d´eplac´ee. En revanche, une l´eg`ere
d´egradation des performances peut se faire resentir puisque les segments doivent
etre
ˆ analys´es plus minutieusement.
◦ Les r´eseaux virtuels par protocole (Protocol-based VLAN). Dans ce cas, les r´eseaux
´ sur base des protocoles utilis´es (TCP/IP, IPX,...) et les stations sont
virtuels sont cr´ees
regroup´ees en r´eseaux virtuels suivant le protocole qu’elles utilisent.
Les avantages qu’off rent les r´eseaux virtuels sont les suivants : une r´eduction du traffi c de
diff usion (broadcast) puisque celui-ci est a` pr´esent contenu au sein de chaque r´eseau virtuel ;
une s´ecurit´e accrue puisque l’information est encapsul´ee dans une couche suppl´ementaire ;
une meilleure flexibilit´e puisqu’une modification de la structure des r´eseaux peut etreˆ r´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´eriph´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 etre
ˆ 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 ser-
vices ;
´
• de regrouper des unit´es de disques durs de diff erentes ´
vitesses, de diff erentes tailles et
´
de diff erents constructeurs ;
• de r´eallouer dynamiquement de l’espace de stockage. Ainsi, un serveur n´ecessitant
un espace de stockage suppl´ementaire pourra rechercher des ressources non allou´ees
sur le disque logique. Invers´ement, un serveur n´ecessitant 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 grace
ˆ auquel il va diviser un serveur physique (constitu´e ou non de
plusieurs machines distinctes) en plusieurs environnements virtuels isol´es les uns des autres.
Ces environnements isol´es sont parfois appel´es serveurs priv´es virtuels, hotes,
ˆ instances, con-
taineurs ou emulations.
´
La virtualisation de serveurs s’inscrit dans une tendance globale qui tend a` promou-
voir la virtualisation au sein des entreprises en faisant notamment appel a` la virtualisation
de stockage et a` la virtualisation de r´eseaux. 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 con-
servant les d´etails de son impl´ementation invisibles pour l’utilisateur.
La suite de ce document concerne plus particuli`erement la virtualisation des serveurs.

4 Les avantages de la virtualisation


Au cours des derni`eres ann´ees, la virtualisation semble s’etre
ˆ impos´ee comme un el´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 eff et, il y a quelques ann´ees, la relation une ap-
´
plication ↔ un serveur etait 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 . 4 – Rendement d’un serveur en F . 5 – Rendement d’un serveur en


l’absence de virtualisation pr´esence de virtualisation

de r´ecup´erer ces ressources disponibles afin d’en faire b´en´eficier d’autres applications.
La virtualisation va apporter une solution effi cace : plutotˆ 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 virtu-
´
alisation qui se charge de r´epartir equitablement ´
les ressources entre les diff erentes
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 affi rme qu’un
serveur au repos consomme jusqu’`a 30% du pic de consommation electrique ´ 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 (pro-
cesseurs, m´emoire,...) tandis que les 63,6% restants sont consomm´es par les equipements
´
de climatisation. Ces chiff res sont interpelants et la virtualisation de l’infrastructure
d’une entreprise doit devenir un de ses projets prioritaires. Puisque plusieurs appli-
cations peuvent a` pr´esent cohabiter de mani`ere effi ˆ
cace sur un meme syst`eme, les
entreprises vont pouvoir r´eduire le nombre de machines de leur centre de donn´ees
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´equent, les entreprises
font des economies
´ 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 . 7 – Centre de calcul cen-


F . 6 – Centre de calcul distribu´e tralis´e

egalement
´ dans une tendance g´en´erale a` la promotion du respect de l’environnement.
Selon Gartner, une entreprise am´ericaine de conseil et de recherche dans le domaine des
techniques avanc´ees, l’industrie informatique serait responsable de 2% des emissions´
mondiales de CO2. La virtualisation aurait permis d’´economiser 5 milliards de kWh
d’´energie electrique
´ (source :VMware).
3. Une reprise automatique lors des incidents. La virtualisation permet d’am´eliorer la
pr´evention et la gestion des pannes ainsi que le plan de reprise de l’activit´e du syst`eme.
´
En eff et, les equipements ´
virtuels etant constitu´es d’un ensemble de fichiers, il est tr`es
simple de les sauvegarder. Si un probl`eme survient sur une machine physique, les
fichiers qui ont et´e
´ sauvegard´es auparavant pourront rapidement etre ˆ restaur´es sur une
autre machine physique, en attendant que la machine virtuelle initiale soit red´emarr´ee.
4. Une optimisation de la s´ecurit´e des donn´ees. Par la centralisation des ressources ap-
plicatives 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 eff et beaucoup plus simple de controler ˆ
l’acc`es 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`ele
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 et´e´ d´evelopp´es. Ils peuvent etre
ˆ regroup´es
en 3 grandes cat´egories : P2V (Physical to Virtual), V2P (Virtual to Physical) et V2V (Virtual

6 / 20
´
5 LES INCONVENIENTS 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´es 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`ere. 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`emes virtuels diff erents.
6. Flexibilit´e et compatibilit´e. La virtualisation est un outil effi cace en terme de flexibilit´e
et de compatibilit´e. En eff et, elle supprime toute d´ependance entre une application
donn´ee et et l’aspect mat´eriel 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 et´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 ap-
plication lorsque l’on n’est pas certain du r´esultat qui sera produit. Pour r´eduire les
risques li´es a` des applications peu fiables, la virtualisation peut etre
ˆ utilis´ee pour cr´eer
des environnements isol´es et s´ecuris´es 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´estabiliser 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´esavantage 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. Un recours a` des machines puissantes. La virtualisation permet de r´ealiser des economies
´
puisque moins de machines physiques sont n´ecessaires. N´eanmoins, les outils de vir-
tualisations sont des applications tr`es gourmandes en ressources et n´ecessitent des
machines puissantes. Il est evidemment
´ possible d’utiliser la virtualisation sur des
machines plus modestes, mais un manque de m´emoire ou de capacit´e CPU peut faire
chuter les performances de mani`ere 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 etre ˆ significa-
tive. Ce probl`eme est d’autant plus embarassant qu’il est diffi cile 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´ef´erable 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`eme. La couche de virtuali-
sation vient s’ajouter aux autres et apporte potentiellement avec elle un ensemble de
nouveaux probl`emes. La diffi cult´e de cette couche additionnelle r´eside dans le fait
que, si quelque chose ne fonctionne pas correctement, la localisation du probl`eme peut
demander des eff 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 diffi cult´es lors de
leur virtualisation. Les bases de donn´ees sont un exemple de telles applications. En
eff et, les bases de donn´ees ont recours a` de nombreux acc`es disques et le d´elai 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´esavantage de la facilit´e de mise en place
d’un nouvel environnement virtuel. En effet, certains administrateurs estiment qu’il
est plus s´ecurisant de d´eployer un serveur dans un nouvel environnement virtuel, isol´e
des autres, plutotˆ qu’au sein d’un syst`eme d’exploitation qui ex´ecute simultan´ement
d’autres applications. Cependant, l’administration et les couts ˆ d’une telle op´eration
ajoutent une charge suppl´ementaire qu’il est diffi cile 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 erentes 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 ordina-
teurs utilisaient des tubes sous vide pour r´ealiser 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´erations d’entr´ees (inputs) se faisaient a` l’aide
de cartes perfor´ees et les op´erations de sorties (outputs) etaient
´ r´ealis´es sous forme
d’impressions.
2. La deuxi`eme g´en´eration, de 1956 a` 1963 : les transistors. Invent´es 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’´energie 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´egr´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´es et plac´es sur des puces en silicium, appel´e
semiconducteur, ce qui a pour eff et d’accroˆıtre consid´erablement la vitesse et l’effi cacit´e
des ordinateurs de l’´epoque. Les ordinateurs de troisi`eme g´en´eration r´evolutionnent
egalement
´ 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 equipe ´ 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 egalement
´ 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`eme g´en´eration,
comme la reconnaissance vocale, sont d´ej`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´ee et
effi cace d’une machine physique. [11]
• Un hyperviseur ou controleur ˆ de machine virtuelle (Virtual Machine Monitor, VMM) :
il s’agit d’un logiciel qui va cr´eer et g´erer l’ex´ecution d’un certain nombre de machines
virtuelles. Popek et Goldberg ont etabli ´ trois contraintes que doivent respecter les
controleurs
ˆ de machines virtuelles pour pouvoir etre ˆ consid´er´es en tant que tels :
1. Crit`ere d’equivalence
´ :
Any program run under the VMM should exhibit an effect identical with that
demonstrated if the program had been run on the original machine directly, with
the possible exception of differences caused by the availability of system resources
and differences caused by timing dependencies.
Ce crit`ere impose que tout programme doit montrer un comportement simi-
laire, qu’il soit ex´ecut´e au travers d’un syst`eme de virtualisation ou bien directe-
ment sur la machine physique, a` l’exception d’une eventuelle
´ 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 ma-
chines virtuelles.
2. Crit`ere d’effi cacit´e :
The second characteristic of a virtual machine monitor is efficiency. 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 ex´ecut´ees par le processeur physique et ce, sans intervention
du syst`eme de virtualisation. La virtualisation mat´erielle (voir 8) permet de mieux
r´epondre a` cette contrainte. Ce crit`ere exclut les syst`emes purement logiciels
(simulations) ainsi que l’´emulation.
3. Crit`ere de controle ˆ 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`eme de virtualisation et ce dernier
se r´eserve le droit de reprendre le controle ˆ d’une ressource a` n’importe quel mo-
ment. Le terme ressource se r´ef`ere a` la m´emoire et aux autres p´eriph´eriques, pas
uniquement au processeur.

6.2 Pr´erequis
Les pr´erequis enonc´es
´ par Popek et Goldberg sont un ensemble de conditions n´ecessaires
assurant a` une architecture mat´erielle de supporter effi cacement le processus de virtualisa-
tion.
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 effi ´
cace aux contraintes evoqu´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´ecuter. Pour enoncer
´ 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´ema d’hyperviseur et de machine virtuelle pr´esent´e dans l’article de Popek et


Goldberg de 1974 [11]

• Les instructions privil´egi´ees : pour les ex´ecuter, le processeur doit etre


ˆ dans un mode
particulier, le mode privil´egi´e. Si le processeur ne se trouve pas dans cet etat, ´ une
interruption est d´eclench´ee et l’instruction est pi´eg´ee (trapped). L’interruption consiste
en un changement de contexte au cours duquel le syst`eme (que ce soit l’OS hote ˆ 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`eme 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 com-
portement ou le r´esultat va d´ependre de l’´etat ou la disponibilit´e des ressources (si le
processeur se trouve en mode privil´egi´e ou non,...).

6.3 Th´eor`emes
Les r´esultats de l’analyse de Popek et Golberg peuvent s’´enoncer suivant 2 th´eor`emes :
• Th´eor`eme 1
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`ere intuitive, le th´eor`eme affi rme que pour construire un hyperviseur pour une
architecture particuli`ere, il est n´ecessaire que les instructions qui pourraient compro-
mettre le bon fonctionnement de cet hyperviseur (instructions sensibles a`la configura-
tion) soient pi´eg´ees et que le controle
ˆ soit donn´e a` l’hyperviseur. Ceci garantit le crit`ere
de controle
ˆ des ressources. Les instrutions non privil´egi´ees, quant a` elles, doivent etre ˆ
ex´ecut´ees sans intervention de l’hyperviseur afin de garantir le crit`ere d’effi cacit´e.
Remarquons que si les instructions sensibles a` la configurations ne font pas par-
tie des instructions privil´egi´ees, alors, en vertu du crit`ere d’effi cacit´e, elles seront
ex´ecut´ees sans intervention de l’hyperviseur et par cons´equent, le crit`ere de controle
ˆ
des ressources n’est pas respect´e.
Une d´emonstration plus rigoureuse de ce th´eor`eme est pr´esent´ee dans l’article original
de Popek et Goldberg [11].
• Th´eor`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 LES PROBLEMES ´ A` LA VIRTUALISATION
LIES

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 affi rme que ce processus est r´ealisable pour autant que l’architecture
mat´erielle r´eponde au premier th´eor`eme et qu’un hyperviseur puisse etre ˆ d´evelopp´e
pour cette architecture.

6.4 Composants d’un hyperviseur


L’hyperviseur, ou programme de controle, ˆ 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 etre
ˆ consid´er´e comme le module de controle ˆ de plus
haut niveau de l’hyperviseur. Son role ˆ est de donner le controle a`ˆun des modules de
la deuxi`eme ou de la troisi`eme cat´egorie.
2. L’allocateur : son role
ˆ est de d´eterminer quelle(s) ressource(s) doivent etre ˆ allou´ees
aux applications virtualis´ees. Il est egalement
´ du ressort de l’allocateur de ne pas
donner une meme ˆ 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´ees (`a l’exception de celles qui
sont prises en charge par l’allocateur), on va associer une routine d’interpr´etation. 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´epandu, le jeu d’instruc-
tions qui la compose n’est pas exempt de d´efauts. Si cette architecture se prete ˆ 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´eparties en plusieurs
cat´egories (ou niveaux d’abstraction) appel´ees anneaux. Un processeur qui impl´emente l’ar-
chitecture x86 dispose de quatre anneaux ou` 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 LES PROBLEMES ´ A` LA VIRTUALISATION
LIES

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


elev´e,
´ c.-`a-d. a` l’anneau 0. Le probl`eme de 18 de ces instructions critiques, list´ees dans l’an-
nexe A, est qu’elles peuvent egalement
´ s’ex´ecuter aux anneaux 1, 2 et 3. Cela constitue un r´eel
probl`eme pour les logiciels de virtualisation. En effet, il ne faut en aucun cas qu’un syst`eme
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`ere a` simuler leur
comportement.
Du point de vue des instructions privil´egi´ees, aucun probl`eme ne se pose : ces instructions
vont etre
ˆ pi´eg´ees (puisque le syst`eme 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`ege tr`es elev´e),
´
l’hyperviseur doit etre
ˆ en mesure de les d´etecter de mani`ere a` pouvoir les interpreter. ˆ Il en
r´esulte evidemment
´ 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 etre ˆ ex´ecut´e au niveau de
privil`eges 0, puisqu’ils sont sens´es disposer d’un controle
ˆ 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 etreˆ en mesure de leurrer le syst`eme 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
´
egalement 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 environ-
nements virtuels et avec l’hyperviseur. Celui-ci doit donc egalement
´ 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´ees/sorties constituent a` l’heure actuelle un probl`eme ma-
jeur dans la plupart des logiciels de virtualisation. S’il est plutotˆ facile d’ajouter des unit´es
de calcul sur un serveur physique afin d’am´eliorer les performances des environnements
virtuels, il n’est pas possible d’augmenter le d´ebit d’acc`es aux disques par exemple2. De
plus, contrairement au CPU, une grande partie des p´eriph´eriques sont emul´es, ´ ce qui sig-
nifie que chaque instruction d’acc`es au pilote d’un p´eriph´erique virtuel doit etre ˆ traduite
2
Il faudrait pour cela envisager de remplacer tout le mat´eriel de stockage existant par du mat´eriel plus
performant

12 / 20
8 LA VIRTUALISATION MATE´RIE LLE

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 environ-
nements virtuels en faisant appel aux capacit´es mat´erielles des composants de la machine
physique, et plus particuli`erement 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´ees par le processeur a
fait son apparition avec la prolif´eration des syst`emes a` base d’architecture x86. Comme nous
l’avons vu au point 7, cette architecture se prete
ˆ tr`es 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’ar-
chitecture 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 rapide-
ment compris l’int´eret
ˆ de ces solutions et, en 2006, ils ont chacun inaugur´es 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 (an-
ciennement Pacifia). Globalement, les technologies des deux concurrents sont semblables et
´
nous ne les diff erencierons pas.
D’un point de vue pratique, ces processeurs incluent un nouveau mode d’ex´ecution ap-
pel´e Extension de Machine Virtuelle (Virtual Machine Extension, VMX). Puisque l’hyperviseur
et l’environnement virtuel ne peuvent pas se trouver au meme ˆ niveau de privil`eges (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 controle ˆ 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´erer 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´ecution virtuel, le processus ex´ecute une instruction partic-
uli`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 controle ˆ a` un environnement
virtuel) a` l’aide d’une autre instruction (appel´ee VMLAUNCH chez Intel) et, sym´etriquement,
l’hyperviseur reprendra le controle ˆ 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´ementent egalement
´ des
instructions qui permettent d’acc´el´erer les sauvegardes et restaurations de contexte. En eff et,
lorsqu’un hyperviseur veut donner le controle ˆ a` un autre environnement virtuel, il doit d’une
part sauvegarder le contexte d’ex´ecution de l’environnement virtuel actuellement actif et,
d’autre part, restaurer le contexte d’ex´ecution de l’environnement virtuel a` qui il s’appreteˆ a`
donner le controle.ˆ Ainsi, a` chaque environnement virtuel est associ´e un segment en m´emoire
de quelques kBytes qui contient les donn´ees importantes du contexte d’ex´ecution de cet en-
vironnement. Il est lu a` chaque activation d’un environnement virtuel et r´eecrit´ a` chaque
sortie de celui-ci. Chez AMD, ce segment s’appelle Bloc de Controle ˆ de la Machine Virtuelle
(Virtual Machine Control Block, VMCB) ; chez Intel, ce segment s’appelle Structure de Controle ˆ
de la Machine Virtuelle, (Virtual Machine Control Structure, VMCS).
3
il est parfois aussi appel´e anneau -1

13 / 20
´
9 LES DIFFERENTS TYPES DE VIRTUALISATION

F . 10 – Virtual Machine Extension

9 Les differents
´ 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 par-
ticulier vers un autre (p. ex. x86 → RISC), mais plutot ˆ de traduire les instructions d’un
jeu d’instructions vers ce meme ˆ 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 environ-
nement virtuel pourrait par exemple consister a` remplacer une instruction de manipulation
du mat´eriel physique en une instruction de manipulation du mat´eriel virtuel associ´e a`cet en-
vironnement, ou a` remplacer une instruction privil´egi´ee par une instruction non privil´egi´ee
(de mani`ere a` ce qu’elle soit pi´eg´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 glob-
alit´e5.

4
Parfois, la traduction consiste simplement a` recopier l’instruction de d´epart
5
Le syst`eme hote
ˆ ainsi que les autres environnements virtuels

14 / 20
´
9 LES DIFFERENTS TYPES DE VIRTUALISATION

F . 11 – Intel VT-x

F . 12 – Virtualisation compl`ete : a `gauche, l’hyperviseur g`ere lui meme


ˆ le hardware sous-
jacent ; a` droite, l’hyperviseur transmet les requetes
ˆ aux syst`eme d’exploitation hote
ˆ

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 ou` l’hyperviseur est une application
install´ee sur un syst`eme d’exploitation hote,
ˆ et celles ou` l’hyperviseur est install´e en lieu et
place du syst`eme d’exploitation hote.
ˆ
Avantages :
´
• permet de faire fonctionner plusieurs syst`emes diff erents ˆ machine physique ;
sur la meme
• 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´epandue et la plus fiable.
6
Elles seront de toute fac¸on pi´eg´ees une fois trait´ees par le syst`eme hote
ˆ

15 / 20
´
9 LES DIFFERENTS TYPES DE VIRTUALISATION

9.2 Para-virtualisation
La para-virtualisation consiste pour le syst`eme d’exploitation virtualis´e a`communiquer
plus effi cacement avec l’hyperviseur de mani`ere a` accroˆıtre les performances du syst`eme.
Cette strat´egie de virtualisation est egalement
´ connue sous le nom de virtualisation assist´ee par
le syst`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’hy-
perviseur. L’hyperviseur fournit egalement´ un ensemble d’interfaces d’hyper-appels pour
d’autres op´erations critiques du noyau telles que les op´erations de gestion de la m´emoire,
des interruptions,...
La para-virtualisation est diff erente ´ de la virtualisation compl`ete ou` le syst`eme virtualis´e
n’est pas conscient de son etat ´ et les instructions critiques sont pi´eg´ees et traduites. Le prin-
cipal atout de la para-virtualisatio r´eside dans ses faibles couts ˆ 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 pas les syst`emes non modifi´es (et, par cons´equent,
les syst`emes propri´etaires tels que Microsoft Windows), sa portabilit´e et sa compatibilit´e sont
r´eduites. La para-virtualisation introduit egalement
´ des probl`emes de maintenance et de sup-
port au sein d’environnements de d´eveloppement puisqu’elle n´ecessite 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`eme d’exploitation est une strat´egie qui consiste a`
r´ealiser le processus de virtualisation au niveau du noyau du syst`eme hote ˆ (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´es conteneurs) qui vont chacun dupli-
quer certains composants du syst`eme d’exploitation hote. ˆ 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 etre
ˆ du meme ˆ ˆ 8.
type que le syst`eme hote
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 eff et traduire un grand nombre
d’op´erations virtuelles). Par contre, la virtualisation au niveau du syst`eme d’exploitation au-
torise les 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 les partitions de virtualisation au niveau du syst`eme d’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 :
ˆ syst`eme de fac¸on etanche.
• permet de faire fonctionner plusieurs instances du meme ´
7
´ r´ealis´e en modifiant le noyau du syst`eme invit´e
Une grande partie du travail de virtualisation a et´e
8
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´ecuter des applications qui n´ecessiteraient un environnement
´
d’ex´ecution diff erent

16 / 20
´
9 LES DIFFERENTS 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`eme.
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´esente a` tous les
niveaux. Bien que ces solutions pr´esentent un certain nombre d’inconv´enients, les avantages
qu’elles apportent peuvent s’av´erer d´eterminants dans la politique d’acquisition, de struc-
turation et de gestion des ressources informatiques.
Bas´ee sur le travail de deux chercheurs am´ericains qui ont, dans un document publi´e il
y a bientot
ˆ 40 ans, impos´e au jeu d’instructions des processeurs un certain nombre de con-
traintes 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´equence de complexifier le travail des hyper-
viseurs et il en r´esulte une d´egradation des performances des logiciels de virtualisation.
Le besoin de pallier ces probl`emes 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, memeˆ s’il existe beaucoup de logiciels de virtualisation, ceux-ci peuvent
etre
ˆ regroup´es en trois grandes classes : la virtualisation compl`ete, la para-virtualisation et
la virtualisation au niveau du syst`eme 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´es a` la virtualisation. L’infor-
matique est une science en constante evolution
´ et il est imp´eratif de remettre en question un
grand nombre de principes qui sont aujourd’hui largement r´epandus. Intel et AMD, bien
qu’ils soient sur la bonne voie, ont encore des eff orts a` faire pour am´eliorer le support mat´eriel
de la virtualisation inclu dans leur processeurs, de mani`ere a` supporter plus effi cacement
´
les diff erentes technologies pr´esentes sur le march´e. Les constructeurs de p´eriph´eriques
´
d’entr´ees/sorties doivent etablir de nouvelles normes pour permettre une simplification des
interactions entre les environnements virtuels et les fichiers. Enfin, les d´eveloppeurs sont
´
tenus de standardiser les diff erentes 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.
[4] Arumtec. Pourquoi virtualiser est GREEN. www.arumtec.net/fr/
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/
v i r t u a l i z a t i o n / , Janvier 2004.
[15] Genesis Multimedia Solutions. Virtualization Technologies. Juin 2009.
[16] Pascal Verschaeve. Trasys - Service Presentation - Virtualization Service Offerings.
[17] Virtualizationdefrag. The Rise of Virtual Systems and Virtualization.
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.
[20] ZDnet. Serveurs et Stockage. 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
• L AR
• LSL
• VERR
• VERW
• POP
• PUSH
• CALL
• JMP
• INT n
• RET
• STR
• MOVE

S-ar putea să vă placă și