Académique Documents
Professionnel Documents
Culture Documents
logicielles qui permettent de faire fonctionner sur une seule machine plusieurs systmes d'exploitation et/ou
plusieurs applications, sparment les uns des autres, comme s'ils fonctionnaient sur des machines
physiques distinctes. Les outils de virtualisation servent faire fonctionner ce qu'on appelle communment
des serveurs privs virtuels (Virtual Private Servers ou VPS) ou encore environnements virtuels (Virtual
Environments ou VE). Le mot virtualisation est galement utilis pour les postes clients des serveurs. Il
s'agit dans ce cas de banaliser le poste qui se connecte aux serveurs.
Principe
Il peut sembler a priori trange de simuler plusieurs machines sur une seule : un systme d'exploitation tant
en principe conu pour utiliser au mieux un matriel qui est entirement sous son contrle pour cette raison,
il semble premire vue que cette solution conduise des inefficiences auxquelles s'ajoute le fait que le
processus de virtualisation lui-mme va consommer des ressources.
La ralit n'est cependant pas si sombre. D'une part, on vite une grande partie de ces inefficiences juste en
disposant de disques diffrents pour chaque systme lorsque c'est possible, et d'autre part les cots de la
mmoire permettent chacun de ces systmes de rester rsident, et parfois mme avec de larges sections de
code partages1. Par ailleurs le microcode des mainframes comme des microprocesseurs inclut de plus en
plus de fonctionnalits rendant la virtualisation plus efficace.
Enfin, il est courant pour une entreprise de disposer d'une quinzaine de serveurs fonctionnant 15% de leur
capacit, celle-ci n'tant l que pour faire face tout moment aux pointes de charge sporadiques. Un serveur
charg 15% ne consomme pas beaucoup moins d'nergie qu'un serveur charg 90%, et regrouper 4
serveurs sur une mme machine peut donc s'avrer rentable si leurs pointes de charge ne concident pas
systmatiquement, mme si 30% de la charge machine est reprsente par la virtualisation elle-mme2
Enfin, la virtualisation des serveurs permet une bien plus grande modularit dans la rpartition des charges
et la reconfiguration des serveurs en cas d'volution ou de dfaillance momentane (plan de secours, etc.).
Notions
Chaque outil de virtualisation met en uvre une ou plusieurs de ces notions :
Intrts de la virtualisation
utilisation optimale des ressources d'un parc de machines (rpartition des machines virtuelles sur les
machines physiques en fonction des charges respectives),
installation, dploiement et migration facile des machines virtuelles d'une machine physique une autre,
notamment dans le contexte d'une mise en production partir d'un environnement de qualification ou de
pr-production, livraison facilite,
conomie sur le matriel par mutualisation (consommation lectrique, entretien physique, surveillance,
support, compatibilit matrielle, etc.)
installation, tests, dveloppements, cassage et possibilit de recommencer sans casser le systme
d'exploitation hte
scurisation et/ou isolation d'un rseau (cassage des systmes d'exploitation virtuels, mais pas des
systmes d'exploitation htes qui sont invisibles pour l'attaquant, tests d'architectures applicatives et
rseau)
isolation des diffrents utilisateurs simultans d'une mme machine (utilisation de type site central)
allocation dynamique de la puissance de calcul en fonction des besoins de chaque application un
instant donn,
diminution des risques lis au dimensionnement des serveurs lors de la dfinition de l'architecture d'une
application, l'ajout de puissance (nouveau serveur etc.) tant alors transparent.
Isolateur
Un isolateur est un logiciel permettant d'isoler l'excution des applications dans ce que lon appelle des
contextes ou bien zones d'excution. L'isolateur permet ainsi de faire tourner plusieurs fois la mme
application dans un mode multi-instance (plusieurs instances dexcution) mme si elle ntait pas conue
pour a.
Cette solution est trs performante, du fait du peu d'overhead (temps pass par un systme ne rien faire
d'autre que se grer), mais les environnements virtualiss ne sont pas compltement isols.
La performance est donc au rendez-vous, cependant on ne peut pas vraiment parler de virtualisation de
systmes dexploitation. Uniquement lis aux systmes Linux, les isolateurs sont en fait composs de
plusieurs lments et peuvent prendre plusieurs formes.
Exemples :
Un noyau en espace utilisateur (user-space) tourne comme une application en espace utilisateur de l'OS
hte. Le noyau user-space a donc son propre espace utilisateur dans lequel il contrle ses applications.
Cette solution est trs peu performante, car deux noyaux sont empils et lisolation des environnements
nest pas gre et lindpendance par rapport au systme hte est inexistante. Elle sert surtout au
dveloppement du noyau.
Exemples :
Machine virtuelle
Une machine virtuelle est un logiciel (gnralement assez lourd) qui tourne
sur l'OS hte. Ce logiciel permet de lancer un ou plusieurs OS invits. La
machine virtualise ou/et mule le matriel pour les OS invits, ces derniers
croient dialoguer directement avec ledit matriel.
Cette solution est trs comparable un mulateur, et parfois mme
confondue. Cependant lunit centrale de calcul, c'est--dire le
microprocesseur, la mmoire de travail (ram) ainsi que la mmoire de
stockage (via un fichier) sont directement accessibles aux machines
virtuelles, alors que sur un mulateur lunit centrale est simule, les
performances en sont donc considrablement rduites par rapport la virtualisation.
Cette solution isole bien les OS invits, mais elle a un cot en performance. Ce cot peut tre trs lev si le
processeur doit tre mul, comme cela est le cas dans lmulation. En change cette solution permet de
faire cohabiter plusieurs OS htrognes sur une mme machine grce une isolation complte. Les
changes entre les machines se font via les canaux standards de communication entre systmes
dexploitation (TCP/IP et autres protocoles rseau), un tampon dchange permet dmuler des cartes
rseaux virtuelles sur une seule carte rseau relle.
Exemples :
Hercules : mulateur qui permet l'mulation d'un mainframe z/OS sur PC Windows ou Linux avec
mulation des disques
Un hyperviseur est comme un noyau systme trs lger et optimis pour grer les accs des noyaux d'OS
invits l'architecture matrielle sous-jacente. Si les OS invits fonctionnent en ayant conscience d'tre
virtualiss et sont optimiss pour ce fait, on parle alors de para-virtualisation (mthode indispensable sur
Hyper-V de Microsoft et qui augmente les performances sur ESX de VMware par exemple).
Actuellement lhyperviseur est la mthode de virtualisation d'infrastructure la plus performante mais elle a
pour inconvnient dtre contraignante et onreuse, bien que permettant plus de flexibilit dans le cas de la
virtualisation d'un centre de traitement informatique.
Plusieurs solutions sont prsentes sur ce march, il est intressant den faire un lger aperu. Xen est un
hyperviseur initialement dvelopp par l'universit de Cambridge au Royaume-Uni et actuellement proprit
de Citrix, il utilise un noyau lger supportant des noyaux Linux, Plan9, NetBSD, etc. VMware a un produit
mature, ESX qui fait partie d'une offre globale visant virtualiser les moyens informatiques de l'entreprise.
Microsoft a sorti un hyperviseur bas sur les mmes principes fondateurs que ses concurrents. L'hyperviseur
de Microsoft est intgr dans son Windows Server 2008 (version 64bits uniquement).
Exemples :
VMware : propritaire, hyperviseur sur plateforme x86 (produits ESX et ESXi -Gratuit-)
Oracle VM : propritaire, hyperviseur sur plateforme x86
Xen : noyau lger supportant des noyaux Linux, Plan9, NetBSD, etc.
Hyper-V : propritaire (Microsoft), hyperviseur sur plateforme x86.
Proxmox : libre ( base de Debian) , sous licence Gnu/Gpl, hyperviseur de machines virtuelles
Matriel
Le support de la virtualisation peut tre intgr au processeur ou assist par celui-ci, le matriel se
chargeant, par exemple, de virtualiser les accs mmoire ou de protger le processeur physique des accs les
plus bas niveau. Cela permet de simplifier la virtualisation logicielle et de rduire la dgradation de
performances.
Des exemples de virtualisation matrielle :