Virtualisation & Cloud Computing Mehrez Ben Soltan S/D de la Technologie de linformation et de la communication Plan
2
D finitions
Virtualisation compl te
Para-Virtualisation
Virtualisation au niveau de lOS
Int r ts de la virtualisation
Virtualisation des serveurs
3
La virtualisation des serveurs permet dex 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 lefficacit globale et r duire les co ts.
Techniques de virtualisation
9
On distingue principalement trois techniques de virtualisation:
Para-virtualisation
Virtualisation compl te
Cloisonnement.
Para-Virtualisation
10
Dans une solution de para-virtualisation, lOS invit est modifi
pour tre ex cut par la VM.
Les modifications effectu es visent rendre lOS invit au
courant du fait qu'il s'ex cute dans une VM.
LOS invit collabore plus troitement avec lOS 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 dOS 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 lOS 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
virtualization)
14
Permet de faire fonctionner nimporte quel OS en tant
quinvit 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.
Advertisement
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 lutilisateur 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 lappelle aussi virtualisation au niveau de
lOS.
Un isolateur est un logiciel permettant disoler
lex cution des applications dans ce qui sont
appel s des contextes, ou bien zones
dex cution (S paration des processus
sex 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
Advertisement
Exemple
Quand vous travaillez sur Linux et/ou Unix, on
parle de racine pour identifier la base du syst me
de fichier repr sent e par le nom de r pertoire /
De ce r pertoire racine d coule:
chroot srv test
/
chroot /srv/test
/
C'est dire l'arborescence du syst me.
Le principe de chroot est de d finir une
sous-arborescence du syst me de fichier
visible comme la racine du syst me de
fichier.
Par exemple, si nous cr ons les r pertoires
ci-dessous :
En appelant chroot : chroot /srv/test
le shell en cours ne verra que le contenu
de /srv/test mais au lieu de voir le nom de
r pertoire /srv/test il verra la racine /
chroot
22
Des cas dusage :
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 disolation :
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
Advertisement
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.
Lisolation permet de cr er des environnements logiciels
isol s utilisant le mat riel r el et le noyau courant.
Virtualisation Vs Isolation
29
Lisolation 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 lisolation, il nest pas possible dutiliser des
noyaux diff rents en m me temps.
Lisolation 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 dimportantes 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:
Advertisement
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 charge des serveurs
V
V
M M
V
M
V
M
V
V
V
M M M
V
M
Cluster
Au niveau des clusters:
Scalabilit facile
Scalabilit facilit : ajout de nouvelles ressources au pool de ressources
VM
VM
VM
VM
VM
Virtual Resource Pools
Cluster
Au niveau des clusters:
Memory Overcommitment
Memory Sharing
Memory Ballooning
Memory Swapping
70%
70%
20%
VM 3
2 GB
VM 2
2 GB
VM 1
2 GB
VM 3
2 GB
VM 3
2 GB
VM 3
2 GB
VM 3
2 GB
VM 2
2 GB
VM 1
2 GB
Hypervisor
4 GB