Académique Documents
Professionnel Documents
Culture Documents
virtualisation
Part 2
Rappel de terminologie
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
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
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
• 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)
• 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
Virtualisation Complète
Para-Virtualisation
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.