Vous êtes sur la page 1sur 40

Cloud Computing et

Virtualisation
2ème Année Cycle d’ Ingénieur
Enseignant : Dr EL HASSANI MOUHCINE

Dr EL HASSANI MOUHCINE 1

Virtualisation :Introduction
Définition:
la virtualisation est un processus de création d'environnements
informatiques virtuels ou de ressources, tels que des serveurs, des
systèmes d'exploitation, des réseaux ou des applications, qui sont distincts
des composants matériels physiques.
Elle permet de regrouper et de gérer de manière efficace les ressources
informatiques en les séparant de leur infrastructure matérielle sous-
jacente.
La virtualisation permet d'améliorer l'utilisation des ressources, d'isoler
des environnements, de simplifier la gestion, et de favoriser la flexibilité et
l'évolutivité des systèmes informatiques. Elle est couramment utilisée
dans des domaines tels que la virtualisation des serveurs, la virtualisation
de stockage, la virtualisation réseau, et la virtualisation des postes de
travail.
Dr EL HASSANI MOUHCINE 2

1
Importance de la virtualisation dans
l'informatique moderne
La virtualisation joue un rôle essentiel dans l'informatique moderne
pour plusieurs raisons majeures :
Consolidation des ressources : La virtualisation permet de consolider
plusieurs serveurs physiques sur un seul matériel physique, ce qui
réduit les coûts d'exploitation et d'entretien. Cela améliore l'utilisation
des ressources matérielles, réduisant ainsi l'encombrement des
centres de données.
Isolation des environnements : Les environnements virtuels sont isolés
les uns des autres, ce qui garantit qu'un problème dans un
environnement n'affecte pas les autres. Cela renforce la stabilité et la
sécurité des systèmes informatiques.
Dr EL HASSANI MOUHCINE 3

Importance de la virtualisation dans


l'informatique moderne
Évolutivité : La virtualisation facilite l'ajout de nouvelles ressources et
la mise à l'échelle des systèmes de manière flexible, ce qui permet de
répondre rapidement aux besoins changeants des entreprises.
Gestion simplifiée : Les environnements virtuels sont plus faciles à
gérer que les infrastructures physiques, car ils peuvent être gérés de
manière centralisée à l'aide de logiciels de gestion de la virtualisation.
Récupération en cas de sinistre : La virtualisation facilite la sauvegarde
et la reprise après sinistre, car les environnements virtuels peuvent
être rapidement restaurés sur un matériel de remplacement en cas de
panne.

Dr EL HASSANI MOUHCINE 4

2
Importance de la virtualisation dans
l'informatique moderne
Test et développement : Les environnements virtuels sont largement
utilisés pour le développement, les tests et la validation, permettant
aux entreprises de réduire les coûts associés à la configuration de
multiples infrastructures physiques pour ces besoins.
Green IT : La consolidation des serveurs grâce à la virtualisation réduit
la consommation d'énergie, ce qui est bénéfique pour l'environnement
et économique.
Mobilité des applications : Les applications virtualisées peuvent être
exécutées sur diverses plates-formes, ce qui facilite leur déploiement
et leur gestion sur différents dispositifs.

Dr EL HASSANI MOUHCINE 5

Importance de la virtualisation dans


l'informatique moderne
Dans l'ensemble, la virtualisation est un pilier de l'informatique
moderne, permettant aux entreprises d'optimiser leurs ressources, de
gagner en efficacité et de s'adapter plus rapidement aux évolutions du
marché. Elle est largement utilisée dans les data centers, les clouds
publics et privés, les postes de travail, et les réseaux pour répondre aux
besoins complexes de l'informatique d'aujourd'hui.

Dr EL HASSANI MOUHCINE 6

3
Objectif du cours de la virtualisation
Comprendre les concepts fondamentaux de la virtualisation : Les
étudiants devraient acquérir une compréhension solide des principes
de base de la virtualisation, y compris les types de virtualisation, les
avantages et les inconvénients.
Maîtriser les technologies de virtualisation : Le cours vise à familiariser
les étudiants avec les technologies de virtualisation couramment
utilisées, telles que la virtualisation de serveurs, de stockage, de
réseau, et de postes de travail.
Savoir déployer et gérer des environnements virtuels : Les étudiants
devraient être en mesure de créer, configurer et gérer des
environnements virtuels, y compris des machines virtuelles (VM), des
conteneurs, et des réseaux virtuels.Dr EL HASSANI MOUHCINE 7

Objectif du cours de la virtualisation


Optimiser les ressources informatiques : Les cours de virtualisation
enseignent comment maximiser l'utilisation des ressources matérielles
et améliorer l'efficacité des infrastructures informatiques.
Renforcer la sécurité : en mettrant en place des environnements
virtuels sécurisés et à gérer les vulnérabilités spécifiques à la
virtualisation.
Préparer à la certification : Dans de nombreux cas, les cours de
virtualisation sont conçus pour préparer les étudiants à des
certifications professionnelles en virtualisation, telles que VMware
Certified Professional (VCP) ou Microsoft Certified: Azure
Administrator Associate……
Dr EL HASSANI MOUHCINE 8

4
Virtualisation matérielle :
Virtualisation de serveurs : Cette forme permet de créer plusieurs machines
virtuelles (VM) sur un seul serveur physique. Chaque VM agit comme un serveur
indépendant, avec son propre système d'exploitation (OS) et ses applications.
Cela permet de maximiser l'utilisation des serveurs et de les consolider.
Virtualisation de stockage : regroupe les ressources de stockage dispersées sur
différents dispositifs en un seul pool de stockage. Cela simplifie la gestion,
l'allocation des ressources, et la répartition de la capacité de stockage.
Virtualisation de réseau : permet de créer des réseaux virtuels isolés à l'intérieur
d'un réseau physique. Les réseaux virtuels peuvent être configurés pour répondre
à des besoins spécifiques, améliorer la sécurité, ou isoler des charges de travail.
Virtualisation de postes de travail : consiste à exécuter des environnements de
bureau virtuels (VDI) sur des serveurs centraux. Les utilisateurs peuvent accéder à
leur bureau virtuel à partir de n'importe quel dispositif, ce qui facilite la gestion
des postes de travail.

Dr EL HASSANI MOUHCINE 9

Virtualisation logicielle :
Virtualisation d'application : exécuter des applications dans un
environnement isolé, séparé du système d'exploitation sous-
jacent. Cela aide à prévenir les conflits logiciels et à simplifier le
déploiement des applications.
Virtualisation de conteneurs : Les conteneurs sont des
environnements légers et isolés qui partagent le même noyau
d'OS. Ils sont idéaux pour le déploiement d'applications, car ils
offrent une isolation tout en économisant des ressources.

Dr EL HASSANI MOUHCINE 10

5
Avantages de la virtualisation :
Consolidation des ressources : elle permet d'utiliser de manière
plus efficace les ressources matérielles en regroupant plusieurs
environnements virtuels sur un même matériel physique.
Isolation et sécurité : Chaque environnement virtuel est isolé, ce
qui empêche les problèmes d'affecter les autres VM.
Flexibilité et évolutivité : Les environnements virtuels peuvent
être rapidement configurés, déplacés ou redimensionnés en
fonction des besoins.
Gestion simplifiée : Les systèmes virtuels peuvent être gérés de
manière centralisée, facilitant ainsi la maintenance et la gestion.
Réduction des coûts : La consolidation des ressources et
l'optimisation des infrastructures informatiques permettent de
réduire les coûts d'exploitation.
Dr EL HASSANI MOUHCINE 11

Inconvénients de la virtualisation :
Surcharge de gestion : La gestion des environnements virtuels peut
être complexe, surtout à grande échelle, ce qui peut entraîner une
surcharge de gestion pour les équipes informatiques.
Besoin de ressources matérielles puissantes : Pour exécuter de
nombreuses machines virtuelles, il est nécessaire d'avoir un matériel
puissant, ce qui peut être coûteux.
Surutilisation des ressources : Si mal configurée, la virtualisation
peut conduire à la surutilisation des ressources, ce qui peut affecter
les performances globales.

Dr EL HASSANI MOUHCINE 12

6
Inconvénients de la virtualisation :
Complexité de la sécurité : La sécurité des environnements virtuels
peut être complexe, car elle nécessite la gestion des vulnérabilités
spécifiques à la virtualisation.
Licences logicielles : La virtualisation peut avoir des implications en
matière de licences logicielles, car certaines entreprises exigent des
licences spécifiques pour les environnements virtuels.
Risques de panne : En cas de panne matérielle, plusieurs machines
virtuelles peuvent être impactées, ce qui peut entraîner des temps
d'arrêt importants si des mesures de récupération appropriées ne
sont pas en place.

Dr EL HASSANI MOUHCINE 13

. Les domaines de la virtualisation


La virtualisation est une technologie polyvalente qui trouve des
applications dans de nombreux domaines informatiques. Voici les
principaux domaines de la virtualisation :
Virtualisation de serveurs :C'est l'une des formes les plus courantes
de virtualisation. Elle permet de créer plusieurs machines virtuelles
(VM) sur un même serveur physique. Chaque VM fonctionne comme
un serveur indépendant avec son propre système d'exploitation et ses
applications. Cela permet de maximiser l'utilisation des ressources
matérielles et de consolider les serveurs.

Dr EL HASSANI MOUHCINE 14

7
. Les domaines de la virtualisation
Virtualisation de réseau :La virtualisation de réseau permet de créer
des réseaux virtuels indépendants à l'intérieur d'un réseau physique.
Cela aide à isoler les charges de travail, à renforcer la sécurité, et à
simplifier la gestion des réseaux.

Dr EL HASSANI MOUHCINE 15

. Les domaines de la virtualisation


Virtualisation de postes de travail (VDI) (L’infrastructure de bureau
virtuel ): La VDI permet d'exécuter des postes de travail virtuels sur
des serveurs centraux. Les utilisateurs peuvent accéder à leur bureau
virtuel depuis n'importe quel dispositif, ce qui facilite la gestion des
postes de travail.

Dr EL HASSANI MOUHCINE 16

8
. Les domaines de la virtualisation
• Virtualisation d'application :Elle permet d'exécuter des applications
dans des environnements virtuels isolés, séparés du système
d'exploitation sous-jacent. Cela évite les conflits logiciels et facilite le
déploiement d'applications.

Dr EL HASSANI MOUHCINE 17

Les domaines de la virtualisation


Virtualisation de conteneurs : Les conteneurs sont des
environnements légers et isolés qui partagent le même noyau d'OS.
Ils sont idéaux pour le déploiement d'applications, car ils sont rapides
à démarrer et économisent des ressources.

Dr EL HASSANI MOUHCINE 18

9
Les domaines de la virtualisation
Virtualisation de stockage de bureau (VDI) :Elle implique la
virtualisation du stockage pour les postes de travail, ce qui permet de
gérer efficacement les ressources de stockage des utilisateurs
individuels dans un environnement de bureau virtuel.

Dr EL HASSANI MOUHCINE 19

Les domaines de la virtualisation


Virtualisation de postes de travail graphique : Elle est utilisée pour
fournir des performances graphiques optimisées aux utilisateurs,
notamment dans des domaines tels que la conception 3D et la
modélisation.
Virtualisation de base de données : Permet d'isoler les bases de
données sur un même serveur physique pour une meilleure gestion
des ressources et de la sécurité.

Dr EL HASSANI MOUHCINE 20

10
Les domaines de la virtualisation
Virtualisation de réseau SDN (Software-Defined Networking) : Elle
permet de gérer les réseaux de manière logicielle, ce qui offre une
flexibilité et une automatisation accrues.
Virtualisation de sécurité : Elle vise à isoler les applications et les
données sensibles pour renforcer la sécurité.
Virtualisation dans le Cloud : Les fournisseurs de services cloud
utilisent la virtualisation pour gérer et allouer des ressources à la
demande, offrant ainsi des services flexibles et évolutifs.

Dr EL HASSANI MOUHCINE 21

Les différents types de virtualisation


1. La virtualisation complète
2. La para-virtualisation
3. La virtualisation assistée par le matériel
4. Le cloisonnement

Dr EL HASSANI MOUHCINE 22

11
Les différents types de virtualisation
1. La virtualisation complète:
La virtualisation est dite complète lorsque le système
d'exploitation invité n'a pas conscience d'être virtualisé. L'OS
qui est virtualisé n'a aucun moyen de savoir qu'il partage le
matériel avec d'autres OS. Ainsi, l'ensemble des systèmes
d'exploitation virtualisés s'exécutant sur un unique ordinateur,
peuvent fonctionner de manière totalement indépendante les
uns des autres et être vu comme des ordinateurs à part
entière sur un réseau.

Dr EL HASSANI MOUHCINE 23

Les différents types de virtualisation


1. La virtualisation complète:

Dr EL HASSANI MOUHCINE 24

12
Les différents types de virtualisation
1. La virtualisation complète:
Le Système d’exploitation invité croit s'exécuter sur une
véritable machine physique.
Cette technique de virtualisation ne permet de virtualiser
que des systèmes d'exploitation de même architecture
matérielle que l'hôte. Dans certaines architectures
matérielles, le support de virtualisation est intégré avec le
processeur. Les exemples les plus connus du marché sont :
AMD-V et Intel VT.

Dr EL HASSANI MOUHCINE 25

Les différents types de virtualisation


1. La virtualisation complète:
La mise en place de la virtualisation complète s’effectue en
modifiant le noyau du système hôte, de façon à ce que
l’hyperviseur interagisse avec la machine physique.

Hyperviseur de type 1 : Aussi appelé moniteur de machine


virtuelle (VMM), l'hyperviseur de type 1 s'exécute
directement sur le matériel physique. Il gère l'allocation des
ressources matérielles aux machines virtuelles (VM) et
assure leur isolation.

Dr EL HASSANI MOUHCINE 26

13
Les différents types de virtualisation
1. La virtualisation complète:
Performance : La virtualisation complète offre généralement
de meilleures performances par rapport à la virtualisation de
type 2, car elle élimine la surcharge liée à l'exécution d'un
système d'exploitation hôte supplémentaire.
Isolation : Chaque machine virtuelle est isolée des autres, ce
qui signifie qu'elles peuvent fonctionner indépendamment
les unes des autres sans interférence. Cela renforce la
sécurité et la stabilité du système.

Dr EL HASSANI MOUHCINE 27

Les différents types de virtualisation


1. La virtualisation complète:
La mise en place de la virtualisation complète s’effectue en
modifiant le noyau du système hôte, de façon à ce que
l’hyperviseur interagisse avec la machine physique.
Hyperviseur de type 1 : Aussi appelé moniteur de machine
virtuelle (VMM), l'hyperviseur de type 1 s'exécute
directement sur le matériel physique. Il gère l'allocation des
ressources matérielles aux machines virtuelles (VM) et
assure leur isolation.

Dr EL HASSANI MOUHCINE 28

14
Les différents types de virtualisation
1. La virtualisation complète:
Déploiement de serveurs : La virtualisation complète est
souvent utilisée dans les centres de données et les
environnements de serveurs, permettant aux
administrateurs de consolider plusieurs serveurs physiques
sur une seule machine physique.
Exemples d'hyperviseurs de type 1 : VMware vSphere/ESXi,
Microsoft Hyper-V (quand il est utilisé en mode "bare
metal"), KVM (Kernel-based Virtual Machine), Xen.

Dr EL HASSANI MOUHCINE 29

Les différents types de virtualisation


1. La virtualisation complète:
Utilisations courantes : La virtualisation complète est
largement utilisée pour la consolidation des serveurs, la
création de centres de données virtuels, le développement
et le test d'applications, ainsi que pour la fourniture
d'environnements isolés aux utilisateurs.

Dr EL HASSANI MOUHCINE 30

15
Les différents types de virtualisation
1. La virtualisation complète:
Travaux pratiques

Installation de machine virtuelle en utilisant un des


Hyperviseurs suivants :
VMware
vSphere/ESXi, Microsoft Hyper-V ,
 KVM (Kernel-based Virtual Machine),
Xen.

Dr EL HASSANI MOUHCINE 31

Les différents types de virtualisation


2. La para-virtualisation

La para-virtualisation est une approche de virtualisation


dans laquelle le système d'exploitation invité est modifié
pour être conscient de son statut de machine virtuelle.
Contrairement à la virtualisation complète, où le système
d'exploitation invité n'a pas conscience qu'il est virtualisé, la
para-virtualisation nécessite des modifications spécifiques
du noyau de l'invité pour coopérer avec l'hyperviseur.

Dr EL HASSANI MOUHCINE 32

16
Les différents types de virtualisation
2. La para-virtualisation

Dr EL HASSANI MOUHCINE 33

Les différents types de virtualisation


2. La para-virtualisation
Des drivers backend et frontend sont installés dans les OS paravirtualisés. Ils
permettent, au lieu de traduire les appels système comme celà est fait dans la
virtualisation complète, de ne faire que de la redirection (ce qui est beaucoup plus
rapide). Il est donc intelligent d'utiliser un tel mécanisme pour accéder à du
matériel potentiellement très sollicité (disque dur, interface réseau...).

Dr EL HASSANI MOUHCINE 34

17
Les différents types de virtualisation
2. La para-virtualisation
le contrôle d'un ou plusieurs matériel(s) est donné à un des OS
virtualisé (celui qui contient le driver backend), ici le système
d'exploitation 1. Une fois celà compris, il sera simple
d'imaginer que l'OS 2, qui souhaite accéder au harware, devra
passé par son driver front end qui redirigera les appels
système vers l'OS 1. L'inconvénient de cette technique est
donc la dépendance d'un OS virtualisé vis à vis d'un autre qui
se créé par ce mécanisme de driver. En effet si l'OS 1 tombe en
panne, l'OS 2 ne pourra plus accéder au matériel.
Dr EL HASSANI MOUHCINE 35

Les différents types de virtualisation


2. La para-virtualisation
Les caractéristiques de la para-virtualisation :
Modification du noyau invité : Pour la para-virtualisation, le
noyau de l'invité est modifié pour remplacer certaines
instructions matérielles non virtualisables par des appels
spécifiques à l'hyperviseur. Ces modifications permettent
une communication plus efficace entre l'invité et
l'hyperviseur.

Dr EL HASSANI MOUHCINE 36

18
Les différents types de virtualisation
2. La para-virtualisation

Meilleures performances : En raison de la coopération


étroite entre le système d'exploitation invité et l'hyperviseur,
la paravirtualisation peut offrir des performances améliorées
par rapport à la virtualisation complète. Cela réduit les
surcoûts associés à l'émulation des instructions matérielles
non virtualisables.

Dr EL HASSANI MOUHCINE 37

Les différents types de virtualisation


2. La para-virtualisation
Communication directe : Les systèmes d'exploitation invités
paravirtualisés peuvent communiquer directement avec
l'hyperviseur pour des opérations telles que la gestion de la
mémoire et la planification des ressources.
Support spécifique de l'hyperviseur : La paravirtualisation
nécessite un support spécifique de l'hyperviseur.
L'hyperviseur doit être conçu pour gérer des systèmes
d'exploitation invités paravirtualisés, et les modifications
apportées au noyau invité doivent être compatibles avec cet
hyperviseur spécifique.
Dr EL HASSANI MOUHCINE 38

19
Les différents types de virtualisation
2. La para-virtualisation
Exemple d'hyperviseur paravirtualisé : Xen est un exemple
d'hyperviseur qui prend en charge la para-virtualisation. Les
systèmes d'exploitation invités sur Xen nécessitent des
modifications spécifiques pour fonctionner en mode
paravirtualisé.

Dr EL HASSANI MOUHCINE 39

Les différents types de virtualisation


2. La para-virtualisation

Bien que la para-virtualisation puisse offrir des avantages de


performance, elle nécessite une collaboration étroite entre
l'hyperviseur et les systèmes d'exploitation invités, ce qui peut
limiter la flexibilité par rapport à la virtualisation complète.
Elle est souvent utilisée dans des environnements où les
performances sont cruciales et où la modification des
systèmes d'exploitation invités est acceptable.

Dr EL HASSANI MOUHCINE 40

20
Les différents types de virtualisation
3. La virtualisation assistée par le matériel

La virtualisation assistée par le matériel, également appelée


virtualisation matérielle ou matériel de virtualisation, est une
technologie qui tire parti des fonctionnalités spécifiques des
processeurs modernes pour améliorer les performances et
l'efficacité des environnements virtualisés. Cette approche
vise à minimiser l'impact de la virtualisation sur les
performances en offrant un soutien matériel direct à
l'hyperviseur.

Dr EL HASSANI MOUHCINE 41

Les différents types de virtualisation


3. La virtualisation assistée par le matériel
Les caractéristiques de la virtualisation assistée par le
matériel incluent :
Extensions de virtualisation du processeur : Les fabricants
de processeurs, tels qu'Intel avec la technologie VT-x
(Virtualization Technology) ou AMD avec AMD-V, ont
introduit des extensions matérielles spécifiques pour
améliorer les performances de la virtualisation. Ces
extensions permettent à l'hyperviseur de gérer plus
efficacement les transitions entre le mode utilisateur et le
mode superviseur des machines virtuelles.
Dr EL HASSANI MOUHCINE 42

21
Les différents types de virtualisation
3. La virtualisation assistée par le matériel

Activation de la virtualisation par setup

Dr EL HASSANI MOUHCINE 43

Les différents types de virtualisation


3. La virtualisation assistée par le matériel
Les caractéristiques de la virtualisation assistée par le
matériel incluent :
Accès direct à la mémoire (IOMMU) : La virtualisation
assistée par le matériel offre souvent un support amélioré
pour l'Unité de Gestion de la Mémoire d'Entrée/Sortie
(IOMMU). Cela permet aux machines virtuelles d'accéder
directement à certains périphériques matériel, améliorant
ainsi les performances des dispositifs d'E/S dans un
environnement virtualisé.

Dr EL HASSANI MOUHCINE 44

22
Les différents types de virtualisation
3. La virtualisation assistée par le matériel
Les caractéristiques de la virtualisation assistée par le
matériel incluent :
Réduction des surcoûts de la virtualisation : En intégrant
des fonctionnalités spécifiques dans le matériel, la
virtualisation assistée par le matériel permet de réduire les
surcoûts associés à l'émulation de certaines instructions et
opérations. Cela se traduit par une meilleure performance
globale des machines virtuelles.

Dr EL HASSANI MOUHCINE 45

Les différents types de virtualisation


3. La virtualisation assistée par le matériel
Les caractéristiques de la virtualisation assistée par le
matériel incluent :
Support pour la migration en temps réel : Les
fonctionnalités de virtualisation assistée par le matériel
facilitent souvent la migration en temps réel des machines
virtuelles d'un hôte physique à un autre, améliorant ainsi la
flexibilité et la disponibilité des charges de travail
virtualisées.

Dr EL HASSANI MOUHCINE 46

23
Les différents types de virtualisation
3. La virtualisation assistée par le matériel
Les caractéristiques de la virtualisation assistée par le
matériel incluent :
Compatibilité avec différentes architectures : La
virtualisation assistée par le matériel est conçue pour être
compatible avec différentes architectures de processeurs, ce
qui facilite l'utilisation de la virtualisation sur une variété de
plateformes.

Dr EL HASSANI MOUHCINE 47

Les différents types de virtualisation


3. La virtualisation assistée par le matériel
Les caractéristiques de la virtualisation assistée par le
matériel incluent :
L'activation de la virtualisation assistée par le matériel
nécessite généralement une prise en charge au niveau du
BIOS/UEFI et peut être activée ou désactivée dans les
paramètres du système. Cette technologie est devenue
courante dans les environnements virtualisés, contribuant
significativement à améliorer les performances et à rendre la
virtualisation plus accessible pour une gamme plus large
d'applications et d'usages.
Dr EL HASSANI MOUHCINE 48

24
Les différents types de virtualisation
3. La virtualisation assistée par le matériel

Dr EL HASSANI MOUHCINE 49

Les différents types de virtualisation


3. La virtualisation assistée par le matériel
Composants de la virtualisation assistée par le matériel :
• Processeur avec support VT-x : La technologie VT-x est
intégrée dans le processeur lui-même, et elle doit être prise
en charge par le matériel pour être utilisée.
• Hyperviseur compatible : Pour tirer parti de la virtualisation
assistée par le matériel, un hyperviseur doit être compatible
avec VT-x, ce qui signifie qu'il peut interagir directement avec
le processeur pour gérer les machines virtuelles.

Dr EL HASSANI MOUHCINE 50

25
Les différents types de virtualisation
3. La virtualisation assistée par le matériel
Fonctionnement de la virtualisation assistée par le matériel :
• Mode VMX (Virtual Machine eXtensions) : Les processeurs qui
prennent en charge VT-x sont dotés de ce que l'on appelle le
mode VMX, qui est une extension du mode de fonctionnement
normal du processeur. Le mode VMX permet au processeur de
basculer en mode de virtualisation, où il peut exécuter
plusieurs machines virtuelles de manière efficace.

Dr EL HASSANI MOUHCINE 51

Les différents types de virtualisation


3. La virtualisation assistée par le matériel
Fonctionnement de la virtualisation assistée par le matériel :
Accès direct aux ressources matérielles : Grâce à la
virtualisation assistée par le matériel, l'hyperviseur peut
bénéficier d'un accès plus direct aux ressources matérielles,
telles que le CPU, la mémoire, les dispositifs d'entrée/sortie,
et le réseau. Cela signifie que les opérations essentielles de
gestion des machines virtuelles sont effectuées plus
efficacement.

Dr EL HASSANI MOUHCINE 52

26
Les différents types de virtualisation
3. La virtualisation assistée par le matériel
Isolation renforcée : La virtualisation assistée par le matériel
contribue à renforcer l'isolation entre les machines virtuelles,
ce qui garantit que les VM fonctionnent indépendamment les
unes des autres et ne peuvent pas accéder aux ressources
d'autres VM sans autorisation.

Dr EL HASSANI MOUHCINE 53

Les différents types de virtualisation


3. La virtualisation assistée par le matériel
Technologies

VT-x (Virtualization Technology for x86) d'Intel et AMD-V


(AMD Virtualization) : Ces technologies sont intégrées dans
les processeurs x86 d'Intel et d'AMD, respectivement. Elles
permettent de créer un mode de virtualisation matériel, qui
facilite l'exécution de plusieurs machines virtuelles en
parallèle. VT-x et AMD-V permettent aux hyperviseurs de
gérer plus efficacement le passage entre le mode utilisateur et
le mode superviseur, ce qui réduit la surcharge de traitement
associée à la virtualisation.
Dr EL HASSANI MOUHCINE 54

27
Les différents types de virtualisation
3. La virtualisation assistée par le matériel
Technologies
• VT-d (Virtualization Technology for Directed I/O) : Cette
technologie, également intégrée dans les processeurs Intel,
permet d'améliorer la gestion des entrées/sorties (I/O) des
machines virtuelles. VT-d permet l'attribution directe de
ressources matérielles aux machines virtuelles, ce qui
améliore les performances des E/S et renforce la sécurité en
évitant que les données de différentes VM ne se mélangent.

Dr EL HASSANI MOUHCINE 55

Les différents types de virtualisation


3. La virtualisation assistée par le matériel
Technologies

NPT (Nested Page Tables) : NPT est une technologie qui


facilite la gestion de la mémoire dans les environnements de
virtualisation. Elle permet aux hyperviseurs de créer des tables
de pagination emboîtées, ce qui simplifie la gestion de la
mémoire virtuelle pour les machines virtuelles. Cela améliore
les performances et l'efficacité de la mémoire.

Dr EL HASSANI MOUHCINE 56

28
Les différents types de virtualisation
3. La virtualisation assistée par le matériel
Technologies

• SLAT (Second Level Address Translation) : Le SLAT,


également connu sous le nom de RVI (Rapid Virtualization
Indexing) chez AMD et EPT (Extended Page Tables) chez Intel,
est une technologie qui améliore la gestion de la mémoire
virtuelle. Elle permet d'accélérer le mappage des adresses
physiques aux adresses virtuelles, ce qui réduit la surcharge
de traitement lors de l'accès à la mémoire.

Dr EL HASSANI MOUHCINE 57

Les différents types de virtualisation


3. La virtualisation assistée par le matériel
Technologies

Hyper-Threading : Les processeurs Intel avec Hyper-Threading


Technology (HTT) permettent d'exécuter plusieurs threads
d'exécution sur chaque cœur physique. Cela peut améliorer
les performances en permettant à plusieurs machines
virtuelles de partager plus efficacement les ressources du
processeur.

Dr EL HASSANI MOUHCINE 58

29
Les différents types de virtualisation
3. La virtualisation assistée par le matériel
Technologies
SR-IOV (Single Root I/O Virtualization) : Cette technologie
permet la virtualisation des dispositifs d'entrées/sorties (I/O)
tels que les cartes réseau. Elle permet aux machines virtuelles
d'accéder directement aux dispositifs I/O, ce qui améliore les
performances réseau et réduit la surcharge de traitement
associée aux opérations I/O.

Dr EL HASSANI MOUHCINE 59

Les différents types de virtualisation


3. La virtualisation assistée par le matériel
Technologies

TPM (Trusted Platform Module) : Les TPM sont des


composants matériels qui fournissent des fonctionnalités de
sécurité pour les machines virtuelles. Ils permettent de
stocker en toute sécurité des clés de chiffrement, de mesurer
l'intégrité du système et de renforcer la sécurité des VM.

Dr EL HASSANI MOUHCINE 60

30
Les différents types de virtualisation
3. La virtualisation assistée par le matériel
Technologies

Conclusion :
Ces technologies de virtualisation matérielle sont essentielles
pour améliorer les performances, la sécurité et l'efficacité des
environnements de virtualisation. Elles sont largement
utilisées dans les data centers, les environnements de cloud
computing et d'autres applications où la virtualisation joue un
rôle clé.

Dr EL HASSANI MOUHCINE 61

Les différents types de virtualisation


4. Le cloisonnement

Le cloisonnement vise à isoler chaque processus dans un


conteneur dont il est théoriquement impossible de sortir. Un
processus isolé de la sorte ne saura pas quels autres processus
s’exécutent sur le même système, et n’aura qu’une vision
limitée de son environnement. Le but principal de cette
technologie est d’améliorer la sécurité du système
d’exploitation et des applications.

Dr EL HASSANI MOUHCINE 62

31
Les différents types de virtualisation
4. Le cloisonnement

Avec le cloisonnement tous les serveurs virtuels privés sont exécutés


dans le contexte d'un seul système d'exploitation partagé installé sur
le matériel physique.
Dr EL HASSANI MOUHCINE 63

Les différents types de virtualisation


4. Le cloisonnement
Virtualisation Description Avantages Inconvénients
Complète L'hyperviseur émule une Flexibilité – exécute les OS de Les OS invités ne savent pas
machine virtuelle identique à plusieurs éditeurs qu'ils sont
l'hôte. virtualisés.Problèmes E/S.

Para L'hyperviseur émule Léger, rapide OS invité Les OS invités doivent être
une machine virtuelle coopère avec l'hyperviseur légèrement modifié pour
identique à l'hôte mais pour les E/S prendre en compte
spécialisée l'environnement virtuel.

Seul le système d'exploitation Rapide, légère couche de En pratique, une isolation


Cloisonnement hôte est modifié pour virtualisation. complète est difficile à
permettre l'isolation Infrastructure homogène –OS implémenter
hôte et OS invité sont
identiques

Matérielle Support de virtualisation Augmente les performances le Solutions propriétaires et ne


intégré au matériel hyperviseur suivent aucun standard
Dr EL HASSANI MOUHCINE 64

32
Solutions Open Sources

LICENCES OPEN SOURCE

Tous les types de licence Open Sources

GPL (GNU General Public License).


LGPL (GNU Lesser General Public License).
CDDL (Common Development and Distribution License).

Les licences BSD et MIT sont des licences permissives écrites respectivement par
les Universités de Californie, de Berkeley et l'Insititut Technologique de
Massachusetts. Comme les licences open source, ces licences permettent l'utilisation
des codes sources et fournissent moins de restrictions d'utilisation que les GPL.

Pour plus d'information http://www.opensource.org/licenses.

33
QUELQUES SOLUTIONS OPEN SOURCE
Produits Virtualisation Installation Licence
Bochs Emulation Hébergé LGPL
QEMU Emulation Hébergé LGPL/GPL
User Mode Linux Para Hébergé GPL
(UML)
LGuest Para Bare Metal GPL
OpenVZ Cloisonnement Bare Metal GPL
Linux VServer Cloisonnement Bare Metal GPL
Xen Complète / Bare Metal GPL
Para
KVM Complète Bare Metal GPL

Solaris Containers Cloisonnement Hébergé CDDL


BSD Jails Cloisonnement Hébergé BSD
Wine Bibliothèque Couche applicative GPL
Java Virtual Machine Niveau applicatif Couche applicative GPL

BOCHS

BOCHS est un simulateur d'ordinateur x86 disponible pour s'exécuter sur plusieurs
plateforme ( x86, PowerPC, SPARC, Alpha, MIPS ...).
BOCHS peut être configuré pour émuler plusieurs générations de l'architecture x86
incluant le 386, 486, Pentium, Pentium Pro et même des implémentations modernes
des architechures 64 bits.
Bochs émule aussi des instructions optionnelles comme le MMX, le SSE, le SSE2, et
le 3DNow.
La particularité de BOCHS est qu'il n'emule pas seulement les processeurs. Il émule
aussi un système complet avec les périphériques nécessaires aux opérations
standards (clavier, souris, carte graphique, cartes réseaux ...).
BOCHS est capable de faire fonctionner plusieurs systèmes d'exploitation comme
des invités: gamme Windows (XP, Vista ...), DOS, Linux ...

Il est important de noter que BOCHS a besoin d'un système d'exploitation hôte pour
fonctionner et ne peut être installé sur une plateforme sans système d'exploitation
(Bare Hardware).
BOCHS s'installe généralement sur les systèmes Linux, Windows ou Mac OS X.
Plus de détails : http://bochs.sourceforge.net/

34
QEMU

QEMU supporte deux modes de fonctionnement.


Le mode d'émulation complète du système (Full System Emulation):
Ce mode est similaire au BOCHS parce qu'il émule un ordinateur complet avec les
périphériques. Ce mode émule plusieurs architectures de processeurs comme le x86,
le x86_64, ARM, SPARC, PowerPC et MIPS avec des vitesses raisonnables utilisant
la translation dynamique.
Ce mode permet d'émuler un environnement capable de faire fonctionner des
systèmes d'exploitation invités Microsoft Windows ou Linux sur des plateformes
Linux, Solaris ou FreeBSD.


Le mode d'émulation utilisateur (User Mode Emulation):
Ce mode est seulement disponible lorsqu'on exécute QEMU sur une plateforme
Linux. Ce mode permet d'exécuter les binaires d'une autre architecture. Par exemple,
les binaires compilés pour MIPS peuvent être éxécutés sur une architecture x86 de
Linux.

Plus de détails : http://www.nongnu.org/qemu/

USER MODE LINUX (UML)

User Mode Linux ou UML est un noyau Linux compilé qui peut être exécuté dans
l'espace utilisateur comme un simple programme. Il permet donc d'avoir plusieurs
systèmes d'exploitation virtuels sur une seule machine physique hôte exécutant
Linux.
UML est spécialement conçu pour exécuter des machines virtuelles Linux invitées sur
le système hôte Linux.

Plus de détails : http://user-mode-linux.sourceforge.net/

35
LGUEST

LGUEST est une autre méthode de virtualisation qui se base sur le noyau Linux.
LGUEST est maintenu par Rusty Russell et a été fusionné au noyau au cours de la
période de développement de la version 2.6.23. Un détail très intéressant de
LGUEST est qu'il est implémenté comme un module du noyau. Bien LGUEST
pourrait ne pas être aussi fonctionnel que d'autres types de virtualisation, il est un
outil extrêmement bon pour l'apprentissage et l'expérimentation avec des
implémentations de virtualisation en raison de sa taille relativement petite de code.
Une version expérimentale 64 bits de LGUEST est en cours d'élaboration par Red
Hat. Bien LGUEST est nouveau, son inclusion rapide dans les sources du noyau en
amont, il est intéressant de noter.

Plus de détails : http://lguest.ozlabs.org/

OPENVZ

OpenVZ est une technique de virtualisation de niveau système d'exploitation basée


sur le noyau Linux. OpenVZ permet à un serveur physique d'exécuter de multiples
instances de systèmes d'exploitation isolés, connus sous le nom de serveurs privés
virtuels (VPS) ou environnements virtuels (VE).

Le système d'exploitation invité et hôte doivent être de type Linux (bien que les
distributions de Linux peuvent être différentes dans des VEs différents). Cependant,
la virtualisation au niveau OS d'OpenVZ offre une meilleure performance, une
meilleure scalabilité (i.e. évolution), une meilleure densité, une meilleure gestion de
ressource dynamique, et une meilleure facilité d'administration que ses alternatives.

OpenVZ est la base de Virtuozzo, un produit propriétaire fourni par SWsoft, Inc.
OpenVZ est distribué sous la Licence publique générale GNU version 2.

OpenVZ comprend le noyau Linux et un jeu de commandes utilisateurs.


Plus de détails : http://openvz.org/

36
LINUX VSERVER

Linux-VServer est un isolateur des contextes de sécurité combiné à du routage


segmenté, chroot, quotas étendus et autres outils standards.

Projet lancé à l'origine par Jacques Gélinas à l'origine du patch CTX, Linux-VServer
consiste en un patch pour le noyau Linux qui permet d'exécuter plusieurs
applications dans différents contextes de sécurité sur une même machine hôte.
Linux-VServer est également muni d'un ensemble d'outils pour installer et gérer ces
contextes.

Ce projet permet d'exécuter un ou plusieurs environnements d'exploitation (systèmes


d'exploitation sans le noyau) ; autrement dit, il permet d'exécuter une ou plusieurs
distributions sur une distribution.
Linux-VServer est une solution de virtualisation beaucoup plus poussée que le simple
chroot.

À ne pas confondre avec le Linux Virtual Server Project.


Plus de détails : http://linux-vserver.org/

XEN

Xen est un logiciel libre de virtualisation, plus précisément un hyperviseur de


machine virtuelle.
Il est développé par l'université de Cambridge au Royaume-Uni. Xen permet de faire
fonctionner plusieurs systèmes d'exploitation virtuels (invités) sur une seule machine
hôte. Xen permet d'exécuter plusieurs systèmes d'exploitation (et leurs applications)
de manière isolée sur une même machine physique sur plate-forme x86, x86-64, IA-
64 et PowerPC (bientôt sur SPARC). Les systèmes d'exploitation invités partagent
ainsi les ressources de la machine hôte.
Xen est un « paravirtualiseur » ou un « hyperviseur » de machines virtuelles. Les
systèmes d'exploitation invités ont « conscience » du Xen sous-jacent, ils ont besoin
d'être « portés » (adaptés) pour fonctionner sur Xen. Linux, NetBSD, FreeBSD
(portage en cours), Plan 9 et GNU Hurd peuvent d'ores-et-déjà fonctionner sur Xen.
Xen 3 peut également exécuter des systèmes non modifiés comme Windows sur des
processeurs supportant les technologies VT d'Intel ou AMD-V (nom de projet:
Pacifica) de AMD.
Les architectures x86, x64, IA-64, PowerPC et SPARC sont supportées. Le
multiprocesseur (SMP) et partiellement l’Hyper-Threading sont supportés.

Plus de détails : http://www.cl.cam.ac.uk/Research/SRG/netos/xen/

37
KVM

KVM (Kernel-based Virtual Machine) est une machine virtuelle libre pour Linux. Elle
fonctionne sur les architectures x86 disposant des technologies Intel VT ou AMD
SVM (AMD-V).

Le module est intégré dans le noyau Linux depuis la version 2.6.20.


KVM est un fork de QEMU. Les développeurs des deux projets essayent de ne pas
trop diverger et le code source des deux projets est fréquemment resynchronisé. La
principale modification apportée est le support du module kvm. Lorsqu'on parle de
KVM, on parle généralement de l'ensemble : la version modifiée de QEMU et le
module kvm.
Les technologies mises en place par les deux principaux fondeurs que sont AMD et
Intel étant différentes, le module kvm se décline en deux sous-modules : kvm-intel et
kvm-amd ; le module kvm n'étant là en fait que pour fournir à l'émulateur une
abstraction supplémentaire.

Plus de détails : http://kvm.qumranet.com/kvmwiki

SOLARIS CONTAINERS

Solaris Containers (y compris les zones Solaris) est une implémentation de la


technologie de virtualisation du système d'exploitation de premier niveau mis à
disposition en 2005 dans le cadre de Solaris 10.

Un conteneur Solaris est la combinaison de contrôles des ressources système et la


séparation de la limite prévue par zones. Loi sur les zones complètement isolées
comme les serveurs virtuels dans une seule instance du système d'exploitation. En
consolidant plusieurs ensembles de services d'application sur un système unique et
en plaçant chacun dans des conteneurs isolés serveur virtuel, les administrateurs
système peuvent réduire les coûts et fournir toutes les mêmes protections que celles
des machines distinctes sur une seule machine.

Plus de détails : http://opensolaris.org/os/community/zones/

38
BSD JAILS

Les BSD Jails (« jail » signifie prison en anglais) sont un système logiciel permettant
d'emprisonner un processus et ses descendants.
En pratique, les jails sont souvent utilisés pour répondre à deux besoins :

contraindre l'exécution d'une application sensible (une application tournant avec
des privilèges importants, comme un serveur FTP par exemple) ; cela permet de
garder le système hôte sain en cas de problèmes avec l'application « emprisonnée »
suite à une activité malveillante ou tout simplement lors de tests/débogage ;

faire une « image virtuelle du système » permettant l'exécution de multiples
applications ; les objectifs sont les mêmes que précédemment, mais à plus large
échelle.
Souvent, une installation assez complète du système est nécessaire au bon
fonctionnement des applications placées dans le jail : bibliothèques, fichiers de
configuration, etc.
Les jails BSD rappellent le chroot que l'on peut trouver sous GNU/Linux/Unix, tout en
offrant plus de sécurité et de plus grandes possibilités de configuration.
http://www.freebsd.org/doc/fr_FR.ISO8859-1/books/handbook/jails.html

WINE

Wine est l'acronyme récursif anglophone de « Wine Is Not an Emulator »,


littéralement Wine n'est pas un émulateur. Parfois, on le considère aussi, à tort
comme l'acronyme de « WINdows Emulator ». Ce logiciel est une implémentation
libre de l'interface de programmation Microsoft Windows bâtie sur X et UNIX (BSD,
Linux), c’est-à-dire qu'il permet d'utiliser sous Linux ou Mac OS X des programmes
conçus pour fonctionner sous Windows. Le logiciel n'a donc pas besoin du système
d'exploitation Windows pour fonctionner. En cela, Wine se différencie des émulateurs
de machine comme QEMU et Bochs. Wine gère les modes 16 et 32 bits de l'interface
Windows. Wine est maintenant sous licence LGPL, après avoir été sous licence
WineHQ, puis X11.

Il fournit à la fois les outils de développement (Winelib) pour porter du code source
Windows vers Unix, et un chargeur de programmes permettant à de nombreux
binaires de fonctionner sans modifications.

Plus de détails : http://www.winehq.org/

39
JAVA VIRTUAL MACHINE

La Java virtual machine (abrégé JVM, en français machine virtuelle Java) est une
machine virtuelle permettant d’interpréter et d’exécuter le bytecode Java.
Architecture générale : illustration du slogan Compile once, run everywhere

Ce programme est spécifique à chaque plate-forme ou couple (machine/système


d’exploitation) et permet aux applications Java compilées en bytecode de produire
les mêmes résultats quelle que soit la plate-forme, tant que celle-ci est pourvue de la
machine virtuelle Java adéquate.

La machine virtuelle la plus utilisée est celle de Sun Microsystems. Elle est gratuite,
propriétaire jusqu'à la version 6 (stable) et libre à partir de la version 7 (non encore
officielle).

Le 11 novembre 2006, Sun Microsystems a publié les sources de sa machine


virtuelle HotSpot et de son compilateur javac sous licence Open Source GPL.

Plus de détails : http://java.sun.com

40

Vous aimerez peut-être aussi