• La Virtualisation : machine virtuelle ou hyperviseur : comment choisir

    short link to article : http://ntsysv.com/chfqu

    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 :

    1. 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.
    2. Partitionnement, isolation et/ou partage des ressources physiques et/ou logicielles
    3. 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.
    4. 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.

    daigramme de l'architecture d'un isolateur

    Diagramme de l'architecture d'un isolateur

    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.

    diagramme d'architecture de l'espace kernel utilisateur
    Diagramme d’architecture du user mode kernel

    Exemples :

    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.

    Diagramme d'architecture d'un hyperviseur

    Diagramme d'architecture d'un Hyperviseur

    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] [Digg] [Facebook] [Google] [MySpace] [StumbleUpon] [Technorati] [Windows Live] [Email]
  • Vous avez aimé cet article? Pensez à le réferencer! C'est simple! il suffit d'ajoutez ce code source sur votre site!

    <a href="http://www.ntsysv.com/index.php/la-virtualisation-machine-virtuelle-ou-hyperviseur">La Virtualisation : machine virtuelle ou hyperviseur : comment choisir</a>

    You liked this article? Please consider referencing it by adding the previous HTML code to your website!
  • Aicha
    Lundi, novembre 24th, 2008 at 16:53 | #1

    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

  • Lundi, novembre 24th, 2008 at 17:05 | #2

    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+

  • saida
    Samedi, mars 5th, 2011 at 08:30 | #3

    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

  • Samedi, mars 5th, 2011 at 08:56 | #4

    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 :)

  • Rostow
    Lundi, mars 28th, 2011 at 07:38 | #5

    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.

  • Mercredi, mars 30th, 2011 at 04:55 | #6

    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.

Laisser un commentaire

XHTML: Vous pouvez utiliser ces codes <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

 
TOP