Vous êtes sur la page 1sur 5

Virtualisation

Cet article ne cite pas suffisamment ses sources (mai 2013). Si vous disposez d'ouvrages ou d'articles de rfrence ou si vous connaissez des sites web de qualit traitant du thme abord ici, merci de complter l'article en donnant les rfrences utiles sa vrifiabilit et en les liant la section Notes et rfrences . (Modifier l'article)

VirtualBox La virtualisation consiste faire fonctionner un ou plusieurs systmes d'exploitation1 / applications comme un simple logiciel, sur un ou plusieurs ordinateurs2 - serveurs / systme d'exploitation, au lieu de ne pouvoir en installer qu'un seul par machine. Ces ordinateurs virtuels sont appels serveur priv virtuel (Virtual Private Server ou VPS) ou encore environnement virtuel (Virtual Environment ou VE).

Sommaire

1 Principe 2 Notions 3 Intrts 4 Historique 5 Diffrentes techniques o 5.1 Isolateur o 5.2 Noyau en espace utilisateur o 5.3 Hyperviseur de type 2 o 5.4 Hyperviseur de type 1 o 5.5 Matriel 6 Notes et rfrences 7 Annexes o 7.1 Articles connexes o 7.2 Liens externes

Principe
Il peut sembler a priori trange de simuler plusieurs machines sur une seule : un systme d'exploitation est conu pour utiliser au mieux un matriel qui est entirement sous son contrle. La juxtaposition de plusieurs systmes non conus pour communiquer entre eux peut faire craindre des inefficiences auxquelles s'ajoute le fait que le processus de virtualisation lui-mme va consommer des ressources. Le tableau n'est pas aussi 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 partages3. Par ailleurs le microcode des mainframes comme des microprocesseurs inclut de plus en plus de fonctionnalits rendant la virtualisation plus efficace4. 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 quatre 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-mme5. 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
Cette section doit tre recycle. Une rorganisation et une clarification du contenu sont ncessaires. Discutez des points amliorer en page de discussion. 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'exploitation (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
Cette section doit tre recycle. Une rorganisation et une clarification du contenu sont ncessaires. Discutez des points amliorer en page de discussion. Les intrts sont :

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.

Historique
Une bonne part des travaux sur la virtualisation fut dveloppe au centre scientifique de Cambridge d'IBM en collaboration avec le MIT, o fut mis au point le systme exprimental CP/CMS, devenant ensuite le produit (alors nomm Hyperviseur) VM/CMS. Voir IBM 360 et 370. Par la suite, les mainframes ont t capables de virtualiser leurs systmes d'exploitation avec des technologies spcifiques et propritaires, la fois logicielles et matrielles. En 1979 fut annonc par exemple sur les IBM 4331 et 4341 un acclrateur VM optionnel et microcod.

Dans la deuxime moiti des annes 1980 et au dbut des annes 1990, on a cr des embryons de virtualisation sur des ordinateurs personnels. Ces solutions pouvaient tre soit purement logicielles, soit couples du matriel additionnel (ajout de processeur, carte rseau, etc.). Et c'est sur des ordinateurs Amiga quip de processeur htrogne comme le 80386 et 80486, 68xxx, et PPC qu'il tait possible de lancer d'autre OS comme un Windows , Mac OS , voire des solutions Linux. Le tout en multitche sous AmigaOS. C'est sur cette machine mythique trs en avance sur son temps, que la technologie de virtualisation tait pleinement exploite et encore ingal aujourd'hui . Pour les PC il y avait des mulateurs comme le SideCar et PC Task. Sur Macintosh Emplant et ShapeShifter. Les grands Unix ont suivi avec les architectures NUMA des Superdome d'HP (PA-RISC et IA-64) et des E10000/E15000 de Sun (UltraSparc). Dans la seconde moiti des annes 1990, les mulateurs sur x86 des vieilles machines des annes 1980 ont connu un norme succs, notamment les ordinateurs Atari, Amiga, Amstrad et les consoles NES, SNES, NeoGeo AES. La socit VMware dveloppa et popularisa la fin des annes 1990 et au dbut des annes 2000 un systme propritaire de virtualisation logicielle des architectures de type x86 pour les architectures de type x86. Les logiciels libres Xen, KVM, QEMU, Bochs, Linux-VServer, Virtual Box et les logiciels propritaires mais gratuits VirtualPC, Virtual Server et VMware Server ont achev la popularisation de la virtualisation dans le monde x86. VMware a dernirement rendu gratuit une version allege de son hyperviseur phare ESX3i. Les fabricants de processeurs x86 AMD et Intel ont mis en uvre la virtualisation matrielle dans leurs gammes dans la seconde moiti de l'an 2000.

Diffrentes techniques
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

Isolateur. Un isolateur est un logiciel permettant d'isoler l'excution des applications dans ce qui sont appels 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. Par exemple : 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) ; LXC : libre, (usage des Cgroups du noyau Linux).

Noyau en espace utilisateur

Noyaux en mode 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. Par exemple : 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).

Hyperviseur de type 2

Hyperviseur de type 2. Un hyperviseur de type 2 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. Par exemple : logiciels Microsoft (Microsoft VirtualPC, Microsoft Virtual Server), logiciels Parallels (Parallels Desktop, Parallels Server), Oracle VM VirtualBox (libre), logiciels VMware (VMware Fusion, VMware Player, VMware Server, VMware Workstation), logiciels libres (QEMU : mulateur de plateformes x86, PPC, Sparc, et bochs : mulateur de plateforme x86).

Hyperviseur de type 1

Hyperviseur de type 1 Un hyperviseur de type 1 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 HyperV 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 de donnes. Par exemple : Citrix Xen Server (libre), VMware vSphere (anciennement VMware ESXi et VMware ESX), Microsoft Hyper-V Server, Parallels Server Bare Metal, KVM (libre), Oracle VM (en) (gratuit), et Lime Access.

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 Power6 & 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) et Intel VT (Assistance la virtualisation de Intel, anciennement Vanderpool