Cours Virualisation
Cours Virualisation
Réalisé par
Octobre 2024
1 Introduction
2 Domaines d’application
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Ali KOTTI
2 / 37 2 / 37
Introduction Domaines d’application
. .. .. .. .. .. . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .
Introduction
Introduction
1 Introduction
• Comprendre les principes et les enjeux de la virtualisation
• Etre capable de déployer une solution de virtualisation
• Découvrir les techniques et outils réalisés pour la virtualisation
amenant au déploiement de plateformes facilitant l’intégration
et l’administration de services
2 Savoir de références étudiés
• Type de virtualisation (serveur, application, réseau)
• Outil de virtualisation (hyperviseur, conteneurs,...)
• Architecture virtualisé
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Ali KOTTI
3 / 37 3 / 37
Introduction Domaines d’application
. .. .. .. .. .. . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .
Introduction
→
• plusieurs coeurs travaillant en parallèle
• Problème:
. . . . . . . . . . . . . . . . . . . .
échange d’informations . . entre
. . . . .les
. . coeurs
. . . . . . . . . . .
Ali KOTTI
4 / 37 4 / 37
Introduction Domaines d’application
. .. .. .. .. .. . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .
Avantages de la virtualisation
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Ali KOTTI
5 / 37 5 / 37
Introduction Domaines d’application
. .. .. .. .. .. . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .
Fonctionnement de la virtualisation
• C est qu au lieu d avoir un serveur avec un système d
exploitation faisant tourner une ou plusieurs application(s), on
préférera mutualiser plusieurs serveurs virtuels depuis un
serveur physique grâce à un logiciel nommé l hyperviseur. L
hyperviseur permet d émuler intégralement les différentes
ressources matérielles d’un serveur physique (tels que l’unité
centrale, le CPU, la RAM, le disque dur, carte réseau etc ...),
et permet à des machines virtuelles de les partager.
• Ainsi ces machines virtuelles nommées aussi VM (Virtual
Machine) bénéficieront de ressources matérielles selon leurs
besoins (par exemple plus de puissance processeur et plus de
mémoire vive mais avec moins d espace disque). L’avantage
c’est qu’il est possible de modifier les ressources physiques de
ces VMs en quelques clics. De plus elles possèdent leur propre
système d exploitation ainsi que leurs propres applications.
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Ali KOTTI
6 / 37 6 / 37
Introduction Domaines d’application
. .. .. .. .. .. . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Ali KOTTI
7 / 37 7 / 37
Introduction Domaines d’application
. .. .. .. .. .. . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .
1 Introduction
2 Domaines d’application
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Ali KOTTI
8 / 37 8 / 37
Introduction Domaines d’application
. .. .. .. .. .. . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .
Ali KOTTI
9 / 37 9 / 37
Introduction Domaines d’application
. .. .. .. .. .. . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .
Hyperviseur
• Un hyperviseur est un logiciel qui crée et exécute des
machines virtuelles. Également appelé moniteur de machine
virtuelle, l’hyperviseur isole le système d’exploitation et les
ressources des machines virtuelles, dont il permet la création
et la gestion.
• Lorsqu’il est utilisé en tant qu’hyperviseur, le matériel
physique est appelé hôte, tandis que toutes les machines
virtuelles qui utilisent ses ressources sont appelées invités.
• L’hyperviseur traite les ressources (processeur, mémoire,
stockage) sous la forme d’un pool qu’il est facile de réallouer
entre les invités existants et les nouvelles machines virtuelles.
• L’hyperviseur distribue à chaque machine virtuelle les
ressources qui ont été allouées et gère la planification des
ressources des machines virtuelles en fonction des ressources
physiques. . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Ali KOTTI
10 / 37 10 / 37
Introduction Domaines d’application
. .. .. .. .. .. . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .
Hyperviseur
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Ali KOTTI
11 / 37 11 / 37
Introduction Domaines d’application
. .. .. .. .. .. . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .
Hyperviseur
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Ali KOTTI
12 / 37 12 / 37
Introduction Domaines d’application
. .. .. .. .. .. . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .
Hyperviseur
Ali KOTTI
13 / 37 13 / 37
Introduction Domaines d’application
. .. .. .. .. .. . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .
Types de virtualisation
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Ali KOTTI
14 / 37 14 / 37
Introduction Domaines d’application
. .. .. .. .. .. . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .
Virtualisation complète
caractéristiques
• Dans la virtualisation complète, l hyperviseur intercepte de
manière transparente tous les appels que le système d
exploitation peut faire aux ressources matérielles, et supporte
donc des systèmes invités non modifiés.
• Au sens strict, le terme machines virtuelles désigne les
systèmes virtuels exécutés via des technologies de
virtualisation dites complète ou encore native.
• Virtualise et/ou émule le matériel
• Peut être vu comme un émulateur avec un accès direct au
proc., la mémoire, le système de fichiers
• Performance réduite si le proc. est émulé
• Bonne étanchéité entre les OS invités
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Ali KOTTI
15 / 37 15 / 37
Introduction Domaines d’application
. .. .. .. .. .. . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .
Virtualisation complète
Exemples
• Oracle VirtualBox
• VMware Workstation
• QEMU
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Ali KOTTI
16 / 37 16 / 37
Introduction Domaines d’application
. .. .. .. .. .. . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .
Paravirtualisation
caractéristiques
• La paravirtualisation présente aux systèmes d exploitation
une machine générique spéciale, qui requiert donc des
interfaces spéciales intégrées aux systèmes invités, sous la
forme de drivers.
• La paravirtualisation est une technique de virtualisation de
plus bas niveau
• Plus précisément, en paravirtualisation ce n’est plus seulement
l’OS hôte qui doit être modifié mais également les OS appelés
à s’exécuter sur les environnements virtuels.
• Chaque système virtuel doit donc être modifié de façon à
utiliser cette interface pour accéder au matériel,
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Ali KOTTI
17 / 37 17 / 37
Introduction Domaines d’application
. .. .. .. .. .. . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .
Paravirtualisation
• Il est ainsi possible de faire fonctionner GNU/Linux, NetWare,
Solaris (et d’autres) simultanément sur une même machine.
Chaque OS aura alors accès à ses propres périphériques de
stockage, sa propre mémoire, sa ou ses propres interfaces
réseau, son ou ses propres processeurs, chaque ressource
matérielle virtualisée étant partagée avec les autres
environnements. Xen est actuellement le seul représentant
mature de la technologie de paravirtualisation dans le monde
Open Source.
Exemples
• Kernel Virtual Machine
• Microsoft Hyper V
• Xen de Citrix
• VMware-vSphere .
.
.
.
.
. . . . .
. . . .
. . . .
. . . .
. . . .
. . . . .
.
.
.
.
.
.
.
.
.
Ali KOTTI
18 / 37 18 / 37
Introduction Domaines d’application
. .. .. .. .. .. . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .
Isolateur
• L isolation (cloisonnement) consiste à mettre en place, sur
un même noyau de système d exploitation, une séparation
forte entre différents contextes logiciels. Ce n est pas de la
virtualisation à proprement parler, mais c est une solution
qui peut rendre les mêmes services.
• Elle permet de séparer un sysème en plusieurs contextes ou
environnements. Chacun d’entre eux est régi par l’OS hôte,
mais les programmes de chaque contexte ne sont capables de
communiquer qu’avec les processus et les ressources associées
à leur propre contexte.
• Il est ainsi possible de partitionner un serveur en plusieurs
dizaines de contextes.
• L’isolation est utilisée sous Unix via des mécanismes comme
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Ali KOTTI
20 / 37 20 / 37
Introduction Domaines d’application
. .. .. .. .. .. . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .
Exemples
• La principale solution pour l isolation est Linux-VServer, la
plus mature et la plus avancée,
• OpenVZ est une alternative, qui se présente de la même façon
et propose quasiment les mêmes fonctionnalités. Elle est à la
base du produit commercial Virtuozzo, mais présente peu d
intérêt.
• Chroot :isolation changement de racine
• Linux-VServer :isolation des processus en espace utilisateur
• BSD Jail : isolation en espace utilisateur
• LXC Linux Container runtime: libre (usage des Cgroups du
noyau Linux).
• Open VZ-Virtuozzo: partitionnement au niveau noyau sous
. . . . . . . . . . . . . . . . . . . .
Linux. . . . . . . . . . . . . . . . . . . . .
Ali KOTTI
21 / 37 21 / 37
Introduction Domaines d’application
. .. .. .. .. .. . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .
Limites de la Virtualisation
Limites de la virtualisation
• Surcharge de ressources : Les machines virtuelles (VMs)
nécessitent la virtualisation du matériel entier, y compris le
système d’exploitation (OS), ce qui entraîne une surcharge en
termes de mémoire, de CPU et de stockage. Chaque VM
nécessite son propre OS, ce qui consomme des ressources
importantes.
• Démarrage lent : Le démarrage d’une VM peut être lent, car
chaque VM doit initialiser son OS complet avant de pouvoir
exécuter des applications.
• Isolation moins flexible : Bien que les VMs offrent une
isolation solide, elles sont plus rigides dans la gestion des
dépendances et des interactions entre différentes applications.
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Ali KOTTI
22 / 37 22 / 37
Introduction Domaines d’application
. .. .. .. .. .. . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .
Limites de la Virtualisation
Limites de la virtualisation
• Complexité dans la gestion : L’administration des VMs,
notamment la gestion de leurs hyperviseurs, peut être
complexe, surtout lorsque le nombre de VMs est élevé.
• Mises à jour et maintenance : Les VMs nécessitent des mises
à jour régulières, non seulement des applications, mais aussi
des systèmes d’exploitation à l’intérieur de chaque VM. Cela
augmente le coût de maintenance et la charge administrative.
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Ali KOTTI
23 / 37 23 / 37
Introduction Domaines d’application
. .. .. .. .. .. . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .
Avantages du conteneurisation
1 Légèreté: Contrairement aux VMs, les conteneurs partagent
le même noyau de l OS hôte, ce qui réduit considérablement
la consommation de ressources. Ils contiennent uniquement
les bibliothèques et dépendances nécessaires à l’exécution
d’une application, sans embarquer un OS complet.
2 Isolation efficace et flexible : Les conteneurs isolent les
applications de manière plus flexible en permettant aux
développeurs de packager et d’exécuter les applications avec
leurs dépendances dans des environnements indépendants,
tout en partageant le noyau de l’OS.
3 Portable: vous pouvez créer localement, déployer sur le cloud
et exécuter n’importe où votre application.
4 Démarrage rapide : Les conteneurs démarrent beaucoup
plus rapidement que les VMs, car ils n ont pas besoin de
charger un OS complet. Cela facilite le déploiement rapide des
. . . . . . . . . . . . . . . . . . . .
Ali KOTTI
applications. . . . . . . . . . . . . . . . . . . . .
24 / 37 24 / 37
Introduction Domaines d’application
. .. .. .. .. .. . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .
Avantages du conteneurisation
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Ali KOTTI
25 / 37 25 / 37
Introduction Domaines d’application
. .. .. .. .. .. . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .
Ali KOTTI
26 / 37 26 / 37
Introduction Domaines d’application
. .. .. .. .. .. . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Ali KOTTI
27 / 37 27 / 37
Introduction Domaines d’application
. .. .. .. .. .. . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .
Avantages du Docker
• Vitesse d exécution.
• Flexibilité sur les ressources (mémoire partagée).
• Moins complexe que la virtualisation
• Plus standard que les multiples hyperviseurs: notamment
moins de bugs d interaction entre l hyperviseur et le noyau
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Ali KOTTI
28 / 37 28 / 37
Introduction Domaines d’application
. .. .. .. .. .. . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .
Images et conteneurs
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Ali KOTTI
29 / 37 29 / 37
Introduction Domaines d’application
. .. .. .. .. .. . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .
Docker et conteneur
• Docker est la plateforme de conteneurisation la plus utilisée.
• Docker est une plateforme de conteneurs lancée en 2013 ayant
largement contribué à la démocratisation de la
conteneurisation. Elle permet de créer facilement des
conteneurs et des applications basées sur les conteneurs. Elle
est par ailleurs plus facile à déployer et à utiliser que ses
concurrentes.
• Un conteneur : Il s agit d un environnement d exécution
léger, et d une alternative aux méthodes de virtualisation
traditionnelles basées sur les machines virtuelles.
• C est une solution open source, sécurisée et économique.
De nombreux individus et entreprises contribuent au
développement de ce projet.
• Initialement conçue pour Linux, Docker permet aussi la prise
en charge des containers sur Windows ou Mac.
.
.
.
.
.
. . . . .
. . . .
. . . .
. . . .
. . . .
. . . . .
.
.
.
.
.
.
.
.
.
Ali KOTTI
30 / 37 30 / 37
Introduction Domaines d’application
. .. .. .. .. .. . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .
Comparaison MV et Docker
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Ali KOTTI
31 / 37 31 / 37
Introduction Domaines d’application
. .. .. .. .. .. . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .
Comparaison MV et Docker
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Ali KOTTI
32 / 37 32 / 37
Introduction Domaines d’application
. .. .. .. .. .. . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Ali KOTTI
33 / 37 33 / 37
Introduction Domaines d’application
. .. .. .. .. .. . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .
Eléments de Docker
• Docker Engine : Le Docker Engine est l application à
installer sur la machine hôte pour créer, exécuter et gérer des
conteneurs Docker. Comme son nom l indique, il s agit du
moteur du système Docker. C est ce moteur qui regroupe et
relie les différents composants entre eux. C est la
technologie client-serveur permettant de créer et d exécuter
les conteneurs, et le terme Docker est souvent employé pour
désigner Docker Engine
• Docker Deamon : Le Docker Daemon traite les requêtes API
afin de gérer les différents aspects de l installation tels que
les images, les conteneurs ou les volumes de stockage.
• Docker client : Le client Docker est la principale interface
permettant de communiquer avec le système Docker. Il reçoit
les commandes par le biais de l interface de ligne de
commande et les transmet au Docker Daemon
.
.
.
.
.
. . . . .
. . . .
. . . .
. . . .
. . . .
. . . . .
.
.
.
.
.
.
.
.
.
Ali KOTTI
34 / 37 34 / 37
Introduction Domaines d’application
. .. .. .. .. .. . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .
Eléments de Docker
• Image Docker : Une image Docker est un modèle en lecture
seule, utiliser pour créer des conteneurs Docker. Elle est
composée de plusieurs couches empaquetant toutes les
installations, dépendances, bibliothèques, processus et codes
d application nécessaires pour un environnement de
conteneur pleinement opérationnel. Après avoir écrit le
Dockerfile, on invoque l utilitaire build pour créer une
image basée sur ce fichier. Cette image se présente comme un
fichier portable indiquant quels composants logiciels le
conteneur exécutera et de quelle façon.
• Dockerfile : Chaque conteneur Docker débute avec un
Dockerfile . Il s agit d un fichier texte rédigé dans une
syntaxe compréhensible, comportant les instructions de
création d une image Docker. Un Dockerfile précise le
système d exploitation sur lequel sera basé le conteneur, et
. . . . . . . . . . . . . . . . . . . .
Ali KOTTI
les langages, variables environnementales, emplacements de
. . . . . . . . . . . . . . . . . . . .
fichiers,
35 /ports
37 réseaux et autres composants requis. 35 / 37
Introduction Domaines d’application
. .. .. .. .. .. . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Ali KOTTI
36 / 37 36 / 37
Introduction Domaines d’application
. .. .. .. .. .. . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .
matière de 37développement
/ 37 NFV et SDN. Imaginez un scénario 37 / 37