SUPINFO International University

SUPINFO Institute of Information Technology
Laboratoire Microsoft




Tous les Articles du Laboratoire Microsoft

Windows Server 2008 : Hyper-V
Accueil > Articles > Serveurs
Auteur 
Julien BOURGEOIS
Laboratoire SUPINFO des Technologies Microsoft


 Tous les articles de cet auteur
Emeric ALLAIN
Laboratoire SUPINFO des Technologies Microsoft


 Tous les articles de cet auteur
Jean-charles DARMAGNAC

Formateur


 Tous les articles de cet auteur
Mickaël VAZ
Laboratoire SUPINFO des Technologies Microsoft


 Tous les articles de cet auteur

5/5

Très Bien


45317
1/5

1. Un peu de théorie

1.1 Introduction

La virtualisation recouvre l'ensemble des techniques matérielles et/ou logicielles qui permettent de faire fonctionner sur une seule machine hôte plusieurs systèmes d'exploitation, plusieurs instances différentes et cloisonnées d'un même système ou plusieurs applications, séparément les uns des autres, comme s'ils fonctionnaient sur des machines physiques distinctes. Nous allons voir tout d’abord pourquoi utiliser la virtualisation, ensuite les différents types de virtualisation et pour finir l’impact de celle-ci sur les performances ainsi que son évolution.

1.2 L'intérêt de la virtualisation

Les intérêts de la virtualisation sont :

  • Une utilisation optimale des ressources d'un parc de machines (répartition des machines virtuelles sur les machines physiques en fonction des charges respectives) ainsi qu’une économie sur le matériel (consommation électrique, compatibilité logicielle et matérielle…)
  • L’installation, le déploiement et la 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.
  • Sécurisation d'un réseau (l’attaquant n’a accès qu’aux machines virtuelles)
  • Isolation des différents utilisateurs simultanés d'une même machine

 

1.3 Les Machines Virtuelles

Une machine virtuelle est un logiciel qui tourne sur le système d’exploitation (O.S.) hôte. Ce logiciel permettant de lancer un ou plusieurs OS invités. La machine virtualise le matériel, les O.S. invités pensent donc dialoguer directement avec un matériel physique. En pratique on a recours à une émulation logicielle des périphériques, et parfois aussi de tout ou partie de la machine.

Cette solution isole bien les systèmes d'exploitation invités, mais elle a un coût. Tout d’abord en performance, principalement au niveau des entrées-sorties (I/O). A ce coût, relativement important, peut être ajouté un coût supplémentaire si le processeur doit être intégralement émulé. Cette solution n'est pas non plus économe en mémoire, puisque aucune économie d'échelle ne peut être réalisée en ce qui concerne les OS chargés. Le point faible de cette solution est donc son importante consommation de ressources. Des exemples de logiciels permettant l’utilisation de machines virtuelles sont Virtual PC/Server et VMWare Player/GSX/Workstation ou bien encore Parallels Desktop.

1.4 Les Isolateurs

Un isolateur est un logiciel permettant d'isoler l'exécution des applications dans des contextes ou zones d'exécution. Il permet ainsi de faire tourner plusieurs fois la même application alors que l’exécution de celle-ci devrait être unique.

Notons que cette technologie consiste en quelque sorte à généraliser la notion de "contexte" Unix : ce dernier isole les processus (mémoire, accès aux ressources), on ajoute alors : une isolation des périphériques (c'est le rôle de l'isolateur), voire leur partage, les systèmes de fichiers donc les fichiers eux-mêmes et leurs accès.

UCette solution est très performante, du fait du peu d'overhead (chute de performance conséquente de l'ajout des couches de virtualisation), mais les environnements virtualisés ne sont pas complètement isolés, ils partagent en particulier le code du noyau. Cette solution est aussi remarquablement économique en mémoire par conséquence de la dernière remarque. Ces environnements sont donc bien adaptés au déploiement de nombreux serveurs virtuels de test ou développement basés sur un même système. Des exemples de logiciels sont Linux-VServer ou encore BSD Jails

1.5 Les Hyperviseurs

Partant du principe, exposé précédemment, que pour avoir une virtualisation efficace il faut affiner les couches, une première approche consiste à proposer un noyau léger (de type micro-noyau comme Mach par exemple), lequel est accompagné d'outils de supervision, et adapté pour faire tourner des systèmes d'exploitation natifs. Pour réussir cette approche, soit on émule le matériel (et on revient aux performances de la machine virtuelle pour les I/O), soit on dispose des technologies dédiées à la virtualisation développées par AMD et Intel que nous verrons plus tard. Exemple : VMWare ESX, Hyper-V

1.6 Les paravirtualisateurs

Un paravirtualiseur est un noyau hôte allégé et optimisé pour ne faire tourner que des noyaux de systèmes d'exploitation invités, adaptés et optimisés pour cette utilisation. Les applications en espace utilisateur des systèmes d'exploitation invités tournent ainsi sur une pile de deux noyaux optimisés, les OS ayant conscience d'être virtualisés. A noter que l’utilisation des instructions Intel VT ou AMD-V rende possible l’utilisation d’un OS non modifié. Un exemple de noyau: Xen, Hyper-V.

1.7 Technologie Intel et AMD de support matériel de la virtualisation

Dans le but de simplifier la virtualisation, Intel et AMD ont sorti une technologie de virtualisation matérielle. La première à se lancer sur ce terrain fut Intel avec sa technologie VT (Virtualization Technology) fin 2005. En 2006 AMD sortit AMD-V (Virtualization). Ces deux technologies ont une structure similaire : elles se composent de trois volets : un pour la virtualisation du processeur, un pour la virtualisation des périphériques et enfin un dernier pour la virtualisation de la mémoire.

Avec ces technologies AMD et Intel ont ajouté des instructions ainsi qu’une nouvelle structure de contrôle (VMCB pour Virtual Machine Control Block du coté d’AMD et VMCS pour Virtual Machine Control Structure du coté d’Intel). Grâce à une de ces nouvelles instructions on peut passer à un nouveau mode d’exécution (VMX chez Intel). Ce dernier permet de faire fonctionner les systèmes d’exploitation invités avec un niveau de privilège très élevé (ring 0). Cela a pour avantage :




Retrouvez ci-dessous les autres sections du Laboratoire Microsoft