• Aucun résultat trouvé

2. CHAPITRE 2 : LA VIRTUALISATION

CHAPITRE

LA

VIRTUALISATION

Réalisé par Joris Dagbégnon FAGBEMIRO 14 La virtualisation est un outil qui change radicalement l’approche de l’informatique en repoussant les limites de nos ordinateurs. Elle s’est de plus en plus imposée dans les parcs de serveurs, les systèmes de stockage et les réseaux des organisations (Techini, 2011).

2.1 Concepts de la virtualisation

La virtualisation fait référence à l’abstraction physique des ressources informatiques (Hess and Newman, 2010) ; elle est un framework ou une méthodologie de division des ressources d’un ordinateur en de multiples environnements d’exécution, par l’application d’un ou plusieurs concepts ou technologies comme le partitionnement du matériel et du logiciel, le temps partagé, la simulation partielle ou complète de machine, l’émulation, la qualité de service et beaucoup d’autres (Singh, 2004). La virtualisation est la création d’une version virtuelle d’un système d’exploitation, d’un serveur, d’un appareil de stockage ou de ressources réseaux.

Nous voyons que la virtualisation repose sur trois éléments importants (Santy, 2010) :

 l’abstraction des ressources informatiques ;

 la création d’environnements virtuels ;

 la répartition des ressources par l’intermédiaire de différents outils, de manière à ce que celles-ci puissent être utilisées par plusieurs environnements virtuels ;

A partir de ces trois concepts fondamentaux, on peut donner la définition suivante :

Réalisé par Joris Dagbégnon FAGBEMIRO 15 La virtualisation est un processus qui va permettre de masquer les caractéristiques physiques d’une ressource informatique de manière à simplifier les interactions entre cette ressource et d’autres systèmes, d’autres applications et les utilisateurs (Santy, 2010).

En d’autres termes, les ressources allouées à une machine virtuelle sont fournies à partir de leurs équivalents physiques. Les disques virtuels, interfaces réseau virtuelles, réseaux locaux virtuels, commutateurs virtuels, processeurs virtuels et la mémoire virtuelle correspondent tous à des ressources physiques sur des systèmes informatiques physiques (Hess and Newman, 2010).

Ainsi, la virtualisation permet de:

- diviser une ressource physique (serveur, système d’exploitation, périphérique de stockage) en plusieurs ressources logiques (comme sur la figure 2.1 ci-dessous),

- agréger plusieurs ressources physiques (périphériques de stockage, serveurs) en une ressource logique.

Figure 2.1: Différence entre architecture standard et architecture virtualisée (Source : Raynaud, 2011)

Réalisé par Joris Dagbégnon FAGBEMIRO 16

2.2 Domaines de la virtualisation

Le mot « virtualisation » a longtemps sous-entendu la virtualisation au niveau des serveurs. Cependant, la virtualisation est partout dans le monde informatique et n’impacte pas seulement les serveurs.

Aujourd’hui la virtualisation, comme montré sur la figure 2.2, impacte trois domaines principalement : les systèmes (regroupant les côtés client et serveur), le stockage et le réseau.

Figure 2.2: Domaines de la virtualisation

Au niveau du réseau, les principales tendances sont : le VPN (Virtual Private Network), le VLAN (Virtual Local Area Network), le SDN (Software Defined Networking) et le “Network in a box“.

L’utilisation des VLAN est déjà, depuis longtemps, présente dans le monde informatique et permet une segmentation logique d’un réseau de plusieurs machines. L’abstraction étant faite au niveau des couches 2 ou 3 du modèle OSI, on distingue des port-based VLAN, MAC address-based VLAN, Network address-based VLAN et des protocol-based VLAN (Santy, 2010).

Réalisé par Joris Dagbégnon FAGBEMIRO 17 Le VPN est un réseau dont les ressources sont partagées entre plusieurs utilisateurs, de telle sorte que chaque client ait l’impression d’avoir un réseau dédié et non partagé (Pujolle, 2006). On distingue les VPN d’entreprise et les VPN d’opérateurs.

Le SDN est, par contre, une technologie récente de virtualisation réseau où le contrôle du réseau est découplé du réseau lui-même et est directement programmable. La migration de ce contrôle, autrefois bien ancré dans chaque équipement réseau, dans les équipements informatiques permet l’abstraction du matériel sous-jacent, du point de vue des applications et services réseau, qui peuvent traiter le réseau comme une entité virtuelle ou logique (ONF, 2012).

Enfin, le “Network in a box“ est un concept où l’entièreté du réseau (équipements réseau et machines connectées) est virtualisée. Cela passe par la création de carte réseau virtuelle, de switch virtuel, de machines virtuelles (faisant office de routeur, pare-feux, etc.) (Tripathi et al. 2009),... Parmi les outils offrant ces fonctionnalités, on peut citer Crossbow5, Open vSwitch6.

La virtualisation de stockage est le processus qui va séparer la présentation logique et la réalité physique de l’espace de stockage (Santy, 2010). Le LVM (Logical Volume Manager) consiste à regrouper des disques physiques ou partitions (appelés volumes physiques) en un seul grand espace (appelé groupe de volumes) dans lequel vous pouvez découper des espaces logiques à volonté (appelés volumes logiques), les agrandir, les réduire, etc.

Le SAN (Storage Area Network) et le NAS (Network Attached Storage) sont

5 Site officiel du projet : http://www.opensolaris.org/os/project/crossbow (consulté le 16 Décembre 2014)

6 Site official: www.openvswitch.org (consulté le 16 Décembre 2014)

Réalisé par Joris Dagbégnon FAGBEMIRO 18 des espaces de stockage accessibles par le réseau (par le biais de protocole comme NFS, SMB7, Fibre Channel, etc.) mais qui apparaissent localement attachés au serveur.

Quant à la virtualisation appliquée au domaine des systèmes, nous regroupons sous ce terme les technologies de virtualisation s’appliquant aux applications et aux systèmes d’exploitation. On emploie le terme virtualisation côté client (ou simplement virtualisation client) lorsque lesdits systèmes d’exploitations ou applications virtuels sont destinés à être utilisés par un utilisateur lambda (grâce à un ordinateur de bureau ou un ordinateur portatif) au sein d’un système informatique (en un mot par un client) ; lorsque le système d’exploitation ou l’application virtuelle est destinée à être utilisé par le ou les administrateurs dudit système informatique pour fournir des services, on parle de virtualisation côté serveur ou simplement virtualisation serveur.

2.3 Différentes techniques de virtualisation système

Comme nous l’avions déjà dit précédemment, la virtualisation système regroupe les technologies de virtualisation ayant trait aux applications et aux systèmes d’exploitation.

7 NFS: Network File System; SMB : Server Message Block

Réalisé par Joris Dagbégnon FAGBEMIRO 19

2.3.1 Approches centrées sur les applications

Désignés sous les termes de machine virtuelle de processus (Laarouchi, 2009), de virtualisation au niveau applicatif (ANSSI, 2012) ou encore de virtualisation au sein d’un OS8 (Donnette et Hannequin, 2007), ces approches ciblent une application et lui présentent une couche d’abstraction correspondant à son environnement d’exécution.

Les méthodes mises en œuvre ici sont l’émulation et le cloisonnement (ou isolation).

2.3.1.1 L’émulation

L'émulation consiste à imiter le comportement d’une entité en présentant aux couches supérieures une interface logicielle caractéristique du fonctionnement de cette entité, indépendamment de l’architecture matérielle sous-jacente. Elle est intéressante quand la cible doit s’exécuter sur de nombreux environnements différents, la couche d’abstraction réalisant le travail d’adaptation nécessaire au profit des applications qui deviennent ainsi portables (ANSSI, 2012).

Les solutions de virtualisation telles que Citrix Application Stream (Citrix), Symantec Workspace Virtualization (Symantec), App-V (Microsoft) sont des exemples de virtualisation applicative utilisant cette technique. Les solutions de virtualisation s’appuyant sur des moteurs d’exécution, telles que Java Virtual Machine, .NET Framework entrent également dans cette catégorie (ANSSI, 2012).

8 OS : Operating System

Réalisé par Joris Dagbégnon FAGBEMIRO 20

2.3.1.2 Le cloisonnement (virtualisation au sein d’un OS)

Le cloisonnement est quant à lui mis en place dans un but d’isolation ou de confinement. Un isolateur est un logiciel permettant d'isoler l'exécution des applications dans des contextes ou zones d'exécution. L'isolateur, comme on peut le voir sur la figure 2.3 ci-dessous, permet ainsi de faire tourner plusieurs fois la même application prévue pour ne tourner qu'à une seule instance par machine. Notons que cette technologie consiste en quelque sorte à généraliser la notion de "contexte" Unix9 (Donnette et Hannequin, 2007).

Figure 2.3: Virtualisation au sein d’un OS par isolation (source : Donnette et Hannequin, 2007)

Les technologies Linux Vserver, BSD jails (« chroot »), OpenVZ ou Zone Solaris mettent en œuvre des zones isolées (cloisonnées) gérées par le système d’exploitation.

9Le contexte d’un processus est l’ensemble des données qui permettent de reprendre l’exécution d’un processus qui a été interrompu.

Réalisé par Joris Dagbégnon FAGBEMIRO 21

2.3.2 Approches centrées sur les systèmes

Désignées sous les termes de machines virtuelles de système ou virtualisation au niveau système, ces approches visent un système d’exploitation et lui présentent une couche d’abstraction correspondant à un environnement matériel compatible.

Les méthodes mises en œuvre ici sont le cloisonnement, la virtualisation complète, la paravirtualisation et la virtualisation assistée par le matériel.

2.3.2.1 Le cloisonnement (virtualisation au sein d’un OS)

Cette approche est semblable à celle présentée au 2.3.1.2 par utilisation d’environnements cloisonnés.

On peut donc aller du simple « emprisonnement » dans un environnement volontairement minimal à une image complète du système accessible uniquement au processus isolé (Bonnet, 2008). On est ainsi plus proche d’une machine virtuelle que d’une simple isolation de processus. Dans ce cas un noyau hôte se charge de l'ordonnancement10 des différents noyaux en espace utilisateur (Laarouchi, 2009) (voir figure 2.4 ci-dessous).

Figure 2.4: Noyau en espace utilisateur (source : Donnette et Hannequin, 2007)

10 L’ordonnancement suggère ici la mise en place d’un ordre d’exécution des requêtes des divers noyaux.

Réalisé par Joris Dagbégnon FAGBEMIRO 22 La principale contrainte de ce modèle de virtualisation réside dans le fait que les systèmes invités doivent impérativement être du même type que le système hôte (Santy, 2010).

2.3.2.2 La virtualisation complète

Egalement appelée modèle de machine virtuelle (Santy, 2010), la virtualisation complète ou totale (full virtualization en anglais) consiste à émuler l’intégralité d’une machine physique pour le système invité. Le système invité «croit» s’exécuter sur une véritable machine physique (Donnette et Hannequin, 2007). Cette technique se base sur deux principes : celui de la traduction binaire des instructions que le noyau du système invité souhaite exécuter et l’exécution directe des instructions relatives aux applications utilisateurs (Santy, 2010).

La couche applicative chargée de la gestion des machines virtuelles se décline en deux types présentés sur la figure 2.5 à la page suivante.

Le premier type est celui où ladite couche s’installe à la place du système d’exploitation, c’est-à-dire directement sur le matériel. On parle dans ce cas d’hyperviseur de type 1 ou d’hyperviseur “bare-metal“. Les solutions utilisant ce type d’hyperviseur pour de la virtualisation totale sont : vSphere (anciennement ESXi Hypervisor) de VMware, KVM, etc.

Le second type est celui où cette couche applicative s’exécute au sein d’un OS hôte et est vu par celui-ci comme une application (Laarouchi, 2009).

Dans ce cas, ce logiciel est appelé Moniteur de Machines Virtuelles (MMV) (VMM en anglais) ; on le désigne couramment cependant sous le terme d’hyperviseur de type 2. Les solutions utilisant cette technique sont : VMware Workstation, VirtualBox d’Oracle, Hyper-V de Microsoft, Qemu, etc.

Réalisé par Joris Dagbégnon FAGBEMIRO 23 Figure 2.5: Virtualisation complète: à gauche avec un hyperviseur de type 1 et à droite

avec un hyperviseur de type 2 (source: Santy, 2010)

2.3.2.3 La paravirtualisation

La technique de paravirtualisation ne nécessite pas de simuler le matériel, mais implique une modification du système invité (Primet, Mornard et Gelas, 2007). Elle consiste pour le système d’exploitation virtualisé à communiquer plus efficacement avec l’hyperviseur (de type 1) de manière à accroître les performances du système. La modification du noyau permet de remplacer les instructions non virtualisables par des hyper-appels (hypercalls) qui vont communiquer directement avec l’hyperviseur (Santy, 2010) comme montré sur la figure 2.6 ci-dessous :

Figure 2.6: Paravirtualisation (Source : VMware, 2007)

Réalisé par Joris Dagbégnon FAGBEMIRO 24 Les solutions implémentant ce genre de technique sont XenServer de Citrix, vSphere de VMware, HyperV de Microsoft, …

2.3.2.4 La virtualisation assistée par le matériel

La nécessité de développer des solutions de virtualisation assistées par le processeur a fait son apparition avec la prolifération des systèmes à base d’architecture x8611. Cette architecture, à l’origine se prêtait très mal à la virtualisation (confère Annexe A) et nécessitait un travail considérable de la part de l’hyperviseur. A l’aide de la virtualisation matérielle, l’hyperviseur est en mesure de virtualiser correctement l’ensemble des instructions de l’architecture x86, y compris celles posant problème (Santy, 2010).

Les deux principaux fabricants de processeurs sur le marché, Intel et AMD, ont inauguré une nouvelle gamme de processeurs incluant une technologie d’aide matérielle à la virtualisation. Cette technologie est connue sous le nom de Intel VT-x (anciennement Vanderpool) et AMD-V principalement les serveurs qui sont au centre de toutes les attentions.

La virtualisation présente les avantages suivants (Santy, 2010) :

Optimisation de l’infrastructure informatique- réduction des coûts liés à l’exploitation des centres de données ;

Amélioration de l’impact écologique des centres de données (démarche « green IT ») ;

11 x86 désigne l’architecture des processeurs de Intel et AMD notamment. Cette désignation est due au fait que ces processeurs sont compatibles avec le jeu d’instruction de l’Intel 8086.

Réalisé par Joris Dagbégnon FAGBEMIRO 25

Facilité de mise en place d’environnements de tests ;

Augmentation de la disponibilité du matériel et des applications pour une amélioration de la continuité d'activité ;

Facilité de mise en place d’un Plan de Reprise d’Activité (PRA) ;

Souplesse et réactivité dans la gestion au quotidien ;

Amélioration de la sécurité au niveau des postes clients mais aussi au niveau des serveurs ;

Amélioration de la flexibilité et de la compatibilité

Etc.

2.5 Limites à la virtualisation

Les solutions de virtualisation sont donc très intéressantes au vu de la consolidation de serveurs, de la réduction de taille des centres de données et du coût qu’elle entraîne. Cependant, il y a certains points qui limitent l’immense engouement que suscite cette technologie (Santy, 2010) :

le besoin de capacité de stockage

la présence d’un point de défaillance unique

un problème de standardisation

etc.

La virtualisation est donc une technologie qui, malgré ses limites a de nombreux avantages et applications ; surtout en ce qui concerne l’utilisation d’un petit nombre de serveurs physiques pour mettre en place plusieurs serveurs opérationnels différents. Nous allons, dans le chapitre suivant, comparer les diverses solutions qu’elle nous offre afin de dégager la (ou les) plus adéquate(s) pour le déploiement des serveurs du centre de données de BJNet.

26

Documents relatifs