II. Les différentes familles ou solutions de
virtualisation
La virtualisation peut se présenter sous
différentes formes, que ce soit de manière matérielle, par
une émulation de machine complète, le partage de ressources via
un isolateur, ou encore des applications virtuelles, tout comme le permet la
technologie java avec sa fameuse machine virtuelle. Nous présentons dans
cette section les différents types de virtualisation qui étaient
à notre disposition et ce qui a orienté le choix de la
solution.
PFE 2013-2014 Yapi Assoi & Nday Benjamin 25
1. Théorie
Avant de découvrir les différents types de
virtualisation qui existent, il est nécessaire d'expliquer les espaces
d'exécution, communément appelés ring. Les rings ou
anneaux sont des espaces protégés, mis à disposition par
le processeur. Le niveau de sécurité s'étend du plus
sécurisé, appelé le Ring0 au plus permissif Ring3, tout
comme nous le montre la figure 5
Figure 5: Concept des
anneaux
De ce fait, lorsqu'une application se trouve par exemple dans
le Ring3, elle doit faire appel à une instruction spéciale pour
pouvoir utiliser un périphérique qui se trouverait dans une
couche inférieure. Typiquement, les processeurs de type X86
possèdent quatre anneaux. La plupart des systèmes fonctionnant
sur ces processeurs n'emploient que deux de ces anneaux, le Ring0 appelé
Kernel land et le Ring3 nommé user land.
a. isolateur
La généralisation des logiciels de
virtualisation répond à un besoin, mais aussi à une
demande. Ces technologies, incluses directement au coeur des processeurs, sont
axées sur l'administration et la sécurisation.
L'isolation est issue du procédé de la mise en
place d'un niveau de virtualisation du système d'exploitation. Ainsi, le
noyau, la mémoire, le CPU peuvent être partagés.
L'application lancée dans un contexte, également appelé
zone d'exécution, ne connaîtra que les applications lancées
dans le même contexte.
PFE 2013-2014 Yapi Assoi & Nday Benjamin 26
Figure 6 : Architecture d'un isolateur
L'isolateur se présente sous la forme d'un patch pour
le noyau et gère le partage de la mémoire, du CPU et s'assure
qu'un utilisateur ou une application ne pourra pas sauter d'un contexte vers un
autre contexte. En ce sens, l'utilitaire chroot ne peut pas être
considéré comme un isolateur, puisque son action consiste
uniquement à changer le chemin de la racine. La figure 6 montre la place
de l'isolateur au sein du système, avec l'exécution en userspace
des applications et la présence d'un logiciel de contrôle. Les
produits disponibles sur le marché sont Linux-Vserver, BSD Jails ou
OpenVZ.
b. noyau en espace utilisateur
Il est possible de considérer un noyau comme une
application. C'est la solution de virtualisation proposée par exemple
par User Mode Linux ou encore coopérative linux. Dès lors
l'accès au matériel ne s'effectue plus que par un dialogue avec
le noyau de l'hôte. Cette solution est donc assez restrictive en termes
de capacité d'interaction puisque le noyau n'est alors plus utile que
pour la gestion des applications qui seront au-dessus de lui.
Figure 7 : Architecture dans
l'espace utilisateur
Il est préférable d'utiliser cette solution dans
le cadre de développement de nouveaux noyaux, ou alors pour installer un
système d'exploitation dans un environnement à droit restreint,
où l'utilisateur pourrait installer des applications, mais ne pas
supprimer le système existant.
2. PFE 2013-2014 Yapi Assoi & Nday Benjamin 27
machines virtuelles
La machine virtuelle constitue le mode de virtualisation le
plus connu, puisque popularisé auprès du grand public, par
l'intermédiaire de la société VMware. L'idée
avancée est de reconstituer un environnement complet, y compris le
matériel et de mettre à disposition une plate-forme
complète de virtualisation, capable de supporter différents
environnements simultanément.
Figure 8 : Architecture d'une
machine virtuelle
Bien que cette solution soit plébiscitée du
public, elle demande néanmoins de grosses configurations
matérielles afin de supporter la reconstruction matérielle, en
surcouche d'un système d'exploitation, déjà consommateur
de ressources. Les logiciels libres connus pour cet usage sont QEMU,
Virtual-Box, Xen, etc. Dans le domaine propriétaire nous avons Hyper V
de Microsoft, VMware vSphere de VMware, pour ne citer que ceux-là.
3. Hyperviseur
L'hyperviseur est une couche directement posée
au-dessus du matériel. C'est un noyau optimisé pour la gestion
directe de systèmes d'exploitation. Ainsi, contrairement aux autres
méthodes, il n'y a pas de latence due à un système
hôte. Les surcouches sont elles aussi, normalement, optimisées
pour fonctionner avec l'hyperviseur. Les résultats sont donc
optimaux.
L'approche adoptée par VMware pour la virtualisation
consiste à insérer une fine couche de logiciel directement sur le
matériel informatique (barre métal) ou sur un système
d'exploitation hôte. Cette couche logicielle crée des machines
virtuelles et contient un moniteur de machine virtuelle ou « hyperviseur
» qui alloue les ressources
PFE 2013-2014 Yapi Assoi & Nday Benjamin 28
matérielles de façon dynamique et transparente,
ce qui fait que plusieurs systèmes d'exploitation sont en mesure de
fonctionner simultanément sur un seul ordinateur physique sans
même le savoir.
Figure 9 : Architecture d'un
hyperviseur
III Choix d'outils de virtualisation
Comme nous l'avons déjà évoqué, notre
travail se base uniquement sur les outils supportant la production. De ce fait,
nous pouvions nous porter sur les logiciels suivants :
- ESXi server de VMware
- Hyper V de Microsoft
- Xen Server de Xen récemment racheté par
Citrix.
Chacune des technologies a ses avantages et ses
inconvénients. Les deux grands éditeurs qui se partagent
actuellement le marché sont Microsoft et VMware. Microsoft propose leur
logiciel Hyper V et VMware son logiciel VMware ESXi server. Xen est la
concurrente Open source mais il est non compatible avec les systèmes
Microsoft Windows. De ce fait il ne sera pas trop utilisé dans ce
comparatif.
|