Vous êtes sur la page 1sur 5

CORRECTION DES EXERCICES DE VIRTUALISATION ET CLOUD

PARTIE VIRTUALISATION

Exercice 1 :

1- Définir la virtualisation, et citer 4 avantages et 3 inconvénients de


la virtualisation
La virtualisation est un ensemble de technologies matérielles et/ou
logicielles permettant de faire fonctionner plusieurs applications et/ou
plusieurs OS sur une même machine, de façon indépendante comme sur
des machines physiques distinctes.
Elle présente plusieurs avantages dont entre autres :
 La diminution des coûts de maintenance des serveurs ;
 Une bonne utilisation des ressources des serveurs ;
 Offre la sécurité et l’isolation des services ;
 Permet une migration et une portabilité simple des services ;
 Etc.
En plus de ces avantages, la virtualisation possède quelques
inconvénients qui sont entre autres :
 Si la machine physique hôte tombe en panne, on perd tous les OS
et applications virtuels ;
 Il nécessite d’avoir un serveur puissant en termes de CPU,
mémoire,…
 Les applications des OS invités consomment beaucoup de
ressources ;
 Etc.

2- Quel est le rôle principal d’un hyperviseur, expliquer le


fonctionnement de chaque type d’hyperviseur
Le rôle principal d’un hyperviseur est la gestion des machines virtuelles. Il
permet à plusieurs VMs de partager des ressources communes.
Il existe deux(2) types d’hyperviseurs :
 Un hyperviseur de type 1 : Encore appelé hyperviseur natif, ce type
d’hyperviseur est directement placé sur le matériel. Il est un OS allégé
et optimisé contenant le strict nécessaire pour la gestion des VMs.
Avec ce type d’hyperviseur, les noyaux des OS doivent être modifiés
afin de pouvoir collaborer avec lui.
 Un hyperviseur de type 2 : Encore appelé hyperviseur de type 2, cet
hyperviseur est placé sur l’OS hôte. Avec cet hyperviseur, les OS invités
n’ont pas consciences d’être virtualiser et toutes les instructions des
OS invités qui touchent au matériel sont interceptés par cet
hyperviseur.
3- Quelles sont les différentes catégories d’instructions utilisées dans
le domaine de la virtualisation.
Donner un exemple pour chaque catégorie
Dans le domaine de la virtualisation, il existe deux(2) catégories d’instructions :
 Les instructions sensibles : ce sont des instructions qui ont accès au
matériel. Exemple : halt (pour éteindre), modification des registres,…
 Les instructions non sensibles : Exemple : Les instructions arithmétiques
normales.
4- Quelle est la différence entre un CPU virtualisable et un CPU
non-virtualisable.
- Définir une instruction critique
Un CPU virtualisable est un CPU dans lequel toutes les instructions sensibles
sont privilégiées. Par contre, dans un CPU non-virtualisable, il existe des
instructions sensibles qui sont non privilégiées.
Une instruction critique est une instruction sensible et non privilégiée.
5- Expliquer le problème rencontré avec l’architecture non-
virtualisable. Quelles les techniques utilisées pour résoudre ce
problème
Dans une architecture non virtualisable, les instructions critiques ne
peuvent pas être interceptées par la VMM puisqu’elles sont non
privilégiées. Le problème existe dans le fait que, ces instructions touchent
au matériel (elles sont sensibles) et peuvent corrompre son état puisque la
VMM n’intervient pas.
Pour résoudre ce problème, plusieurs solutions ont été envisagées dont
notamment :
 La traduction binaire : La traduction binaire permet de faire la
traduction des instructions critiques en des instructions privilégiées
qui pourront être interceptées par la VMM.
 L’Emulation totale : Cette technique consiste en ce que la VMM
fasse une traduction binaire dynamique de toutes les instructions
sensibles (qu’elles soient privilégiées ou non) en instructions
privilégiées. Ainsi elle pourra intercepter les instructions sensibles ;
 Virtualisation matérielle assistée : La virtualisation assistée par le
matériel ajoute une intelligence au matériel permettant de gérer les
instructions critiques sans faire de la traduction binaire.
Exercice 2 :

1- Expliquer la technique d’émulation. Donner un exemple


d’émulation totale.
L’émulation est une technique qui consiste à substituer un matériel
informatique par un logiciel dont le comportement est similaire. Comme
exemple d’émulation totale, on peut citer l’émulation de vieilles consoles
de jeux.
2- Dessiner l’emplacement des éléments suivants : « OS invité,
hyperviseur et applications » dans les anneaux de protection :
- D’une architecture de x86-32
- D’une architecture de x86-64 qui ne supporte pas la
virtualisation mutuelle assistée.
- D’une architecture de x86-32 qui supporte la virtualisation mutuelle
Assistée.
 L’architecture x86_32 est constituée de quatre (4) anneaux de
protection (anneau 0, 1,2 ,3) ;
 L’architecture x86_64 (sans virtualisation matérielle assistée) est
constituée de deux anneaux (anneau 0 et 3) ;
 L’architecture x86_64 avec virtualisation matérielle assistée est
composée de 3 anneaux (anneau -1, 0 et 3) ;
(Voir schémas dans les pages 45, 48 et 49 du chapitre 1).
2- Dessiner la classification des techniques de virtualisation
(Voir polycopié : Chapitre 2, Page 6)
4- Définir la traduction binaire
- Expliquer comment la traduction binaire est utilisée dans le
domaine de virtualisation
La traduction binaire est une technique de l’émulation qui consiste à traduire
le jeu d’instructions d’une architecture vers une autre.
Dans la virtualisation, elle permet de faire la traduction des instructions
sensibles en des instructions privilégiées afin d’être interceptées par la VMM.
Il permet de résoudre également le problème des CPU non virtualisables.
5- Quelles sont les solutions les plus utilisées pour la virtualisation de
la mémoire ? Expliquer le mécanisme de fonctionnement de
chaque solution.
Le problème de la virtualisation de la mémoire réside en la traduction des
adresses physiques des VMs vers les adresses virtuelles de la machine
physique. Et pour ce faire, plusieurs solutions sont implémentées à savoir
les Shadow Page Tables(SPT) qui est une solution Software et le Nested
Page Tables(NPT) qui est une solution Hardware. Il existe également
l’Extended Page Tables , mais cette dernière a le même fonctionnement
que le NPT.
 SPT : La mise à jour de cette table est faite par la VMM. Cette
dernière met une protection d’écriture sur les tables de pages des
pages des VMs. Chaque tentative de modification de ces fichiers
lèvera une exception qui sera interceptée par la VMM qui à son tour
validera cette opération tout en mettant à jour le SPT.
 NPT : Est une amélioration des coûts générés par les SPT. Il permet
une synchronisation du TLB (Translation LookAside Buffer) en faisant
le mapping ‘’gPA to MA’’. MA étant le mapping gPAhvAhpA.
Exercice 3 :
1- Expliquer le fonctionnement de l’outil « Citrix XEN »,
- Décrire son architecture
- Comment XEN peut faire tourner des OS non modifiés
comme Windows
L’outil Citrix Xen fonctionne avec le mécanisme de redirection de la
Paravirtualisation. Il consiste à rediriger toutes les instructions des OS
ne contenant pas le driver Front-End vers l’OS contenant le driver Back-
End qui par la suite accèdera au matériel.
Dans son architecture, l’OS contenant le driver Back-End est appelé
dom0 et les autres sont appelés domU. Les domU pour accéder au
matériel doivent passer par le dom0. Et de plus, tous les OS doivent
être xénifiés (modifiés).
Pour pouvoir faire tourner des OS non modifiés comme Windows, il
faut qu’il y ait une architecture supportant la virtualisation matérielle
assistée, car dans ce cas les OS ne sont pas modifiés ou xénifiés.
2- Définir la virtualisation des réseaux
Citer les 3 types de réseaux virtuels qu’on peut créer avec KVM
et libvirt et expliquer le fonctionnement de chaque type
La virtualisation de réseaux consiste en la création de plusieurs réseaux
logiques à partir d’un réseau physique.
Libvirt donne la possibilité de faire de créer trois types de réseaux virtuels
qui sont :
 Réseau isolé : Dans ce type de réseau, les VMs ne voient entre
elles et peuvent communiquer avec la machine hôte. Par contre une
communication de l’intérieur vers l’extérieur ou de l’extérieur vers
l’intérieur n’est possible.
 Réseau naté : Dans ce type de réseau, les VMs communiquent
entre elles, communiquent avec la machine hôte et communiquent
avec l’extérieur via un NAT configuré sur le Switch virtuel. Aucune
communication de l’extérieur vers l’intérieur n’est possible.
 Réseau ponté : Dans ce réseau, les VMs communiquent avec
l’extérieur (dans les deux sens) moyennant des bridges physiques
connectés à Internet.
3- Définir les architectures de stockage « DAS, SAN et NAS « et
expliquer les différences entre elles.
 DAS : signifie de l’anglais « Direct Attached Storage » est un système
de stockage de données en attachement direct. Dans cette
architecture, le périphérique de stockage est relié aux ordinateurs via
un Host Bus Adapter (HBA). Seuls les ordinateurs connectés
directement au DAS peuvent accéder au périphérique de stockage. Et
il n’y a aucune connexion à un réseau.
 NAS : signifie « Network Attached Storage » est un est un serveur de
fichiers autonomes relié à un réseau. Son rôle principal est de fournir
un accès aux données en mode fichier en un volume centralisé pour
des clients homogènes. Il permet aux clients d’accéder aux fichiers
comme si ces derniers étaient en locaux. Pour accéder au
périphérique de stockage NAS, il faut nécessairement passer par un
réseau.
 SAN : signifie « Storage Are Network » est un réseau spécialisé qui
permet de mutualiser des ressources de partages. Contrairement aux
autres architectures, il permet un accès en mode bloc aux fichiers, ce
qui permet aux serveurs d’accéder aux volumes SAN avec leurs
propres systèmes de fichiers. Ceci permet aux serveurs de considérer
ces volumes comme leurs propres disques durs.

Vous aimerez peut-être aussi