Vous êtes sur la page 1sur 22

Objectif général Comprendre les principes de la virtualisation.

Savoir définir le concept de la virtualisation.


Objectifs
Comprendre les différents types de la virtualisation.
spécifiques Prendre connaissance des domaines de la virtualisation.
Déterminer les avantages de la virtualisation.

Volume horaire Cours : 6h

Mots clés virtualisation, domaines, application, stockage, serveur, réseaux,


types,…

1. Préambule

1.1 Partage d’un serveur


(livre blanc :VIRTUALISATION ET CLOUD OPEN SOURCE : PRINCIPES, MISE EN OEUVRE ET OUTILS OPEN
SOURCE)

Un serveur est un ordinateur utilisé à distance depuis différents postes de travail, ou autres serveurs. Il
possède des ressources matérielles, principalement CPU, mémoire, disques et interfaces réseau. Ces
ressources sont utilisées par des applications, non pas de manière directe, mais en s’appuyant sur un
système d’exploitation. La virtualisation de serveurs est un ensemble de techniques et d’outils
permettant de faire tourner plusieurs systèmes d’exploitation sur un même serveur physique. Le
principe de la virtualisation est donc un principe de partage : les différents systèmes d’exploitation se
partagent les ressources du serveur. Pour être utile de manière opérationnelle, la virtualisation doit
respecter deux principes fondamentaux :

Le cloisonnement : chaque système d’exploitation a un fonctionnement indépendant, et ne peut


interférer avec les autres en aucune manière.

La transparence : le fait de fonctionner en mode virtualisé ne change rien au fonctionnement du


système d’exploitation et a fortiori des applications.

La transparence implique la compatibilité: toutes les applications peuvent tourner sur un système
virtualisé, et leur fonctionnement n’est en rien modifié. Pour ce qui est du cloisonnement, il existe bien
sûr une interférence passive liée à la concurrence dans le partage des ressources. Mais nous verrons
que ce partage peut être parfaitement contrôlé.

1.2 Historique
La virtualisation est « l’ensemble des technologies matérielles et/ou logicielles qui permettent
de faire fonctionner sur une seule machine plusieurs systèmes d’exploitation et/ou plusieurs
applications, séparément les uns des autres, comme s’ils fonctionnaient sur des machines
physiques distinctes ». La virtualisation consiste à intercaler une couche d’abstraction entre un
client et un fournisseur au sens large du terme. Pour mieux comprendre les architectures de
virtualisation dans le contexte d’un système d’information, il est intéressant d’en connaître
l’historique.

Le besoin de partager les ressources physiques pour une utilisation optimale est bien sûr
d’autant plus fort que ces ressources sont coûteuses, et c’était donc un domaine de recherche
important dès les débuts de l’informatique transactionnelle. La capacité à gérer plusieurs
utilisateurs simultanément, en séparant leurs contextes de travail, est apparue dès les années
70, et s’est généralisée dans les années 80 avec les grands moniteurs transactionnels, tels que
CICS.

Chaque utilisateur dialogue avec le serveur de manière indépendante, comme s’il était seul, et
utilise donc une petite part des ressources du serveur, selon son besoin. Néanmoins, cette
séparation de contextes utilisateurs, que l’on retrouve bien sûr aujourd’hui avec les serveurs
HTTP et les outils serveurs d’application du web, n’est pas appelée virtualisation. En effet, si
le contexte applicatif est propre à chaque utilisateur, le contexte logiciel est au contraire
parfaitement homogène.

IBM figure parmi les pionniers de ces technologies avec l’hyperviseur CM/CMS utilisé dès
les années 60, qui fut le père de VM/CMS dans les années 70, devenu aujourd’hui z/VM, qui
permet de faire tourner y compris AIX ou Linux au sein d’une machine virtuelle sur
mainframe. Dans la seconde moitié des années 1990, le monde de la micro-informatique
découvre les émulateurs. La puissance des machines x86 leur permet d'émuler les générations
précédentes de machines.

Il devient alors possible d'émuler des machines Atari, Amiga, Amstrad ainsi que de
nombreuses consoles. A la fin des années 1990 la société VMware développe et popularise le
produit du même nom, système propriétaire de virtualisation logicielle des architectures de
type Intel x86, ouvrant la possibilité de mettre en place n'importe quel environnement x86 à
des fins de tests ou de développement sans avoir besoin d'acheter une nouvelle machine.
Contrairement aux émulateurs cités précédemment, il est enfin possible de faire tourner les
applications professionnelles destinées aux processeurs x86 dans une machine virtuelle. Il faut
citer aussi aux rangs des précurseurs, Qemu, créé par Fabrice Bellard, qui a ouvert la voie et
sur lequel se sont appuyées la plupart des solutions open source. Viennent ensuite les logiciels
libres comme Xen, KVM, et OpenVZ, que nous décrirons plus en détail dans ce document. Et
pour finir les logiciels orientés poste de travail comme VMware Player ou VirtualBox ont
achevé la popularisation de la virtualisation dans le monde x86.

Pour répondre aux nouveaux défis de la virtualisation, notamment en terme de performances,


les fabricants de processeurs x86, AMD et Intel, ont implémenté dans leurs gammes de
processeurs des instructions spécifiques améliorant les possibilités de virtualisation. Ces
processeurs ont commencé à être diffusés à partir de 2006. Ils permettent une virtualisation
avec un rendement proche de 100%.

La course à la performance n'est cependant pas terminée, et de nouvelles technologies


comme la virtualisation des IO sont encore en cours de généralisation. Mais dans l'ensemble,
la technologie à la base de la virtualisation est mature, et l'essentiel des efforts se concentre
désormais sur les outils permettant de tirer profit de la virtualisation : que ce soit les outils de
stockage, de sauvegarde, ou d'administration. Les offres estampillées « Cloud Computing »
sont un bon exemple des possibilités offertes par une virtualisation dont le cycle de vie est
entièrement automatisé.

2 Un hyperviseur

L’hyperviseur est la couche logicielle qui s’insère entre le matériel et les différents systèmes
d’exploitation. C’est bien un composant clé, que l'on retrouve dans la plupart des technologies
de virtualisation de bas niveau. Ainsi, par rapport au schéma de base d’un serveur distinguant
le matériel, le système d’exploitation, et ses applications :

Figure 1.1 : les couches d’une machine physique

L’hyperviseur vient s’insérer entre le matériel et plusieurs systèmes d’exploitation, de la


manière suivante :
Figure 1.2 : couches d’une machine virtuelle

2.1 Les Types d’hyperviseurs

Il existe deux types d’hyperviseur :

2.1.1 Hyperviseur de type 1

Un hyperviseur de type 1 a comme particularité de s'installer directement sur la couche


matériel (à comprendre qu'il est relié directement au matériel de la machine hôte). Il est alors
considéré comme outil de contrôle du système d'exploitation, c'est à dire qu'il s'agit d'un
noyau allégé et optimisé pour la virtualisation de machines, à contrario d'un OS classique
(Windows ou Linux).

Au démarrage de la machine physique, l'hyperviseur prend directement le contrôle du


matériel, et alloue l'intégralité des ressources aux machines hébergées.
Figure 1.3 : Hyperviseur type1

Le gros avantage de ce type d'hyperviseur, c'est qu'il permet d'allouer la quasi-totalité des
ressources disponibles aux machines virtuelles, car celui-ci est directement relié à la couche
matérielle. Cela est très utile lorsqu'il s'agit de virtualiser de gros serveurs (type Exchange)
demandant de conséquentes ressources pour fonctionner correctement.

A contrario, un seul hyperviseur de ce type peut être installé sur une machine physique. Ainsi,
si vous décidez de virtualiser beaucoup de machines, ou des machines demandant un nombre
de ressources conséquents, il faudra disposer d'une machine physique disposant d'une
puissance équivalente à l'intégralité des machines virtualisées, ou prévoir plusieurs machines
physiques avec d'autres hyperviseurs.

2.1.2 Hyperviseur de type 2

Un hyperviseur de type 2 est considéré comme un logiciel, s'installant et s'exécutant sur un


système d'exploitation déjà présent sur la machine physique.

Le système d'exploitation virtualisé par un hyperviseur de type 2 s'exécutera dans un


troisième niveau au dessus du matériel, celui-ci étant émulé par l'hyperviseur.
Figure 1.4 : Hyperviseur type2

L'avantage d'utiliser ce type d'hyperviseur est la possibilité d'installer et d'exécuter autant


d'hyperviseurs que l'on désire sur notre système hôte, ce type n'étant pas relié directement au
matériel.

La plupart du temps, les hyperviseurs de type 2 sont utilisés pour virtualiser des OS afin de
procéder à des tests de compatibilité et/ou de sécurité.

Il existe également un environnement dans lequel ce type d'hyperviseur est particulièrement


utilisé : Pour les utilisateurs Mac OSX ayant besoin d'utiliser Windows (en raison
d'applicatiions non compatibles) .

A contrario, celui-ci n'étant pas relié directement au matériel mais s'exécutant sur un OS déjà
présent sur la machine physique (qui consomme donc déjà des ressources), la quantité de
ressources pouvant être allouée aux machines virtualisées est moindre que sur un hyperviseur
de type 1.

Espace noyau, espace utilisateur

Rappelons que l’on distingue, dans un serveur deux espaces :

 L’espace noyau (kernelspace), qui inclut le noyau du système d’exploitation et ses


drivers.
 L’espace utilisateur (userspace), qui inclut tout le reste, incluant tous les composants
systèmes de la distribution ainsi que les applicatifs spécifiques.

OS hôte, OS invité
Dans le cas d'un hyperviseur de type 2, on appelle « OS hôte » ou Host OS, l’OS sous-jacent,
sur lequel s’appuie l’hyperviseur. On appelle « OS invité » ou Guest OS, les OS des machines
virtuelles.

3. Différentes techniques de virtualisation (La-virtualisation-edite-par-le-groupe-linagora-


livre-blanc-la-virtualisation)
Quatre techniques de virtualisation existent, les unes plus connues que les autres :
 Isolateur
 Noyau en espace utilisateur
 Machine virtuelle ou virtualisation complete
 Para virtualisation
 Matériel
3.1 Isolateur
Un isolateur est un logiciel permetant d'isoler l'exécution des applications dans des contextes
ou zones d'exécution, c'est l'archétype de la solution de virtualisation par "juxtaposition".
L'isolateur permet ainsi de faire tourner plusieurs fois la même application (à base d'un ou
plusieurs logiciels) prévue pour ne tourner qu'à une seule instance par machine.

Figure 1.5 : l'architecture d'un isolateur

Notons que cette technologie consiste en quelque sorte à généraliser la notion de "contexte"
Unix : ce dernier isole les processus (mémoire, accès aux ressources), on ajoute alors : une
isolation des périphériques (c'est le rôle de l'isolateur), voire leur partage, les systèmes de
fichiers donc les fichiers eux-mêmes et leurs accès.

Cette solution est très performante, du fait du peu d'overhead (chute de performance
conséquente de l'ajout des couches de virtualisation), mais les environnements virtualisés ne
sont pas complètement isolés, ils partagent en particulier le code du noyau. Cette solution est
aussi remarquablement économique en mémoire par conséquence de la dernière remarque.
On voit bien que l’isolation ne peut être utilisée pour virtualiser tout un système
d’exploitation, mais en contre partie, il offre des performances supérieures. Autre limitation :
les isolateurs sont surtout disponibles pour les systèmes linux. Quelques isolateurs :

 Linux-VServer: isolation des processus en user-space,


 BSDJail: isolation en user-space,
 OpenVZ:libre,
 Partitionnement au niveau noyau sous Linux et Windows2003.

3.2 Noyau en espace utilisateur

Dans cette situation, un noyau tourne comme une application dans l’espace utilisateur, ce qui
lui donne son propre espace mémoire à gérer et lui permet le contrôle des applications. Cette
méthode de virtualisation n’est pas très performante du fait que le système invité n’est pas
tout à fait indépendant du système hôte. D’autre part, les deux noyaux empilés dans un même
système physique ce qui rend les deux systèmes fortement dépendants.

Figure 1.6 :Architecture du user mode kernel


Exemples :
 User Mode Linux : noyau tournant en user-space
 Cooperative Linux ou coLinux : noyau coopératif avec un hôte Windows
 L4Linux
3.3 Machine virtuelle ou Emulateur ou virtualisation Complete
La virtualisation complète, comme son nom l'indique, consiste à simuler un ordinateur
complet, de façon à exécuter le système d'exploitation de façon naturelle, sans que celui-ci ne
se rende compte qu'il est virtualisé. On parle aussi de 'machines virtuelles', en désignant ces
systèmes simulés. Cela permet donc de faire fonctionner plusieurs systèmes d'exploitation non
modifiés sur un serveur physique. Le matériel du serveur physique est rendu abstrait et
remplacé, du point de vue des serveurs virtuels, par un matériel « générique ». Ce matériel est
soit émulé pour ressembler à un matériel réel (généralement répandu, comme les contrôleurs
disque Intel PIIX ou les cartes réseau Broadcom), soit paravirtualisé, c'est à dire qu'il
nécessite un pilote particulier dans le système invité pour fonctionner.
Sur une machine virtuelle, il est donc possible d'installer n'importe quel OS non modifié, et
donc aussi bien propriétaire (Windows) que open source, du moment qu'il dispose des pilotes
pour le matériel que lui présente l'hyperviseur. Les premières solutions de virtualisation
complète étaient entièrement basées sur des émulateurs, donc des logiciels qui réinterprétaient
chaque opération demandée par le système virtuel, pour les adapter au matériel physique, au
prix d'une perte considérable de performances. Cette solution permet de faire cohabiter
plusieurs systèmes d’exploitation complètement isolés. Ces derniers communiquent entre eux
via les canaux systèmes standards, et par réseau. En effet, toutes les machines virtuelles sont
ou peuvent être dotées de cartes réseaux virtuelles qui sont en fait des buffers offrant la
possibilité d’échanger des données avec l’extérieur.
Quelques exemples :
 QEMU : émulateur de plateformes x86, PPC, Sparc
 kvm : version modifiée de QEMU tirant parti des instructions de virtualisation des
processeurs Intel et AMD (Intel VT ou AMD-V)
 bochs : émulateur de plateforme x86
 VMware: propriétaire, émulateur de plateforme x86 (produits VMware Server,
VMware Player et VMware Workstation)
 Microsoft Virtual PC et Virtual Server: propriétaire, émulateur de plateforme x86
 MacOnLinux : émulateur de plateforme Mac OS sur Linux PPC
 VirtualBox : émulateur de plateforme x86
 Parallels : propriétaire, émulateur de plateforme x86 pour Mac OS X.
3.4 Para virtualisation
Un hyperviseur est un noyau système très léger et optimisé pour la gestion des noyaux des OS
invités l’architecture matérielle soujacente. Dans le cas où les OSs invités sont conscients
qu’ils sont virtualisés on parle de para-virtualisation. Cette méthode est indispensable pour
l’Hyper-V de Microsoft et qui augmente les performances de VMware ESX.

Figure 1.7 Architecture de paravirtualisation


Cette technique a l’avantage d’améliorer les performances du système invité, les dispositifs de
bas niveau étant directement accessibles par ce dernier par l’intermédiaire de pilotes
paravirtualisés. Son rendement est pratiquement comparable à celui d’un système
d’exploitation directement installé sur la machine physique.

Un hyperviseur de type 1 est comme un noyau système très léger et optimisé pour gérer les
accès des noyaux d'OS invités à l'architecture matérielle sous-jacente. Si les OS invités
fonctionnent en ayant conscience d'être virtualisés et sont optimisés pour ce fait, on parle
alors de para-virtualisation (méthode indispensable sur Hyper-V de Microsoft et qui augmente
les performances sur ESX de VMware par exemple).

Les solutions qui se partagent le marché sont (en ordre décroissant de taux de pénétration du
marché) :
 VMware ESX : c’est un produit mature qui fait partie d’une offre globale visant à
virtualiser les moyens informatique de l’entreprise. C’est un hyperviseur pour
plateforme x86.
 Xen : hyperviseur initialement développé par l’université de Cambridge, il a été acheté
par Citrix. Xen utilise un noyau léger supportant des noyaux linux, plan9,
NetBSD…etc.
 Microsoft Hyper-V : intégré à Windows Server 2008 (version 64 bits uniquement)

3.5 Matériel
Dans ces architectures matérielles, le support de la virtualisation est intégré au processeur ou
bien est assisté par ce dernier. Ceci permet de gagner en performances en minimisant la partie
logiciel de la virtualisation.
Les exemples les plus connus du marché :
 Hyperviseur IBM Power & Micro-partitionnement AIX
 Mainframes : VM/CMS
 Sun E10k/E15k
 HP Superdome
 AMD-V (Assistance à la virtualisation de AMD, anciennement Pacifica)
 Intel VT (Assistance à la virtualisation de Intel, anciennement Vanderpool)
4 Les domaines d’application

4.1 La virtualisation des serveurs

D’une manière générale, la virtualisation de serveur est un principe permettant de faire


fonctionner simultanément, sur un seul serveur physique, plusieurs serveurs virtuels. Cette
technique permet aux entreprises d’utiliser des serveurs virtuels en lieu et place de serveurs
physiques. Si cette virtualisation est faite au sein de la même entreprise, le but est de mieux
utiliser la capacité de chaque serveur par une mise en commun de leur capacité.

La virtualisation de serveur permet de :

 Regrouper plusieurs serveurs physiques sous-employés sur un seul hôte qui exécute
des systèmes virtuels ;
 Réduire la surface au sol, la consommation électrique, le besoin de climatisation et le
nombre d'administrateurs ;
 Réaliser des économies (locaux, consommation électrique, personnel).
Figure 1.8 : Virtualisation des serveurs

La partie virtualisation de ce cours concerne plus particulièrement la virtualisation des


serveurs.

4.2 La virtualisation des postes de travail

La virtualisation des postes de travail est l’évolution logique de la virtualisation des serveurs.
Le poste de travail se résume à une machine virtuelle disponible sur un serveur localisé au
sein du centre de données. Les utilisateurs ne font que de se connecter à cette machine
virtuelle, généralement via des terminaux légers.

Figure 1.9 virtualisation des postes de travail

La figure 4.2, illustre le concept décrit ci-dessus. Nous pouvons distinguer, au centre, un
poste de travail virtuel situé au sein du centre de données. L’utilisateur peut accéder à cette
station par le biais de tout type de client. La station de travail contient, quant à elle, tant les
applications que les données, mais également les paramétrages propres à l’utilisateur.

4.3 La Virtualisation du stockage

Virtualisation du stockage La virtualisation du stockage permet à plusieurs périphériques de


stockage physique qui sont regroupés, d’apparaître comme un seul et unique périphérique de
stockage. Cet espace de stockage sera présenté aux hôtes qui les verront comme leur propre
disque. Cela offre divers avantages tels que l’homogénéisation du stockage sur des
périphériques de stockage de capacité et de vitesses différentes, des temps d’arrêt réduits et
une meilleure optimisation des performances et de la vitesse. Partitionner un disque dur en
plusieurs partitions est un exemple de cette virtualisation. En outre, le regroupement du
stockage dans un système centralisé élime les soucis et coûts liées à la gestion de plusieurs
périphériques de stockage.

Figure 1.10 : Virtualisation du stockage

4.4 La virtualisation de réseaux

De manière générale, la virtualisation des réseaux consiste à partager une même infrastructure
physique (débit des liens, ressources CPU des routeurs,...) au profit de plusieurs réseaux
virtuels isolés. Un VLAN (Virtual Local Area Network) est un réseau local regroupant un
ensemble de machines de façon logique et non physique. Puisqu’un VLAN est une entité
logique, sa création et sa configuration sont réalisées de manière logicielle et non matérielle.

On distingue plusieurs types de réseaux virtuels :

 Les réseaux virtuels de niveau 1, appelés réseaux virtuels par port (port-based VLAN):
ils définissent un réseau virtuel en fonction des ports de raccordement sur le
commutateur (switch). Ainsi, chaque port du commutateur est associé à un réseau
virtuel, indépendamment de la machine qui y est physiquement raccordée. Le principal
inconvénient d’un VLAN de niveau 1 est sa rigidité : si une station se raccorde
physiquement au réseau par l’intermédiaire d’un autre port du commutateur, alors il
est nécessaire de reconfigurer ce commutateur afin de réintégrer la station dans le bon
réseau virtuel.
 Les réseaux virtuels de niveau 2, appelés réseaux virtuels par adresse MAC (MAC
address-based VLAN) : ils consistent à définir un réseau virtuel sur base des adresses
MAC des stations. Une adresse MAC est un identifiant unique implémenté dans
chaque adaptateur réseau. Ce type de VLAN est beaucoup plus souple que le
précédent car il est indépendant de la localisation de la machine.
 Les réseaux virtuels de niveau 3.

On distingue
principalement deux types de VLAN de niveau3 :

Les réseaux virtuels par adresse de sous-réseau (Network address-based VLAN) : ils
déterminent les réseaux virtuels sur base de l’adresse IP source des segments. Ce type de
réseau virtuel est très flexible puisque les commutateurs adaptent automatiquement leur
configuration lorsqu’une station est déplacée.

Les réseaux virtuels par protocole (Protocol-based VLAN).

Dans ce cas, les réseaux virtuels sont créés sur base des protocoles utilisés (TCP/IP, IPX,...) et
les stations sont regroupées en réseaux virtuels suivant le protocole qu’elles utilisent.

Les avantages qu’offrent les réseaux virtuels sont les suivants :

 Une réduction du traffic de diffusion, puisque celui-ci est à présent contenu au sein de
chaque réseau virtuel ;
 Une sécurité accrue puisque l’information est encapsulée dans une couche
supplémentaire ;
 Une meilleure flexibilité puisqu’une modification de la structure des réseaux peut être
réalisée en modifiant la configuration du commutateur.

5. Les avantages de la virtualisation (Livre blanc VIRTUALISATION ET APPLIANCES


VIRTUELLES)

L’arrivée des serveurs haute performance a soulevé un problème fondamental avec le modèle “une
application par serveur” : son inefficacité. Dédier un serveur moderne à une application unique risque
d'impliquer la sous-utilisation de ce serveur. En réalité, beaucoup de sociétés pensent que leurs
serveurs utilisent entre 5 % et 25 % de leur capacité totale. Par conséquent, une quantité importante
des ressources informatiques est inexploitée.

La virtualisation permet à ces ressources auparavant non utilisées d’être exploitées.

Les ressources d’un serveur physique pouvant être partagées entre plusieurs VM, les serveurs peuvent
être conçus de manière à optimiser leur capacité : un serveur qui fonctionnait à seulement 10 % de sa
capacité peut fonctionner à 85 % de sa capacité s'il est virtualisé. En outre, la virtualisation permet
également aux PME de simplifier leurs infrastructures. Les anciennes et nouvelles applications qui se
basent sur différents systèmes d’exploitation peuvent toutes être exécutées sur le même matériel
physique. Combinés, ces facteurs apportent aux sociétés un grand nombre d’avantages substantiels,
tels que :

 la réduction des coûts de l’énergie : la consolidation des charges de travail signifie qu’un
nombre réduit de serveurs devra être alimenté. Cela peut donner lieu à une réduction des
coûts d’une valeur située entre 300 $ et 600 $ par an pour chaque serveur retiré de
l’infrastructure, frais de refroidissement inclus.
 la réduction des coûts immobiliers : la virtualisation permettant de réduire la base du serveur
installé, l’encombrement sera également réduit.
 la réduction des frais de gestion : la virtualisation permet aux entreprises de reconsidérer et
restructurer radicalement leurs opérations informatiques. Le temps qui, auparavant, était
consacré à des tâches de routine, telles que l’approvisionnement et la maintenance, peut-être
redirigé vers d’autres domaines, ce qui permet aux équipes informatiques de se concentrer sur
des problématiques commerciales.
 l'amélioration de la flexibilité et de la réactivité : le déploiement d’un serveur physique prend
du temps : le serveur doit être commandé, connecté au réseau, et l’ensemble logiciel
nécessaire doit être installé et configuré. La connexion d’un serveur virtuel à Internet est
néanmoins un processus beaucoup plus simple et plus rapide, qui peut être accompli en
quelques minutes seulement, ce qui permet au service informatique de répondre aux besoins
commerciaux beaucoup plus rapidement.
 l'amélioration de la disponibilité et de la continuité d’activité : étant donné que les VM
peuvent être connectées à Internet en quelques minutes seulement et être déplacées d’un
serveur physique à un autre sans temps d’arrêt, la virtualisation peut pratiquement supprimer
le besoin de maintenance des fenêtres et le temps d’arrêt imprévu, assurant la pleine
disponibilité des applications clés qui pilotent une activité. Bien que la consolidation du
serveur soit souvent considérée comme le principal moteur et avantage de la virtualisation,
l’amélioration de la disponibilité est néanmoins tout aussi importante.
Chapitre 2: La Virtualisation de Stockage

Technologies de virtualisation du stockage Il existe de nombreuses technologies différentes


qui composent la virtualisation du stockage. Elles ne sont pas toutes requises ou besoin d’être
impérativement utilisées, cependant, une compréhension des technologies suivantes ainsi
qu’une combinaison de ces dernières permettent la mise en œuvre de la virtualisation du
stockage.

2.1 Architectures de Stockage

2.1.1 DAS (Direct Attached Storage)

Direct Attached Storage ou Stockage à connexion directe en français, fait référence à un


système de stockage informatique qui est directement connecté au serveur ou ordinateur au
lieu de transiter par un réseau. Par exemple, un disque dur d’un ordinateur ou d’un serveur est
la forme habituelle de stockage à connexion directe, de même pour les groupes de disques
externes au serveur, mais ceux-ci directement reliés par une interface SCSI (Small Computer
System Interface), SATA (Serial Advanced Technology Attachment) ou Serial Attached SCSI
(SAS).

Figure 2.1 – Fonctionnement du DAS

Ce qu’il faut retenir de ce système de stockage est qu’il n’utilise pas un réseau de stockage.
En effet, sur le schéma précédent, on peut apercevoir que le serveur est connecté directement
avec la baie de stockage par le biais d’un adaptateur de stockage.

2.1.2 JBOD (Just a Bunch Of Disks)

JBOD est l’abréviation de « juste un paquet de disques ». En d’autres termes, les disques sont
présentés à un serveur comme s’ils étaient directement attachés afin d’augmenter la capacité
de stockage. Les boîtiers JBOD sont généralement des boîtiers externes relativement simples
à utiliser et connectés à un ou plusieurs serveurs via des connexions SAS ou eSATA.

Il est alors possible de combiner les disques physiques du serveur avec les baies JBOD afin
de créer un pool de stockage dans lequel on pourra former un ou plusieurs disques virtuels qui
seront par la suite présentés aux hôtes qui verront cet espace de stockage comme leur propre
disque.
Figure 2.2 – Fonctionnement JBOD

2.1.3 NAS (Network Area Storage)

Le stockage en réseau (NAS) est un type de périphérique de stockage de fichiers dédié qui
fournit aux nœuds de réseau local (LAN) un stockage partagé basé sur des fichiers via une
connexion Ethernet standard. Un avantage important du NAS est sa capacité à fournir
plusieurs clients sur le réseau l’accès aux mêmes fichiers. Avant l’arrivée du NAS, les
entreprises disposaient généralement de centaines, voire de milliers de serveurs de fichiers
distincts devant être configurés et gérés séparément.

Les périphériques NAS sont généralement dépourvus de clavier ou d’écran, ils sont
configurés et gérés avec un programme utilitaire basé sur un navigateur. Chaque NAS réside
sur le réseau local en tant que nœud de réseau indépendant et possède sa propre adresse IP.
Les périphériques NAS intègrent le support de multiples systèmes de fichiers réseau, tels que
Common Internet File System (CIFS) protocole de partage de Microsoft et de Samba,
Network File System (NFS) qui est un protocole de partage de fichiers Unix, ou encore AFP
(AppleShare File Protocol) qui est l’équivalent pour la technologie Apple.

L’accès au NAS se fait alors en mode fichier à travers les systèmes de fichiers en masquant
les dépendances vis-à-vis de l’emplacement où les données sont physiquement stockées.

Figure 2.3 – Fonctionnement du NAS

2.1.4 SAN (Storage Area Network)

Un réseau de stockage (SAN) est un réseau dédié permettant de mutualiser les ressources de
stockage. Il se différencie des autres systèmes de stockage tels que le NAS par un accès aux
disques en mode bloc. Dans le cas du SAN, les baies de stockage n’apparaissent pas comme
des volumes partagés sur le réseau : en effet, elles sont directement accessibles en mode bloc
par le système de fichiers des serveurs en introduisant un niveau d’abstraction entre le serveur
et le système de stockage, ce qui donne plus de flexibilité aux administrateurs. En clair,
chaque serveur voit l’espace disque d’une baie SAN auquel il a accès comme son propre
disque dur. Il faut ainsi définir très précisément les LUNs, le masking et ler zoning pour qu’un
serveur Windows n’accède pas aux mêmes ressources qu’un serveur Unix utilisant un
système de fichiers différent. L’un des avantages du SAN est l’évolutivité de l’espace de
stockage. L’espace disque n’est plus limité par les caractéristiques des serveurs, et est évolutif
à volonté par l’ajout de disques ou de baies de stockage sur le SAN. L’espace de stockage
physique mutualisé pour les serveurs permet ainsi d’optimiser la gestion des disques. Des
protocoles sont utilisés pour le transit des données sur le réseau SAN. Les plus courants étant
Fibre Channel, iSCSI et Fibre Channel sur Ethernet (FCoE).

Figure 2.4 – Fonctionnement du SAN

Les débits sur un réseau SAN en technologie Fibre Channel peuvent atteindre 32Gbit/s
(précédemment 1Gbit/s, 2, 4, 8 et 16) par lien en fibre optique, et assure le fait que la requête
envoyée par un serveur a bien été reçue et prise en compte par les systèmes de stockage. Un
autre avantage du SAN est qu’il peut également assurer la redondance du stockage, c’est-à-
dire l’accessibilité au système de stockage en cas de panne de l’un de ses éléments, en
doublant au minimum chacun des éléments du système (haute disponibilité). De plus, il peut
fonctionner dans un environnement complètement hétérogène et donc le système
d’exploitation des serveurs n’a aucune importance.

Figure 2.5 – Exemple d’accès de deux serveurs à une baie de disque par deux fabrics

2.2 Protocoles de stockage

3.2.1 iSCSI (Internet Small Computer System Interface) iSCSI est un protocole de stockage
en réseau basé sur leprotocole IP destiné à relier les installations de stockage de données. Le
protocole iSCSI encapsule des commandes SCSI dans des paquets TCP, puis les transmet sur
le réseau Ethernet aux périphériques de stockage. Celui-ci permet aux clients (appelés
initiateurs) d’envoyer des commandes SCSI (CDB) à des périphériques de stockage SCSI
(cibles) sur des serveurs distants. Il s’agit d’un protocole utilisé sur les réseaux SAN qui
permet de rassembler les ressources de stockage dans un centre de données tout en donnant
l’illusion que le stockage est local. Contrairement au Fibre Channel qui nécessite une
infrastructure matérielle dédiée, iSCSI peut s’utiliser en conservant une infrastructure
existante.

Figure 2.6 – Protocole iSCSI

2.2.2 Fibre Channel

Fibre Channel est un autre protocole de stockage correspondant à la couche de transport sous-
jacente que les SAN utilisent pour transmettre des données. C’est le langage utilisé par les
HBA (Host Bus Adapter), les switchs et les contrôleurs d’une baie de stockage à l’intérieur
d’un SAN pour communiquer entre eux. Le protocole Fibre Channel est un langage de bas
niveau, ce qui signifie qu’il est simplement utilisé comme un langage entre le matériel réel et
non les applications qui s’exécutent dessus. De plus, il peut fonctionner sur de la paire
torsadée, du câble coaxial ou de la fibre optique, l’interconnexion entre les types de support
étant réalisée par des modules standardisés dits « GLM » (Global Link Module). Trois
topologies différentes sont utilisées pour le Fibre Channel :

 point à point : c’est la topologie la plus simple mais la plus limitée.

Les périphériques sont reliés directement entre eux ;

 en boucle (Arbitrated LoopouFC-AL) : Ici, tous les périphériques sont reliés pour
former une boucle, ce qui permet de relier davantage d’objets entre eux, il est
également possible de doubler la boucle voire d’y ajouter un ou plusieurs hub, pour
pallier la défaillance d’un périphérique ;
 « switchée » ou « commutée » (fabric) : Dans cette architecture, on utilise un switch
Fibre Channel, dont le principe de fonctionnement est similaire au switch Ethernet.
Le terme Fabric désigne ici l’ensemble des switchs.

2.3 RAID (Redundant Array of Independent Disks)

RAID signifiant regroupement redondant de disques indépendants est une technologie utilisée
pour augmenter les performances et/ou la fiabilité du stockage de données. Un système RAID
est constitué de deux ou plusieurs disques fonctionnant en parallèle. Ces disques peuvent être
des disques mécaniques (SATA, SAS), ou flash comme les SSD (Solid State Drive) qui
offrent des performances de vitesse de lecture et d’écriture accrue mais un cycle de vie
inférieur comparé à un disque dur mécanique. Il existe différents niveaux RAID, chacun
optimisé pour une situation spécifique. Le logiciel permettant d’exécuter la fonctionnalité
RAID et de contrôler les disques peut soit tout simplement être un pilote propre au système
d’exploitation, ou soit se trouver sur une carte contrôleur séparée (un contrôleur RAID
matériel). Les contrôleurs RAID matériels coûtent plus cher que les logiciels RAID qui sont
généralement gratuits et intégrés aux OS, mais ils offrent également de meilleures
performances. Les systèmes RAID peuvent de plus être utilisés avec un certain nombre
d’interfaces, notamment SCSI, SATA ou FC (Fibre Channel). Seront présentés 3 niveaux de
RAID les plus populaires :

2.3.1 RAID 0

Dans un système RAID 0, les données sont divisées en blocs et sont écrites sur tous les
disques de la baie. En utilisant plusieurs disques (au minimum 2) en même temps, cela offre
des performances d’écriture et de lecture supérieures. La capacité totale est égale à celle du
disque le plus petit * le nombre de disque, il est donc conseillé d’utiliser des disques de même
capacité.
Figure 2.7 – RAID 0

Les avantages du RAID 0 sont ainsi les meilleures performances à la fois lecture et écriture.
Toute la capacité de stockage est utilisée pour obtenir de meilleurs résultats et cette
technologie est facile à mettre en œuvre. 20 Cependant, le RAID 0 n’est pas tolérant aux
pannes. Si un disque tombe en panne, toutes les données des disques en RAID 0 sont perdues.
Il ne devrait pas être utilisé pour des systèmes critiques.

2.3.2 RAID 1

Ce niveau de RAID requiert 2 disques et repose sur un simple système de mirroring. Les
données d’un disque sont recopiées en intégralité sur un second disque qui assure une copie
complète de ses données en cas de panne du premier disque. Pour que le RAID 1 puisse être
mis en place, il faut que le second disque ait une capacité au minimum équivalente à celle du
premier disque.

Figure 2.8 – RAID 1

Le RAID 1 offre donc une vitesse de lecture et d’écriture comparable à celle d’un seul
disque. En cas de panne d’un disque, il n’est pas nécessaire de reconstruire les données, il
suffit de les copier sur le disque de remplacement. Le principal inconvénient est que la
capacité de stockage effective ne représente que la moitié de la capacité totale du disque car
toutes les données sont écrites deux fois. Les solutions logicielles RAID 1 ne permettent pas
toujours un remplacement à chaud (hot swap) d’un disque défectueux. Cela signifie que le
disque défectueux ne peut être remplacé qu’après la mise hors tension de l’ordinateur auquel
il est attaché. Pour les serveurs utilisés simultanément par de nombreuses personnes, cela peut
s’avérer compliqué. C’est pourquoi ces systèmes utilisent généralement des contrôleurs
matériels prenant en charge le remplacement à chaud.

2.3.3 RAID 5

RAID 5 est le niveau RAID sécurisé le plus courant. Il requiert au moins 3 disques, mais
peut-être utilisé jusqu’à 16.

Les blocs de données sont répartis sur les disques et, sur un des disques, une somme de parité
de toutes les données du bloc est écrite. Les données de parité ne sont pas écrites sur un
disque fixe, mais sont plutôt réparties sur tous les disques, comme le montre le schéma ci-
dessous. En utilisant les données de parité, il est alors possible de recalculer les données de
l’un des autres blocs de données si elles ne sont plus disponibles. Cela signifie qu’une
configuration en RAID 5 peut supporter une seule panne de disque sans perte de données.
Bien qu’il est possible de configurer des disques en RAID 5 au niveau logiciel, un contrôleur
matériel est recommandé. Souvent, la mémoire cache supplémentaire est utilisée sur ces
contrôleurs pour améliorer les performances d’écriture.

Figure 3.9 – RAID 5

2.3 La protection des données

2.3.1 La Réplication

Une condition sine qua non à la mise en place d’une synchronisation adéquate des données
consiste à connaître parfaitement ces dernières, en particulier leur volume et leur taux de
changement. Il convient également de sélectionner convenablement de système de stockage.
Les solutions de réplication peuvent en effet être intégrées au contrôleur d’une baie mais
peuvent également se présenter sous forme logicielle.

2.3.1.1 Réplication synchrone

Ce type de réplication est prévu pour faire en sorte que la correspondance entre les données
présentes sur la première baie (source) et la seconde (cible) soient parfaite, et ce, à tout
moment. Il s’agit donc d’une réplication « en temps réel ».

2.3.1.2 Réplication asynchrone

Ce mode de réplication ne transmet pas les données en temps réel mais à intervalle régulier, se
contentant dès lors d’une bande passante moins importante.

2.2 La Déduplication

La déduplication est incontournable lorsqu’il s’agit de limiter l’espace toujours plus


conséquent occupé par les données. Cette technique consiste à factoriser à l’aide d’un
algorithme ad hoc des séquences de données identiques afin d’économiser l’espace disque
utilisé. Chaque fichier est découpé en une multitude de tronçons. À chacun de ces tronçons est
associé un identifiant unique, ces derniers étant stockés dans un index. Ainsi, un même
tronçon n’est stocké qu’une seule fois. Une nouvelle occurrence d’un tronçon déjà présent
n’est pas sauvegardé à nouveau mais remplacé par un pointeur vers l’identifiant
correspondant.

2.3 Les Snapshot

Les snapshots, ou instantanés, sont des copies en lecture seule correspondant à l’état d’un
système (des données y relatives) à un instant précis. Par état, nous entendons un état
consistant des données à un instant T. Il ne s’agit pas d’une sauvegarde à part entière puisque
les données initiales sont nécessaires pour restaurer un système à partir d’un instantané. Ce
cliché peut toutefois être restauré à un autre emplacement que celui d’origine, ce qui peut
s’avérer intéressant pour créer un clone d’une machine virtuelle ou pour effectuer des tests
applicatifs. L’instantané est un excellent moyen de sécuriser les données et constitue
d’ailleurs la base de certaines stratégies de sauvegarde. En effet, il est tout à fait possible de
prendre des instantanés à intervalle régulier durant la journée et de les externaliser sur un support de
stockage distant (un NAS, par exemple).

Vous aimerez peut-être aussi