La virtualisation de serveurs

Présentation

Comme vous pouvez l'avoir deviné, il existe plusieurs techniques de virtualisation. On en recense trois. Ces techniques sont décrites ci-dessous, et je vous invite à rechercher dans les liens fournit en webographie si vous souhaitez des informations complémentaires. En attendant, vous comprendrez ici les grands principes associés à chacune de ces techniques.

Isolation

L'isolation est une technique permettant d'emprisonner l'exécution des applications dans des contextes. Cette solution est très performante (le surcoût d'une application isolée/virtualisée est minime par rapport au temps d'exécution de la même application installée sur un système d'exploitation). La performance est donc au rendez-vous, cependant on ne peut pas parler de virtualisation de systèmes d'exploitation car l'isolation ne consiste à virtualiser que des applications. On pourrait par contre avoir plusieurs instances de Tomcat qui écoutent sur le même port, plusieurs Apaches sur le port 80 etc.

La virtualisation complète

La virtualisation est dite complète lorsque le système d'exploitation invité n'a pas conscience d'être virtualisé. L'OS qui est virtualisé n'a aucun moyen de savoir qu'il partage le matériel avec d'autres OS. Ainsi, l'ensemble des systèmes d'exploitation virtualisés s'exécutant sur un unique ordinateur, peuvent fonctionner de manière totalement indépendante les uns des autres et être vu comme des ordinateurs à part entière sur un réseau.

La paravirtualisation

Par opposition à la virtualisation, on parle de paravirtualisation lorsque les systèmes d'exploitation doivent être modifiés pour fonctionner sur un hyperviseur de paravirtualisation. Les modifications sont en fait des insertions de drivers permettant de rediriger les appels système au lieu de les traduire.

Le mécanisme de redirection des appels système est expliqué ici:

Des drivers backend et frontend sont installés dans les OS paravirtualisés. Ils permettent, au lieu de traduire les appels système comme celà est fait dans la virtualisation complète, de ne faire que de la redirection (ce qui est beaucoup plus rapide). Il est donc intelligent d'utiliser un tel mecanisme pour accéder à du matériel potentielement très sollicité (disque dur, interface réseau...).

En fait, ce qu'il se passe dans une telle technologie, c'est que le contrôle d'un ou plusieur matériel(s) est donné à un des OS virtualisé (celui qui contient le driver backend), ici le système d'exploitation 1. Une fois celà compris, il sera simple d'imaginer que l'OS 2, qui souhaite accéder au harware, devra passé par son driver front end qui redirigera les appels système vers l'OS 1. L'inconvénient de cette technique est donc la dépendance d'un OS virtualisé vis à vis d'un autre qui se créé par ce mécanisme de driver. En effet si l'OS 1 tombe en panne, l'OS 2 ne pourra plus accéder au matériel.