La virtualisation, état de l'art

Vous trouverez dans ce livre des idées, des fais, etc., bref, tout ce qui touche - de prêt ou de loin - à la virtualisation, aussi bien logicielle que matérielle.

Concepts de virtualisation

Nous allons ici aborder les différents concepts fondamentaux qui permettent de d'obtenir une système fonctionnant à l'intérieur d'une autre. Il est intéressant de noter que l'on trouve rapidement deux notions discriminantes dans les différentes approches: l'isolation et l'overhead. En règle général, on verra que plus on va isoler les systèmes plus l'overhead serra important et réciproquement.

La virtualisation complète

Il s'agit ici d'émuler totalement un matériel, on propose au système invité une machine virtuelle complète en émulant le matériel.

Dans cette catégorie on retrouve Vmware, qemu et son évolution kvm, et je dirais
xen en activant le support de virtualisation hardware.

Bien entendu, ce mode de fonctionnement est le plus pénalisant en terme de performances mais procure le plus haut niveau d'isolation: le système invité est totalement indépendant de son hôte.

La paravirutalisation

C'est le fonctionnement natif de Xen: un hyperviseur se charge de mapper les requettes du système invité au travers une interface afin de les exécuter. Ce mode de fonctionnement limite l'overhead de consommation de ressources néanmoins il nécessite une modification du système s'exécutant limitant son déploiement à des os "modifiables".

Les Isolateurs

La solution la plus légère mais celle qui sépare le moins le systèmes invité de son hôte.
Il n'y a qu'une seule instance de l'OS hôte (au sens kernel) qui tourne réellement sur la machine, mais plusieurs instances des invités. On va isoler une partie du système de fichier dans lequel ou pourra faire tourner ses services en limitant les risques pour les système hôte en cas de plantage/prise de contrôle hostile. Le gain se situe ici au niveau des factorisations des ressources "système" mais aussi d'une bonne partie de l'espace disque, et un overhead très faible. Généralement, l'overhead ne se traduit que par quelques champs dans les structures du noyau.

Suivant les implémentations, on disposera de diverses fonctionnalitées, comme :

  • Des systèmes de fichiers partagés entres les différentes instances. Notamment pour les binaires systèmes, comme /usr, /lib, permettant de restreindre l'espace disque nécessaire pour une instance.
  • Une gestion de la sécurité avec des rôles

Solutions de virtualisation

Après avoir posé les bases conceptuelles, nous passerons ici en revue les diverses solutions pratiques pour mettre en oeuvre la une plateforme de virtualisation.