Vous êtes sur la page 1sur 5

En informatique, on tente de dfinir la virtualisation comme un ensemble de techniques matrielles et/ou

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 :

couche d'abstraction matrielle et/ou logicielle


systme d'exploitation hte (install directement sur le matriel)
systmes d'exploitations (ou applications, ou encore ensemble d'applications) virtualis(s) ou
invit(s)
partitionnement, isolation et/ou partage des ressources physiques et/ou logicielles
images manipulables : dmarrage, arrt, gel, clonage, sauvegarde et restauration, sauvegarde de
contexte, migration d'une machine physique une autre
rseau virtuel : rseau purement logiciel, interne la machine hte, entre hte et/ou invits

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.

Comparaison de diffrentes techniques de virtualisation


Afin d'avoir une ide thorique des performances des applications au sommet, il faut comparer
verticalement l'empilage de couches. Il est possible d'largir les schmas en rajoutant des environnements
virtualiss consommant galement des ressources de l'hte.

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 :

Linux-VServer : isolation des processus en espace utilisateur ;


chroot : isolation changement de racine ;
BSD Jail : isolation en espace utilisateur ;

OpenVZ : libre, partitionnement au niveau noyau sous Linux.

Noyau en espace utilisateur

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 :

User Mode Linux : noyau tournant en espace utilisateur


Cooperative Linux ou coLinux : noyau coopratif avec un hte Windows
Adeos : micro noyau RT faisant tourner Linux en kernel-space non-RT
L4Linux : micro noyau RT faisant tourner Linux en kernel-space non-RT

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 :

QEMU : mulateur de plateformes x86, PPC, Sparc


kvm : version modifie de QEMU tirant parti des instructions de virtualisation des processeurs Intel et
AMD (Intel VT ou AMD-V)

bochs : mulateur de plateforme x86


Lismoresystems Guest PC : propritaire, mulateur de plateforme x86 sur matriel PC
MacOnLinux : mulateur de plateforme Mac OS sur Linux PPC
Microsoft VirtualPC et Microsoft VirtualServer : propritaire, mulateur de plateforme x86
Parallels : propritaire
PearPC : mulateur de plateforme PPC sur matriel x86
Plex86 : mulateur de plateforme x86
VirtualBox : mulateur de plateforme x86
Oracle VM : propritaire, mulateur de plateforme x86 (hyperviseur et guest)
VMware : propritaire, mulateur de plateforme x86 (produits VMware Server, VMware Player et VMware
Workstation)

Hercules : mulateur qui permet l'mulation d'un mainframe z/OS sur PC Windows ou Linux avec
mulation des disques

Para virtualisation ou hyperviseur

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 :

Hyperviseur IBM Power & Micro-partitionnement AIX


Mainframes : VM/CMS
Sun LDOM (hyperviseur pour la gestion de "logical domains")
Sun E10k/E15k
HP Superdome
AMD-V (Assistance la virtualisation de AMD, anciennement Pacifica)
Intel VT (Assistance la virtualisation de Intel, anciennement Vanderpool)