Master en Virtualisation des Réseaux
Master en Virtualisation des Réseaux
2
Plan
Chap 1: Introduction à la virtualisation
Chap 2: Virtualbox, une solution de virtualisation
pour poste de travail
Chap 3: LXC, une solution de virtualisation légère
(conteneur)
Chap 4: KVM, une solution de virtualisation pour
serveur
Chap 5: Doker une solution de virtualisation
légère (conteneur)
3
Chap 1: Introduction à la virtualisation
Section I : Le concept de virtualisation
Section II : Les avantages et les inconvénients
Section III : Les types d’hyperviseurs
Section IV : Les techniques de virtualisation
Section V : Panorama et comparaison des principales
solutions de virtualisation libres
Section VI : Domaines d’applications
4
Chap 1: Introduction à la virtualisation
Section I : Le concept de virtualisation
Définition :
La virtualisation est l’ensemble des techniques logicielles
et matérielles qui permettent de faire fonctionner en
même temps plusieurs systèmes d'exploitation sur
un même ordinateur.
5
Chap 1: Introduction à la virtualisation
Section I : Le concept de virtualisation
Sans la virtualisation :
1 ordinateur = 1 Système d'exploitation
Avec la virtualisation :
1 ordinateur = plusieurs systèmes
d'exploitation
6
Chap 1: Introduction à la virtualisation
Section I : Le concept de virtualisation
Terminologie :
Hôte / Machine réelle
Invité / Machine virtuelle
Hyperviseur
7
Chap 1: Introduction à la virtualisation
Section I : Le concept de virtualisation
Bref historique :
70’s Prémices de la virtualisation (IBM Cambridge
center/MIT), premier support hardware par IBM.
1974 Gerald J. Popek et Robert P. Goldberg définissent les
pré-requis pour la virtualisation.
1999 VMware ESX et Workstation.
2003 Xen.
2005 Intel VT-x.
2006 AMD-v.
2007 VirtualBox par InnoTech (acquisition par Sun en 2008).
2008 KVM (acquisition par RedHat).
8
Chap 1: Introduction à la virtualisation
Section I : Le concept de virtualisation
Définition formelle :
Popeck et Goldberg ont établi des critères pour qualifier un
hyperviseur :
Équivalence
9
Chap 1: Introduction à la virtualisation
Section II : Les avantages et les inconvénients
Avant les bénéfices : une salle machine
Contraintes physiques
Taille, énergie, climatisation
Surdimensionnée
Utilisation moyenne 10 - 30%
Sécurité
Problèmes
Coûts
Administration
10
Chap 1: Introduction à la virtualisation
Section II : Les avantages et les inconvénients
Les bénéfices sont de deux ordres :
Réduction des coûts
Meilleure gestion de la capacité
Simplification de la maintenance
Mise a l'échelle
Indépendance matérielle
Redondance aisée
11
Chap 1: Introduction à la virtualisation
Section II : Les avantages et les inconvénients
12
Chap 1: Introduction à la virtualisation
Section II : Les avantages et les inconvénients
Les usages personnels
Tester un nouveau système en toute sécurité.
Disposer d'un environnement "jetable" pour y faire des
expérimentations
Disposer d'un environnement dédié à une tâche précise qui
puisse être préservé facilement.
Avoir partout son environnement sur soi (clé USB).
...
13
Chap 1: Introduction à la virtualisation
Section II : Les avantages et les inconvénients
Les inconvénients
Un point de défaillance unique
Un recours à des machines puissantes
Une dégradation des performances
Une complexité accrue de l’analyse d’erreurs
Parfois inadapté (Ex : I/O intense).
14
Chap 1: Introduction à la virtualisation
Section III : Les types d’hyperviseurs
hyperviseur de type 1:
Un hyperviseur type 1 est un système qui s’exécute sur un
serveur Bar-Metal directement sur le matériel
L'hyperviseur type 1 est un noyau hôte allégé et optimisé
Exemples : Kvm, Xen, VMware ESXI, MS Hyper-v
15
Chap 1: Introduction à la virtualisation
Section III : Les types d’hyperviseurs
hyperviseur de type 2 :
Un hyperviseur de Type 2 est un logiciel qui s'exécute à
l'intérieur d'un autre système d'exploitation.
Logiciel qui s’installe sur un système d’exploitation
Linux, MS, Windows, MacOS
Exemples : VirtualBox, VMware Workstation, XenClient
16
Chap 1: Introduction à la virtualisation
Section III : Les techniques de virtualisation
Usage de couches logicielles intermédiaires
4 types de technologies
17
Chap 1: Introduction à la virtualisation
18
Chap 1: Introduction à la virtualisation
Section III : Les techniques de
virtualisation
Technique 2 :Virtualisation d’OS ou
Isolateur
Isole l’exécution des applications dans des
contextes d’exécution.
• Généralisation de la notion de « contexte »
Unix, plus isolation
des périphériques,
des systèmes de fichiers
Solution très performante et économique en
mémoire mais
Partage du code noyau (donc mauvaise
isolation).
Exemples : chroot (changement de racine),
Linux Vserver, OpenVZ (Virtuozzo), Docker,
LXC (Cgroups),...
19
Chap 1: Introduction à la virtualisation
Section III : Les techniques de
virtualisation
Technique 3 : hyperviseur complet
Noyau système léger et optimisé
Outils de supervision
Permet l’exécution d’OS natifs
Usage d’instructions dédiées à la
virtualisation (sinon émulation).
Exemples : XEN, KVM, Vmware
vSphere,…
20
Chap 1: Introduction à la virtualisation
Section III : Les techniques de
virtualisation
Technique 4 : paravirtualisation
Noyau système allégé et optimisé
Noyau invités adaptés et optimisés
Utilisable sans les instructions
spécifiques (ex : VT-x ou AMD-v).
Impraticables pour les systèmes non
libres.
Exemples : Vmware Vsphere, XEN,
Microsoft Hyper-V server, KVM,...
21
Chap 1: Introduction à la virtualisation
Section III : Les techniques de virtualisation
Facteurs déterminants
Capacités d'émulation
Performances
Sécurité
Occupation mémoire, disque
Fonctionnalités:
Tuning
drivers
Snapshots
Outils d'administration
Coûts
22
Chap 1: Introduction à la virtualisation
Section III : Les techniques de virtualisation
Libvirt
API stable pour la virtualisation
LGPL [Link]
Operations de base
Créer/détruire/suspendre/sauver/migrer
Ecrit en C
Bindings python, perl, Java, Ocaml, Ruby
23
Chap 1: Introduction à la virtualisation
Section III : Les techniques de virtualisation
Libvirt et compagnie
Virsh: shell de contrôle de la virtualisation
Virt-manager: interface graphique de management
Cycle de vie complet
Création, migration
Console locale et distantes
Libvirt-CIM
implémentation CIM par IBM (LGPL)
Pegasus et SFCB
Xen et KVM
Cobbler:
Environnement d'installations automatiques
Koan agent de réinstallation
24
Chap 1: Introduction à la virtualisation
Section IV : Panorama et comparaison des principales
solutions de virtualisation libres
QEMU
VirtualBox
XEN
KVM
OpenVZ
LXC
25
Chap 1: Introduction à la virtualisation
26
Chap 1: Introduction à la virtualisation
27
Chap 1: Introduction à la virtualisation
Section IV : Panorama et comparaison des principales
solutions de virtualisation libres
XEN
Solution libre ancienne mais encore utilisée.
Vocabulaire :
OS privilégié : Dom0
OS invités : DomU
DomU standard (paravirt.)
DomU HVM (hardware assisted)
• Deux modes d’usage :
Paravirtualisation :
Noyau spécifique dans le DomU
Très bonnes performances
Virtualisation matérielle
Virtualisation transparente pour le système invité.
Besoin d’un support dans le processeur (AMD-V ou Intel VT)
28
Chap 1: Introduction à la virtualisation
Section IV : Panorama et comparaison des principales
solutions de virtualisation libres
KVM
Projet plus récent que Xen mais très populaire.
Basé en partie sur QEMU (pour le supports des périphériques)
Entièrement intégré au noyau Linux -> Facile à utiliser.
Support de la virtualisation dans les processeurs indispensable.
Paravirtualisation (virtio) pour les performances.
29
Chap 1: Introduction à la virtualisation
Section IV : Panorama et comparaison des principales
solutions de virtualisation libres
OpenVZ
PVS (Private Virtual Server)
Virtualisation de niveau OS basée sur Linux
Un Linux avec plusieurs tables de processus
30
Chap 1: Introduction à la virtualisation
Section IV : Panorama et comparaison des principales
solutions de virtualisation libres
LXC
Solution de virtualisation de type isolateur
Permet la virtualisation par container
Intégré au noyau et remplace Open VZ et linux-Vserver
Virtualisation à noyau partagé : utilise chroot pour modifier
le système de fichier racine d’un processus pour l’isoler et
fournir une certaine sécurité
31
Chap 1: Introduction à la virtualisation
Section VI : Domaines d’applications
Virtualisation d’applications (du contexte d’exécution).
Virtualisation de serveur
Virtualisation du réseau (VLAN)
Virtualisation du stockage
32
Chap 1: Introduction à la virtualisation
Conclusions
De nombreuses solutions
Des besoins très divers
Intégration lente mais en progrès
Le matériel doit évoluer
Changement des habitudes de travail
33
Chap 2: Virtualbox, une solution de
virtualisation pour poste de travail
Section I : Présentation et installation
Section II : Création de machines virtuelles
Section III : Gestion des instantanées
Section IV: Import et export des Appliance
Section V : Clonage
Section VI : Virtualisation des volumes de stockage
Section VII : Virtualisation de réseau
Section VIII : VBoxManage
34
Chap 2: Virtualbox, une solution de
virtualisation pour poste de travail
Section I : Présentation et installation
35
Chap 2: Virtualbox, une solution de
virtualisation pour poste de travail
Section I : Présentation et installation
Démo….
36
Chap 2: Virtualbox, une solution de
virtualisation pour poste de travail
Section I : Présentation et installation
Installer 2 machines virtuelles :
Ubuntu 18.04 (64bits) – Desktop
Ubuntu 16.04 (64bits) – Serveur
Démo….
37
Chap 2: Virtualbox, une solution de
virtualisation pour poste de travail
Section II : Création de machines virtuelles
Les fichiers que composent une MV
Une machine virtuelle est en fait un dossier qui comprends :
VDI : Disque dur virtuel
Les journaux de la vm
LOG : dossier des fichiers contenant les évènements sur la VM
38
Chap 2: Virtualbox, une solution de
virtualisation pour poste de travail
Section II : Création de machines virtuelles
Les suppléments invités
Les suppléments invité sont conçus pour s’installer à l’intérieur d’une
machine virtuelle sur le nouveau système invité fraîchement installé.
Il s’agit de pilotes de périphériques et d’applications système qui
optimisent le système d’exploitation invité pour une meilleure
performance et plus d’utilisabilité
Les suppléments invité de VirtualBox sont fournis sous forme d’un
fichier unique d’image de CD-ROM qui s’appelle
[Link]
Cette image ISO se trouve dans le répertoire d’installation de
VirtualBox.
Pour installer les suppléments invité sur une VM, il faut monter ce
fichier dans votre VM comme un CD-ROM virtuel
39
Chap 2: Virtualbox, une solution de
virtualisation pour poste de travail
Section II : Création de machines virtuelles
Les suppléments invités
Les suppléments invité apportent les fonctionnalités
suivantes :
Intégration du pointeur de souris
Dossiers partagés
Meilleur support graphique
Presse-papier partagé
Synchronisation du temps
Démo ...
40
Chap 2: Virtualbox, une solution de
virtualisation pour poste de travail
Section III : Gestion des instantanées
Un snapshot ou cliché ou instantané est une capture de
l’état à un instant T de la machine virtuelle (mémoire,
disque)
Un instantané permet de créer des points de
restauration
41
Chap 2: Virtualbox, une solution de
virtualisation pour poste de travail
Section III : Gestion des instantanées
Cas d'utilisation : Restaurer l'état initiale de la MV à chaque
séance de TP
Préparer une MV
Créer un instantané
Chaque séance de TP
42
Chap 2: Virtualbox, une solution de
virtualisation pour poste de travail
Section IV : Import et export des Appliance
Une Appliance virtuelle est une MV :
Pré-configurée contenant un système d'exploitation et une
solution applicative.
Prête à l'emploi
On télécharge l'Appliance
On l’importe dans son hyperviseur
Plusieurs éditeurs fournissent maintenant leur
application en Appliance :
Turnkey : [Link]
VMware : [Link]
MarketPlace
43
Chap 2: Virtualbox, une solution de
virtualisation pour poste de travail
Section IV : Import et export des Appliance
Cas d'utilisation : créer 1 fois, utiliser + fois
L'enseignant prépare une Appliance
Appliance = machine virtuelle + Système + Applications
L'exporte
1 Appliance = 1 Fichier
44
Chap 2: Virtualbox, une solution de
virtualisation pour poste de travail
Section V : Clonage
2 type de clones :
clone complet
clone lié
45
Chap 2: Virtualbox, une solution de
virtualisation pour poste de travail
Section V : Clonage
Les clones Liés :
Un clone lié est une copie d'une MV qui partage des disques
virtuels avec la MV parente de façon permanente.
Un clone lié constitue une manière rapide de convertir et
d'exécuter une nouvelle MV
Vous pouvez créer un clone lié à partir de l'état actuel ou d'un
snapshot d'une MV hors tension. Cela conserve l'espace
disque et permet à plusieurs machines virtuelles d'utiliser la
même installation logicielle.
46
Chap 2: Virtualbox, une solution de
virtualisation pour poste de travail
Section V : Clonage
Les clones Liés (suite):
Tous les fichiers disponibles sur la machine source au moment
du snapshot restent disponibles au clone lié.
Les changements ultérieurs sur le disque virtuel du parent
n'affectent pas le clone lié, de la même façon que les
changements sur le disque du clone lié n'affectent pas la
machine source.
Un clone lié doit avoir accès à la source. Sinon, il est
totalement inutilisable.
47
Chap 2: Virtualbox, une solution de
virtualisation pour poste de travail
Section V : Clonage
Les clones complets :
Un clone complet est une copie indépendante d'une machine
virtuelle qui ne partage rien avec la machine virtuelle parente
de façon permanente après l'opération de clonage.
Les opérations d'un clone complet sont donc distinctes de la
machine virtuelle parente.
Les clones complets sont généralement plus performants que
les clones liés.
Les clones complets sont plus longs à créer que les clones liés.
Créer un clone complet peut prendre plusieurs minutes
48
Chap 2: Virtualbox, une solution de
virtualisation pour poste de travail
Section V : Clonage
49
Chap 2: Virtualbox, une solution de
virtualisation pour poste de travail
Section VI : Virtualisation des volumes de stockage
Les contrôleurs de disque dur
Les disques durs et les lecteurs de CD/DVD sont reliés à un
périphérique appelé contrôleur de disque dur
Les contrôleurs pilotent les opérations du disque dur et les
transferts de données.
VirtualBox peut émuler les quatre types de contrôleurs de
disques les plus courants suivant :
IDE, SATA, SCSI et SAS
50
Chap 2: Virtualbox, une solution de
virtualisation pour poste de travail
Section VI : Virtualisation des volumes de stockage
Cas d'utilisation :
Manipuler des disques durs
Partitionnement, formatage, …
51
Chap 2: Virtualbox, une solution de
virtualisation pour poste de travail
Section VII : Virtualisation des réseaux
Les modes d'accès réseau
NAT
Accès par pont
Réseau interne
Réseau privé hôte
52
Chap 2: Virtualbox, une solution de
virtualisation pour poste de travail
Section VII : Virtualisation des réseaux
Le réseau – NAT
Network Address Translation (NAT)
La machine virtuelle accède au réseaux externe
Son adresse IP est attribuée par un serveur DHCP
interne VirtualBox
La machine n’est pas accessible de l’extérieur
La redirection de port est possible pour offrir des services
réseaux
53
Chap 2: Virtualbox, une solution de
virtualisation pour poste de travail
Section VII : Virtualisation des réseaux
Le réseau - Accès par pont
La machine virtuelle est directement connectée sur le réseau
physique
La machine a accès à tous les participants du réseau physique
La machine virtuelle est donc accessible aux autres machines
sur le réseaux
La machine virtuelle peut offrir des services réseau comme
tout participant sur le réseau physique
54
Chap 2: Virtualbox, une solution de
virtualisation pour poste de travail
Section VII : Virtualisation des réseaux
Le réseau – Réseau interne
La machine virtuelle est isolée Son adresse IP doit être
attribuée manuellement
La machine n’est pas accessible de l’extérieur
Possibilité de créer de multiple réseaux internes
55
Chap 2: Virtualbox, une solution de
virtualisation pour poste de travail
Section VII : Virtualisation des réseaux
Le réseau – Réseau privé hôte
La machine virtuelle est isolée
●
56
Chap 2: Virtualbox, une solution de
virtualisation pour poste de travail
Section VII : Virtualisation des réseaux
57
Chap 2: Virtualbox, une solution de
virtualisation pour poste de travail
Section VIII : VBoxManage
VBoxManage est l’interface en ligne de commande de
VirtualBox.
Permet de contrôler totalement VirtualBox depuis la
ligne de commandes de votre système hôte.
VBoxManage supporte toutes les fonctionnalités
présentées par l’interface graphique, et bien plus encore
Permet de contrôler certains paramètres de
configuration plus avancés et expérimentaux d’une VM
58
Chap 2: Virtualbox, une solution de
virtualisation pour poste de travail
Section VIII : VBoxManage
Lister les vms
VBoxManage listvms
Démarrer une vms
VBoxManage startvm myVM
Arréter une vm
VBoxManage controlvm myVM acpipowerbutton
Créer une vm
VBoxManage createvm –name ...
59
Chap 3: LXC, une solution de virtualisation
légère (conteneur)
Section I : Présentation et fonctionnement de LXC
Section II : Installation et configuration de base
Section III : Création et lancement de conteneurs
60
Chap 3: LXC, une solution de virtualisation
légère (conteneur)
Section I : Présentation et fonctionnement de LXC
Un conteneur est un concept : le principe est d’isoler
l’exécution d’ensembles de processus sur un même hôte.
Le noyau et l’accès au matériel reste partagé (à la différence
d’une VM)
La création d’un « conteneur » résulte de l’utilisation
conjointe de différentes technologies
Une notion commune est l’utilisation d’un jeu de
bibliothèques séparé de l’hôte (rootfs)
Tous les fichiers nécessaires à leur exécution sont fournis par
une image distincte
les conteneurs Linux sont portables et fonctionnent de la même manière
dans les environnements de développement, de test et de production
61
Chap 3: LXC, une solution de virtualisation
légère (conteneur)
Section I : Présentation et fonctionnement de LXC
62
Chap 3: LXC, une solution de virtualisation
légère (conteneur)
Section I : Présentation et fonctionnement de LXC
Le conteneur apporte une virtualisation de
l'environnement d'exécution (processeur, mémoire vive,
réseau, système de fichier…) et non pas de la machine.
On parle de « conteneur » et non de « machine virtuelle »
63
Chap 3: LXC, une solution de virtualisation
légère (conteneur)
Section I : Présentation et fonctionnement de LXC
Le projet Linux Containers (LXC) est une plateforme de
conteneurs Open Source qui fournit un ensemble d'outils,
de modèles, de bibliothèques et de liaisons de langage.
Le projet LXC dispose d'une interface en ligne de
commande simple qui facilite la prise en main pour les
nouveaux utilisateurs.
La fonction du noyau cGroups (groupes de contrôle) permet
de contrôler et de limiter l'utilisation des ressources pour
un processus ou un groupe de processus.
64
Chap 3: LXC, une solution de virtualisation
légère (conteneur)
Section II : Installation et configuration de base
apt-get update
apt-get install lxc
apt-get install bridge-utils libvirt-bin
nano /etc/fstab
mount /sys/fs/cgroup
lxc-checkconfig
65
Chap 3: LXC, une solution de virtualisation
légère (conteneur)
Section III : Création et lancement de conteneurs
lxc-create --template download --name <nom du conteneur> -- <paramètres de
création du conteneur>
67
Chap 3: LXC, une solution de virtualisation
légère (conteneur)
Section III : Création et lancement de conteneurs
Pour restaurer un snapshot
lxc-snapshot -n <nom du conteneur> -r <nom
du snapshot>
Pour copier un conteneur
lxc-copy -n <nom du conteneur> -N <nom du
nouveau conteneur>
68
Chap 4: KVM, une solution de virtualisation
pour serveur
Section I : Présentation de Qemu et KVM
Section II : Installation et lancement
Section III : Gestion des images virtuelles
Section IV : Gestion des ressources
Section V : Gestion du réseau
Section VI : Gestion d’un hyperviseur KVM et LibVirt
Section VII : Migration des machines virtuelles
Section VIII : Les instantanées
69
Chap 4: KVM, une solution de virtualisation
pour serveur
Section I : Présentation de Qemu et KVM
Historique
KVM est une solution de Full virtualisation assistée par le
matériel
Avi Kivity a commencé le développement de KVM en 2006
comme module noyau au travers d’une startup nommé
Qumranet
KVM est intégré au noyau Linux 2.6 à partir de février 2007.
Red Hat rachète Qumranet en 2008
KVM a été choisi par OpenVirtualization Alliance comme
hyperviseur.
OpenVirtualization Alliance fait parti du projet Linux
Foundation
70
Chap 4: KVM, une solution de virtualisation
pour serveur
Section I : Présentation de Qemu et KVM
Fonctionnalités :
Virtualisation matérielle
Paravirtualisation :
Réseau
Bloc
Balloning memory
71
Chap 4: KVM, une solution de virtualisation
pour serveur
Section I : Présentation de Qemu et KVM
Architecture
KVM module noyau !!
Crée un périphérique /dev/kvm
QEMU-KVM s’occupe de l’émulation des périphériques (usb,
réseau, disques, cpu ... )
Les outils permettant de créer et utiliser des machines
virtuelles KVM interagissent avec ce périphérique
Une architecture virtualisée kvm, repose sur le /dev/kvm et sur
qemu pour l’émulation
Permet au noyau de fonctionner dans un mode « guest » qui
permet à chaque machine virtuelle de posséder son propre
espace d’adressage, différent de celui du noyau mais résidant
dans l’espace utilisateur
72
Chap 4: KVM, une solution de virtualisation
pour serveur
Section II : Installation et lancement
73
Chap 4: KVM, une solution de virtualisation
pour serveur
Section III : Gestion des images virtuelles
Création d’une image de disque
qemu-img create -f qcow2 image.qcow2 10G
Installation de la machine (domU)
kvm -m 2G -cpu host image.qcow2 -cdrom [Link] -boot d
74
Chap 4: KVM, une solution de virtualisation
pour serveur
Section III : Gestion des images virtuelles
Création d’une image avec l’interface graphique
75
Chap 4: KVM, une solution de virtualisation
pour serveur
Section IV : Gestion des ressources
Lister les Vms
76
Chap 4: KVM, une solution de virtualisation
pour serveur
Section IV : Gestion des ressources
Démarrer, arrêter, suspendre, relancer…
77
Chap 4: KVM, une solution de virtualisation
pour serveur
Section IV : Gestion des ressources
Obtenir des infos sur les DomU
78
Chap 34 KVM, une solution de virtualisation
pour serveur
Section IV : Gestion des ressources
Modifier quelques paramètres a chaud
79
Chap 4: KVM, une solution de virtualisation
pour serveur
Section V : Gestion du réseau
Introduction au réseau “virtualisé”
Dans une architecture réseau physique, on trouve :
Des commutateurs (switch)
Des routeurs
Des cartes réseaux (nic)
Dans une architecture réseau virtualisé, on trouve :
Des commutateurs virtuels (Vswitch)
Des routeurs virtuels
Des cartes réseaux virtuelles (Vnic)
80
Chap 4: KVM, une solution de virtualisation
pour serveur
Section V : Gestion du réseau
Le mode bridge linux
81
Chap 4: KVM, une solution de virtualisation
pour serveur
Section V : Gestion du réseau
Le réseau ponté – le “Bridging”
Un bridge ethernet est l'équivalent d'un switch virtuel au niveau système
Les paquets sortants des DomU ne peuvent pas être contrôlés par le Dom0
(iptables)
82
Chap 4: KVM, une solution de virtualisation
pour serveur
Section V : Gestion du réseau
Le NAT
83
Chap 4: KVM, une solution de virtualisation
pour serveur
Section VI : Gestion d’un hyperviseur KVM et LibVirt
Libvirt – API de virtualisation
Une API, un démon et des outils de gestion pour la plupart des
plateformes de virtualisation
84
Chap 4: KVM, une solution de virtualisation
pour serveur
Section VI : Gestion d’un hyperviseur KVM et LibVirt
Architecture – espace noms
85
Chap 4: KVM, une solution de virtualisation
pour serveur
Section VI : Gestion d’un hyperviseur KVM et LibVirt
Architecture
86
Chap 4: KVM, une solution de virtualisation
pour serveur
Section VI : Gestion d’un hyperviseur KVM et LibVirt
Fonctionnalités
Gestion distante sécurisée, sasl, kerberos, TLS, certificat x509
87
Chap 4: KVM, une solution de virtualisation
pour serveur
Section VII : Migration des machines virtuelles
Prérequis
Le disque de la VM doit être accessible aux hôtes (nfs, iscsi, ..)
Le fichier xml de définition de la VM ne doit pas être partagé, à part :
Dans un cluster
Lorsque les « fichiers » xml sont contenus dans une Base de données
Lors d’une migration sans options la machine virtuelle reste définie sur
l’hôte source
Il faut la supprimer de l’hôte source, l’«undefine »
Pas de snapshot interne sur la vm a migrer
88
Chap 4: KVM, une solution de virtualisation
pour serveur
Section VII : Migration des machines virtuelles
89
Chap 4: KVM, une solution de virtualisation
pour serveur
Section VII : Migration des machines virtuelles
Assistant de migration de machine virtuelles
90
Chap 4: KVM, une solution de virtualisation
pour serveur
Section VII : Migration des machines virtuelles
Assistant de migration de machine virtuelles
91
Chap 4: KVM, une solution de virtualisation
pour serveur
Section VIII : Les instantanées
Un snapshot ou cliché ou instantané est une capture
de l’état à un
instant T de la machine virtuelle (mémoire, disque)
Un cliché permet de créer des points de restauration
Il existe deux types de snapshot avec virsh
L’instantané interne
Le delta/ différence se trouve sur le même disque
L’instantané externe
Le delta/ différence se trouve sur un autre disque
Pas encore pleinement supporté
92
Chap 5: Docker, une solution de
virtualisation légère
93
Chap 5: Docker, une solution de
virtualisation légère
94
Chap 5: Docker, une solution de
virtualisation légère
95
Chap 5: Docker, une solution de
virtualisation légère
Section I : Définir et comparer les Dockers
Docker, une amélioration de LXC : Docker a commencé par
être une surcouche du conteneur LXC, tout en apportant de
nombreux changements pour que les conteneurs soient plus
flexibles et portables.
Stateless : l'application ne stocke pas d'état. Vous pouvez
prendre le cas du protocole HTTP, celui-ci est stateless. À
chaque nouvelle requête HTTP, les mêmes séries d'actions seront
réalisées.
L'immutabilité : Un conteneur ne doit pas stocker de données
qui doivent être pérennes. Mais si vous souhaitez en local mettre
une base de données dans un conteneur Docker, vous devez créer
un volume pour que celui-ci puisse stocker les données de façon
pérenne.
96
Chap 5: Docker, une solution de
virtualisation légère
Section I : Définir et comparer les Dockers
Docker distribue 3 versions de Docker différentes :
• Docker Community Edition (Linux seulement) ;
• Docker Desktop (Mac ou Windows) ;
• Docker Enterprise (Linux seulement).
97
Chap 5: Docker, une solution de
virtualisation légère
Section I : Définir et comparer les Dockers
Comparaison Docker / VM
un conteneur ne réserve pas la quantité de CPU, RAM et
disque attribuée auprès du système hôte
Les conteneurs n'ayant pas besoin d'une virtualisation des
ressources mais seulement d'une isolation
Ils peuvent démarrer beaucoup plus rapidement et plus
fréquemment qu'une machine virtuelle
La différence entre conteneur et machine virtuelle = les
différences entre la virtualisation lourde et
la virtualisation légère.
98
Chap 5: Docker, une solution de
virtualisation légère
Section II : Créer, lancer et partager des images Docker
avec Dokerfiles
Architecture Docker
Docker est composé de deux composants :
Docker Engine : Docker Daemon + Docker Client
Docker Registry
99
Chap 5: Docker, une solution de
virtualisation légère
Section II : Créer, lancer et partager des images Docker
avec Dokerfiles
The Docker daemon
Ecoute les demandes d’API Docker et gère les objets Docker
tels que les images, les conteneurs, les réseaux et les
volumes.
Un démon peut également communiquer avec d’autres
démons pour gérer les services Docker.
The Docker client
Le client Docker est le principal moyen par lequel de
nombreux utilisateurs de Docker interagissent avec Docker.
Le client Docker peut communiquer avec plusieurs
démons.
100
Chap 5: Docker, une solution de
virtualisation légère
Section II : Créer, lancer et partager des images
Docker avec Dokerfiles
The Docker Registry
Un registre Docker stocke des images Docker
Docker Hub est un registre public que tout le monde peut
l’utiliser
Docker est configuré pour rechercher des images sur
Docker Hub par défaut.
Exécuter des nouveaux registres privés.
101
Chap 5: Docker, une solution de
virtualisation légère
Section II : Créer, lancer et partager des images Docker avec
Dokerfiles
Images
Une image est un modèle en lecture seule avec des instructions
pour créer un conteneur Docker.
Conteneurs
Un conteneur est une instance exécutable d’une image.
Vous pouvez créer, démarrer, arrêter, déplacer ou supprimer un
conteneur à l’aide de l’API Docker ou de l’interface de ligne de
commande.
Par défaut, un conteneur est relativement bien isolé des autres
conteneurs et de sa machine hôte.
Il peut contenir, par exemple, un système de fichier dédié à un
système d’exploitation/application.
Ces images sont utilisées pour créer des conteneurs Docker.
102
Chap 5: Docker, une solution de
virtualisation légère
Section II : Créer, lancer et partager des images Docker avec
Dokerfiles
Créer le Docker
Le Dockerfile : l'ensemble de la recette décrivant l'image
Docker
FROM : définir l'image source
RUN : pour exécuter une commande dans votre conteneur.
ADD : copier ou de télécharger des fichiers dans l'image.
WORKDIR ; permet de définir le répertoire de travail ;
EXPOSE ; permet de définir les ports d'écoute par défaut ;
VOLUME : permet de définir les volumes utilisables ;
CMD : permet à un conteneur de savoir quelle commande il
doit exécuter lors de son démarrage.
103
Chap 5: Docker, une solution de
virtualisation légère
Section II : Créer, lancer et partager des images Docker avec
Dokerfiles
Créer le Docker
104
Chap 5: Docker, une solution de
virtualisation légère
Section II : Créer, lancer et partager des images
Docker avec Dokerfiles
Lancer un Docker
Docker build -t ocr-docker-build .
Docker run -d -p 2368:2368 ocr-docker-build
Partager les images
Partager le fichier Dockerfile à chacun et créer eux-mêmes
leur propre image avec un docker build ;
Envoyez l’image sur votre propre registry.
105
Chap 5: Docker, une solution de
virtualisation légère
Section II : Créer, lancer et partager des images
Docker avec Dokerfiles
Manipulation des Docker
Recherche d’une image sur le Docker Hub :
106
Chap 5: Docker, une solution de
virtualisation légère
Section II : Créer, lancer et partager des images
Docker avec Dokerfiles
Manipulation des Docker
Création d’un conteneur basé sur une image de Debian en lui
allouant un terminal interactif:
Docker create --interractive --tty –hostname debian –name
debian debian: latest
Liste des conteneurs
docker ps –all
Suppression du conteneur:
Docker rm Debian
107
Chap 5: Docker, une solution de
virtualisation légère
Section III : Orchestrer des images Docker grâce à
Docker Compose.
Docker Compose permet d'orchestrer les conteneurs
Simplifier le déploiement sur de multiples environnements.
Docker Compose est un outil écrit en Python qui permet de
décrire, dans un fichier YAML, plusieurs conteneurs comme
un ensemble de services.
Nous appelons stack un ensemble de conteneurs Docker lancés
via un seul et unique fichier Docker Compose.
108
Chap 5: Docker, une solution de
virtualisation légère
Section III : Orchestrer des images Docker grâce à
Docker Compose.
Commandes principales pour utiliser une stack Docker
Compose.
docker-compose up –d : Permet de démarrer l'ensemble des
conteneurs en arrière-plan ;
docker-compose ps : Permettra de voir le statut de
l'ensemble de votre stack ;
docker-compose logs -f --tail 5 : Permet d'afficher
les logs de votre stack ;
docker-compose stop : Permet d'arrêter l'ensemble des
services d'une stack ;
109
Chap 5: Docker, une solution de
virtualisation légère
Section III : Orchestrer des images Docker grâce à
Docker Compose.
110