La virtualisation : huit approches passées au crible

Avant de considérer la virtualisation du centre de données, il est capital pour une entreprise de définir quelle technologie ou catégorie de service elle souhaite virtualiser. Décryptons ce que cache ce concept et ce qu'il peut apporter.

La virtualisation n'est pas un nouveau concept. C'est son omniprésence qui est plus récente. On l'attribue ainsi à tout processus touchant à la virtualisation dans sa définition la plus élémentaire, à savoir tout processus d'abstraction des ressources informatiques de leur couche matérielle sous-jacente.

Bien des projets de virtualisation ont ainsi pour motivation première de redéfinir le parc matériel comme un ensemble de ressources partagées, qui pourront alors être gérées de façon centralisée via une interface unique.

Il existe de nombreuses définitions du terme « virtualisation », lequel est utilisé pour l'infrastructure dans son ensemble ou toute composante de l'infrastructure. A titre d'exemple, les émulateurs pour dispositifs mobiles sont une forme de virtualisation du fait que la plate-forme matérielle normalement requise pour faire fonctionner le système d'exploitation mobile a été virtualisée, affranchissant le système d'exploitation du matériel pour lequel il a été conçu.

Avant de considérer la virtualisation du centre de données, il est capital pour une entreprise de définir quelle technologie ou catégorie de service elle souhaite virtualiser. Globalement, il existe trois domaines de virtualisation, selon que l'on vise plutôt le système d'exploitation, le système stockage ou les applications.

Très vastes, ces domaines ne délimitent pas clairement les aspects parfois les plus pertinents de la virtualisation du centre de données. Bien d'autres approches, tout aussi importantes sinon plus, peuvent trouver leur place dans une stratégie globale de virtualisation.

La virtualisation du système d'exploitation

Forme de virtualisation la plus répandue, les systèmes d'exploitation virtualisés, ou machines virtuelles, constituent un composant incontournable de l'infrastructure informatique, permettant de faire fonctionner simultanément des systèmes standards, comme Windows Vista ou RedHat Enterprise Linux, sur la même plate-forme matérielle.

Les gestionnaires de machine virtuelle (VMM, aussi appelés hyperviseurs), s'installent soit comme une application d'un système d'exploitation hôte, soit comme une couche logicielle plus profonde que le système d'exploitation, et permettent d'administrer chaque machine virtuelle de façon individuelle, de telle sorte que chaque instance du système d'exploitation n'a pas « conscience » que la gestion se fait sur un mode virtuel et que d'autres machines virtuelles fonctionnent en même temps.

Microsoft, VMware, Intel et AMD sont les premiers à avoir initié cette rupture physique entre le système d'exploitation et sa couche matérielle native, et son extension au centre de données.

La consolidation du centre de données permet aux entreprises de réduire le nombre de machines physiques dans leurs centres de données sans pour autant réduire le nombre d'applications sous-jacentes, et donc de réaliser des économies en termes de matériel, de frais de co-localisation, d'espace, de consommation électrique, de gestion de câblage, etc.

Virtualisation des serveurs applicatifs

Ce type de virtualisation a vu le jour avec les premiers répartiteurs de charge, ce qui explique pourquoi la « virtualisation d'application » est souvent utilisée comme synonyme de répartition de charge.

En effet, les outils de répartition de charge élargissent le concept de virtualisation du serveur à un groupe distribué de serveurs, notamment par le recours à un reverse-proxy (le terme de relais inverse est parfois employé), qui permet d'accéder à de nombreux services applicatifs de façon transparente via une application ou un service spécifique.

Dans un déploiement typique, un reverse proxy héberge une interface virtuelle accessible à l'utilisateur au niveau du front-end, ou zone d'exposition, plus connue sous le nom de DMZ.

Au niveau du back-end, qui constitue le réseau de production interne hébergeant notamment les serveurs sensibles de l'entreprise tels que les serveurs de base de données ou dans certains cas les serveurs d'application, le reverse proxy répartit la charge entre divers serveurs et applications, comme les serveurs web.

L'interface virtuelle, souvent appelée Virtual IP ou VIP, devient alors le serveur web effectif, gérant les connexions entrantes et sortantes au niveau du serveur en fonction des besoins.

Ceci permet au répartiteur de charge de gérer plusieurs serveurs web ou applications de façon centralisée, comme une seule instance, offrant une topologie plus sûre et plus robuste qu'une architecture donnant aux utilisateurs un accès direct à chaque serveur Web. Il s'agit d'un modèle de virtualisation « one-to-many » qui peut être appliqué à tout type d'architectures et de déploiements applicatifs, avec un serveur représentant plusieurs serveurs accessibles via un reverse-proxy.

Virtualisation d'application

Si serveur d'application et virtualisation d'application peuvent paraître similaires, il s'agit de deux notions bien distinctes. La virtualisation d'application correspond à ce que l'on a appelé « client léger ».

La virtualisation d'application implique de pouvoir exécuter un logiciel sans toutefois l'installer physiquement sur le système auquel l'utilisateur est connecté, avec tout ce que cela implique en termes d'économies (de processus, de déploiement, d'altération, de mise à jour, de test, de compatibilité, etc.).

Virtualiser une application, c'est la transformer en une simple donnée stockée quelque part dans l'attente d'être transportée, à la demande d'un utilisateur, vers un système d'exploitation (poste ou serveur) où elle sera utilisée avec ses pleines capacités puis disparaîtra sans laisser la moindre trace.

Softgrid de Microsoft est un excellent exemple de déploiement de virtualisation d'application. Bien que l'on puisse parfaitement utiliser Microsoft Word 2007 sur son ordinateur portable, le stockage, la gestion et la fourniture des informations personnelles et l'état opérationnel sont administrés par Softgrid.

Votre ordinateur portable sert d'unité centrale et fournit la mémoire vive requise par le logiciel, mais aucune installation n'est effectuée localement sur l'ordinateur. Microsoft Terminal Services et les applications par navigateur constituent d'autres types de virtualisation d'applications.

Virtualisation de l'administration

Toute entreprise met en place une forme de virtualisation administrative à travers son organisation informatique, sans forcément savoir qu'il s'agit de virtualisation. Si par exemple une entreprise met en place une procédure d'attribution de mots de passe personnalisés entre les différents comptes d'accès à la messagerie ou aux serveurs web, et que ceux-ci ne sont pas partagés, alors on a affaire à un déploiement basique de virtualisation de la gestion.

Ce modèle peut s'étendre à des fonctions administratives segmentées sur une plate-forme. Ces fonctions deviennent alors « virtuelles ». Les politiques de gestion des accès utilisateurs / groupes de Microsoft Windows XP, 2003 et Vista sont un excellent exemple de virtualisation des droits d'administration.

La personnalisation (inclusions / exclusion / exclusion des Liens) se fait pour chaque groupe de backup avec des nouvelles variables et permet la répartition des données à souhait dans chacun des groupes de backup, de telle sorte qu'un utilisateur peut très bien être dans le groupe de backup au niveau du serveur Active Directory 2003, mais pas nécessairement dans le groupe administrateur.

Il a donc accès à tous les fichiers qu'il lui faut sauvegarder mais ne dispose pas de droits lui permettant d'installer de nouveaux fichiers ou logiciels. Bien qu'il ouvre une session sur le même serveur que celui sur lequel l'administrateur est connecté, son « expérience » d'utilisateur n'est pas la même que celle de l'administrateur.

La virtualisation de l'administration est un concept central dans la gestion globale du centre de données. Pour être valide, il est essentiel que l'administrateur réseau ait un accès total aux points centraux de l'infrastructure (routeurs, commutateurs, etc.) : en revanche leur accès aux serveurs sera limité.

Virtualisation de réseau

Il s'agit du domaine le plus ambigu et le plus spécifique des approches de virtualisation. Il comprend les tables de routage, les réseaux locaux virtuels (VLAN), etc.

L'exemple le plus simple de virtualisation de réseau est le VLAN, réseau informatique logique indépendant. De nombreux VLANs peuvent coexister sur un même commutateur réseau. Toute connexion IP virtuelle sur ce port physique unique est indépendante des autres et seul le commutateur gère chaque connexion individuellement. L'intérêt du VLAN se mesure en termes de :

-       segmentation : réduction de la taille d'un domaine de broadcast ;

-       flexibilité : les VLAN fonctionnent au niveau de la couche 2 du modèle OSI, ils sont également souvent configurés pour se connecter directement à un réseau IP, ce qui donne l'impression de travailler plutôt au niveau de la couche 3, et peuvent aussi se baser sur les ports physiques des commutateurs, ce qui correspond au niveau 1 du modèle OSI ;

-       sécurité : le recours à un VLAN permet de créer un ensemble logique isolé pour améliorer la sécurité.

Virtualisation matérielle

Très similaire à la virtualisation de système d'exploitation, et dans certains cas requise pour que celle-ci puisse avoir lieu, la virtualisation matérielle divise le matériel en segments indépendants et gérés individuellement.

Le multitraitement symétrique (SMP) ou asymétrique (ASMP) sont, bien que différents, deux exemples de virtualisation matérielle. Dans les deux cas, le processus de requête de temps UC ne tient pas compte du processeur utilisé, et la requête s'effectue simplement auprès du programmateur de l'OS, lequel est en charge de la répartition du temps UC. En ce qui concerne le processus, il peut se répartir n'importe quelle quantité d'unités centrales et n'importe quelle partie de la RAM, tant que cela ne l'affecte pas.

Le « slicing » est une autre approche de la virtualisation matérielle. Il s'agit d'un procédé par lequel on partage le système en portions exploitées en enceinte close (walled garden).

Par exemple, on allouera une partie des ressources processeur au chiffrement des données, qui sera inutilisée si aucun processus ne requiert de chiffrement. Si en revanche l'allocation au chiffrement s'avère insuffisante, les processus en mobilisant la ressource seront mis en file d'attente et exploités via le FIFO buffer (First-In, First-Out mémoire cache), du fait que le processeur n'est pas autorisé à mobiliser plus que la portion définie des ressources au chiffrement. Ce type de virtualisation matérielle est souvent appelé pré-allocation des ressources.

Le multitraitement asymétrique est une forme de virtualisation par pré-allocation des ressources dans lequel un processeur maître commande à des esclaves partageant une même mémoire, attribuant certaines tâches à des processeurs spécifiques.

Le multitraitement symétrique (SMP) correspond quant à lui à une forme d'allocation dynamique des ressources, distribuant symétriquement les tâches entre différents processeurs partageant une mémoire commune, en s'assurant qu'ils ne vont pas se mettre à écrire tous à la même adresse en même temps.

La virtualisation par pré-allocation est idéale pour des tâches matérielles spécifiques, comme le déchargement de fonctions particulières vers une puce dédiée. En revanche, cette approche peut générer un déficit relatif de ressources, si la portion pré-définie est sous exploitée.

En ce sens, la virtualisation par allocation dynamique des ressources représente une approche plus courante, présentant plus d'avantages que la pré-allocation. Pour une véritable virtualisation de l'approvisionnement de services, l'allocation dynamique est essentielle car elle permet la gestion complète du matériel et le contrôle des ressources en fonction des besoins.

Les ressources virtuelles peuvent ainsi être allouées tant que des ressources virtuelles sont disponibles. Seule ombre au tableau : l'allocation dynamique ne donne généralement pas un contrôle total sur la « dynamicité » de l'infrastructure, conduisant parfois à des processus très gourmands en termes de ressources.

Virtualisation du stockage

Forme de virtualisation qui a fait ses preuves, la virtualisation du stockage se compose en deux catégories principales : la virtualisation de blocs, d'une part, et la virtualisation de fichiers, d'autre part.

La virtualisation de blocs correspond plus précisément aux technologies de réseau de stockage (SAN) et de stockage en réseau (NAS). Au niveau du SAN, la virtualisation de l'espace de stockage se rencontre d'abord dans les unités de stockage, avec l'introduction il y a plusieurs années, de la première forme de virtualisation du stockage : le RAID.

Autre implémentation courante de virtualisation des blocs, l'iSCSI permet au système d'exploitation ou à l'application d'associer sur un réseau de stockage dédié des équipements qui ne savent pas communiquer entre eux, comme par exemple un block device virtuel (un disque dur physique) et un adaptateur réseau local (logiciel ou matériel).

L'adaptateur réseau iSCSI concilie des éléments de stockage initialement indépendants, voire hétérogènes, dans le but de donner une image unifiée des différentes entités disponibles.

La virtualisation de fichiers rend la couche virtuelle plus accessible à l'échelle de l'utilisateur. La plupart des technologies de virtualisation de fichiers sont associées à des réseaux de stockage et permettent de suivre la localisation et la répartition des fichiers et répertoires dans le dispositif de stockage.

A ce titre, un utilisateur qui pense accéder à un fichier localisé sur son unité distante de stockage, y accède en fait via un serveur de partage de ressources SMB (ou CIFS) hébergé dans un centre de données. Le réseau principal est ainsi libéré et dynamisé.

Virtualisation des services

L'ensemble des approches de virtualisation abordées précédemment mènent à virtualisation des services. Véritable macro définition de la virtualisation, il s'agit de la consolidation de toutes les approches possibles de virtualisation, via l'association de toutes les composantes servant à la diffusion d'une application sur le réseau, quelle que soit leur localisation physique (de l'HTML au réseau de stockage en passant par le serveur applicatif, les outils SOA, les bases de données, etc.).

En ce sens, la virtualisation des services facilite la disponibilité des applications, en permettant aux composantes de l'application delivery de fonctionner indépendamment les unes des autres et de n'être mobilisées qu'en fonction des besoins.