Cloud 2
Cloud 2
Cloud 2
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
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
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
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
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
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
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
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
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
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
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
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
Dr EL HASSANI MOUHCINE 30
15
Les différents types de virtualisation
1. La virtualisation complète:
Travaux pratiques
Dr EL HASSANI MOUHCINE 31
Dr EL HASSANI MOUHCINE 32
16
Les différents types de virtualisation
2. La para-virtualisation
Dr EL HASSANI MOUHCINE 33
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
Dr EL HASSANI MOUHCINE 36
18
Les différents types de virtualisation
2. La para-virtualisation
Dr EL HASSANI MOUHCINE 37
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
Dr EL HASSANI MOUHCINE 40
20
Les différents types de virtualisation
3. La virtualisation assistée par le matériel
Dr EL HASSANI MOUHCINE 41
21
Les différents types de virtualisation
3. La virtualisation assistée par le matériel
Dr EL HASSANI MOUHCINE 43
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
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
24
Les différents types de virtualisation
3. La virtualisation assistée par le matériel
Dr EL HASSANI MOUHCINE 49
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
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
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
Dr EL HASSANI MOUHCINE 56
28
Les différents types de virtualisation
3. La virtualisation assistée par le matériel
Technologies
Dr EL HASSANI MOUHCINE 57
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
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
Dr EL HASSANI MOUHCINE 62
31
Les différents types de virtualisation
4. Le cloisonnement
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.
32
Solutions Open Sources
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.
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
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
●
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.
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.
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.
OPENVZ
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.
36
LINUX VSERVER
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.
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).
SOLARIS CONTAINERS
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
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.
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
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).
40