La virtualisation : économie, écologie et performance

Machine virtuelle, hyperviseur... Tour d'horizon des différentes techniques de virtualisation. Le point sur leurs avantages et leurs inconvénients, ainsi que les pièges à éviter lors du lancement d'un projet.

La virtualisation est une technologie inventée par IBM dans les années 60 pour permettre aux mainframes d'effectuer des traitements multitâches. Or pour compenser les investissements nécessaires à cette technologie et amortir les serveurs, les entreprises voulaient en optimiser l'utilisation, avec le partitionnement par exemple.

Dans les années 80-90, l'architecture des systèmes d'information a évolué : les mainframes ont été remplacés par des serveurs moins puissants et moins couteux grâce à une architecture distribuée. L'adoption généralisée de Windows et l'émergence de Linux comme systèmes d'exploitation serveurs ont fait des serveurs x86 la norme de l'industrie.

Toutefois, au début des années 2000, le besoin d'avoir une architecture matérielle partagée s'est avérée forte sans réelle offre matérielle sur le marché : sont alors apparues les techniques de virtualisation. Une dizaine d'années plus tard, ce processus aboutit à des architectures dites de cloud computing, permettant la dématérialisation de l'ensemble des ressources informatiques de l'entreprise.


La virtualisation : de multiples technologies
On définit la virtualisation comme un système matériel et/ou logiciel faisant fonctionner plusieurs systèmes virtuels sur un seul système physique, appelé système hôte. Il existe plusieurs types de virtualisation

- Les isolateurs
Ce système permet d'isoler l'exécution des applications dans des zones d'exécution.
Cette solution est très performante, l'exécution étant directement effectuée sur le système hôte, mais elle ne permet pas de virtualiser complètement le système - les environnements n'étant pas complètement isolés. Cette solution est uniquement présente dans le monde UNIX et on peut donner comme exemples : chroot, solaris containers.

- La virtualisation en espace utilisateur

Cette solution exécute un système dans le même espace que votre utilisateur et sa performance est relativement médiocre. Elle est uniquement présente sur les systèmes Linux. Elle est utilisée pour le développement de noyau (par exemple : User Mode Linux).

- Les machines virtuelles

C'est en réalité un logiciel qui émule ou virtualise une machine réelle : il permet la simulation du comportement réel d'un système d'exploitation sur des architecture différentes mais sur un même système hôte. Le logiciel virtualise et/ou émule également le matériel :  les systèmes d'exploitation démarrés sur la machine croient dialoguer directement avec le matériel.

Même si le logiciel a un coût en performance assez lourd, l'avantage principal de ce système est de faire fonctionner en parallèle des systèmes d'exploitation hétérogènes sur une même machine (isolation totale). Prenons comme exemple Virtual Box (Sun).

- La para virtualisation
Technologie actuellement la plus mature et la plus performante, le système de para virtualisation ou hyperviseur fonctionne comme les machines virtuelles mais c'est le système d'exploitation qui émule directement la machine virtuelle (Xen / Citrix). L'inconvénient reste de ne pouvoir distinguer ce qui est émulé ou non (c'est-à-dire relevant du système hôte).

- La virtualisation matérielle

Mise en œuvre par les fabricants de processeurs ou de machines, cette technologie permet la virtualisation sans système hôte. Très performante mais peu flexible (versus la para virtualisation) et onéreuse,  elle consiste en solutions ou serveurs propriétaires extrêmement liées à l'architecture matérielle.  C'est donc une machine dédiée qui ne sert qu'à la virtualisation.


Usages et utilisations de la virtualisation

L'augmentation des performances des machines physiques assure le succès actuel de la virtualisation. En effet, la machine physique pouvant accueillir de plus en plus de machines virtuelles, les coûts d'infrastructure des entreprises s'en trouvent véritablement allégés. D'autre part, la réduction drastique du nombre de machines physiques représente un atout sur le plan environnemental et notamment en termes de consommation électrique.
Baisse des coûts, effort de rationalisation des ressources, autant d'avantages renforcés par une forte flexibilité car les ressources physiques allouées à un service peuvent être adaptées facilement en les démarrant ou les restreignant.

L'enjeu réel de la virtualisation n'en reste cependant pas moins puisqu'elle est un prérequis majeur de toute solution de haute disponibilité. Virtualisation et Haute Disponibilité deviennent en effet difficilement dissociables : les services non inter-dépendants sont isolés et peuvent être basculés d'une machine à une autre, de façon transparente pour les utilisateurs et sans rupture de service. Les solutions de sauvegarde externalisée sur des machines répliquées en miroir en sont le meilleur exemple.


Quelques précautions à prendre
Avant de s'engager dans un projet de virtualisation, il s'avère nécessaire de bien identifier les prérequis que cette technologie exige : bonne évaluation de la puissance nécessaire au serveur hôte (processeurs, mémoire vive), sachant que le système de virtualisation consomme à lui tout seul de 5 à 10% des ressources d'un serveur, sauvegarde renforcée des données / machines physiques (si une machine physique chute, plusieurs services deviennent indisponibles), connexion haut débit sécurisée au débit garanti dans le cadre d'un projet de virtualisation avec client léger

A noter que certaines applications nécessitant de fortes ressources matérielles ne peuvent pas être virtualisées : c'est le cas de la messagerie Exchange (mais il existe d'autres messageries virtualisées) ou de certains moteurs de base de données.

Aujourd'hui, la virtualisation présente avant tout un avantage économique grâce au partage et la mutualisation des ressources physiques. Par exemple, on estime que dans un datacenter privé ordinaire, le taux d'utilisation moyen est de l'ordre de 10% alors qu'il atteint 35% avec une utilisation généralisée de la virtualisation, soit trois fois plus d'économies.

Si le monde des serveurs est déjà gagné à la virtualisation, elle s'étend maintenant au poste de travail dont elle simplifie les déploiements et la maintenance. Cependant si l'engouement est similaire à ce qu'il a été pour les serveurs, les contraintes d'utilisation et performance rendent sa généralisation parfois plus complexe si le très haut débit n'est pas au rendez-vous. Et évidemment reste le chantier énorme et innovant de la virtualisation des réseaux sur les infrastructures télécoms.