Académique Documents
Professionnel Documents
Culture Documents
Cours Sur
Le Cloud et la Virtualisation
2019/2020
Chapitre 1 Virtualisation
Préambule
Le présent document s'agit d'un support de cours concernant la matière intitulée « Cloud et
Virtualisation », enseigné au Département de Mathématiques et d'Informatique à l'université
d'Oum El Bouaghi et destiné aux étudiants de la deuxième année Master en informatique, option
architecture distribuée.
L’objectif de ce cours vise à donner aux étudiants une :
Compréhension sur les principes de la virtualisation ;
Manipulation des différents concepts de la virtualisation à travers des outils
pratiques ;
Découverte de la notion du Cloud Computing et ses applications ;
Connaissance des plateformes Cloud les plus connues et de manipuler les services
offerts par au moins une de ses plateformes.
Afin d'atteindre l'objectif tracé, nous avons déployé tous les efforts pour approcher ce travail
dans plusieurs aspects et nous avons synthétisé les informations les plus pertinentes en nous
appuyant sur des sources variées (ouvrages, notes de cours, articles, sites internet…). Tout en
respectant le canevas officiel défini par le ministère de l'enseignement supérieur et de la
recherche scientifique. Pour rendre le cours plus attractif, nous avons ajouté des séances de TP,
dont le but est de faciliter la pratique des notions théoriques vues dans le cours.
Néanmoins, nous avons conscience que ce document restera partiel, tronqué et non exhaustif.
C'est pour cette raison que nous essayons de veiller à une actualisation permanente, dont le but
est d'enrichir son contenu. Ainsi, nous serions reconnaissant aux lecteurs de nous signaler toute
erreur ou de nous proposer des suggestions dans ce sens.
Juin 2019
Dr. ZERTAL Soumia.
Chapitre 1 Virtualisation
Chapitre I
Virtualisation
Sommaire
Chapitre I: Virtualisation ................................................................................................3
1. Introduction ....................................................................................................................4
2. Terminologie ..................................................................................................................5
3. La virtualisation ..............................................................................................................6
4. Historique .......................................................................................................................6
5. Pourquoi virtualiser.........................................................................................................8
6. Avantages liés à la virtualisation .....................................................................................9
7. Différence entre consolidation, rationalisation et concentration ? ..................................10
8. Hyperviseur .................................................................................................................. 12
9. Les différents type de la virtualisation ........................................................................... 16
10. Les principales solutions ............................................................................................ 20
11. La virtualisation VS Les conteneurs ........................................................................... 23
12. La virtualisation de stockage ...................................................................................... 24
Activité Pratique 1: Etude de cas : Virtualisation ..................................................................31
Chapitre 1 Virtualisation
1. Introduction
Un accès plus facile aux ordinateurs, la modernisation des pays du monde et une plus large
utilisation des smartphones a permis aux personnes d'utiliser Internet plus fréquemment et de
manière plus pratique. Cependant, la pénétration d'Internet se rapporte souvent à l'état actuel de
développement des réseaux de communications. En janvier 2016, il y avait environ 680 millions
d'utilisateurs d'Internet au total en Chine et 282 millions d'utilisateurs d'Internet au total aux
États-Unis. Cependant, l'accès à Internet haut débit varie selon la région en raison des
infrastructures, du développement des marchés Internet et des connexions mobiles.
Chapitre 1 Virtualisation
Cisco prévoit que la croissance du trafic mobile mondial (de 2014 à 2019) va dépasser la
croissance du trafic fixe mondial par un facteur de trois (cf. Figure 2). Parmi les facteurs qui
devraient permettre d’observer cette tendance, Cisco parle des utilisateurs mobiles qui seront
de plus en plus nombreux. L’équipementier estime à 5,2 milliards le nombre d’utilisateurs
mobile en 2019 soit plus de 69% de la population mondiale (contre 4,3 milliards en 2014, soit
près de 59% de la population mondiale).
Par conséquent, il a fallu trouver des solutions pour stocker la masse gigantesque de données
présente sur Internet et concevoir de nouvelles façons d’accéder à ces données de façon simple.
Depuis plusieurs années, la virtualisation et le Cloud Computing font partie des solutions pour
stocker de grandes quantités de données et les rendre disponibles pour un client
indépendamment de sa localisation et de l’appareil qu’il utilise.
2. Terminologie
2.1.Système Hôte
Le système hôte est la machine physique qui héberge les machines virtuelles.
2.2.Hyperviseur
L'hyperviseur est une plateforme de virtualisation, qui permet l’abstraction la couche matérielle
de la machine hôte. Il permet aussi l'exécution des différents systèmes invités sur le système
hôte. Il gère leur fonctionnement et fournit l'isolation entre les systèmes invités.
Chapitre 1 Virtualisation
2.3.Système Invité
Le système invité est l'instance du système d'exploitation qui s'exécute dans l'environnement
virtuel du système hôte. Il est encore appelé machine virtuelle (VM : Virtual Machine).
3. La virtualisation
La virtualisation est utilisée pour générer un système physique simulé sur un système physique
réel. Elle permet d’utiliser une ressource informatique virtuelle à partir d’une machine physique
réelle. Dans la plupart des cas, il existe de multiples systèmes physiques simulés. C'est dans ce
sens que la virtualisation est utilisée pour créer une densité de systèmes. Nous pouvons avoir
plusieurs systèmes virtuels, appelés machines virtuelles, fonctionnant sur un seul système
physique. Ces systèmes virtuels partagent l'utilisation des ressources physiques tels qu’un
processeur, une interface réseau ou un disque dur, ces derniers sont allouées à une machine
virtuelle pour que celle-ci fonctionne comme une machine physique. Lorsqu’un système virtuel
n'utilise pas les ressources d'un système physique, celles-ci peuvent être utilisées par un autre
système virtuel. Dans un environnement non virtualisé, les ressources du système peuvent être
inactives pendant une période de temps.
Aujourd’hui, pour qu’un ordinateur puisse héberger plusieurs machines virtuelles de façon
optimale, il est nécessaire qu’il soit composé de ressources matérielles suffisamment puissantes.
En résumé, la virtualisation consiste à utiliser les technologies de l’information et de la
communication, matérielles et logicielles, dans le but d’héberger plusieurs systèmes
d’exploitation différents sur une unique machine physique.
4. Historique
travaillent inutilement. C’est d’ailleurs un problème qui est toujours d’actualité aujourd’hui
avec les serveurs modernes.
Dans ce but, la première entreprise ayant développé la virtualisation est IBM®. La société a
développé l’IBM System/360 model 67 qui permettait le fonctionnement du temps partagé qui
n’a pas réellement abouti. Cependant, IBM® a lancé un nouveau système qui utilisait la
virtualisation pour mettre en œuvre le temps partagé et observer l’interaction entre les systèmes
d’exploitation et le matériel informatique. Le système apparu en 1967 est le CP/CMS (Control
Program/Cambridge Monitor System puis Console Monitor System). La particularité qui le
caractérise est que son code source était libre, par conséquent l’ensemble des clients d’IBM®
pouvait y accéder gratuitement. Le terme CP (Control Program) correspondait à un programme
de contrôle permettant de créer l’environnement d’une machine virtuelle. CP permettait à un
utilisateur de gérer une machine virtuelle depuis un terminal. Le CMS (Console Monitor
System) était défini comme un simple système d’exploitation interactif mono-utilisateur. La
qualité de ce système CP/CMS était perceptible car, à cette époque, il était déjà possible
d’exécuter plusieurs copies de CMS simultanément sur les machines virtuelles CP sans
impacter les performances. Le système CP/CMS a largement évolué durant cette période et était
donc une innovation importante à l’époque.
En effet, c’est un système qui a beaucoup inspiré la virtualisation telle qu’on la connait de nos
jours. L’environnement était grandement virtualisé avec CP/CMS, toute machine virtuelle était
dotée de ses propres périphériques virtuels sur la base du type de matériel physique du système.
Il y a eu plusieurs versions de CP/CMS :
- La première a été CP-40/CMS, c’est celle qui a permis de mettre en œuvre l’architecture
de la machine virtuelle CP/CMS.
- Par la suite, la CP-67/CMS a été développé pour l’IBM System/360 model 67.
- Enfin, la CP-370/CMS a été développé pour l’IBM System/370 mais n’a jamais été mise
sur le marché.
4.5.Actuellement
- VMWare et Microsoft sont les deux grands acteurs de la virtualisation de serveurs.
Aujourd’hui les entreprises les plus avancés dépassent un taux de virtualisation de 75%.
Ce marché représente aujourd’hui environ 5,5 milliards € et une croissance de 6% sur
l’année 2015-2016.
- A l’heure actuelle, la virtualisation est très connue. On entend parler de virtualisation
de serveur, de Virtualbox, de baremetal, mais aussi de virtualisation de poste de travail,
de VDI, et de virtualisation dans les jeux-vidéos avec les émulateurs.
5. Pourquoi virtualiser
Qu'attendent les entreprises de la virtualisation ?
- La réduction du nombre de serveurs.
- La réduction de l'espace occupé dans les datacenters.
- La réduction de la consommation énergétique des datacenters.
- Réduction des coûts d'administration.
Chapitre 1 Virtualisation
6.1.Améliorer le déploiement
L’intégration d’éléments informatiques matériels ou logiciels et la migration vers de nouveaux
systèmes d’exploitation peuvent souvent devenir des sources de problèmes pour les
administrateurs systèmes. En effet, l’installation et la configuration de nouveaux serveurs
physiques et systèmes d’exploitation peuvent prendre un certain temps, sans parler de la
migration des applications hébergées sur les anciens serveurs. Par ailleurs, dans certains cas,
une seule application peut bloquer la mise à jour du système d’exploitation d’un serveur et par
conséquent, toutes les autres applications sont également condamnées à rester sur le système
d’exploitation actuel. Pour l’exemple expliqué ci-dessus, la virtualisation permettrait que le
système ne pouvant pas être mis à jour devienne une machine virtuelle sur laquelle serait
hébergée l’application qui fonctionne uniquement sur ce système d’exploitation. Par contre, les
autres applications pourraient être hébergées sur une autre machine virtuelle fonctionnant avec
le système d’exploitation mis à jour.
6.2.Optimiser la portabilité
La rapidité de la gestion des machines virtuelles fait partie des avantages de l’utilisation de la
virtualisation. Avec la virtualisation, il est possible de déplacer des machines virtuelles d’un
serveur physique à un autre de façon simple et rapide. C’est un élément important lors
d’opération de maintenance ou d’indisponibilités imprévues d’une machine physique. Par
ailleurs, les machines virtuelles s’adaptent simplement en fonction des différents types
d’infrastructures physiques qui les hébergent. Dans le cas de la virtualisation sur un ordinateur,
les machines virtuelles s’exécutent et fonctionnent indépendamment du type de matériel
physique comme les cartes mères ou les différents types de périphériques.
Chapitre 1 Virtualisation
7.1.Consolidation
C’est le fait d’optimiser le taux d’utilisation des serveurs. Ne faire tourner qu’une seule
application sur des serveurs engendre une perte car les serveurs ne sont exploités qu’à seulement
Chapitre 1 Virtualisation
10% de leur performance (voir beaucoup moins dans certain cas). La consolidation permet
d’atteindre des taux d’utilisation beaucoup plus importants (cf. Figure 3).
7.2.Rationalisation
C’est le fait de supprimer les superflus et les équipements redondants sans utilité. L’exemple le
plus frappant concerne les différents composants d’un serveur comme les cartes Raid, les cartes
HBA, les disques durs. Le fait de rationaliser l’infrastructure réduit de façon drastique le
nombre de tous ces équipements matériels.
Outre l’aspect financier et les économies réelles apportées par la rationalisation, les avantages
concernent aussi une réduction importante de la gestion de ces équipements au quotidien qui
est souvent une perte de temps.
7.3.Concentration
La concentration permet de réduire l’espace pour mettre plus de serveurs dans un espace réduit.
Il existe plusieurs niveaux de concentration : les formats Rack, les serveurs Lame ou les formats
Tour. C’est le nombre de U (1U vaut 44.45 millimètres) qui détermine la hauteur d’un serveur.
Les serveurs Lame (Blade serveurs) sont les systèmes les plus optimisés en terme de
concentration puisqu’aujourd’hui il est possible d’héberger jusqu’à 16 serveurs Lames dans un
chassis 10 U. Ils permettent également de rationnaliser l’équipement car il y a beaucoup moins
de cablâge et d’équipement redondants.
En revanche, ils n’offrent pas de consolidation car le taux d’utilisation sur un serveur Lame est
le même qu’un serveur Tour ou Rack.
Les serveurs Lame associés à la virtualisation apportent consolidation, rationalisation et
concentration. Pour certaines entreprises qui hébergent un nombre important de serveurs
Chapitre 1 Virtualisation
8. Hyperviseur
La virtualisation est implémentée par l'utilisation d'hyperviseur, celui-ci fournit réellement
les capacités de virtualisation. Il agit comme un intermédiaire entre le système physique
(système hôte), et le système virtualisé (système invité). Les hyperviseurs nécessitent des
différents composants installés sur le système hôte pour assurer la virtualisation. En outre, les
hyperviseurs offrent plusieurs options pour les systèmes d'exploitation invités.
L’hyperviseur a 2 rôles majeurs :
- D’une part, l’hyperviseur possède un accès direct aux ressources (sans passer par un
OS) ;
- D’autre part, la totalité des ressources est dédiée aux VMs.
Ce type d’hyperviseur est destiné à héberger entre une dizaine et une vingtaine de VMs. Il
nécessite donc des serveurs très robustes et performants, et le coût pour les utiliser est souvent
très élevé.
Les hyperviseurs de type 1 sont utilisés en entreprise pour plusieurs raisons, comme par
exemple :
• réduire les coûts matériels et de maintenance ;
• optimiser les ressources physiques ;
• répartir la charge dynamiquement ;
• permettre la haute disponibilité des serveurs ;
• créer des VM de pré-production pour les tester en environnement réel avant de les mettre
en production.
C’est avec cette technique de virtualisation que fonctionnent par exemple : Xen, Hyper-V,
vSphere.
Il est donc considéré comme n’importe quelle application et n’a aucune priorité sur les
ressources de l’hôte.
Chapitre 1 Virtualisation
Un hyperviseur de type 2 est une application qui est assez gourmande en mémoire et CPU. Il
faut fermer un maximum d’applications pendant son utilisation
Les utilisations d’un hyperviseur de type 2 sont multiples. Elles sont assez faciles à mettre en
place et très efficaces pour répondre aux besoins du type :
4. créer un petit réseau de plusieurs VM pour tester des protocoles réseau, des règles de
pare-feu, configurer un serveur de supervision ou autre.
Du fait que ces hyperviseurs soient installés sur un OS hôte, ils ont des performances
limitées et hébergent des VM qui peuvent par conséquent être instables.
Ces hyperviseurs ne sont pas faits pour créer des VMs de production, mais uniquement pour
du développement, des tests et de l’usage personnel.
1. Oracle VirtualBox ;
Les niveaux d’exécution, ou Rings, définissent les privilèges d’exécution des programmes. Plus
un programme est installé sur un niveau bas, plus il exerce de contrôle sur le système. L’OS
dispose de plus haut niveau de contrôle et accède directement aux ressources en s’exécutant sur
le Ring 0.
Les applications tournent sur le Ring 3, le plus élevé. Elles ne peuvent pas modifier ce qui
s’exécute sur des Rings inférieurs au leur. Une application ne peut pas arrêter l’OS, alors que
l’OS peut arrêter une application.
Les Rings 1 et 2 définissent des privilèges de moindre importance que ceux du Ring 0.
Chapitre 1 Virtualisation
Les OS étant conçus pour s’exécuter sur le Ring 0, ils vérifient régulièrement leur
positionnement, car certaines instructions ne s’exécutent que si elles viennent du Ring 0.
VMware utilise la translation binaire en interceptant certaines requêtes ce qui permet de leurrer
l’OS invité sur la place qu’il occupe réellement sur le système.
une machine virtuelle utilisant une technologie de virtualisation. Dans la pratique, c’est le cas
pour les systèmes d’exploitation et les machines virtuelles les plus répandus.
Exemples :
Microsoft VirtualPC et Microsoft VirtualServer
VirtualBox
VMware Server, VMware Player, VMware Workstation, VMware Fusion
Avantage : le système d’exploitation hôte n’est pas conscient d’être virtualisé et aucune
modification du système d’exploitation n’est nécessaire. Cela permet d’avoir une compatibilité
avec de nombreux systèmes d’exploitation.
9.3.Para-virtualisation
La para-virtualisation est l’autre technique développée notamment par XenServer de Citrix.
Elle évite d'utiliser un système hôte complet pour faire la virtualisation. A la place, un noyau
très léger de système d'exploitation hôte est utilisé. L’hyperviseur met simplement à disposition
une interface de programmation (API) qui permet aux systèmes d’exploitation invités d’accéder
directement au matériel physique du système hôte (cf. Figure 9).
Elle consiste à modifier les OS invités (la couche du noyau) pour permettre de s’exécuter
ailleurs que sur le Ring 0.
Le Guest OS est conscient d’être virtualisé et modifie certaines instructions bas niveau avant
de les envoyer au hardware. Il n’y a donc pas d’interception d’instructions ni de translation
binaire.
Chapitre 1 Virtualisation
Figure 9 : La para-virtualisation
10.1. Xen
Xen est un logiciel libre de virtualisation. Il est développé par l'université de Cambridge au
Royaume-Uni. Xen permet d'exécuter plusieurs systèmes d'exploitation (et leurs applications)
Chapitre 1 Virtualisation
de manière isolée sur une même machine physique sur plate-forme x86, x86-64, IA- 64 et
PowerPC (bientôt sur SPARC). Les systèmes d'exploitation invités partagent ainsi les
ressources de la machine hôte. Xen est un « paravirtualiseur » ou un « hyperviseur de type 1 ».
Les systèmes d'exploitation invités ont « conscience » du Xen sous-jacent, ils ont besoin d'être
« portés » (adaptés) pour fonctionner sur Xen.
Linux, NetBSD, FreeBSD (portage en cours), Plan 9 et GNU Hurd peuvent d'ores-et-déjà
fonctionner sur Xen.
10.2. KVM
KVM (Kernel-based Virtual Machine) est une machine virtuelle libre pour Linux. Elle
fonctionne sur les architectures x86 disposant des technologies Intel VT ou AMD SVM (AMD-
V). Le module a été intégré dans le noyau Linux depuis la version 2.6.20.
Contrairement à des programmes comme VirtualBox, KVM fait appel au noyau du système
d’exploitation de l’hébergeur pour émuler l’ordinateur ou le serveur physique. Pour faire
simple, KVM est un module de noyau chargeable pour Linux qui tire parti de technologies de
virtualisation matérielle comme Intel VT et AMD-V. Chaque machine virtuelle dispose d’une
UC, d’une RAM et d’une interface réseau qui lui est propres.
10.4. Hyper-V
Les ressources de l'hyperviseur sont alors mutualisées pour différentes VM, ce qui présente un
intérêt économique car auparavant il fallait envisager une machine physique par serveur.
Il est possible d'utiliser la console Hyper-V sur Windows 7. Dans le sens inverse, de nombreux
systèmes d'exploitation peuvent tourner à l'intérieur de Hyper-V :
Bien évidemment pour les systèmes d'exploitation Microsoft Windows 10 (sauf Home
Edition), Windows 8.1, Windows 8, Windows 7 (sauf édition familiale), Windows
Vista SP1/SP2 (sauf édition familiale), Windows Server 2012, Windows Server
2008 x64 SP1/SP2 & R2, Windows Server 2003 x64 SP2 & R2 SP2, Windows
2000 SP4, Windows XP Professionnel SP2/SP3 & x64 SP2
Pour les systèmes d'exploitation Linux :
o SUSE Linux Enterprise Server 10 SP1/SP2 & 11.
o Red Hat Enterprise Linux 5.2 x64 et versions ultérieures.
o Ubuntu 12.04 LTS et versions ultérieures.
Chapitre 1 Virtualisation
10.5. OpenVZ
OpenVZ est une technologie de virtualisation de niveau système d'exploitation basée sur le
noyau Linux. OpenVZ permet à un serveur physique d'exécuter de multiples instances de
systèmes d'exploitation isolés, connus sous le nom de serveurs privés virtuels (VPS) ou
environnements virtuels (VE).
En comparaison aux machines virtuelles telles que VMware et aux technologies de
paravirtualisation telles que Xen, OpenVZ offre moins de flexibilité dans le choix du système
d'exploitation : le système d'exploitation invité et hôte doivent être de type Linux (bien que les
distributions de Linux peuvent être différentes dans des VEs différents). Cependant, la
virtualisation au niveau OS d'OpenVZ offre une meilleure performance, une meilleure
scalabilité, une meilleure densité, une meilleure gestion de ressource dynamique, et une
meilleure facilité d'administration que ses alternatives. Selon le site Web d'OpenVZ, cette
méthode de virtualisation introduirait une très faible pénalité sur les performances : 1 à 3% de
pertes seulement par rapport à un ordinateur physique.
OpenVZ est la base de Virtuozzo, un produit propriétaire fourni par SWsoft, Inc. OpenVZ est
distribué sous la Licence publique générale GNU version 2. OpenVZ comprend le noyau Linux
et un jeu de commandes utilisateurs.
10.6. LXC
Le noyau de Linux 2.6.24 intègre une prise en charge fondamentale de la conteneurisation pour
assurer une virtualisation au niveau du système d'exploitation et permettre à un même hôte
d'exécuter plusieurs instances Linux isolées, baptisées « conteneurs Linux », ou LXC (LinuX
Containers).
LXC repose sur la notion de groupes de contrôle Linux, les cgroups. Ici, chaque groupe de
contrôle offre aux applications une isolation totale des ressources (notamment processeur,
mémoire et accès E/S), et ce sans recourir à des machines virtuelles à part entière.
Les conteneurs Linux proposent également une isolation complète de leur espace de noms. Les
fonctions telles que les systèmes de fichiers, les ID réseau et les ID utilisateur, ainsi que tout
autre élément généralement associé aux systèmes d'exploitation, peuvent donc être considérés
comme « uniques » du point de vue de chaque conteneur.
déployées de manière dense. Les conteneurs Linux s'exécutent en natif sur leur système
d'exploitation, qu'ils partagent entre eux. Nos applications et services restent ainsi légers et
s'exécutent rapidement en parallèle.
Les conteneurs Linux représentent une nouvelle évolution de la manière dont nous
développons, déployons et gérons des applications. Les images de conteneurs Linux permettent
d'assurer la portabilité et le contrôle des versions des applications. Les développeurs ont ainsi
la garantie que ce qui fonctionne sur leur ordinateur portable fonctionnera aussi dans
l'environnement de production. Un conteneur Linux mobilise moins de ressources qu'une
machine virtuelle. Il propose une interface standard (démarrage, arrêt, variables
d'environnement, etc.), assure l'isolation des applications et peut être géré plus facilement en
tant que module d'une application plus importante (plusieurs conteneurs) (cf. Figure 10).
Une solution de virtualisation établit ainsi une couche de virtualisation entre les serveurs
d’applications et le matériel de stockage existants afin que les applications n’aient plus besoin
de savoir sur quels disques, partitions ou sous-systèmes de stockage résident leurs données.
Dans un contexte d’entreprise, la virtualisation du stockage est généralement mise en œuvre par
blocs. Les données sont alors divisées en blocs de taille égale et une adresse unique est attribuée
à chaque bloc de données. Cette dernière est stockée par le logiciel de virtualisation
(hyperviseur) dans la table de mappage centrale. La table de mappage contient donc toutes les
métadonnées nécessaires pour localiser l’emplacement physique d’un bloc de données. Ce
Chapitre 1 Virtualisation
Avantage :
- 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.
- 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.
Inconvénient :
Le cout est plus élevé qu’un stockage local et il est nécessaire d’avoir des compétences sur le
stockage. Cela nécessite un travail en amont plus important.
Chapitre 1 Virtualisation
1. Le Datastore
L’espace de stockage est vu comme un Datastore. Le Datastore est une représentation virtuelle
des ressources de stockage où sont stockées les machines virtuelles. Il masque la complexité
des différentes technologies et solutions de stockage du marché en proposant au serveur un
modèle uniforme quel que soit le stockage qui est en place.
Inconvénient :
Les tests ont prouvé que c’est le protocole qui utilise le plus les ressources du CPU (jusqu’à
60% de temps CPU en plus que le processus FC dans le cas du iSCI software)
Activité Pratique 1
Etude de cas : Virtualisation
Activité Pratique 1
Etude de cas : Virtualisation
Objectifs :
Contexte générale :
Après avoir étudié théoriquement les principaux concepts liés à la virtualisation ; nous
allons essayer, à travers cette étude, d’étudier et de manipuler quelques outils de virtualisation.
Conditions de réalisation :
Partie 2 (TP) :
Vous devrez réaliser votre TP en choisissant une des études de cas citées ci-dessous :
1. Etude de cas n°01 (manipulation d’un hyperviseur de type2)
Vous êtes un développeur dans une petite entreprise et vous travaillez sur une
application multiplateforme qui sera utilisée en interne uniquement. L’entreprise dispose de
machines Android, Windows et Linux et vous souhaitez tester si votre application fonctionne
correctement dans cet environnement complexe, sachant que pour fonctionner elle doit
pouvoir :
envoyer régulièrement des requêtes aux autres machines ;
récupérer les mises à jour de sa base de données depuis un serveur distant accessible
via une URL.
Travail demandé
Pour réaliser le travail demandé, vous devrez suivre les étapes suivantes :
1. Installation de l’hyperviseur.
2. Création de de la VM : nous allons créer ici 3 VM :
1 VM Ubuntu ;
1 VM Windows 10 ;
1 VM Android.
3. Configuration réseau
Vous allez essayer différents modes de réseau et pour chaque mode vous récupérer
l’adresse IP des MV
- Expliquez le lien entre l’adresse IP et le mode de réseau choisi ?
- Choisissez le mode réseau le plus adapté à votre étude de cas ?
Chapitre 1 Virtualisation
Une petite entreprise de vente en ligne composée de 5 personnes dispose dans son infrastructure
réseau de (cf. Figure 13) :
1 serveur mail ;
1 serveur web pour héberger son site ;
1 NAS pour stocker les fichiers et documents de travail des employés.
Chapitre 1 Virtualisation
Travail demandé
1- Installer ESXi + configuration réseau (cf. Figure 14)
Cloud computing
Sommaire
1. Introduction .................................................................................................................. 37
2. Historique ..................................................................................................................... 37
3. Définition du Cloud Computing .................................................................................... 39
4. Les caractéristiques du Cloud Computing ..................................................................... 40
5. Modèles de services ...................................................................................................... 41
6. Modèles de déploiement du Cloud ................................................................................ 43
7. Les avantages et les inconvénients du Cloud ................................................................. 45
8. Les principaux acteurs du Cloud Computing ................................................................. 46
9. Cloud et la virtualisation ............................................................................................... 47
Activité Pratique 2 ................................................................................................................ 49
Références ............................................................................................................................ 51
1. Introduction
2. Historique
Le concept du Cloud Computing n'est pas vraiment nouveau puisqu'il fut introduit par John
McCarthy dès 1961avec l'idée d'un « système informatique disponible comme un outil public
». Il peut être considéré comme la cinquième évolution des architectures informatique d’après
Microsoft. Cette évolution peut être présentée selon les phases suivantes (cf. Figure 15) :
1- Elle débute en 1980 avec des entreprises de fourniture d’accès aux réseaux de recherche
régionaux aux Etats Unis d’Amérique. Et c'est seulement en 1989 que le premier
fournisseur d'Accès Internet (FAI 1.0) via le réseau téléphonique, est devenu
opérationnel. Ils ne permettent d'offrir qu'un accès limité au réseau Internet via le réseau
téléphonique afin d'assurer le raccordement des personnes où les entreprises ;
2- La seconde phase est l’apparition de la deuxième génération des FAI 2.0 qui permet aux
navigateurs web d'utiliser la messagerie électronique et d'accéder aux serveurs mail ;
3- La troisième génération, le FAI 3.0 a connue l’apparition des centres de colocations qui
permet d’offrir, au navigateur web, la possibilité de télécommuniquer et de se connecter
avec d’autre réseaux Internet, d’accéder aux serveurs de stockage et de traitement, de
sécuriser les ressources physiques et le transfert des données. Il offre aux fournisseurs la
possibilité d’héberger des applications métiers des entreprises ;
4- La quatrième génération, le FAI 4.0. Un fournisseur de service d'applications (FSA)
(appelé aussi fournisseur d'applications en ligne) est une entreprise qui fournit des
logiciels où des services informatiques à ses clients à travers l’internet. Il met en place
des plateformes de génération d’applications à la demande, dont les « Software as a
Service » sont des dérivés (cf. Section 5.1). L’avantage de ce modèle est de fournir un
accès à des applications particulières (comme un programme de facturation médicale) en
utilisant un protocole standard comme le protocole http ;
5- La cinquième génération, le FAI 5.0, permet à un groupe d'utilisateur de partager les
mêmes ressources physiques (sous les modèles Infrastructure-as-a-Service) et logique
(Software-as-a-Service) en même temps et à moindre coût. Les FAI 5.0 fournissent
également un modèle économique, qui permet aux utilisateurs, de payer seulement les
ressources qu'ils utilisent, tel que Google et Salesforce ont lancé le premier site web
public pour les services Cloud en 1999.
Nous avons trouvé plusieurs définitions. Dans ce qui suit, nous présentons quelques citations
relatives à sa définition qui nous paraissent les plus importantes :
Selon Cisco Systems, le leader mondial des technologies réseaux, le Cloud Computing
peut se définir comme suit : « IT resources and services that are abstracted from the
underlying infrastructure and provided “on-demand” and “at scale” in a multitenant
environment ». Autrement dit, le Cloud Computing est une plate-forme de mutualisation
informatique fournissant aux entreprises des services à la demande et à l’échelle avec
l'illusion d'une infinité de ressources.
Selon Gartner, le Cloud est défini comme suit: « Cloud is a style of computing where
scalable and elastic IT-related capabilities are provided as a service to external
customers using Internet technologies». Autrement dit, le Cloud Computing est un type
d’informatique dans lequel des capacités très évolutives sont fournies sous forme de
service à plusieurs clients via les technologies Internet.
A partir de ces quatre définitions, nous constatons que le Cloud Computing est basé sur
la technologie de virtualisation, qui consiste à partager des ressources informatiques
configurables d’un Data Center. A titre d’exemple, les réseaux, les serveurs, stockage de base
de données, puissance de calcul, d'applications, etc. Le Cloud fournit aussi à ses clients des
services à la demande, instantanés et élastiques avec facturation de ce qui a consommé.
4.5.Service mesuré
L'utilisation des ressources peut être surveillée, contrôlée et signalée, offrant une
transparence pour le fournisseur et pour le consommateur du service utilisé. Le Cloud
Computing permet au client de payer à l'usage, uniquement ce qui a été consommé selon le type
de service (stockage, traitement, bande passante et comptes d'utilisateurs actifs, etc.) et le temps
d’utilisation du service.
5. Modèles de services
Le groupe de travail NIST a classé les services Cloud en trois modèles (couches), en fonction
de la nature du service, à savoir logiciel, plateforme où infrastructure (cf. Figure 16).
1
http://appengine.google.com
2 https://azure.microsoft.com/fr-fr/
3
https://aws.amazon.com/fr/ec2/
- Le PaaS : nous pouvons développer et déployer une application ; et
Selon le groupe de travail NIST, les services Cloud peuvent être déployés suivant quatre
modèles, le Cloud privé, public, communautaire et hybride, correspondant à des usages
différents :
Amazon, Google, Microsoft, et Salesforce proposent un Cloud public dans lequel n'importe
quel particulier où n’importe quelle entreprise peut y héberger ses applications, ses services où
ses données.
6.3.Cloud privé
L’infrastructure Cloud est fournie à l’usage exclusif d’une seule organisation. Elle peut être
détenue, gérée et exploitée par l’organisation, un tiers, où une combinaison entre eux. Elle peut
exister au sein des locaux de l’organisation où en dehors de cette dernière. Eucalyptus,
OpenNebula et OpenStack sont des exemples de solution pour la mise en place du Cloud privé.
Donc la principale différence qui réside entre un Cloud public et un Cloud privé, est que les
ressources d’un Cloud privé sont destinées uniquement aux clients autorisés par l'organisation
qui possède les ressources, et elles ne peuvent pas être partagées avec d’autres clients de
l’extérieur, contrairement au Cloud public où les ressources peuvent être partagées par le grand
public.
1- Les Clouds privés internes : dans ce type de Cloud, les applications, les ressources
physiques et virtuelles sont regroupées et gérées au sein de l’infrastructure possédée par
l’organisation.
2- Les Clouds privés externes : dans ce type de Cloud, les ressources sont destinées aux
besoins de l’entreprise, mais elles sont hébergées et déployées chez un fournisseur.
4
https://blog.outscale.com/fr/le-cloud-communautaire-nouveau-modele-en-vogue
monde, la startup a souhaité accompagner les laboratoires du monde entier dans leurs
travaux en créant son application Timaeus.
6.5.Cloud hybride
L’infrastructure d’un Cloud hybride est une composition de deux ou plusieurs infrastructures
Cloud distinctes (privé, communautaire, où public). Celles-ci demeurent des entités uniques,
mais sont liées par des technologies standardisées où propriétaires qui permettent la portabilité
des données et des applications entre les différentes infrastructures Cloud. Par exemple, on
pourra exporter nos applications dans un Cloud public, mais ces applications utiliseront
également des données stockées sur un Cloud privé, où bien procéder à la communication de
deux applications hébergées dans deux Cloud distincts.
7.2.Avantages
Le Cloud Computing offre beaucoup d'avantages et de flexibilité à ses utilisateurs.
L'utilisateur peut opérer n'importe où et à tout moment de manière sécurisée. Vu le nombre
croissant d'appareils compatibles avec le Web qui sont utilisés aujourd’hui (par exemple, les
tablettes, les téléphones intelligents, etc.), l'accès à l'information et aux données doit être rapide
et plus simple. Certains de ces avantages, très pertinents concernent l'utilisation d'un Cloud
peuvent être les suivants :
1- Réduire le coût de gestion et de l’investissement initial : avec le Cloud les entreprises
ne se soucient pas de la gestion des ressources où du personnel nécessaire à la
supervision de leurs plateformes. Le Cloud minimise les risques commerciaux ;
2- Fournir une infrastructure dynamique qui offre des coûts réduits et des services
améliorés avec moins de coûts de développement et de maintenance ;
3- Fournir des services à la demande, flexibles, évolutifs, améliorés et adaptables grâce au
modèle de paiement à l’usage « Pay-as-you-go » ;
4- Fournir une disponibilité et des performances cohérentes avec des charges maximales
provisionnées automatiquement ;
5- Se rétablir rapidement et améliorer les capacités de restauration pour améliorer la
résilience des entreprises ;
6- Fournir une capacité de traitement, de stockage, de réseau illimité, etc. de manière
élastique ;
7- Offrir des mises à jour automatiques de logiciels, compatibilité du format de document
améliorée et compatibilité améliorée entre les différents systèmes d'exploitation ;
8- Offrir une collaboration de groupe facile, c'est-à-dire une flexibilité pour les utilisateurs
à l'échelle mondiale de travailler sur le même projet ; et
9- Offrir un calcul respectueux de l'environnement car il utilise uniquement l'espace
serveur requis par l'application.
Amazon Elastic Compute Cloud5 fournit un environnement informatique virtuel qui permet
à un utilisateur d'exécuter des applications basées sur Linux. L'utilisateur peut, soit créer une
nouvelle image machine Amazon AMI (Amazon Machine Image) contenant les applications,
les bibliothèques, les données et les paramètres de configuration associés, soit sélectionner une
5
https://aws.amazon.com/fr/ec2/
bibliothèque d'AMI disponibles au niveau de la bibliothèque AMIs. L'utilisateur doit ensuite
charger (upload) les AMIs créées où sélectionnées vers Amazon Simple Storage Service (S3)
avant de commencer à démarrer, arrêter et surveiller les instances des AMIs chargées. Amazon
EC2 facture l'utilisateur à partir du moment où l'instance est activée, tandis qu'Amazon S3
facture les frais pour tout transfert de données (upload et download).
Google App Engine6 permet à un utilisateur d'exécuter des applications Web écrites à l'aide
du langage de programmation Python. Outre la prise en charge de la bibliothèque standard
Python, Google App Engine prend également en charge les API (Application Programming
Interfaces) pour les bases de données, les comptes Google, la recherche d'URL, la manipulation
des images et les services de messagerie. Google App Engine fournit également une console
d'administration basée sur le Web permettant à l'utilisateur de gérer facilement ses applications
Web en cours d'exécution. Actuellement, Google App Engine est utilisé gratuitement avec 500
Mo de stockage et environ 5 millions de pages vues par mois.
Microsoft Windows Azure 7 est une Plateforme de développement basée sur un système
d'exploitation Cloud qui permet aux développeurs de créer leurs applications sur la base d'un
ensemble standard tel que REST, SOAP où http. Il s'agit d'une offre d'hébergement
(applications et données) et de services (workflow, stockage et synchronisation des données,
bus de messages, contacts…). Un ensemble d'API permet d'utiliser et d'accéder à cette plate-
forme et également aux services associés. Un environnement d'exécution (le « Live Operating
Environment ») permet une intégration étroite avec les principaux systèmes d'exploitation
existant (Windows, Mac OS et Windows Phone).
Salesforce.com8 : Salesforce est un éditeur de logiciels, basé à San Francisco aux États-
Unis. Il distribue des logiciels de gestion basés sur Internet et héberge des applications
d'entreprises. L'entreprise est surtout connue au niveau international pour ses solutions en
gestion de la relation client en mode SaaS, elle est devenue l'une des pionnières du modèle SaaS
notamment grâce à son outil historique de CRM.
9. Cloud et la virtualisation
Cette fameuse technologie (la virtualisation) fait abstraction des détails physiques du matériel
et fournit une virtualisation des ressources à un niveau applicatif très élevé. La virtualisation
forme la fondation et la base du Cloud Computing, car elle permet la possibilité de mettre en
6
http://appengine.google.com
7
https://azure.microsoft.com/fr-fr/
8
https://www.salesforce.com/
commun des ressources informatiques dans des clusters de serveurs et les attribuer/restituer
dynamiquement dans l’environnement virtuel destiné aux applications.
En résumé, le Cloud s’appuie sur la technologie de virtualisation pour atteindre le but de
fournir les ressources informatiques selon l’utilité de façon dynamique.
Activité Pratique 2
Etude de cas : Cloud Computing
Contexte générale :
Après avoir étudié théoriquement les principaux concepts liés au Cloud ; nous allons
essayer, à travers cette étude, de découvrir et d’essayer pratiquement des Clouds.
Conditions de réalisation :
Durée de réalisation : 4 semaines partie 1 : 1 semaine ; partie 2 : 3 semaine
Exposés pratiques : 2 séances = 6 heures
Travail à réaliser en binôme ou trinôme.
Livrables :
1 rapport théorique de la 1ère partie
1 rapport d’utilisation des services Cloud : il s’agit dans cette activité, d’étudier et de
manipuler réellement des Clouds. On vous propose ci-dessous trois exemples de
Cloud sur le marché. On vous demande de consulter les différents sites indiqués,
essayer des services du cloud :
1. Cas d'amazon (AWS)
2. Cas de Google Cloud
3. Cas de Rackspace 9
9 http://www.rackspace.com/cloud/
Références
1. Bakshi, K. (2009). Cisco cloud computing-data center strategy, architecture, and
solutions point of view white paper for us public sector 1st edition.
2. Benfenatki, H., Da Silva, C. F., Benharkat, A. N., & Ghodous, P. (2014). Cloud-
Based Business Applications Development Methodology. In WETICE Conference
(WETICE), 2014 IEEE 23rd International (pp. 275-280). IEEE.
3. Buyya, R., Yeo, C. S., & Venugopal, S. (2008). Market-oriented cloud computing:
Vision, hype, and reality for delivering it services as computing utilities. In High
Performance Computing and Communications, HPCC'08. 10th IEEE International
Conference on, IEEE, 5-13.
4. Clearley, D. W. (2010). Cloud Computing ‘Key initiative overview’ by Gartner.
5. Eric. M (2011). Virtualisation avec VMware vSphere 4. ISBN:978-2-7460-6079-1,
ISSN: 1767-1590.
6. GRASSA, N. (2014) .Cours Virtualisation et Cloud.
7. Hess, K., & Newman, A. (2010). Virtualisation en pratique. Pearson.
8. M. Vaquero, L., R.Merino, L., Caceres, J., & Lindner, M. (2009). A Break in the
Clouds: Towards a Cloud Definition. ACM SIGCOMM Computer Communication
Review, 39(1), 50-55. Doi: 10.1145/1496091.1496100.
9. M. Vaquero, L., R.Merino, L., Caceres, J., & Lindner, M. (2009). A Break in the
Clouds: Towards a Cloud Definition. ACM SIGCOMM Computer Communication
Review, 39(1), 50-55. Doi: 10.1145/1496091.1496100
10. Mathew, S., & Varia, J. (2014). Overview of amazon web services. Amazon
Whitepapers.
11. Mell, P. M., & Grance, T. (2011). Sp 800-145. The NIST Definition of Cloud
Computing.
12. Miller, M. (2008). Cloud computing: Web-based applications that change the way
you work and collaborate online. Que publishing.
13. Portnoy, M. (2012). Virtualization essentials (Vol. 19). John Wiley & Sons.
14. Rountree, D., & Castrillo, I. (2013). The basics of cloud computing: Understanding
the fundamentals of cloud computing in theory and practice. Newnes.
15. Sajid, M., & Raza, Z. (2013). Cloud computing: Issues & challenges.
In International Conference on Cloud, Big Data and Trust. 20(13), 13-15.
16. Saouli,H. (2015). Découverte de services web via le Cloud Computing à base
d’agents mobiles. doctoral thesis. University of Mohamed Khider, Biskra, Algeria.