Qu’est ce que la virtualisation?
On appel communément virtualisation la possibilité d’utiliser un même hardware (un même serveur physique) pour faire tourner plusieurs machines virtuelles. Ces machines virtuelles peuvent être du même type de système d’exploitation comme elles peuvent être complètement hétérogènes. En terme de nommage, on appel « machine hôte » le serveur physique qui héberge les serveurs virtuels appelés « machines invitées » ou guest.
Pourquoi virtualiser ?
Les mots qui résument l’utilité de la virtualisation sont : optimiser et économiser !
- Utilisation optimale des ressources d’un parc de machines
- Economie sur le matériel par mutualisation (consommation électrique, entretien physique, monitoring, support, compatibilité matérielle, etc.)
- Installation, tests, développements, cassage et possibilité de recommencer sans casser le système d’exploitation hôte
- Allocation dynamique de la puissance de calcul en fonction des besoins de chaque application à un instant donné,
- Diminution des risques liés au dimensionnement des serveurs lors de la définition de l’architecture d’une application, l’ajout de puissance (nouveau serveur etc) étant alors transparent.
- Installation, déploiement 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 facilitée,
Les bases de la virtualisation
Plusieurs techniques sont utilisées par les outils de virtualisation pour rendre le fonctionnement des machines virtuelles aussi proche que possible des machines réelles, mais avec plus de souplesse :
- La HAL, Hardware Abstraction Layer, ou couche d’abstraction matérielle (ou logiciel) dont la fonction est d’isoler les spécificités du matériel par le biais d’un certain nombre de fonctions spécifiques au matériel : interfaces d’entrées-sorties, contrôleur d’interruptions, caches matériels, mécanismes de communication multiprocesseur… Elle isole ainsi le noyau du système des spécificités des plates-formes matérielles.
- Partitionnement, isolation et/ou partage des ressources physiques et/ou logicielles
- La possibilité de manipuler les machines virtuelles avec les possibilités de clonage, mise en pause, arrête et démarrage, possibilités de programmations, prise de « snapshot » de l’état de la machine virtuelle…etc.
- Possibilité de mise en réseau « logique » de machines virtuelles, mais aussi de les interfacer avec les réseaux physiques.
Différentes techniques de virtualisation
Quatre techniques de virtualisation existent, les unes plus connues que les autres :
- Isolateur
- Noyau en espace utilisateur
- Machine virtuelle
- Para virtualisation ou Hyperviseur
- Matériel
Isolateur
Un isolateur c’est un logiciel qui confine les autres applications qu’on veut virtualiser dans des contextes propres à elles. On appel aussi « zones d’exécution » cet espace mémoire spécifique à l’application virtualisée. Cette isolation permet d’avoir plusieurs instances d’une application initialement conçue pour n’exister qu’en mode instance unique.
On voit bien que l’isolation ne peut être utilisée pour virtualiser tout un système d’exploitation, mais en contre partie il offre des performances supérieures. Autre limitation : les isolateurs sont surtout disponibles pour les systèmes linux. En voici quelques exemples :
- Linux-VServer : isolation des processus en user-space
- chroot : isolation changement de racine
- BSD Jail : isolation en user-space
- OpenVZ : libre, partionnement au niveau noyau sous Linux et Windows 2003
Noyau en espace utilisateur
Dans cette situation, un noyau tourne comme une application dans l’espace utilisateur, ce qui lui donne son propre espace mémoire à gérer et lui permet le contrôle des applications. Cette méthode de virtualisation n’est pas très performante du fait que le système invité n’est pas tout à fait indépendant du système hôte. D’autre part, les deux noyaux empilés dans un même système physique ce qui rend les deux systèmes fortement dépendants.
Exemples :
- User Mode Linux : noyau tournant en user-space
- Cooperative Linux ou coLinux : noyau coopératif avec un hôte Windows
- Adeos
- L4Linux
Machine virtuelle
Un logiciel permet dans ce cas de lancer plusieurs OS invités sur la machine hôte. Ce logiciel émule un hardware que les machines invitées croient être celui de la machine hôte et donc directement communiquer avec ledit matériel. Par contre, la CPU (ou les CPUs) ainsi que la mémoire sont directement accessibles par les machines virtuelles, ce qui implique des performances plus intéressantes que dans le cas où une totale émulation aurait été faite.
Cette solution permet de faire cohabiter plusieurs systèmes d’exploitation complètement isolés. Ces derniers communiquent entre eux via les canaux systèmes standards, et par réseau. En effet, toutes les machines virtuelles sont ou peuvent être dotées de cartes réseaux virtuelles qui sont en fait des buffers offrant la possibilité d’échanger des données avec l’extérieur.
Quelques exemples :
- QEMU : émulateur de plateformes x86, PPC, Sparc
- kvm : version modifiée de QEMU tirant parti des instructions de virtualisation des processeurs Intel et AMD (Intel VT ou AMD-V)
- Plex86 : émulateur de plateforme x86
- bochs : émulateur de plateforme x86
- PearPC: émulateur de plateforme PPC sur matériel x86
- VMware: propriétaire, émulateur de plateforme x86 (produits VMware Server, VMware Player et VMware Workstation)
- Microsoft Virtual PC et Virtual Server: propriétaire, émulateur de plateforme x86
- Lismoresystems GuestPC : propriétaire, émulateur de plateforme x86 sur matériel PC
- MacOnLinux : émulateur de plateforme Mac OS sur Linux PPC
- VirtualBox : émulateur de plateforme x86
- Parallels : propriétaire, émulateur de plateforme x86 pour Mac OS X.
Para virtualisation ou Hyperviseur
Un hyperviseur est un noyau système très léger et optimisé pour la gestion des noyaux des OS invités l’architecture matérielle soujacente. Dans le cas où les OSs invités sont conscients qu’ils sont virtualisés on parle de para-virtualisation. Cette méthode est indispensable pour l’Hyper-V de Microsoft et qui augmente les performances de VMware ESX.
Les solutions qui se partagent le marché sont (en ordre décroissant de taux de pénétration du marché) :
- VMware ESX : c’est un produit mature qui fait partie d’une offre globale visant à virtualiser les moyens informatique de l’entreprise. C’est un hyperviseur pour plateforme x86.
- Xen : hyperviseur initialement développé par l’université de Cambridge, il a été acheté par Citrix. Xen utilise un noyau léger supportant des noyaux linux, plan9, NetBSD…etc.
- Microsoft Hyper-V : intégré à Windows Server 2008 (version 64 bits uniquement)
Matériel
Dans ces architectures matérielles, le support de la virtualisation est intégré au processeur ou bien est assisté par ce dernier. Ceci permet de gagner en performances en minimisant la partie logiciel de la virtualisation.
Les exemples les plus connus du marché :
- 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)
Conclusion
Nous avons fait le tour des technologies de virtualisation, j’espère que ça a répondu à quelques unes de vos questions, et sentez vous libre de laisser des commentaires pour en discuter.




![[del.icio.us]](http://www.ntsysv.com/wp-content/plugins/bookmarkify/delicious.png)
![[Digg]](http://www.ntsysv.com/wp-content/plugins/bookmarkify/digg.png)
![[Facebook]](http://www.ntsysv.com/wp-content/plugins/bookmarkify/facebook.png)
![[Google]](http://www.ntsysv.com/wp-content/plugins/bookmarkify/google.png)
![[MySpace]](http://www.ntsysv.com/wp-content/plugins/bookmarkify/myspace.png)
![[StumbleUpon]](http://www.ntsysv.com/wp-content/plugins/bookmarkify/stumbleupon.png)
![[Technorati]](http://www.ntsysv.com/wp-content/plugins/bookmarkify/technorati.png)
![[Windows Live]](http://www.ntsysv.com/wp-content/plugins/bookmarkify/windowslive.png)
![[Email]](http://www.ntsysv.com/wp-content/plugins/bookmarkify/email.png)






Salut
Merci tout d’abord pour l’article c’est trés intréssant
j’en ai la une idée claire sur les divers techniques de virtualisation , ainsi sur la plupart des produits qui existe sur le marché
or je pense que pour faire le choix pour on se base sur la maturité de la solution ainsi la possibilité de piloter la solution ce qui fait de VMWARE ESX et Wmware Workstation les solutions les plus utilisés selon mes modestes connaisances
Mais a mon avis le combat n’est pas ganger d’avance a moins que les optimisations materielles offertes seront suffisantes pour rendre l’utilisation des machines virtuelles conrofrtables que celles des machines réelles
Remercie Pour l’article
Bonne continuation
Aicha
Salut Aicha,
)
Merci pour le premier commentaire sur le blog!!
En fait, il y a plusieurs critères qui entrent dans le choix, ça va du coût à l’expertise de l’équipe technique, … etc etc. L’idée c’est de savoir qu’est ce qui existe et avoir une base de comparaison. De mon coté je touches toujours à l’ESX, j’ai travaillé avec UML (User Mode Linux), mais je n’ai pas eu la chance de m’exercer sur Xen (up2now
A+
Bonjour,
Merci pour l’article, je souhaite savoir si vous avez une sollution pour virtualiser l’hyprviseur microsoft ( windows 2008 R2 + HyperV sur une sollution de virtualisation qui peut supporter ceci)
Merci
Bonjour Saida,
Je ne pense pas que ça soit réalisable;
Petit exercice qui te le confirmera : essais d’installer virtual PC de Microsoft sur VMware Workstation, ça ne passera jamais;
à Lundi
Salut
Merci tout d’abord pour l’article c’est très intéressant.J’aimerai savoir si avec les technologies de virtualisation je peux mettre en place un environnement de pré-production(environnement équivalent à l’environnement de production), car je n’ai pas vu un truc de ce genre dans l’article.
Bonjour,
Parmi les avantages de la virtualisation c’est de pouvoir monter des labs/machines de tests/ validation/..etc et les casser à moindre cout et surtout dans un minimum de temps.
les solutions P2v permettent aussi d’avoir des copies des machines physiques en virtuel rapidement ce qui permet de répliquer exactement (selon les moyens bien sûr) la plateforme de la prod.
j’espère avoir répondu à votre question.