1
INTRODUCTION A LA
VIRTUALISATION
Séance 1
Année universitaire 2016/2017 – Semestre 1
2
I. Définition de la virtualisation (1)
La virtualisation est le processus qui
consiste à créer une version logicielle (ou
virtuelle) d’une entité physique. La
virtualisation peut s’appliquer aux
applications, aux serveurs, au stockage et
aux réseaux. Il s'agit de la manière la plus
efficace de réduire les dépenses
informatiques tout en stimulant l’efficacité
et la flexibilité des entreprises de toute taille.
3
I. Définition de la virtualisation (2)
D’après Wikipédia, la virtualisation est
« l’ensemble des techniques matérielles et/ou
logicielles qui permettent de faire fonctionner
sur une seule machine plusieurs systèmes
d’exploitation et/ou plusieurs applications,
séparément les uns des autres, comme s’ils
fonctionnaient sur des machines physiques
distinctes ».
4
I. Définition de la virtualisation (3)
La virtualisation consiste à faire fonctionner
un ou plusieurs systèmes d’exploitation /
applications comme un simple logiciel, sur un
ou plusieurs ordinateurs - serveurs / système
d'exploitation, au lieu de ne pouvoir en
installer qu'un seul par machine. Ces
ordinateurs virtuels sont appelés serveur
privé virtuel (Virtual Private Server ou VPS)
ou encore environnement virtuel (Virtual
Environment ou VE).
5
Serveur
Un serveur est un ordinateur utilisé à distance
depuis différents postes de travail, ou autres
serveurs. Il possède des ressources matérielles,
principalement CPU, mémoire, disques et interfaces
réseau. Ces ressources sont utilisées par des
applications, non pas de manière directe, mais en
s’appuyant sur un système d’exploitation.
6
Système d’exploitation (1)
Le système d'exploitation (noté SE ou OS,
abréviation du terme anglais Operating
System), est chargé d'assurer la liaison entre
les ressources matérielles, l'utilisateur et les
applications (traitement de texte, jeu vidéo,
...).
7
Système d’exploitation (2)
8
II. Principes de la virtualisation (1)
La virtualisation de serveurs est un ensemble
de techniques et d’outils permettant de faire
tourner plusieurs systèmes d’exploitation sur
un même serveur physique.
Le principe de la virtualisation est donc un
principe de partage : les différents systèmes
d’exploitation se partagent les ressources du
serveur.
9
II. Principes de la virtualisation (2)
Pour être utile de manière opérationnelle, la
virtualisation doit respecter deux principes
fondamentaux :
Le cloisonnement : chaque système
d’exploitation a un fonctionnement
indépendant, et ne peut interférer avec les
autres en aucune manière.
La transparence : le fait de fonctionner en
mode virtualisé ne change rien au
fonctionnement du système d’exploitation et
a fortiori des applications.
10
II. Principes de la virtualisation (3)
La transparence implique la
compatibilité: toutes les applications peuvent
tourner sur un système virtualisé, et leur
fonctionnement n’est en rien modifié.
Pour ce qui est du cloisonnement, il existe
bien sûr une interférence passive liée à la
concurrence dans le partage des
ressources. Mais nous verrons que ce
partage peut être parfaitement contrôlé.
11
III. Les hyperviseurs
Un hyperviseur est une plate-forme de
virtualisation qui permet à plusieurs
systèmes d’exploitation de travailler sur
une même machine physique en même
temps.
12
III. Les hyperviseurs
13
III.1. Hyperviseur de type 1 (1)
Un hyperviseur de type 1, ou natif, voire
« bare metal » est un logiciel qui s’exécute
directement sur une plateforme matérielle;
cette plateforme est ainsi considérée comme
un outil de contrôle de système
d’exploitation.
Un système d’exploitation secondaire peut, de
ce fait, être exécuté au-dessus du matériel.
14
III.1. Hyperviseur de type 1 (2)
L’hyperviseur de type 1 est un noyau hôte
allégé et optimisé pour ne faire tourner
initialement que des noyaux de systèmes
d’exploitation invités adaptés et optimisés à
cette architecture spécifique, ces systèmes
d’exploitation ayant «conscience» d’être
virtualisés. Sur des processeurs ayant les
instructions de virtualisation matérielle (AMD-
V et Intel-VT), le système d’exploitation n’a
plus besoin d’être modifié pour pouvoir être
exécuté sur un hyperviseur de type 1.
15
III.2. 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. Un système d’exploitation
invité s’exécutera donc en troisième niveau
au-dessus du matériel. Les systèmes
d’exploitation invités n’ayant pas conscience
d’être virtualisés, ils n’ont pas besoin d’être
adaptés.
16
IV. Les différents types de la
virtualisation
Il existe trois types de virtualisation :
La virtualisation complète
La para-virtualisation
Les isolateurs
17
IV.1. Virtualisation complète (1)
La virtualisation dite complète permet
de faire fonctionner n’importe quel
système d’exploitation en tant
qu’invité dans une machine
virtuelle. Pour l’utilisateur final, ce
type de virtualisation est le plus
simple à mettre en place et le plus
pratique.
18
IV.1. Virtualisation complète (2)
19
IV.1. Virtualisation complète (3)
Principe: L’hyperviseur crée un environnement
matériel complet simulant littéralement un
nouvel ordinateur complet, avec du «faux
matériel».
A quelques rares exceptions, le système
d’exploitation invité (installé dans la machine
virtuelle) ne communique qu’avec ce faux
matériel, rendant étanche l’environnement
virtualisé.
20
IV.1. Virtualisation complète (4)
Limitations: Ce type de virtualisation ne
permet de virtualiser que des systèmes
d’exploitation prévus pour la même
architecture matérielle que le processeur
physique de l’ordinateur hôte. Par exemple,
un ordinateur équipé d’un processeur Intel
x86 sera incapable de virtualiser un système
d’exploitation prévu pour fonctionner dans
une architecture PowerPC.
21
IV.1. Virtualisation complète (5)
Quelques hyperviseurs de virtualisation
complète:
• VirtualBox
• VMWare Player, VMWare Workstation
• Parallels Desktop for Windows et Linux
• KVM
22
IV.2. Paravirtualisation (1)
La paravirtualisation fait intervenir un
hyperviseur. Il s’agit d’un noyau allégé sur
lequel viendront se greffer les systèmes
invités. Contrairement à un système
traditionnel de machines virtuelles où la
virtualisation est transparente, avec la
paravitualisation, le système invité doit avoir
conscience qu’il tourne dans un
environnement virtuel ce qui implique
d’employer un noyau modifié.
23
IV.2. Paravirtualisation (2)
24
IV.2. Paravirtualisation (3)
Ce type de virtualisation permet des
performances bien plus importantes que la
virtualisation totale.
Quelques hyperviseurs de virtualisation
assistée:
• XEN
• VMWare ESX/ESXi
• Hyper-V (Microsoft)
• xVM
25
IV.3. Les isolateurs (1)
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. L’isolateur permet ainsi de faire
tourner plusieurs fois la même application
dans un mode multi-instances (plusieurs
instances d’exécution) même si elle n’était
pas conçue pour ça.
26
IV.3. Les isolateurs (2)
27
IV.3. Les isolateurs (3)
Cette solution est très performante, du fait du
peu d’overhead (temps passé par un système
à ne rien faire d’autre que se gérer), mais les
environnements virtualisés ne sont pas
complètement isolés. La performance est
donc au rendez-vous, cependant on ne peut
pas vraiment parler de virtualisation de
systèmes d’exploitation. Uniquement liés aux
systèmes Linux, les isolateurs sont en fait
composés de plusieurs éléments et peuvent
prendre plusieurs formes.
28
IV.3. Les isolateurs (4)
Exemples:
• Linux-Vserver (isolation des processus en
espace utilisateur)
• Chroot (isolation changement de racine)
• BSD Jail (isolation en espace utilisateur)
• Open VZ (partionnement au niveau noyau
sous Linux) : libre
• LXC (usage des Cgroups du noyau Linux)

Cloud-S1-La virtualisation-TECHNOLOGIE.pdf

  • 1.
    1 INTRODUCTION A LA VIRTUALISATION Séance1 Année universitaire 2016/2017 – Semestre 1
  • 2.
    2 I. Définition dela virtualisation (1) La virtualisation est le processus qui consiste à créer une version logicielle (ou virtuelle) d’une entité physique. La virtualisation peut s’appliquer aux applications, aux serveurs, au stockage et aux réseaux. Il s'agit de la manière la plus efficace de réduire les dépenses informatiques tout en stimulant l’efficacité et la flexibilité des entreprises de toute taille.
  • 3.
    3 I. Définition dela virtualisation (2) D’après Wikipédia, la virtualisation est « l’ensemble des techniques matérielles et/ou logicielles qui permettent de faire fonctionner sur une seule machine plusieurs systèmes d’exploitation et/ou plusieurs applications, séparément les uns des autres, comme s’ils fonctionnaient sur des machines physiques distinctes ».
  • 4.
    4 I. Définition dela virtualisation (3) La virtualisation consiste à faire fonctionner un ou plusieurs systèmes d’exploitation / applications comme un simple logiciel, sur un ou plusieurs ordinateurs - serveurs / système d'exploitation, au lieu de ne pouvoir en installer qu'un seul par machine. Ces ordinateurs virtuels sont appelés serveur privé virtuel (Virtual Private Server ou VPS) ou encore environnement virtuel (Virtual Environment ou VE).
  • 5.
    5 Serveur Un serveur estun ordinateur utilisé à distance depuis différents postes de travail, ou autres serveurs. Il possède des ressources matérielles, principalement CPU, mémoire, disques et interfaces réseau. Ces ressources sont utilisées par des applications, non pas de manière directe, mais en s’appuyant sur un système d’exploitation.
  • 6.
    6 Système d’exploitation (1) Lesystème d'exploitation (noté SE ou OS, abréviation du terme anglais Operating System), est chargé d'assurer la liaison entre les ressources matérielles, l'utilisateur et les applications (traitement de texte, jeu vidéo, ...).
  • 7.
  • 8.
    8 II. Principes dela virtualisation (1) La virtualisation de serveurs est un ensemble de techniques et d’outils permettant de faire tourner plusieurs systèmes d’exploitation sur un même serveur physique. Le principe de la virtualisation est donc un principe de partage : les différents systèmes d’exploitation se partagent les ressources du serveur.
  • 9.
    9 II. Principes dela virtualisation (2) Pour être utile de manière opérationnelle, la virtualisation doit respecter deux principes fondamentaux : Le cloisonnement : chaque système d’exploitation a un fonctionnement indépendant, et ne peut interférer avec les autres en aucune manière. La transparence : le fait de fonctionner en mode virtualisé ne change rien au fonctionnement du système d’exploitation et a fortiori des applications.
  • 10.
    10 II. Principes dela virtualisation (3) La transparence implique la compatibilité: toutes les applications peuvent tourner sur un système virtualisé, et leur fonctionnement n’est en rien modifié. Pour ce qui est du cloisonnement, il existe bien sûr une interférence passive liée à la concurrence dans le partage des ressources. Mais nous verrons que ce partage peut être parfaitement contrôlé.
  • 11.
    11 III. Les hyperviseurs Unhyperviseur est une plate-forme de virtualisation qui permet à plusieurs systèmes d’exploitation de travailler sur une même machine physique en même temps.
  • 12.
  • 13.
    13 III.1. Hyperviseur detype 1 (1) Un hyperviseur de type 1, ou natif, voire « bare metal » est un logiciel qui s’exécute directement sur une plateforme matérielle; cette plateforme est ainsi considérée comme un outil de contrôle de système d’exploitation. Un système d’exploitation secondaire peut, de ce fait, être exécuté au-dessus du matériel.
  • 14.
    14 III.1. Hyperviseur detype 1 (2) L’hyperviseur de type 1 est un noyau hôte allégé et optimisé pour ne faire tourner initialement que des noyaux de systèmes d’exploitation invités adaptés et optimisés à cette architecture spécifique, ces systèmes d’exploitation ayant «conscience» d’être virtualisés. Sur des processeurs ayant les instructions de virtualisation matérielle (AMD- V et Intel-VT), le système d’exploitation n’a plus besoin d’être modifié pour pouvoir être exécuté sur un hyperviseur de type 1.
  • 15.
    15 III.2. Hyperviseur detype 2 Un hyperviseur de type 2 est un logiciel qui s’exécute à l’intérieur d’un autre système d’exploitation. Un système d’exploitation invité s’exécutera donc en troisième niveau au-dessus du matériel. Les systèmes d’exploitation invités n’ayant pas conscience d’être virtualisés, ils n’ont pas besoin d’être adaptés.
  • 16.
    16 IV. Les différentstypes de la virtualisation Il existe trois types de virtualisation : La virtualisation complète La para-virtualisation Les isolateurs
  • 17.
    17 IV.1. Virtualisation complète(1) La virtualisation dite complète permet de faire fonctionner n’importe quel système d’exploitation en tant qu’invité dans une machine virtuelle. Pour l’utilisateur final, ce type de virtualisation est le plus simple à mettre en place et le plus pratique.
  • 18.
  • 19.
    19 IV.1. Virtualisation complète(3) Principe: L’hyperviseur crée un environnement matériel complet simulant littéralement un nouvel ordinateur complet, avec du «faux matériel». A quelques rares exceptions, le système d’exploitation invité (installé dans la machine virtuelle) ne communique qu’avec ce faux matériel, rendant étanche l’environnement virtualisé.
  • 20.
    20 IV.1. Virtualisation complète(4) Limitations: Ce type de virtualisation ne permet de virtualiser que des systèmes d’exploitation prévus pour la même architecture matérielle que le processeur physique de l’ordinateur hôte. Par exemple, un ordinateur équipé d’un processeur Intel x86 sera incapable de virtualiser un système d’exploitation prévu pour fonctionner dans une architecture PowerPC.
  • 21.
    21 IV.1. Virtualisation complète(5) Quelques hyperviseurs de virtualisation complète: • VirtualBox • VMWare Player, VMWare Workstation • Parallels Desktop for Windows et Linux • KVM
  • 22.
    22 IV.2. Paravirtualisation (1) Laparavirtualisation fait intervenir un hyperviseur. Il s’agit d’un noyau allégé sur lequel viendront se greffer les systèmes invités. Contrairement à un système traditionnel de machines virtuelles où la virtualisation est transparente, avec la paravitualisation, le système invité doit avoir conscience qu’il tourne dans un environnement virtuel ce qui implique d’employer un noyau modifié.
  • 23.
  • 24.
    24 IV.2. Paravirtualisation (3) Cetype de virtualisation permet des performances bien plus importantes que la virtualisation totale. Quelques hyperviseurs de virtualisation assistée: • XEN • VMWare ESX/ESXi • Hyper-V (Microsoft) • xVM
  • 25.
    25 IV.3. Les isolateurs(1) 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. L’isolateur permet ainsi de faire tourner plusieurs fois la même application dans un mode multi-instances (plusieurs instances d’exécution) même si elle n’était pas conçue pour ça.
  • 26.
  • 27.
    27 IV.3. Les isolateurs(3) Cette solution est très performante, du fait du peu d’overhead (temps passé par un système à ne rien faire d’autre que se gérer), mais les environnements virtualisés ne sont pas complètement isolés. La performance est donc au rendez-vous, cependant on ne peut pas vraiment parler de virtualisation de systèmes d’exploitation. Uniquement liés aux systèmes Linux, les isolateurs sont en fait composés de plusieurs éléments et peuvent prendre plusieurs formes.
  • 28.
    28 IV.3. Les isolateurs(4) Exemples: • Linux-Vserver (isolation des processus en espace utilisateur) • Chroot (isolation changement de racine) • BSD Jail (isolation en espace utilisateur) • Open VZ (partionnement au niveau noyau sous Linux) : libre • LXC (usage des Cgroups du noyau Linux)