Vous êtes sur la page 1sur 31

Virtualisation & Cloud

Computing

Mehrez Ben Soltan


S/D de la Technologie de l’information et de la
communication
Plan

 Définitions
 Virtualisation complète
 Para-Virtualisation
 Virtualisation au niveau de l’OS
 Intérêts de la virtualisation

Virtualisation des serveurs

 La virtualisation des serveurs permet d’exécuter


plusieurs SE sur un même serveur physique sous la forme
de VM, dont chacune peut accéder aux ressources de
calcul du serveur sous-jacent.

 Consiste aussi à regrouper un cluster de serveurs en une


seule et même ressource consolidée, de façon à
optimiser l’efficacité globale et à réduire les coûts.
Techniques de virtualisation

 On distingue principalement trois techniques de virtualisation:


 Para-virtualisation

 Virtualisation complète

 Cloisonnement.
Para-Virtualisation

10

 Dans une solution de para-virtualisation, l’OS invité est modifié


pour être exécuté par la VM.
 Les modifications effectuées visent à rendre l’OS invité « au
courant » du fait qu'il s'exécute dans une VM.
 L’OS invité collabore plus étroitement avec l’OS hôte, en utilisant
une interface spécifique, au lieu d'accéder au matériel virtuel via
les couches d'abstraction (cas de la virtualisation complète)

 Un paravirtualiseur est un noyau hôte allégé et optimisé pour ne


faire tourner que des noyaux d’OS invités, adaptés et optimisés.
 Les applications en espace utilisateur des OS invités tournent
ainsi sur une pile de deux noyaux optimisés.
Para-Virtualisation

11

 En pratique, un système para-virtualisé possède


quelques pilotes de périphériques et sous-systèmes
modifiés, qui lui permettent de communiquer directement
avec le système hôte, sans avoir passer par une couche
d'abstraction pour parler au matériel virtuel.
Para-Virtualisation

12

Avantages :
 un gain de performances, du fait du contournement des
couches d'abstraction
 le système invité collabore activement avec la VM, il ne se
comporte plus comme un OS à part entière s'exécutant
directement sur du matériel. Il adapte son comportement pour
que les accès au matériel soient des appels directs via des
pilotes.
Limites :
 Comme l’OS invité doit être modifié pour être
paravirtualisé, l'usage de la para-virtualisation est donc
généralement limité aux systèmes libres.
Para-Virtualisation

13

Quelques hyperviseurs :

 Citrix XENServer

 VMWare vSphere

 Hyper-V (Microsoft)

 KVM
Virtualisation complète (full
14
virtualization)
 Permet de faire fonctionner n’importe quel OS en tant
qu’invité dans une VM: Windows, GNU/Linux, Mac OS X,
etc.
 La virtualisation complète consiste à émuler l'intégralité
d'une machine physique pour le système invité.
 Le système invité « croit » s'exécuter sur une véritable
machine physique.

 La caractéristique principale de la virtualisation complète :


les systèmes invités n'ont pas à être modifiés pour être
utilisés dans une VM utilisant une technologie de
virtualisation.
Virtualisation complète

15

 Avantage: Pour l’utilisateur final, ce type de


virtualisation est la plus simple à mettre en place et est
la plus pratique.

 Limite: L'empilement de couches d'abstraction et


l'impossibilité pour la VM d'accéder directement au
matériel, affectent les performances du système invité
qui seront assez éloignées de celles d'un système
« natif ».
Virtualisation complète

16

Quelques hyperviseurs
 VMWare Workstation

 Parallels Desktop for Windows et

Linux
 KVM: Intégré au noyau GNU/Linux
à partir de la version 2.6.20
Virtualisation complète

17

Usages principaux:
 Attribution dynamique des ressources : certains produits
(VmWare vSphere) permettent d'attribuer des ressources en
fonction de la consommation.
 Gestion de la haute disponibilité : certains produits
(VmWare vSphere) permettent de basculer des VM d'un
serveur à un autre en cas de panne
Virtualisation assistée par le matériel

18

 Consiste à introduire des fonctionnalités de la


virtualisation directement dans les processeurs des
machines physiques ce qui rend ainsi possibles des
solutions de la virtualisation complète des systèmes
invités non modifiés avec de très bonnes performances.
 Exemple: Les processeurs Intel-VT (Intel Virtualization
Technology) et AMD-V (Advanced Micro Devices
Virtualization)
 https://www.youtube.com/watch?v=gqZrarZiHp8
Isolateurs ou cloisonnement

19

 On l’appelle aussi virtualisation au niveau de


l’OS.

 Un isolateur est un logiciel permettant d’isoler


l’exécution des applications dans ce qui sont
appelés des contextes, ou bien zones
d’exécution (Séparation des processus
s’exécutant sur un même OS).
 La plupart des OS basés sur UNIX proposent
un moyen d'isoler les processus.
 Le plus répandu (et le plus ancien) est la
commande chroot, qui permet de créer un
environnement minimal contenant uniquement ce
qui est strictement nécessaire pour exécuter le
programme isolé.
chroot

20

Qu'est-ce qu'un chroot?


 Signifie change root

 La commande chroot permet d'isoler la racine du système de


fichier (le / de l'arborescence) pour une commande spécifique.
 La racine est la référence pour tous les chemins absolus utilisés
par un processus lui permettant d'accéder aux fichiers (librairies,
configurations, etc.) qui lui sont nécessaires.
 En réalité, cette racine est un paramètre du processus qu'il est
possible de modifier grâce à l'utilitaire chroot. Cela permet de
faire croire à ce processus que le dossier que nous lui avons fixé
comme racine, est l'origine de tous ses chemins absolus.
chroot

21

 Exemple  Le principe de chroot est de définir une


sous-arborescence du système de fichier
 Quand vous travaillez sur Linux et/ou Unix, on visible comme la racine du système de
parle de racine pour identifier la base du système fichier.
de fichier représentée par le nom de répertoire /
 Par exemple, si nous créons les répertoires
 De ce répertoire racine découle: ci-dessous :

chroot //srv/test
srv/test

 En appelant chroot : chroot /srv/test


 le shell en cours ne verra que le contenu
 C'est à dire l'arborescence du système. de /srv/test mais au lieu de voir le nom de
répertoire /srv/test il verra la racine /
chroot

22

Des cas d’usage :


 Mettre en prison les processus (jail): Elle permet par
exemple de lancer des processus critiques dans un dossier
isolé du reste du système.

 Elle permet aussi de créer des environnements qui


fonctionnent sur des règles différentes du reste du système: Il
est ainsi possible de faire tourner une debian au sein d'une
mandriva, ou encore un linux en 32bits au sein d'un linux 64
bits. La seule limitation est que le kernel doit être
compatible entre les deux distributions.
Isolateurs ou cloisonnement

23

 Autres solutions d’isolation :


 Linux-VServer : isolation des processus en user-space,
 BSD Jail : isolation en user-space,

 OpenVZ : libre, partitionnement au niveau noyau sous Linux


et Windows 2003. C'est la version open-source du logiciel
Virtuozzo.
 LXC (LinuX Containers) : libre, usage des Cgroups du noyau
Linux.
LXC

24

 Le chrooting a été fortement améliorée pour donner naissance


au principe de conteneurs avec par exemple LXC.
 Et c'est LXC qui à son tour a servi de base à Docker.

 LXC repose sur la notion de groupes de contrôle Linux, les


cgroups.
 Chaque groupe de contrôle offre aux applications une isolation totale
des ressources (notamment processeur, mémoire et accès E/S) sans
recourir à des machines virtuelles à part entière.
 Référence originale: « Containers: Challenges with the memory
resource controller and its performance”
 https://pdfs.semanticscholar.org/4708/1fd3577460128925282ba5b
8847190d7c8d9.pdf
LXC

25

 Les LXC implémentent :


 La gestion de ressources via les « groupes de contrôle de
processus » (implémentés via le système de
fichiers /cgroup) ;
 L'isolation de ressources via les nouveaux drapeaux (flags)
de l'appel système clone(2) (capable de créer plusieurs
types de nouveaux espaces de noms pour des choses telles
que les PID et le routage réseau) ;
 Plusieurs mécanismes d'isolation additionnels (tels que le
drapeau -o newinstance du système de fichiers devpts).
Cgroups

27

 Cgroups fournit :
 Limitation des ressources : des groupes peuvent être mis en place afin
de ne pas dépasser une limite de mémoire — cela inclut aussi le cache
du système de fichier.
 Priorisation : certains groupes peuvent obtenir une plus grande part
de ressources processeur ou de bande passante d'entrée-sortie.
 Comptabilité : permet de mesurer la quantité de ressources
consommées par certains systèmes en vue de leur facturation par
exemple.
 Isolation : séparation par espace de nommage pour les groupes, afin
qu'ils ne puissent pas voir les processus des autres, leurs connexions
réseaux ou leurs fichiers.
 Contrôle : figer les groupes ou créer un point de sauvegarde et
redémarrer.
Virtualisation Vs Isolation

28

 La virtualisation permet de créer des


environnements matériels virtuels complets mais lourd
en terme de ressources.
 L’isolation permet de créer des environnements logiciels
isolés utilisant le matériel réel et le noyau courant.
Virtualisation Vs Isolation

29

 L’isolation est:
 plus performante (évite la dégradation de performance causé
par l'ajout des couches de virtualisation)
 Economique en mémoire (partager en particulier le code du
noyau).
 Ces environnements sont donc bien adaptés au déploiement
de nombreux serveurs virtuels de test ou développement
basés sur un même OS.
 Par contre, avec l’isolation, il n’est pas possible d’utiliser des
noyaux différents en même temps.

 L’isolation a donné naissance à la conteneurisation.


De la Virtualisation à la Conteneurisation

30

Avec la virtualisation:
 Problème de performance: Une VM imite intégralement un serveur (un OS
complet, avec ses pilotes, fichiers binaires ou bibliothèques, etc.). Chaque
VM s'exécute sur un hyperviseur (qui s'exécute parfois à son tour sur un os
hôte) qui lui-même fait fonctionner le matériel du serveur physique.
 Cela a un coût, notamment au niveau de l'hyperviseur et OS invités, qui
requièrent chacun beaucoup de ressources matérielles et de coûteuses
licences.
 Le nombre de VM qu'un serveur peut héberger est limité par la taille
des VM.

 La résurgence de la conteneurisation vise pallier ces lacunes de la


virtualisation:
 La conteneurisation vise à virtualiser les applications sans trop alourdir le
système.
De la Virtualisation à la Conteneurisation

32

 A la base, le concept de conteneurisation permet aux applications de


partager un OS hôte unique, avec ses fichiers binaires, bibliothèques ou
pilotes.
 Cette approche réduit le gaspillage des ressources car chaque conteneur
ne renferme que l'application et les fichiers binaires ou bibliothèques
associés.
 Comme le conteneur de chaque application est libéré de la charge d'un
OS, il est nettement plus petit, plus facile à migrer ou à télécharger, plus
rapide à sauvegarder ou à restaurer.
 Il en résulte d’importantes économies mémoires et des performances
accrues comparées à une virtualisation matérielle, donc une meilleure
exploitation des machines physiques.
 Le rôle de l'hyperviseur est alors assuré par un moteur de
conteneurisation, tel que Docker (un LXC augmenté).
Machines virtuelles VS Conteneur

33
3. Intérêts de la
viratualisation

37
Au niveau des clusters:

Haute disponibilité

 Assurer la haute disponibilité (High Availability HA)


VM VM VM VM VM VM VM V
M

Serveurs

Switchs Virtuels

Stockage
Cluster
Au niveau des clusters:

Load Balacing

 Répartition des charges selon la


V charge des serveurs
M
V V V V V V V
M M M M M M M

Cluster

Au niveau des clusters:

Scalabilité facile

 Scalabilité facilité: ajout de nouvelles ressources au pool de ressources


VM

VM

Virtual Resource Pools

VM

VM

VM

Cluster

Au niveau des clusters:


Memory Overcommitment
Memory Sharing
Memory Ballooning Memory Swapping

70%

VM 3
VM 3 VM 3
2 GB
2 GB 2 GB

70%

VM 2 VM 2 VM 3
2 GB 2 GB 2 GB

20%
VM 1 VM 1 VM 3
2 GB 2 GB 2 GB

Hypervisor

4 GB