Vous êtes sur la page 1sur 40

La 

virtualisation
Part 2
 
Rappel de terminologie

• Le système hôte (host) est l’OS principal de l’ordinateur.


• Le système invité (guest) est l’OS installé à l’intérieur d’une machine
virtuelle.
• Une machine virtuelle (VM) est un ordinateur virtuel qui utilise un système
invité.
• Un ordinateur virtuel est aussi appelé serveur privé virtuel (Virtual Private
Server ou VPS) ou environnement virtuel (Virtual Environment ou VE)
Historique de la virtualisation

Les années 70 : Une bonne part des travaux sur la virtualisation fut
développée au centre scientifique de Cambridge d’IBM en collaboration avec le
MIT, où fut mis au point le système expérimental CP/CMS, devenant ensuite le
produit (alors nommé Hyperviseur) VM/CMS. Par la suite, les mainframes
(serveurs IBM) ont été capables de virtualiser leurs systèmes d’exploitation
avec des technologies spécifiques et propriétaires, à la fois logicielles et
matérielles. En 1979 fut annoncé par exemple sur les IBM 4331 et 4341 un
accélérateur VM optionnel et microcodé.
Historique de la virtualisation

Les années 80-90 : Dans la deuxième moitié des années 1980 et au début


des années 1990, on a créé des embryons de virtualisation sur des ordinateurs
personnels. Ces solutions pouvaient être soit purement logicielles, soit couplées
à du matériel additionnel (ajout de processeur, carte réseau, etc.). Et c’est sur
des ordinateurs Amiga équipé de processeur hétérogène comme le 80386 et
80486, 68xxx, et PPC qu’il était possible de lancer d’autres OS comme un
Windows, Mac OS, voire des solutions Linux. Le tout en multitâche sous
AmigaOS. Pour les PC, il y avait des émulateurs comme le SideCar et PC Task.
Sur Macintosh, Emplant et ShapeShifter.
Historique de la virtualisation

Fin des années 90, début 2000 : Dans la seconde moitié des années 1990,
les émulateurs sur x86 des vieilles machines des années 1980 ont connu un
énorme succès, notamment les ordinateurs Atari, Amiga, Amstrad et les
consoles NES, SNES, Neo-Geo AES. La société VMware développa et popularisa
à la fin des années 1990 et au début des années 2000 un système propriétaire
de virtualisation logicielle des architectures de type x86 pour les architectures
de type x86. Les logiciels libres Xen, KVM, QEMU, Bochs, Linux-VServer, Virtual
Box et les logiciels propriétaires mais gratuits VirtualPC, Virtual Server et
VMware Server ont achevé la popularisation de la virtualisation dans le monde
x86.
Différents domaines

• Virtualisation d’applications (du contexte d’exécution).


• Virtualisation de serveur
• Virtualisation du réseau (VLAN)
• Virtualisation du stockage
Virtualisation d’applications

La virtualisation des applications fournit des environnements virtuels pour les


applications s’exécutant sur les postes de travail d’utilisateurs
Les avantages sont les suivants :
• Permet à des applications potentiellement incompatibles de s’exécuter sur un
même ordinateur
• Déploiement d’applications plus simple
• L’utilisation d’application virtuelle est transparente pour les utilisateurs
 Les applications virtuelles sont faciles à déployer
Virtualisation d’applications
Virtualisation de serveur

Regrouper plusieurs serveurs sur une même machine est une bonne stratégie si
l’on est certain que le pic de charge de chaque serveur n’est pas synchrone,
quand bien même la virtualisation constituerait une partie de la charge. La
virtualisation des serveurs apporte une grande flexibilité et modularité dans la
répartition des charges.
Avantages :
• Consolidation de serveurs
• Isolation d’application ou de service
• Déploiement simplifié de serveur
 Disponibilité accrue des services et des applications
• Plusieurs systèmes d’exploitation peuvent être exécutés sur une seule
plateforme cohérente.
Virtualisation de serveur
Virtualisation de réseau

• La virtualisation de réseau (NV) désigne l’abstraction sous forme logicielle des


ressources réseau traditionnellement fournies sous forme matérielle. La
virtualisation de réseau peut combiner plusieurs réseaux physiques en un
réseau logiciel virtuel, ou encore diviser un réseau physique en plusieurs
réseaux virtuels indépendants et distincts.
Pourquoi la virtualisation de réseau ?
• La virtualisation de réseau découple les services réseau du matériel sous-
jacent et permet d’effectuer le provisionnement virtuel de tout un réseau. Les
ressources du réseau physique, telles que les commutateurs et les routeurs,
sont regroupées et accessibles par n’importe quel utilisateur par
l’intermédiaire d’un système de gestion centralisé. La virtualisation de réseau
permet également de procéder à l’automatisation de nombre de tâches
administratives, ce qui réduit ainsi le nombre d’erreurs manuelles et le délai
de provisionnement. Elle renforce la productivité et l’efficacité du réseau.
Virtualisation de réseau (suite)

Exemple de virtualisation de réseau


• Les LAN virtuels (VLAN) sont un exemple de virtualisation de réseau. Un VLAN
est une sous-section d’un réseau local (LAN) créée avec un logiciel qui
combine les terminaux du réseau en un groupe, quel que soit leur
emplacement physique. Les VLAN améliorent la vitesse et les performances
des réseaux surchargés et simplifient les opérations de modification ou d’ajout
effectuées sur le réseau.

Types de virtualisation de réseau


• La virtualisation de réseau peut être de type externe ou interne. La
virtualisation externe combine plusieurs réseaux ou parties de réseau en une
unité virtuelle. La virtualisation interne utilise des conteneurs logiciels pour
reproduire ou fournir la fonctionnalité d’un réseau physique unique.
Virtualisation de réseau
Virtualisation du stockage

Principe de la virtualisation du stockage


• La virtualisation du stockage est un concept informatique et un ensemble de techniques
qui utilisent les notions de virtualisation pour fournir des fonctionnalités avancées dans
le domaine du stockage informatique. La virtualisation du stockage permet en
particulier de fédérer les volumes en une ressource unique.
• Cela permet également de limiter l’adhérence entre les différentes
technologies et des constructeurs.
Comment ça fonctionne ?
• Les solutions proposées par les leaders du marché, SVC pour IBM
et VPLEX pour EMC, sont similaires, elles consistent à intercaler des
équipements en amont des baies de stockage. Ces  équipements regroupés
par paires sont redondés en cluster, ces paires sont appelées I/O group.
Via l’interface d’administration, l’administrateur déclare des Storage pool dans
lesquels sont affectés des disques. Cette volumétrie sera ensuite découpée en
LUNs qui seront présentés aux serveurs clients.
Virtualisation du stockage
Quelques solutions (Open source)

• QEMU
• KVM
• XEN
• VirtualBox
• OpenVZ
• Docker
QEMU
• QEMU est un logiciel libre de machine virtuelle, pouvant émuler un processeur
et, plus généralement, une architecture différente si besoin.
• Auteur original : Fabrice Bellard
• Programmé en : C
• Système d'exploitation : Linux, Microsoft Windows et macOS
• Supporte les langages : / GTK et Simple DirectMedia Layer
• Type : Machine virtuelle
• Dernière version : 5.1.0 (11 août 2020)

Machine virtuelle complète


• Techniquement très aboutie
• Ex : VirtualBox et KVM reposent sur Qemu
VirtualBox
• Oracle VM VirtualBox est un logiciel libre de virtualisation publié par Oracle.
• Première version : 15 janvier 2007
• Dernière version : 6.1.16 (16 octobre 2020)
• Système d'exploitation : Linux, Microsoft Windows, macOS, Solaris et Genode OS
Framework
• Type : Hyperviseur
• Licence : Licence publique générale GNU version 2
• Programmé en : C, C++, Programmation Assembleur x86, Python
XEN
• Solution libre ancienne mais encore utilisée.
• Xen est un logiciel libre de virtualisation, plus précisément un hyperviseur de
machine virtuelle. Son développement a débuté sous la forme d'un projet de
recherche de l'université de Cambridge au Royaume-Uni. La société XenSource
a par la suite été créée et en a poursuivi le développement
• Programmé en : C
• Dernière version : 4.13 (18 décembre 2019)
• Type : Virtualisation
• Licence : GNU GPL
KVM

• KVM est un hyperviseur libre de type I pour Linux. KVM est intégré dans le
noyau Linux depuis la version 2.6.20. Il fonctionne originellement sur les
processeurs à architectures x86 disposant des instructions de Virtualisation
Intel VT ou AMD-V.
• Auteur original : Qumranet
• Programmé en : C
• Dernière version : 17
• Type : Hyperviseur
• Licence : GNU General Public License et GNU Lesser General Public License
• Plates-formes : Architecture ARM, IA-64, PowerPC, System z, x86, x64
OpenVZ
• OpenVZ est une technique de virtualisation de niveau système d'exploitation
basée sur le noyau Linux. Cette technique de virtualisation de niveau système
d'exploitation est souvent appelée conteneurisation et les instances sont
appelées conteneur. 
• Type : Virtualisation
• Première version : 2005
• Dernière version : 7.0 (26 juillet 2016)
• Système d'exploitation : Linux
• Programmé en : C
• Plates-formes : x86, x64
Virtualisation Complète

• 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 la plus simple a mettre en place
et est la plus pratique.
• Principe : L’hyperviseur crée un environnement virtuel 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 simulé, rendant
étanche l’environnement virtualisé.
Virtualisation Complète

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.
Quelques hyperviseurs de virtualisation complète :
• - VirtualBox

- VMWare Player, VMWare Workstation


- Parallels Desktop for Windows et Linux
- KVM
Les différents modes de Virtualisation

Virtualisation Complète
Para-Virtualisation

La paravirtualisation fait intervenir un hyperviseur. Il s’agit d’un noyau allégé au


dessus duquel viendront se greffer les systèmes invités. Contrairement a un
système traditionnel de machines virtuelles ou la virtualisation est transparente,
avec la paravirtualisation, le système invite doit avoir conscience qu’il tourne
dans un environnement virtuel ce qui implique d’employer un noyau modifié. Ce
type de virtualisation permet des performances bien plus importantes que la
virtualisation totale (assistée par matériel, que nous avons vu plus haut) .
Quelques hyperviseurs de virtualisation assisté :
- XEN
- VMWare ESX/ESXi
- Hyper-V (Microsoft)
- xVM
Para-Virtualisation
Les Isolateurs

• Un isolateur est un logiciel permettant d’isoler l’éxécution des applications


dans ce qui sont appelés des contextes, ou bien zones d’éxécution.
• L’isolateur permet ainsi de faire tourner plusieurs fois la même application
dans un mode multi-instance (plusieurs instances d’éxecution ) même si elle
n’était pas conçue pour ca. 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 virtualises 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 lies aux
systèmes Linux, les isolateurs sont en fait composés de plusieurs éléments et
peuvent prendre plusieurs formes.
• Par exemple : Linux-VServer (isolation des processus en espace utilisateur);
chroot (isolation changement de racine) ; BSD Jail (isolation en espace
utilisateur) ; OpenVZ : libre, (partitionnement au niveau noyau sous Linux) ;
LXC : libre, (usage des Cgroups du noyau Linux).
Les Isolateurs
Les principales solutions

XEN
• Xen est une solution de virtualisation open source développée initialement par
le département informatique de l’Université de Cambridge. Son
développement est aujourd’hui activement sponsorisé par Citrix, qui a racheté
l’éditeur initial XenSource. Citrix distribue une version commerciale de Xen,
nommée Citrix XenServer, particulièrement adaptée à la virtualisation des OS
Microsoft Windows et Linux. Elle est dotée d’une interface d’administration
avancée, et d’un accès au support technique. Quant aux fonctionnalités, elles
sont les mêmes que dans la version distribuée librement.
• De grandes sociétés comme IBM ont contribué au développement de Xen, et
de gros efforts ont été faits par Citrix pour assurer une compatibilité parfaite
avec Windows, compatibilité aujourd’hui reconnue par Microsoft.
KVM
• KVM, Kernel Virtual Machine, est intégré depuis le noyau 2.6.20 et permet une
virtualisation matérielle et donc une accélération de la virtualisation de système
d’exploitation.
• C’est un système optimise pour la virtualisation de serveur. Pour virtualiser des
systèmes de type desktop, on peut lui préférer virtualbox. KVM semble en effet
plus performant en consommation de processeur mais plus lent pour l’émulation
du périphérique graphique. L’utilisation d’un bureau virtualise dans VirtualBox
pourra donc laisser une meilleure impression a l’utilisateur.
• Vous pouvez tout de même préférer KVM pour sa meilleure compatibilité avec des
système d’exploitations anciens ou peu populaires. Néanmoins, KVM est
complètement libre, performant et très facile a installer et a utiliser. L’interface
graphique virt-manager pourra aider a paramétrer KVM et pourra rendre la vie plus
simple aux administrateurs réseaux. Mais vous ne pouvez pas utiliser KVM en
même temps que VirtualBox. Il faudra en effet fermer KVM pour utiliser VirtualBox
et vice versa, ou désactiver le support de la virtualisation processeur dans
VirtualBox.
VMware ESX
• VMware vSphere est un logiciel d’infrastructure de Cloud computing de l’éditeur
VMware, c’est un hyperviseur de type 1 (Bare Metal), base sur l’architecture
VMware ESXi.
• VMware vSphere nécessite une configuration matérielle restreinte précisée dans
le guide de comptabilité VMware.
• La gestion de ce serveur hôte peut se faire via plusieurs possibilités : par le
navigateur Web avec une connexion directe, par une console cliente avec une
connexion directe ou par un outil de gestion centralisée nommé Vmware vCenter
Server qui permet d’administrer l’ensemble des machines virtuelles, des hôtes
physiques, de leurs ressources et des options de l’environnement (High
Availability, vMotion, Storage vMotion, Distributed Resource Scheduler, Fault
Tolerance) depuis une seule console.
Quelques prouesses Vmware ESX
VMware ESX (suite)
• La version 6 de vSphere est sortie le 3 février 2015 et représente la dernière version stable de
vSphere. De plus, c'est l'une des solutions les plus complètes du marché des hyperviseurs.
VSphere ESXi 6 est un hyperviseur de Type 1 et permet de gérer et virtualiser des ordinateurs ou
des serveurs.
• Un serveur vSphere ESXi 6 peut prendre en charge jusqu'à 1024 machines virtuelles et peut
supporter jusqu'à 480 CPU, 6 TB de RAM et jusqu'à 2048 disques durs virtuels par hôte.
• Une Machine Virtuelle peut supporter jusqu'à 128 CPU virtuels, 4 TB de mémoire vive et des
disques virtuels jusqu'à 62 TB.
• Outre la création de machine virtuelle, vSphere ESXi dispose de nombreuses fonctionnalités qui
permettent de gérer au mieux les différentes VMs. Parmi ces fonctionnalités, on trouve le :
• - vMotion : vMotion est une fonctionnalité permettant la migration à chaud (sans avoir à éteindre
la VM) entre 2 hôtes ESXi. Ainsi lors d'une opération de maintenance, il n'y a plus d'interruption de
service. Il existe le même principe pour la partie stockage des VM (Storage vMotion)
• - vSphere HA : High Avaibaility est une fonctionnalité permettant un redémarrage automatique des
VM après une panne sur l'hôte.
Hyper-V
• Hyper-V, également connu sous le nom de Windows Server Virtualization, est un
système de virtualisation basé sur un hyperviseur 64 bits de la version de
Windows Server 2008.
• Il est possible d’utiliser la console Hyper-V sur Windows 7. Dans le sens inverse,
de nombreux systèmes d’exploitation peuvent tourner a l’intérieur de Hyper-V :
Bien évidemment pour les systèmes d’exploitation Microsoft Windows 8.1,
Windows 8, Windows 7 (sauf edition familiale), Windows Vista SP1/SP2 (sauf
edition familiale), Windows Server 2008 x64 SP1/SP2 et R2, Windows Server
2003 x64 SP2 et R2 SP2, Windows 2000 SP4, Windows XP Professionnel SP2/SP3
et x64 SP2
• Pour les systèmes d’exploitation linux : SUSE Linux Enterprise Server 10 SP1/SP2
et 11, Red Hat Enterprise Linux 5.2 x64 et versions ultérieures et Ubuntu 12.04
LTS et versions ultérieures
OpenVZ
• Une des solutions les plus avancées et matures dans le domaine de l’isolation est
OpenVZ. Ce produit se présente sous la forme d’un patch pour le noyau Linux, et
d’un ensemble d’outils d’administration. Le patch du noyau permet a un système
GNU/Linux de gérer des contextes virtualises. Les outils d’administration permettent
de créer, d’instancier, et de contrôler les environnements virtuels. Rappelons que la
technologie d’isolation ne permet d’éxecuter que des serveurs virtuels Linux sur un
hôte OpenVZ, même si ces serveurs peuvent être de distributions différentes.
Certaines distributions Linux proposent des versions packagées d’OpenVZ. En
particulier, la distribution Debian GNU/Linux, dans les versions Lenny et Squeeze,
permet à l’installation du serveur physique de mettre en place cette solution en
quelques secondes via son système de packages. Il faut cependant noter que
OpenVZ a été remplace par LXC dans la version Squeeze, paru en 2013.
• Le projet OpenVZ fournit aux systèmes GNU/Linux une méthode de virtualisation.
Cette virtualisation se situe au niveau du noyau de l’OS. Cela rend possible
l’éxecution de multiples instances d’OS GNU/Linux sur la même machine. Ces
instances fonctionnant de façon complètement sécurisées et partageant
intelligemment les ressources du serveur hôte.
LXC
• LXC est une solution de virtualisation de type isolateur. Cette solution permet
la virtualisation par container au niveau du noyau. LXC est très récent et
remplace Linux-VServer et OpenVZ. Aussi, LXC est dès a présent intégré au
noyau, ce qui n’a jamais été le cas des solutions citées précédemment.
• L’isolateur tire avantage de la possibilité, unique sous UNIX et Linux, de
partager le noyau avec d’autres processus du système. Cette virtualisation à
noyau partage utilise une fonctionnalité nommée chroot. Cette fonctionnalité
modifie le système de fichiers racine d’un processus pour l’isoler de manière à
fournir une certaine sécurité.
Conteneurisation versus Virtualisation

Virtualisation
• Une machine virtuelle (VM - Virtual Machine) « imite » intégralement un serveur. Dans un serveur
virtualisé type, chaque VM « invitée » contient un système d'exploitation complet, avec ses pilotes,
fichiers binaires ou bibliothèques, ainsi que l'application elle-même. Chaque VM s'exécute alors sur
un hyperviseur, qui lui-même fait fonctionner le matériel du serveur physique.
Conteneurisation
• A la base, le concept de conteneurisation permet aux instances virtuelles de partager un système
d'exploitation hôte unique, avec ses fichiers binaires, bibliothèques ou pilotes.
• Cette approche réduit le gaspillage des ressources car chaque conteneur ne renferme que
l'application et les fichiers binaires ou bibliothèques associés. On utilise donc le même système
d'exploitation (OS) hôte pour plusieurs conteneurs, au lieu d'installer un OS (et d’en acheter la
licence) pour chaque VM invitée. Ce procédé est souvent appelé virtualisation au niveau du système
d'exploitation.
• Le rôle de l'hyperviseur est alors assuré par un moteur de conteneurisation, tel que Docker, qui
s'installe par-dessus le système d'exploitation hôte.
Exemple de conteneurisation : Docker
• Docker est une application qui fournit des capacités de conteneur en interagissant directement avec
le système d'exploitation hôte, et offrant un moyen de créer des conteneurs qui peuvent être
packagés, répliqués, portés, sauvegardés, etc. Docker est une plate-forme pour construire et
exécuter des applications distribuées.
• Comme le conteneur de chaque application est libéré de la charge d'un OS, il est nettement plus
petit, plus facile à migrer ou à télécharger, plus rapide à sauvegarder ou à restaurer.
• Enfin, il exige moins de mémoire. La conteneurisation permet au serveur d'héberger potentiellement
beaucoup plus de conteneurs que s'il s'agissait de machines virtuelles. La différence en termes
d'occupation peut être considérable, car un serveur donné accueillera de 10 à 100 fois plus
d'instances de conteneur que d'instances d'application sur VM.
• En isolant les conteneurs les uns des autres, la conteneurisation assure la sécurité des applications
et empêche la prolifération de logiciels malveillants entre les instances, même si, par définition,
l’isolation est plus importante entre VM qu’entre conteneurs.
• Les applications exécutées dans un conteneur peuvent être des applications autonomes ou système
d'exploitation (OS) en tant qu’OS invité. Sur la base de l'application, les conteneurs peuvent être
divisés en deux catégories:
• Conteneur d ’OS
• Conteneur d'application.

Vous aimerez peut-être aussi