Premier pas vers la virtualisation
r Ensemble des techniques matérielles et/ou logicielles
qui permettent de faire fonctionner simultanément
sur une seule machine plusieurs systèmes
d’exploitation
r IBM l’utilise en 1967 pour optimiser le partage de
grosses machines entre différents processus
7
Intérêts de la virtualisation
8
La virtualisation d’applications
r Intercepter toutes les opérations d’accès ou
de modification de fichiers ou de la base de
registre
r Afin de les rediriger de manière totalement
transparente vers une localisation virtuelle
m Wine permet d’executer certains programmes
Windows sous ubuntu http://www.winehq.org/
Application Application Application Application
Couche virtuelle
Système d’exploitation
Matériel
9
La virtualisation de réseaux
r Elle consiste à partager une même
infrastructure physique (débit des liens,
ressources CPU des routeurs,...) au profit de
plusieurs réseaux virtuels isolés
m VLAN
r 3 types de VLAN
m Port-based
m MAC-based
m IP-Based
r Réduction trafic de broadcast, sécurité,
meilleure flexibilité
10
La virtualisation de stockage
r Dans une machine virtuelle, les données sont
stockées sur un disque dur virtuel
r Ce disque dur se présente sous forme de
fichier dans le système de fichiers de l'hôte :
m VHDchez Microsoft, VDI chez Oracle, VMDK chez
VMWare, OVF pour le format ouvert
11
Objectifs de la VS
r Adjoindre un périphérique de stockage supplémentaire
sans interruption des services
r Regrouper des unités de disques durs de différentes
vitesses, de différentes tailles et de différents
constructeurs ;
r Réallouer dynamiquement de l’espace de stockage
m Un serveur nécessitant un espace de stockage supplémentaire
pourra rechercher des ressources non allouées sur le disque
logique
m Inversement, un serveur nécessitant moins d’espace de
stockage pourra libérer cet espace et le rendre disponible pour
d’autres serveurs
12
La virtualisation de serveurs
r Faire fonctionner simultanément, sur un seul
serveur physique, plusieurs serveurs virtuels
r La virtualisation de serveur permet de :
m Regrouper plusieurs serveurs physiques sous-
employés sur un seul hôte qui exécute des systèmes
virtuels ;
m Réduire la surface au sol, la consommation
électrique, le besoin de climatisation et le nombre
d'administrateurs ;
m Réaliser des économies (locaux, consommation
électrique, personnel).
13
Les hyperviseurs
r La virtualisation ajoute une couche de supervision
supplémentaire (l'hyperviseur), qui
m d'une part, assure la gestion de toutes les ressources
physiques,
m d'autre part, propose plusieurs environnements étanches
où un OS autonome pourra tourner dans chacun d'entre
eux
r Un hyperviseur est une plateforme de virtualisation qui
permet à plusieurs OS de travailler sur une même machine
physique en même temps
r Nous avons
m Hyperviseur de type 1 ou natif ou « bare metal »
m Hyperviseur de type 2
14
Hyperviseur de Type 1
r C’est un logiciel qui s’exécute directement
sur une plateforme matérielle qui est
considérée comme un outil de contrôle du
système d’exploitation
r Un OS secondaire, de ce fait, peut être
exécuté au dessus du matériel
r Ces systèmes invités ont conscience d’être
virtualisés
r Les processeurs AMD-V et Intel VT ont
des instructions de virtualisation matérielle
15
Hyperviseur de Type 1 (2)
r Quelques exemples : Xen, Oracle VM, ESX
Server de VMware
16
Hyperviseur de Type 2
r Il s’exécute à l’intérieur à l’intérieur d’un autre
OS
r Un OS invité s’exécutera en troisième niveau
au-dessus du matériel
r Les OS invités n’ont pas conscience d’être
virtualisés, ils n’ont pas besoin d’être adapté
r Quelques exemples: VMware Workstation,
VMware fusion, l’hyperviseur open source
QEMU, Virtual PC et virtual server, virtualbox
d‘oracle, Parallels Workstation de Swsoft, et
Parallels Desktop
17
Hyperviseur de Type 2 (suite)
18
Marché du contrôle des infrastructures
r Les acteurs s'affrontent pour le contrôle
du marché de l'Infrastructure
r VMware / Groupe EMC²
r XenSource / Groupe CITRIX
19
Architectures de virtualisation de serveurs
20
Mobilités des machines virtuelles
21
Types de système de gestion de
virtualisation
r Les technologies les plus répandues sont :
m la virtualisation complète
m la para-virtualisation
m la virtualisation assistée par le matériel
m le cloisonnement
22
Virtualisation complète
r La virtualisation complète (full virtualization),
dénommée ainsi par opposition à la para-
virtualisation, consiste à émuler l’intégralité
d’une machine physique pour le système invité
r Le système invité « croit » s’exécuter sur une
véritable machine physique
r Le logiciel chargé d’émuler cette machine
s’appelle une machine virtuelle, son rôle est de
transformer les instructions du système invité
en instructions pour le système hôte
23
Virtualisation complète(2)
r Le système s’exécutant dans la machine virtuelle est un
système d’exploitation à part entière, tel qu’on pourrait
en installer sur une machine physique : Microsoft
Windows, GNU/Linux, Mac OS X
r Exemples :
m Microsoft VirtualPC et Microsoft VirtualServer :
propriétaire, émulateur de plateforme x86
m Parallels : propriétaire, superviseur x86 pour MAC
OSX(Intel)
m VirtualBox : émulateur de plateforme x86
m VMware : propriétaire, émulateur de plateforme x86
(VMware Server, VMware Player, VMware Workstation,
VMware Fusion)
24
Virtualisation complète(3)
25
La para-virtualisation
r C’est le système d’exploitation complet qui
s’exécute sur le matériel émulé par une machine
virtuelle, cette dernière s’exécutant au dessus
d’un système hôte
r Le système invité est modifié pour être exécuté
r La para-virtualisation évite d'utiliser un système
hôte complet pour faire la virtualisation
mA la place, un noyau très léger de système
d'exploitation hôte est utilisé
m Les performances sont bien meilleures en para-
virtualisation qu'en virtualisation complète
26
Exemples de para-virtualisation
r Xen : projet Opensource précurseur dans le monde du libre,
version commercialisée par Citrix
r KVM : projet hyperviseur intégré dans le noyau linux
(Développé par Qumranet, racheté par RedHat)
r ESX/ESXi : hyperviseur leader de VMWare
r Hyper-V : hyperviseur de Microsoft
Apps Apps Apps
S.E. privilégié Système invité Système invité
Drivers drivers drivers
Hyperviseur
Matériel
27
La virtualisation assistée par le matériel
r Il s’agit en réalité d’une extension
du principe de virtualisation totale
r La principale modification qui est
apportée est l’ajout d’extensions
processeur de virtualisation (Intel-
VT ou AMD-V)
m Ces instructions ont été
implémentées dans les
processeurs afin de pouvoir
améliorer la virtualisation totale
r Emulation du matériel mais moins de
pertes de performances
r Systèmes d’exploitation invités non
modifiés
28
Le cloisonnement ou
conteneurisation
r Le cloisonnement vise à séparer fortement les
processus s’exécutant sur un même système
d’exploitation
r Chaque processus est isolé dans un conteneur
dont il est théoriquement impossible de sortir
r Le but principal de cette technologie est
d’améliorer la sécurité du système d’exploitation
et des applications
Environnement Environnement Environnement
Ou Conteneur Ou Conteneur Ou Conteneur
Application Application Application
Système hôte
http://edmi.ucad.sn/~gueye
Matériel 29
Les conteneurs sont à la mode
r Chaque VM s'exécute alors sur un hyperviseur,
qui s'exécute à son tour sur un système
d'exploitation hôte, qui lui-même fait
fonctionner le matériel du serveur physique.
r Chaque itération du système d'exploitation hôte
et des fichiers binaires associés risque
d'entraîner des doublons entre les VM
m Celagaspille la mémoire du serveur et limite
forcément le nombre de VM prises en charge par
chaque serveur
30
Container vs VM
r Comme le container n'embarque pas d'OS, à la différence
de la machine virtuelle, il est par conséquent beaucoup
plus léger que cette dernière
31
Concepts de conteneurisation
r Le concept de conteneurisation permet
aux instances virtuelles de partager un
système d'exploitation hôte unique, avec
ses fichiers binaires, bibliothèques ou
pilote
r 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
r On utilise donc le même système
d'exploitation (OS) hôte pour plusieurs
conteneurs, au lieu d'installer un OS (et
d'en acheter la licence) pour chaque VM
invitée
32
Docker: porte étendard des
conteneurs
r Docker (https://www.docker.com/what-docker) permet
d'embarquer une application dans un container virtuel qui
pourra s'exécuter sur n'importe quel machine
r Grâce à la portabilité des applications et à sa technologie
open source, Docker suscite un formidable engouement
r Google, Microsoft Azure, Amazon Web Services utilisent
Docker pour créer des infrastructures prenant en charge
les conteneurs
r Il fournit à l'application un environnement inclus dans le
conteneur, qui est portable d'une plateforme à l'autre
r Elle est en partie proposée en open source (sous
licence Apache 2.0) par une société américaine, également
appelée Docker, qui a été lancée par : Solomon Hykes
33
34
Avantages de la virtualisation
r Optimisation des ressources (répartition des machines
virtuelles sur les machines physiques en fonction des charges
respectives)
r Migration à chaud (déplacement d’un OS d’une machine à un
autre sans interruption de service)
r Economie sur le matériel par mutualisation (consommation
électrique, entretien physique, etc.)
r Sécurisation et/ou isolation d’un réseau
r Diminution des risques liés au dimensionnement des serveurs
lors de la définition de l’architecture d’une application,
l’ajout de ressources étant alors transparent
r Amélioration de la prévention et de la gestion des pannes
ainsi que le plan de reprise de l’activité du système
r La VM sert donc d'unité de facturation et d'allocation
dans le cloud de type IaaS
35
Inconvénients de la virtualisation
r Si la machine tombe en panne, alors les services fournis
par les environnements virtuels sont interrompus
r Les outils de virtualisations sont des applications très
gourmandes en ressources et nécessitent des machines
puissantes
m Un manque de mémoire ou de capacité CPU peut faire
chuter les performances de manière dramatique
r La virtualisation peut réduire les performances des
applications
m 3% d’overhead avec la virtualisation XEN par rapport
à un OS non virtualisé
36
Une impossibilité de virtualisation
r Il n’est pas possible de prédire si une application
se comportera normalement une fois virtualisée
r Les bases de données sont des applications qui
sont connues pour rencontrer des difficultés lors
de leur virtualisation
r Les bases de données ont recours à de nombreux
accès disques et le délai d’accès supplémentaire
introduit par la virtualisation peut dans certain
cas rendre l’application inutilisable
37
Travail à faire (Partie 1)
r Rechercher les définitions de « Machine virtuelle » et
« Hyperviseur ».
r Quelles sont les principaux outils pratiques de
virtualisation se trouvant sur le marché ?
r Pour chaque outil de virtualisation, donner sa définition,
son histoire, ses fonctionnalités et ses utilisations
r Réaliser un bilan et un tableau comparatif des
différents outils recherchés en se basant sur des
critères tels que : types de virtualisation, OS supporté,
sécurité,…
38