Cours
Virtualisation et cloud
3LF TIC (2022-2023)
Plan du cours
Chapitre 1:
Introduction
Chapitre 2:
Virtualisation de systèmes et de réseaux
Chapitre 3:
Infrastructure virtualisée
Chapitre 4:
Cloud Computing
2 Cloud et virtualisation - Mme DERBEL
Chapitre 1
Introduction
Chapitre 1: introduction
Plan du chapitre
1. Rappels: machine physique et système d’exploitation
2. Concept de base de la virtualisation de systèmes
4 Cloud et virtualisation - Mme DERBEL
Rappel: machine physique et
système d’exploitation
Ordinateur, machine physique
Un ordinateur est une machine physique qui permet le traitement de
l’information d’une façon automatique et programmable.
Il contient un ensemble de ressources matérielles permettant
l’exécution des traitements voulus par les utilisateurs.
Parmi les composants principaux d’une machine physique:
Processeur (CPU):
Permet le traitement de l’information
Mémoire (RAM):
Assure le stockage temporaire de l’information lors du traitement
Élément(s) de stockage persistant (Disque ):
Permet le stockage persistant de l’information avant/après traitement
Unité(s) d’entrée/sortie:
Permet le recueil et/ou la visualisation, la communication des
informations.
6 Cloud et virtualisation - Mme DERBEL
Qu’est ce qu’un système d’exploitation
Un ordinateur est constitué
De programmes / applications
D’un système d’exploitation
Du matériel
Le système d'exploitation (SE, en anglais Operating System ou OS)
est un ensemble de programmes responsables de la liaison entre les
ressources matérielles d'un ordinateur (Hardware) et les applications
de l'utilisateur (Software).
7 Cloud et virtualisation - Mme DERBEL
Qu’est ce qu’un système d’exploitation
Rôles d’un système d’exploitation:
Abstraire le matériel pour le programmeur
Cacher la complexité du matériel
Fournir une interface virtuelle de la machine
Protéger
Protection entre utilisateurs (droits d’accès aux fichiers, espaces mémoires des
processus séparés)
Protection du matériel
Partager les ressources
Partage du CPU (ordonnancement des processus)
Accès concurrents à un périphérique
Les systèmes d’exploitation des serveurs sont dédiés:
Faciliter la gestion et l’administration des services réseau
8 Cloud et virtualisation - Mme DERBEL
Qu’est ce qu’un système d’exploitation
Le principal composant d’un système d’exploitation est le noyau.
Le noyau est la partie du système d’exploitation qui communique
directement avec le matériel.
Le noyau un ensemble de gestionnaire d’interruptions, chargés en
mémoire au démarrage du système.
Lorsqu’une application souhaite accéder à une ressource, ou plus généralement
invoquer une fonction du SE, elle procède à un appel système.
Appel système désigne le moment où un programme s'interrompt pour
demander au système d'exploitation d'accomplir pour lui une certaine tâche
9 Cloud et virtualisation - Mme DERBEL
Vers la virtualisation de Systèmes
La virtualisation est l’ensemble techniques logicielles et matérielles
permettant de fournir un ensemble de ressources informatiques utilisables
indépendamment de la plate forme matériel.
Elle consiste à la séparation des parties logicielles et matérielles d’un
ordinateur dans le cas de la virtualisation de système la virtualisation
de systèmes est l’ensemble de techniques permettant de faire tourner
plusieurs systèmes d’exploitation sur une même machine physique.
10 Cloud et virtualisation - Mme DERBEL
Concept de base de la virtualisation
de systèmes
Concept de base de la virtualisation de
système
Architecture traditionnelle Architecture virtualisée
• un système d’exploitation sur une •Ajout d’une couche d’abstraction
machine •Possibilités d’exécuter plusieurs
• Exécution de plusieurs applications OS sur la même machine physique
sur un serveur augmente le risque •Chaque machine virtuelle possède
d’interruption du service global ses propres applications et système
•En général, 1 serveur = 1 application d’exploitation
12 Cloud et virtualisation - Mme DERBEL
Concept de base de la virtualisation de
systèmes
Virtualisation de systèmes:
Il s’agit d’une couche d’abstraction qui découple le système
d'exploitation du matériel afin de délivrer une meilleure utilisation et
flexibilité des ressources de traitement fournies par le matériel.
Le fait d’exécuter plusieurs systèmes d’exploitation, en même temps,
sur une seule machine physique (serveur).
C’est l’hyperviseur (VMM: virtual machine monitor) qui permet de réaliser
cette couche d’abstraction et cohabiter ainsi plusieurs systèmes
d’exploitation invités.
VM
Applications Applications Applications
Applications OS invité OS invité OS invité
Virtualisation
OS OS Hôte / Hyperviseur
de serveur
Serveur physique Serveur physique (Hôte)
13 Cloud et virtualisation - Mme DERBEL
Lexique
Hôte: serveur physique
OS Hôte: système d’exploitation de l’hôte
Hyperviseur: couche logicielle permettant de réaliser l’abstraction du
matériel et gérer les machines virtuelles
OS invité: système d’exploitation exécuté au sein d’une machine
virtuelle
VM : machine virtuelle composée de:
Système d’exploitation invité,
Composants virtuels (CPU, RAM, disque dur, interface réseau, et autres
ressources nécessaires) emballés dans un ensemble de fichiers
Applications (logiciels).
14 Cloud et virtualisation - Mme DERBEL
Principes de la virtualisation de systèmes
Plusieurs VM s’exécutent Chaque VM s’exécute dans un
simultanément sur le même environnement propre isolé des
serveur physique autres VMs (isolation)
Les VMs sont indépendantes du
Une VM est enregistrée dans un
matériel. Ces VMs peuvent
ensemble de fichiers. Pour
s’exécuter sur différents
migrer ou copier une VM il suffit
serveurs sans avoir besoin de
de copier ses fichiers associés
modifications
15 Cloud et virtualisation - Mme DERBEL
Avantages de la virtualisation de systèmes
Consolidation: Optimisation du taux d’utilisation des ressources des
serveurs
Rationalisation: Suppression des serveurs superflus (inutiles)
Concentration: Réduction de l’espace occupé par les serveurs
Conséquences:
La Réduction des coûts:
Augmentation considérable du taux d’utilisation des ressources (atteindre des
taux d’utilisation important du CPU, stockage, etc.) Réduction du nombre de
serveurs physiques utilisés et à maintenir.
Réduction de la consommation de l’énergie due aux fonctionnement des
serveurs et leur conditionnement (climatisation).
Amélioration de la disponibilité des serveurs:
Une plus grande souplesse pour gérer l’évolution des besoins
informatiques.
16 Cloud et virtualisation - Mme DERBEL
Inconvénients de la virtualisation de
systèmes
Point de défaillance unique: une fois le serveur physique en panne,
toutes les VMs dessus sont inaccessibles (dans le cas ou on travaille
sur un seul serveur),
Utilisation de machine physique puissantes,
Complexité accrue da l’analyse des erreurs de fonctionnement et de
la localisation de problème,
Un manque de standardisation implique souvent un problème
d’interopérabilité entre les solutions de virtualisation.
17 Cloud et virtualisation - Mme DERBEL
Domaines de virtualisation
La virtualisation peut toucher plusieurs domaines:
Virtualisation des serveurs (des systèmes d’exploitation):
Faire tourner plusieurs systèmes d’exploitation simultanément sur la
même machine physique.
Virtualisation de réseaux: Couvre plusieurs aspects différents:
Les réseaux virtuels VLAN
Réseau superposé (Overlay Network) et les réseaux définis par logiciels
(Software Defined Network)
Configuration et mise en réseau de machines virtuelles.
Virtualisation de stockage
Création des volumes de stockage logique partageable à partir d’espaces
de stockage physiques (regroupement de disques, stockage réseau).
Virtualisation d’application
Virtualisation de bureau (VDI Virtual Desktop Infrastructure)
Virtualisation de Datacenter
18 Cloud et virtualisation - Mme DERBEL
Chapitre 2
Solutions de la virtualisation de
systèmes
Plan du chapitre
Hyperviseur (couche de virtualisation)
Différentes solutions de virtualisation de systèmes
20 Cloud et virtualisation - Mme DERBEL
Hyperviseur (couche de
virtualisation)
Hyperviseur
Hyperviseur ou gestionnaire de machine virtuelle VMM (VM Monitor)
Couche logicielle permettant de créer, d’exécuter et de gérer des machines
virtuelles indépendantes sur le même serveur physique.
Il est responsable de la gestion des ressources de l’OS invité incluant
son CPU, sa RAM et ses autres ressources dont il a besoin.
En apparence, chaque OS invité a l'exclusivité du CPU, de la RAM et de
toutes les autres ressources de l'hôte.
En réalité, l'hyperviseur contrôle le processeur et les ressources de l'hôte,
en allouant alternativement à chaque OS ce dont il a besoin.
Dans un environnement physique, un OS communique directement
avec le matériel sur lequel il est installé.
Dans un environnement virtualisé, grâce à l’hyperviseur, les opérations
sur le disque dur (lecture/écriture), les appels mémoire et les
commandes CPU se font sans conflit avec un autre OS.
22 Cloud et virtualisation - Mme DERBEL
Types d’hyperviseurs
Il existe deux types d’hyperviseurs:
Hyperviseur de type 1: appelé aussi natif (En: bare metal)
logiciel de virtualisation de systèmes
Installé directement sur une plateforme matérielle.
Hyperviseur de type 2: appelé aussi hébergé (En: hosted)
Logiciel de virtualisation de systèmes
Il s’exécute à l’intérieur d’un autre système d’exploitation.
23 Cloud et virtualisation - Mme DERBEL
Hyperviseur de Type 2 (hébergé ou hosted)
Il s’installe sur un système d’exploitation (d’où le nom type 2) et
recrée un environnement d’exécution complet pour un
programme ou un système invité.
Toutes les opérations de l’invité sont interceptées et traduites
(traduction binaire) pour être exécutées par l’environnement
hôte, ce qui est une méthode très consommatrice de ressources.
Solution destinée à des usages de
test et n’est pas adaptée à des
contextes de production.
24 Cloud et virtualisation - Mme DERBEL
Hyperviseur de Type 1 (natif ou bare metal)
Un hyperviseur de Type 1 est un logiciel qui s’exécute directement sur
une plateforme matérielle.
On peut trouver des hyperviseurs type1 intégrés en tant que modules au
niveau d’un système d’exploitation.
L’hyperviseur de Type 1 ne fait pas de traduction binaire les
performances sont très proches d’un environnement non virtualisé.
Un maximum de ressources peut
être alloué aux machines
virtuelles
Dédié environnement de
production
25 Cloud et virtualisation - Mme DERBEL
Exemples d’hyperviseurs
Vmware vSphere:
Hyperviseur: ESXi
Gestionnaire de hôte: vCenter Server
Mircosoft Windows server:
Hyperviseur: Hyper-V
Gestionnaire de hôte: System Center Virtual Machine Manager
Citrix:
Hyperviseur: Xen
Redhat:
Hyperviseur: KVM, oVirt
Proxmox:
Hyperviseur: Proxmox PVE
Huawei FusionSphere:
Hyperviseur: Xen
26 Cloud et virtualisation - Mme DERBEL
Différentes solutions de
virtualisation de systèmes
(virtualisation de CPU)
Différentes solutions de virtualisation de
systèmes
Un jeu d'instructions est l'ensemble des instructions machines qu'un
processeur d'ordinateur peut exécuter (ex. x86)
Il définit la manière dont un processeur traite et exécute différentes
instructions transmises par l’OS et les programmes logiciels.
Les instructions sont interprétées directement par le processeur.
Cas des instructions critiques, exemple, arrêt système:
Dans le cas de la virtualisation, ces instructions seront-elles transmises
directement au CPU pour exécution, ou doivent-elles avoir un traitement
particulier (ex. traduction)?
Besoin de moyens spécifiques dans le cas de la virtualisation:
virtualisation du CPU
Il existe 3 techniques de virtualisation de CPU:
Virtualisation complète: Virtualisation de CPU basée sur un logiciel
Para-virtualisation: Virtualisation du noyau
Virtualisation matérielle (ou Virtualisation assistée par le matériel):
Virtualisation de CPU assistée par matériel
28 Cloud et virtualisation - Mme DERBEL
Virtualisation complète
Première génération de la virtualisation pour les serveurs x86.
Émulation complète du noyau
Toutes les instructions critiques de l’OS invité sont interceptées et
traduites par l’hyperviseur pour être exécutées.
C’est une méthode très consommatrice de ressources.
Utilisation d’un hyperviseur au dessus de l’OS hôte permettant de faire
tourner des systèmes d’exploitations natifs (non modifiés).
N’empêche pas les applications invitées de s’exécuter nativement.
Avantage:
Le système d'exploitation invité n'a pas conscience d'être virtualisé. Il n'a
donc pas besoin d'être adapté/modifié.
Inconvénient:
Grande complexité et performances limitées
29 Cloud et virtualisation - Mme DERBEL
Para-virtualisation
La para-virtualisation évite d'utiliser un OS hôte complet pour faire la
virtualisation.
A la place, un noyau système léger (hyperviseur type1) est utilisé.
L’hyperviseur ne fait pas de traduction binaire.
Modification des codes binaires des OS invités:
OS invité modifié
Dans ce cas, l’OS invité a conscience d'être virtualisé.
Avantage:
La para-virtualisation permet aux hyperviseurs d'être plus simples et aux
VM d’atteindre un niveau de performance proche du réel.
Pas de traduction des instructions.
Inconvénients:
Les OS invités doivent être modifiés pour s’exécuter dans un
environnement virtualisé
30 Cloud et virtualisation - Mme DERBEL
Virtualisation matérielle
La virtualisation matérielle est une technique de virtualisation qui
permet une virtualisation complète efficace en utilisant les capacités
matérielles, principalement le CPU de l’hôte.
Le support de la virtualisation est intégré aux processeurs: en plus des
autres modes (superviseur et utilisateur), les processeurs qui
supportent la virtualisation matérielle incluent un nouveau mode
d’exécution du processeur:
Mode Extension de Machine Virtuelle (Virtual Machine Extension, VMX).
Ajout de nouvelles d’instructions qui permettent d’entrer et de sortir du
mode d’exécution virtuel.
Intel et AMD ont implanté leurs
technologies de virtualisation
(extension du jeux d'instructions
dédiée à la virtualisation)
AMD-V: AMD Virtualization
Intel VT: Intel Virtualization
Technology
31 Cloud et virtualisation - Mme DERBEL
32 Cloud et virtualisation - Mme DERBEL
Mise en réseau de VM
(Réseau Virtuel)
Virtualisation de réseaux
VM bleue VM rouge Réseau bleu Réseau rouge
Virtualisation
Serveur Réseau
physique physique
Virtualisation de serveur Virtualisation de réseau
Exécuter plusieurs serveurs virtuels sur un Exécuter plusieurs réseaux virtuels sur
serveur physique un réseau physique
Chaque serveur virtuel a l’illusion de Chaque réseau virtuel a l’illusion de
fonctionner en tant que serveur physique fonctionner comme un réseau physique
34 Cloud et virtualisation - Mme DERBEL
Virtualisation de réseaux
Un réseau virtuel est constitué d'une ou plusieurs VM configurées pour
accéder aux ressources réseau locales ou externes. Ce type de réseau
est configuré pour utiliser ou pas une carte réseau physique.
C’est différent du réseau physique qui connecte les hôtes.
Des liaisons Ethernet virtuelles permettent à des VM de communiquer
entre elles (sans qu'il soit nécessaire de leur affecter du matériel
physique).
Les cartes réseaux virtuelles sont émulés, gérés, configurés et contrôlés
par l’hyperviseur et reliés à des switch virtuels qui à leur tour peuvent être
reliés aux interfaces réseaux physiques
Un Switch virtuel fonctionne de manière similaire à un commutateur
physique
Le Switch virtuel est relié à une ou des cartes réseau physiques associées
au serveur hôte pour connecter le réseau virtuel au réseau physique.
35 Cloud et virtualisation - Mme DERBEL
.
Aperçu de la virtualisation des réseaux
Machines Hôte 1 Hôte 2
Virtuelles
VM 1 VM 2 VM 3 VM 1 VM 2 VM 3
Réseau
Cartes réseau Virtuel
virtuelles
Switch
Virtuel
Hyperviseur Hyperviseur
Serveur
Physique
Cartes réseau Réseau
physiques Physique
Switch
Physique
36 Cloud et virtualisation - Mme DERBEL
Réseau entre VM et hyperviseur
Les applications dans une VM communiquent
avec le monde extérieur à travers la carte
réseau virtuelle de la VM.
L’hyperviseur est le gestionnaire du trafic
réseau en entrée ou en sortie de chaque VM.
L’émulateur réseau reçoit les requêtes réseau
venant des VMs depuis leurs cartes réseau
virtuelles.
Les requêtes sont envoyées ainsi à la carte
réseau physique de l’hôte.
Les réponses suivent le chemin inverse.
37 Cloud et virtualisation - Mme DERBEL
Switch Virtuel
Fonctionne de manière similaire qu’un Switch Ethernet physique:
Permet aux VMs connectées à ses ports (virtuels) de communiquer
ensemble et former un réseau (virtuel).
Supporte la notion des VLANs.
Il est créé et géré au niveau de l’hyperviseur.
Il peut être connecté (à travers ses ports virtuels) à une ou plusieurs
cartes réseau physiques de l’hôte:
Cela permet de connecter le réseau virtuel (les VMs) au réseau physique.
Cela permet aussi de connecter ensemble les réseaux virtuels (les VMs)
hébergés sur des hôtes différents.
Les Switchs virtuels permettent de réaliser les cas de figure suivants:
Communications des VMs d’un même hôte ensemble.
Communications des VMs d’un hôte avec des VMs sur d’autres hôtes.
Communications des VMs avec l’extérieur.
On peut créer plusieurs Switch virtuel sur le même hôte.
38 Cloud et virtualisation - Mme DERBEL
Réseau de VMs dans un hyperviseur
Plusieurs Switchs virtuels VM1 VM2
peuvent être créés sur le
même hôte.
Un Switch virtuel interne
permet de connecter des VMs
du même hôte.
Utile pour isoler une VM (VM2)
Permet de garder un trafic
interne (entre VM1 et VM2) à
l’intérieur d’un hôte,
Trafic interne plus rapide,
Trafic non visible par les outils
d’analyse réseau ordinaire.
Un Switch virtuel externe sert à
connecter les VMs avec l’extérieur
aussi.
39 Cloud et virtualisation - Mme DERBEL
Chapitre 3
Infrastructure virtualisée
Architectures de stockage
DAS, NAS, SAN
Architectures de stockage
Différentes architectures de stockage
Stockage local
DAS: Direct Attached Storage
Stockage Réseau
NAS: Network Attached Storage
SAN: Storage Area Network
42 Cloud et virtualisation - Mme DERBEL
DAS: Direct Attached Storage
Comme son nom l’indique,
au niveau du DAS, la baie Réseau
Serveur 1 Host Bus Adapter
de disque est directement LAN
DB
connectée au serveur. DAS #1
Il est impossible de relier un
Serveur 2
disque à plusieurs machines FTP
simultanément.
DAS #2
L’espace libre sur les
disques de chaque serveur Serveur 3
AD
ne peut pas être redistribuée
Client
entre les serveurs DAS #3
allocation d’espace disque
Serveur N
non optimisée
DAS #N
43 Cloud et virtualisation - Mme DERBEL
Solution au DAS
Solution aux problèmes du DAS: Simplifier la gestion du stockage en
séparant les données et le serveurs.
Notion de stockage réseau (NAS et SAN)
Serveur 1 Serveur 1
Serveur 2 Serveur 2
Serveur 3 Serveur 3
Serveur 4 Serveur 4
44 Cloud et virtualisation - Mme DERBEL
NAS: Network Attached Storage
NAS: Serveur de stockage directement attaché au réseau IP fournissant
un service de partage de fichiers aux clients et aux serveurs d’un
environnement hétérogène
NAS: Serveur spécifique (Redondance de nombreux composants de ce
serveur) avec un OS spécifique
Les stations de travail et les serveurs accèdent généralement aux NAS via
un protocole réseau tel que TCP/IP et des applications telles que Network
File System (NFS) , Common Internet File System (CIFS) , etc.
Transfert en mode fichier
Serveur 1 LAN public
Serveur 2
NAS
Client
45 Cloud et virtualisation - Mme DERBEL
SAN : Storage Area Network
Les disques durs ne sont pas reliés directement aux serveurs
cependant les baies de stockage sont directement accessibles.
Chaque serveur voit l’espace disque d’une baie auquel il a accès
comme son propre disque dur.
mutualisation des ressources de stockage
Idéale pour des applications ayant besoin de performances disques
ou de grosses capacités de stockage (Sauvegarde, SGBD,
Virtualisation…)
Transfert en mode bloc
Réseau de stockage
Serveur 1 (haute performance)
LAN
SAN
Serveur 2
Client
46 Cloud et virtualisation - Mme DERBEL
Comparison entre les solutions de stockage
Le NAS fait référence à un périphérique précis, relié au LAN et
potentiellement accessible par tous les usagers du réseau.
Le SAN fait référence à un réseau de données à part entière, en
parallèle du LAN
47 Cloud et virtualisation - Mme DERBEL
Stockage des VM et
migration à chaud des VM
Stockage de VM dans un environnement
virtualisé
Le stockage des données dans un environnement virtualisé peut
être:
Local: dans les disques durs des hôtes.
Partagé: dans les disques durs des serveurs dédiés pour le stockage des
données et qui sont partagés sur le réseau.
Généralement
Le stockage local peut être utilisé pour enregistrer les copies et les
images de VMs.
Le stockage partagé doit être utilisé pour assurer ces services: la
migration de VM, la haute disponibilité et la tolérance au pannes.
49 Cloud et virtualisation - Mme DERBEL
Stockage de VM dans un environnement
virtualisé
On utilise un SAN dans un environnement virtuel généralement pour
enregistrer les VM (une VM est un ensemble de fichiers stockés sur un
périphérique de stockage).
l’utilisation de l’architecture SAN et le regroupement de serveurs facilite le
déplacement des VMs.
50 Cloud et virtualisation - Mme DERBEL
Regroupement de serveur
Généralement, la migration de VM doit être faite entre nœuds
partageant certaines caractéristiques:
Gestion et supervision commune, espace de stockage partagé ou distribué,
Infrastructure réseau dédiée pour éviter les latences.
Ces nœuds doivent être préconfigurés à l’avance pour pouvoir offrir de
tel services.
La mise en groupe de ces nœuds s’appelle clustering, et le résultat est
un cluster (grappe de serveur).
Une fois configuré, les services de haute disponibilité peuvent être activés.
Cela permet l’automatisation de la migration des VMs selon des règles et
des politiques configurables,
La décision de migration devient automatique et motivée par:
Répartition de charge entre nœud pour optimiser de la consommation
énergétique.
Assurer la continuité de service en cas de panne d’un nœud physique.
51 Cloud et virtualisation - Mme DERBEL
Migration de VM: principe
La migration de VM est le processus de déplacement d’une VM dans
son état d’un hôte physique vers un autre.
Si elle est en cours d’exécution, cela doit être avec transparence, sans
déconnexion du client ou de l’application exécutée.
L’état d’une VM en cours d’exécution inclut l’état de:
La mémoire (volatile et non-volatile), le(s) CPU virtuel, le stockage, et
périphériques connectés et la connectivité réseau.
Raisons:
Panne, maintenance ou mise à jour de l’hôte d’origine,
Surcharge de l’hôte d’origine: limites atteintes de ses capacités,
Équilibrage des charges entre hôtes,
Optimisation de la consommation de l’énergie.
Il existe 2 stratégies de migration:
Migration à froid,
Migration à chaud (live migration).
52 Cloud et virtualisation - Mme DERBEL
Migration à chaud
La VM est déplacée en cours de son exécution en temps réel:
L’état de la mémoire, du stockage et de la connectivité réseau sont
transférés de l’hôte source vers l’hôte destination.
La VM n’est pas éteinte ni mise en pause, elle doit continuer à fournir ses
services sans interruption.
La tâche la plus difficile dans ce type de processus est la copie de la
mémoire alors que la VM est en cours d’exécution:
L’état de la mémoire est variable tant que la VM fonctionne.
Généralement, avant de pouvoir migrer à chaud une VM d’un hôte
vers l’autre il faut que celle-ci soit stockée dans un espace de
stockage partagé entre ces deux hôtes tel qu’un SAN
Principaux raisons de la migration à chaud (dynamique) des VM:
Assurer la haute disponibilité (HA)
Assurer l’équilibrage de charges (Load balancing)
Etc.
53 Cloud et virtualisation - Mme DERBEL
Migration à chaud de VM
Migration à chaud d’une VM entre deux hôtes partageant le même
espace de stockage et appartenant au même cluster.
Cette migration s'effectue en 3 étapes :
-recherche d'un hôte de
cible
-réserver un conteneur sur
l'hôte distant en lui envoyant
une requête de réservation
VM en cours en y indiquant les ressources
d’exécution sur l’hôte nécessaires à la machine
virtuelle
source
Copie de la mémoire:
Les données relatives à la
VM qui sont enregistrées au
niveau de la mémoire sont
transférées à travers le
réseau de l’hôte source à
l’hôte cible.
VM en cours
Basculement automatique
d’exécution sur l’hôte de serveur
cible
54 Cloud et virtualisation - Mme DERBEL
Exemple d’infrastructure virtualisée
55 Cloud et virtualisation - Mme DERBEL
Chapitre 4
Cloud
Computing
Chapitre 4
Le concept du Cloud Computing
1) Définition
2) Modèles de service Cloud
3) Modèles de déploiement Cloud
57 Cloud et virtualisation - Mme DERBEL
le Cloud, il est où?
Le Cloud n’est qu’une couche logicielle supplémentaire au-dessus de la
virtualisation et qui a permis :
L’automatisation de l’utilisation à la demande des services de la virtualisation
(création de VM, gestion de VM, déploiement, etc.) à travers le réseau
(internet),
Le déploiement rapide de VMs et des applications développées,
La mise en œuvre de nouveau paradigme de développement et de
déploiement d’applications dans des environnements cloud,
La supervision et le suivi de l’utilisation de ces services par les utilisateurs,
La mesure et la facturation des services consommés (abonnements
périodiques ou selon le temps d’utilisation),
La location de ressources informatiques au lieu de les acquérir,
La mutualisation des infrastructures informatiques pour des entreprises
différentes.
Ainsi, le Cloud est devenu un concept de mise en œuvre d’un système
d’information d’entreprise.
58 Cloud et virtualisation - Mme DERBEL
1) Cloud Computing CC: Définition
Cloud: nuage, c’est le terme qui représente Internet
Computing: calcul, pour faire référence à la puissance de calcul,
autrement dit, de traitement qu’on peut avoir.
Définition selon Gartner :
CC is a style of computing in which scalable and elastic IT-enabled capabilities
are delivered as a service using internet technologies.
C’est un « style » de calcul dans lequel des capacités informatiques évolutives
et élastiques sont fournies en tant que service à l'aide d’Internet.
Définition selon NIST (National Institute of Standards and Technology):
CC is a model for enabling convenient, on-demand network access to a
shared pool of configurable computing resources that can be rapidly
provisioned and released with minimal management effort or service provider
interaction.
C'est un modèle permettant un accès réseau pratique et à la demande à un
pool partagé de ressources informatiques configurables qui peuvent être
rapidement provisionnés et libérés avec un effort de gestion ou une interaction
avec le fournisseur de services minimal.
59 Cloud et virtualisation - Mme DERBEL
Caractéristiques du CC (selon NIST)
Cinq caractéristiques essentielles
1. Libre Service à la demande (On-demand self-service)
2. Large accès au réseau (Broad network access)
3. Mutualisation des ressources (Resource pooling)
4. Élasticité rapide (Rapid elasticity)
5. Service mesuré /payé selon la consommation (Measured service/
Pay per use)
Les solutions cloud reposent principalement sur des technologies de
virtualisation et d’automatisation.
Trois caractéristiques clés du Cloud le différencient de l’informatique
traditionnelle :
Mutualisation et allocation dynamique de capacité (adaptation élastique aux
variations de charge).
Services à la place de produits technologiques avec mise à jour en continu
et automatique.
Self-service et paiement à l’usage (en fonction de ce que l’on consomme).
60 Cloud et virtualisation - Mme DERBEL
Avantages
Il existe plusieurs avantages de passer au concept Cloud, parmi
lesquels, 3 avantages particuliers séduisent les entreprises:
1) Rapidité de déploiement :
Au besoin de ressources informatiques, il faut acquérir, installer et configurer
toutes les pièces nécessaires délai trop long.
Avec une solution cloud, l'équipement fonctionne déjà chez le CP et on peut
commencer à utiliser le service en un temps record (~ quelques minutes).
2) Pas de coûts initiaux importants:
Au lieu d’investir des sommes énormes pour l’achat (et la maintenance)
d’équipements informatiques nécessaires au démarrage de son activité,
l’entreprise ne dépense que ce qu’elle consomme dans le Cloud.
3) Extensibilité rapide
Quand les limites des ressources louées sont atteintes, l’augmentation de
capacité est réalisée immédiatement à la demande en profitant de la
disponibilité des ressources d’un CP.
61 Cloud et virtualisation - Mme DERBEL
2) Modèles de service Cloud
Un modèle de service Cloud est un ensemble de services
informatiques offerts par un fournisseur.
Un CP est responsable de la fourniture des ressources requises au
fonctionnement des services offerts à un consommateur Cloud dans
le cadre d'un contrat de service prédéfini et convenu d'un commun
accord appelé SLA (Service Level Agreement).
NIST définie 3 modèles de service Cloud:
IaaS: Infrastructure as a Service
IaaS désigne la mise à disposition de ressources matérielles (puissance de
calcul, espace de stockage) sous forme de serveurs “virtualisés” avec des
capacités évolutives.
PaaS: Platform as a Service
Il s’agit d’offrir des ressources machines et de l’espace de stockage, mais une
plateforme d’exécution pour un logiciel.
SaaS: Software as a Service
C’est l’application qui est mise à disposition de l’utilisateur final.
62 Cloud et virtualisation - Mme DERBEL
Répartition des responsabilités suivant les
modèles de services
63 Cloud et virtualisation - Mme DERBEL
Autres modèles dérivés du SaaS
Database as a Service DBaaS:
C’est une forme spécifique du SaaS spécialisée dans la fourniture
d’opérations liées aux bases de données.
Permet au CP de fournir les fonctionnalités des bases de données à
des consommateurs multiples.
Des services mutuels supplémentaires peuvent être inclus:
Élasticité, multi-tenance sécurisée, protection contre les attaques,
sauvegarde, etc.
Communication as a Service CaaS:
Des services de communications sont fournis sous forme de SaaS:
Voix sur IP, vidéoconférence, messagerie instantanée, etc.
Anything as a Service XaaS:
En combinant tous les modèles, tous peut être fournit sous forme de
service IT à travers le Cloud.
64 Cloud et virtualisation - Mme DERBEL
Responsabilité
L’existence de différents modèles de services dans le Cloud implique
des niveaux de responsabilité différents pour chaque modèle.
La responsabilité peut être divisée sur les différentes parties:
Consommateur du service Cloud: selon le modèle, il peut être l’utilisateur
final (SaaS), le développeur/intégrateur (PaaS), l’administrateur (IaaS).
Fournisseur du service Cloud: celui qui vend/loue le service au
consommateur
Fournisseur de l’infrastructure Cloud: celui qui héberge le service Cloud dans
son infrastructure.
65 Cloud Computing - Mme DERBEL
3) Modèle de déploiement Cloud
Afin de mettre en œuvre les valeurs des modèles de services Cloud et
pour permettre aux utilisateurs d’en profiter, un modèle de déploiement
Cloud doit être choisi.
Le choix du modèle peut largement impacter une organisation ainsi que
son métier.
C’est pour cela qu’une grande attention et une planification minutieuse
doivent être considérées lors de l’implémentation d’un déploiement
Cloud dans une entreprise.
Une étude préalable doit être faite pour évaluer l’impact et les bénéfices
de ce changement sur un système d’information existant.
Officiellement selon NIST, il existe 3 types de déploiement Cloud:
Cloud privé,
Cloud public,
Cloud hybride.
66 Cloud et virtualisation - Mme DERBEL
Cloud privé
Un cloud privé est un modèle de déploiement Cloud où l’infrastructure
matérielle est possédée par une seule organisation.
L’accès au service Cloud est restreint aux membres de l’organisation et,
le cas échéant, ses partenaires.
La maintenance de l’infrastructure ainsi que des services Cloud est
assuré par l’organisation, à travers une équipe locale interne ou une
entreprise spécialisée sous-traitante.
Dans un cloud privé, l’organisation propriétaire est le fournisseur et
consommateur du cloud en même temps.
Elle assure l’entière responsabilité de bout en bout sur tous les niveaux.
Elle a le contrôle totale sur toutes les ressources.
La mise en œuvre d’un cloud privé est souvent motivé par le besoin de
maintenir le contrôle totale pour des raisons légales ou sécuritaire:
Exemple: les banques ont des contraintes de confidentialité qui les
interdisent d’externaliser les données.
67 Cloud et virtualisation - Mme DERBEL
Cloud public
Un cloud public est une énorme infrastructure de ressources
informatiques possédée par une organisation CP et dont l’utilisation est
destinée à des consommateurs externes via le réseau Internet.
L’accès au cloud public est destiné à tous:
Des particuliers (grand public).
Des entreprises, des organisations, etc.
Le consommateur a juste besoin d’un terminal (PC, Téléphone,
Tablette, etc.) et d’un accès Internet.
La maintenance d’infrastructure physique est la responsabilité du CP
mais la responsabilité des services Cloud dépend du modèle utilisé et
du contrat SLA entre les entités impliquées.
Les consommateurs sont facturés selon 2 modèles:
Abonnement mensuel,
Facturation à l’utilisation (par heure).
Exemple de grand fournisseurs: Amazon, Google, Microsoft, IBM, OVH.
68 Cloud et virtualisation - Mme DERBEL
Cloud public (suite)
Avantages:
Plus d’élasticité et d’évolutivité par rapport au cloud privé:
Grandes capacités des fournisseurs CP permettant d’avoir des ressources
« infinies »,
Plus besoin d’un grand coût d’investissement initial dans le matériel,
Pas de gestion et de maintenance matériels,
Consommation à l’utilisation
Inconvénients:
Dépendance exclusive à internet et forte à ses services comme DNS,
Une rupture de contrat avec le CP peut provoquer une coupure
immédiate des services,
Délocalisation des données sensibles (sécurité, etc)
Risques de perte de contrôle,
Manque de confiance dans les CPs.
69 Cloud et virtualisation - Mme DERBEL
Cloud hybride
Un cloud hybride est un modèle qui combine le cloud privé et public
pour assurer le fonctionnement d’une même organisation.
Une organisation peut :
Posséder un cloud privé pour exécuter des applications spécifiques pour des
raisons de sécurité,
Utiliser les services d’un cloud public pour héberger d’autres applications,
fichiers et bases de données non critiques.
Ce modèle permet de:
Profiter des avantages d’évolutivité et de rentabilité du cloud public,
Éviter d’exposer des données critiques et sensibles à un tier (CP).
70 Cloud et virtualisation - Mme DERBEL
Plateformes d’orchestration
Un cloud est basé sur les technologies de virtualisation des systèmes
d’exploitation, de stockage et de réseau.
Les demandes de création des ressources virtuelles ne cesse
d’augmenter et implique:
Gestion lourde des cycles de vie de ces ressources,
Gestion des accès distants à ces ressources,
Besoin de mesurer l’utilisation de ces ressources en vue de facturation.
Les plateformes d’orchestration fournissent l’automatisation de ces
demandes et de la gestion d’un environnement cloud:
Gestion de VM et des services cloud à travers un navigateur web: création
des VM et services, lancement, arrêt, déploiement, intégration, etc.
Gestion des accès aux ressources créées: identification des utilisateurs et
attribution d’autorisations,
Tableau de bord (Dashboard): Supervision des services consommés et suivi
de la consommation en temps réel.
Facilité et rapidité du déploiement des services et applications
71 Cloud et virtualisation - Mme DERBEL
Chapitre 5
Conteneurisation: virtualisation
d’application
1. Principe de conteneurisation
2. Image de conteneur
3. Conteneurs Docker
72 Cloud et virtualisation - Mme DERBEL
Principe de la conteneurisation
Conteneurisation
VM1 VM2
La virtualisation d’OS permet d’avoir une
App App
VM complète:
OS invité 1 OS invité 2
Très bénéfique pour plusieurs utilisations.
Apps
Mais, présente certains inconvénients: Hyperviseur
Consommation de ressources et Hyperviseur
OS hôte
affaiblissement de performances,
Hôte
Couche d’OS complète inutile pour
certaines circonstances. Virtualisation d’OS
Souvent, on a besoin seulement de
l’application qui va tourner sur une VM: App1 App2
L’application a besoin de certains modules Isolateur Isolateur
Apps
de l’OS (bin et lib) et non pas d’un OS. Conteneur Conteneur
Un conteneur permet de fournir les OS hôte
modules nécessaires à l’exécution d’une
Hôte
application dans un environnement isolé.
Virtualisation d’App
74 Cloud et virtualisation - Mme DERBEL
Conteneurisation
75 Cloud et virtualisation - Mme DERBEL
Conteneur (container)
Un conteneur est une partie logique servant à isoler les applications sur un même
serveur. Plutôt que de répliquer entièrement un système d'exploitation pour chaque
application, comme dans une VM, les conteneurs permettent aux applications
d'un serveur de partager le même noyau du système d'exploitation. Ce système
d'exploitation partagé est appelé OS hôte.
Un conteneur est une encapsulation des composants nécessaires à l’exécution
d’une application (micro-service) au dessus du noyau de l’OS hôte.
Les composants nécessaires incluent entre autres:
Fichiers binaires exécutables (binary files),
Bibliothèques (librairies), outils système (system tools), dépendances à d’autres
applications,
Fichiers de configuration d’environnement (réseau, etc.) et d’exécution (path)
Un conteneur s'appuie sur le noyau, mais le noyau ne fournit pas toutes
les API et tous les services dont une application a besoin pour s'exécuter:
La plupart d'entre eux sont fournis par des fichiers système (bibliothèques) qui
s'exécutent au-dessus du noyau en mode utilisateur.
76 Cloud et virtualisation - Mme DERBEL
Conteneur (suite)
Le conteneur permet de créer un environnement léger et isolé sans
influence:
sur l’OS hôte et ainsi que ses applications,
ni sur d’autres conteneurs hébergés sur le même OS hôte.
Le conteneur peut être déplacé d’un hôte vers un autre sans affecter
les fonctionnalités de l’application qu’il encapsule:
Migration facile et légère du conteneur grâce à l’absence de la couche
OS.
Toute modification n'affecte que le conteneur et est ignorée lorsqu'il
est supprimé.
Une fois supprimé, toute donnée manipulée au sein du conteneur sera
perdue.
Pour enregistrer des données, le conteneur peut monter un stockage
persistant (disque) ou un partage/envoi de fichiers à travers le réseau.
77 Cloud et virtualisation - Mme DERBEL
Image de conteneur
Image de conteneur
Les conteneurs sont créés à partir d’image de conteneur.
Une image de conteneur est un ensemble de fichiers statiques non
modifiables organisés en une pile de couches qui réside sur un hôte
local ou dans un registre de conteneurs distant.
L'image du conteneur se compose :
des fichiers de l’OS cible en mode utilisateur nécessaires pour prendre en
charge une application,
de tous les environnements d'exécution ou dépendances de l’application, et
de tout autre fichier de configuration divers dont l’application a besoin pour
s'exécuter correctement.
L’image peut être vu comme un modèle de conteneur à instancier.
Un conteneur est en quelque sorte une instance d’image en cours
d’exécution.
Si une image est supprimée, tous les conteneurs dépendants d’elle le seront
aussi.
79 Cloud et virtualisation - Mme DERBEL
Image de conteneur: exemple
Si on veut déployer une application web dans un
serveur LAMP (Linux Apache MySQL PHP) sous
forme d’un conteneur, l’image à instancier doit
contenir:
Une couche des fichiers systèmes et librairies de l’OS
cible (ex. Ubuntu) nécessaires à l’exécution de Apache,
MySQL et PHP.
Une couche Apache pour démarrer le serveur Web avec
les fichiers de configuration
Une couche MySQL qui contiendra le système de
gestion de bases de données MySQL
Une couche PHP contenant un interpréteur PHP avec
bibliothèques requises.
Il suffit donc de:
Télécharger une image qui contient ces couches,
Instancier un conteneur (avec un moteur de conteneur)
à partir de cette image, et
Développer/Déployer l’application voulue dans le
conteneur créé.
80 Cloud et virtualisation - Mme DERBEL
Conteneur Docker
Environnement d’exécution de conteneur
La création et l’exécution des conteneurs requièrent un logiciel
spécifique appelé environnement d’exécution de conteneur (Container
runtime):
Comme JRE (Java Runtime Environment) pour les applications Java.
C’est l’équivalent de l’hyperviseur dans la virtualisation de systèmes.
C’est le responsable de la création d’environnement isolé pour
l’exécution d’application et donc faire fonctionner le conteneur.
C’est lui qui communique avec le noyau de l’OS hôte pour :
Charger une image de conteneur (décompression et chargement),
Gérer le cycle de vie du conteneur.
Appliquer les politiques d’accès et de sécurité pour l’exécution de conteneur.
runC environnement d’exécution de Docker: basé sur LXC avec de
nouvelles fonctionnalités qui facilitent la création d’image et la mobilité
des conteneurs entre hôtes.
82 Cloud et virtualisation - Mme DERBEL
Moteur de conteneur
Un moteur de conteneur (Container engine) est une couche logicielle
haut niveau qui se base sur un runtime pour l’utilisation des
conteneurs.
Les moteurs de conteneurs permettent généralement de:
Gérer les entrées des utilisateurs,
Gérer les entrées via les API (pour être utilisé par d’autres logiciels),
Extraire l'image du conteneur d'un serveur de registre,
Utilisez le pilote graphique pour décompresser et étendre les images de
conteneur sur le disque
Préparer les points de montage pour les conteneurs, généralement en
utilisant le stockage copy-on-write (COW).
Préparer les données nécessaires à transmettre au runtime pour lancer le
conteneur correctement.
Appeler le runtime du conteneur.
Exemple: Docker (projet containerd) et LXD (basé sur LXC).
83 Cloud et virtualisation - Mme DERBEL
Cas du docker
Architecture du moteur Docker
Le client Docker prend les commandes et envoie ces commandes au
démon via l'API. Le démon Docker est responsable de
l'implémentation de ces commandes à l'aide
des bibliothèques containerd et runc.
84 Cloud et virtualisation - Mme DERBEL
Cas du docker
85 Cloud et virtualisation - Mme DERBEL
Analogie avec la programmation
Docker program
mation
Texte dockerfile Code
source source
modèle image exécutable
instance Conteneur Objet
instancié
86 Cloud et virtualisation - Mme DERBEL
Image de conteneur (cas du docker)
87 Cloud et virtualisation - Mme DERBEL