0% ont trouvé ce document utile (0 vote)
17 vues110 pages

Master en Virtualisation des Réseaux

Le document présente un Master Professionnel en Expert Réseaux, axé sur la virtualisation, avec des objectifs d'acquisition de compétences sur diverses solutions de virtualisation, telles que VirtualBox, KVM et LXC. Il détaille les concepts, avantages, inconvénients, types d'hyperviseurs et techniques de virtualisation, ainsi qu'une comparaison des principales solutions libres. Enfin, il aborde les domaines d'application et conclut sur l'évolution des besoins et des technologies en matière de virtualisation.

Transféré par

raissianouer
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
17 vues110 pages

Master en Virtualisation des Réseaux

Le document présente un Master Professionnel en Expert Réseaux, axé sur la virtualisation, avec des objectifs d'acquisition de compétences sur diverses solutions de virtualisation, telles que VirtualBox, KVM et LXC. Il détaille les concepts, avantages, inconvénients, types d'hyperviseurs et techniques de virtualisation, ainsi qu'une comparaison des principales solutions libres. Enfin, il aborde les domaines d'application et conclut sur l'évolution des besoins et des technologies en matière de virtualisation.

Transféré par

raissianouer
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Master Professionnel : Expert Réseaux

Dr. Sana Ghannay


Objectifs
 Les compétences acquises par l’apprenant lui permettront de :
 Acquérir des connaissances sur les concepts et les techniques de
virtualisation
 Avoir une idée sur l'ensemble des solutions de virtualisation libres
 Mettre en œuvre et administrer des machines virtuelles avec
Virtualbox.
 une solution de virtualisation pour poste de travail.
 Mettre en œuvre et administrer des machines virtuelles avec
KVM.
 une solution de virtualisation pour serveur.
 Mettre en œuvre et administrer des conteneurs avec LXC
 une solution de virtualisation légère.

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

 Définition, une 2ième


 La virtualisation est 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

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

 les programmes doivent avoir un comportement similaire


sur machine réelle ou virtuelle.
 Efficacité

 une majorité des instructions doivent s’exécuter directement


sur le CPU.
 Contrôle des ressources

 le programme virtualisé ne doit avoir accès aux ressources


qu’à travers le moniteur, qui peut reprendre la main à tout
moment.

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%

 Un serveur par application/client


 Simplification de la gestion, facturation

 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

 Réduction des risques


 Isolation et sécurité des services

 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

 Section III : Les techniques de


virtualisation
 Technique 1 : Machine virtuelle
 Application installée sur l’OS
 Virtualise et/ou émule le matériel
 Comparable à un émulateur mais accès
«direct» au CPU, RAM, FS.
 Performances réduites si le CPU doit être
émulé
 Bonne étanchéité entre les OS invités.
 Exemples : VirtualBox, QEMU, Vmware
(workstation, fusion,player), Microsoft
Virtual PC, Parallels desktop,…

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

 Migrations a froid/a chaud

 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]

 API Generique (Xen, Qemu, KVM, OpenVZ, ...)

 Relativement portable Solaris, Windows, OS-X...

 Operations de base
 Créer/détruire/suspendre/sauver/migrer

 Description XML des machines virtuelles

 Statistiques, support NUMA

 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

 Section IV : Panorama et comparaison des principales


solutions de virtualisation libres
 QEMU
 Machine virtuelle complète
 Techniquement très aboutie
 Émulation complète de machine (x86,ARM,MIPS,…)
 L’usage du module kQemu pour une virtualisation accélérée.
 Émulation par recompilation sur un modèle « just-intime»
 Gourmand en mémoire
 Sans accélération lent et charge l’hôte.
 Ex : VirtualBox et KVM reposent sur Qemu

26
Chap 1: Introduction à la virtualisation

 Section IV : Panorama et comparaison des principales


solutions de virtualisation libres
 VirtualBox
 Machine virtuelle, émule un PC complet
 Support des instructions de virtualisation
 Solution de virtualisation efficace
 Repose sur Qemu (au boot au moins)
 Gourmand en mémoire
 Simple à utiliser

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

 Chacune son contexte

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….

Installer une machine virtuelle


=
Installer une machine réelle

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

 VBOX : Fichier de configuration de la machine virtuelle.


Contient toutes les informations matériel de la vm
 Les snapshot de la vm
 VDI : instantanés, fichiers de différenciation 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

 On commence par restaurer l'état initial de MV

 Autre cas d'utilisation .. ?


 Démo ...

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

 La diffuse auprès des étudiants


 Les étudiants importe l'appliance
 Autres cas d'utilisation ?
 Sauvegarde, mobilité, …
 Démo ...

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

 Des cas d'utilisation .. ?


 Démo ...

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, …

 Autres cas d'utilisation .. ?


 Démo ...

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

 Son adresse IP est attribuée par un serveur DHCP


interne VirtualBox
 La machine n’est pas accessible de l’extérieur
 Possibilité de créer des réseaux Host-only

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>

 Exemple : un container avec pour nom container_xenial,


pour la distribution Ubuntu, sous la release Xenial, ayant
une architecture amd64,

sudo lxc-create -t download -n container_xenial -- -d ubuntu -r xenial -a amd64

 Pour lister le container fraîchement créé :


sudo lxc-ls --fancy

 Pour démarrer le container portant le nom de container_xenial :

sudo lxc-start -n container_xenial


66
Chap 3: LXC, une solution de virtualisation
légère (conteneur)
 Section III : Création et lancement de conteneurs
 Pour démarrer/arrêter un conteneur :
 lxc-start -n <nom du conteneur>
 lxc-stop -n <nom du conteneur>
 Pour obtenir des informations détaillées sur le
conteneur :
 lxc-info -n <nom du conteneur>
 Pour supprimer un conteneur
 lxc-destroy -n <nom du conteneur>
 Pour créer un snapshot de l'état d'un conteneur
 lxc-snapshot -n <nom 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

 OS invité Linux, FreeBSD, MS Windows, Mac OSX, etc,,,


 Live Migration
 S’interface avec Libvirt

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

$ sudo apt install -y qemu qemu-kvm libvirt-daemon libvirt-clients bridge-utils virt-manager

• qemu package (quick emulator) c’est une application qui


permet la virtualization matérielle.
• qemu-kvm package : c’est le KVM package
• libvritd-daemon : le deamon de virtualization.
• bridge-utils package : permet de créer un pont (bridge
connection) pour permettre aux autres utilisateurs d’acceder à
la machine virtuelle
• virt-manager : c’est une application permettant la gestion des
machines virtuelles à travers l’interface graphique .

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

 Permet donc d’avoir des fonctions de commutation spanning tree, multiple


port ethernet, port de type channel bonding, vlan, ...

 Pour utiliser le mode Bridge, il faut installer le paquetage bridge-utils

 Libvirt utilise des ponts (bridges) à l’ intérieur du Dom0

 Offre la possibilité de gérer des services réseaux sur l’OS invité

 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

 Permet aux machines virtuelles d’accéder aux réseaux internet et


local

 Contrôlé par libvirt via l’hôte et des règles de translation avec


iptables

 Les machines ne sont pas accessibles via le réseau

 Définit par un fichier xml dans libvirt

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

 Gestion distante des Dom0, DomU

 Gestion distante des réseaux virtuels et interfaces, du stockage

 Monitoring des hyperviseurs(Dom0) et machines virtuelles


(DomU)

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

 Section I : Définir et comparer les Dockers


 Section II : Créer, lancer et partager des images Docker
avec Dokerfiles
 Section III : Orchestrer des images Docker grâce à
Docker Compose.
 Section IV : Orchestrer des images Docker grâce à
Docker Swarm.

93
Chap 5: Docker, une solution de
virtualisation légère

 Section I : Définir et comparer les Dockers


 Dans la vision Docker, un conteneur ne doit faire tourner
qu'un seul processus.
 Cas d'une stack LAMP (Linux, Apache, MySQL, PHP), nous
devons créer 3 conteneurs différents, un pour Apache, un
pour MySQL et un dernier pour PHP.
 Dans un conteneur LXC ou OpenVZ, nous aurions fait
tourner l'ensemble des 3 services dans un seul et unique
conteneur.

94
Chap 5: Docker, une solution de
virtualisation légère

 Section I : Définir et comparer les Dockers


 Docker répond à une problématique forte dans le monde du
développement :
 Exemple : vous êtes dans une équipe de 10 personnes et
chacun utilise un OS différent (Ubuntu, macOS, Windows,
CentOS, etc.). Comment faire pour avoir un environnement
unifié et fonctionnel chez l'ensemble des développeurs ?
 Docker répond à ces problématiques en créant des
conteneurs. Grâce à Docker, vous n'aurez plus de problème de
différence d'environnement, et votre code marchera partout !

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).

 Docker est utilisé à tous les niveaux de l'infrastructure


(CI / Développement / Production) ;

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 :

 Docker serach debian


 Téléchargement de l’image de Docker Hub
 Docker pull debian: latest
 Liste des images téléchargées
 docker images –a
 Suppression de l’image:
 docker rm iDebian

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

Vous aimerez peut-être aussi