SMB137 - Cinquième partie Virtualisation de Systèmes Rémi LEBLOND http://remileblond.fr/smb137 Conservatoire National des Arts et Métiers - Centre de Strasbourg 1 er octobre 2014
Plan Qu est-ce que la virtualisation? 1 Qu est-ce que la virtualisation? 2 3 4 /64 Rémi LEBLOND http://remileblond.fr/smb137 SMB137 - Cinquième partie
Qu est-ce que la virtualisation? Système virtuel Usages de la virtualisation Les intérêts de la virtualisation Critères d évaluation Qu est-ce qu un composant virtuel? apparence fonctionnelle structure physique mémoire, systèmes de fichiers... machine complète Virtualisation de systèmes : fait fonctionner X systèmes sur Y machines physiques généralement, X Y Finalités maintenabilité consolidation souplesse 5/64 Rémi LEBLOND http://remileblond.fr/smb137 SMB137 - Cinquième partie
Historique Qu est-ce que la virtualisation? Système virtuel Usages de la virtualisation Les intérêts de la virtualisation Critères d évaluation En grande partie développé au centre scientifique de Cambridge d IBM, en collaboration avec le MIT Mise au point du système expérimental CP/CMS Devenu ensuite VM/CMS Commercialisé sur IBM OS/360 1965 introduction du temps partagé rétro-compatibilité par émulation des séries 1400 ou 7094 (logiciel et micro-code) repris ensuite sur l ensemble de la gamme mainframe Vers 1985-90 : virtualisation pour les ordinateurs personnels émulation de différents systèmes (ordinateur, consoles...) support purement logiciel ou adossé à du matériel additionnel (processeur... ) 7/64 Rémi LEBLOND http://remileblond.fr/smb137 SMB137 - Cinquième partie
8/64 Qu est-ce que la virtualisation? Les diffe rentes approches de virtualisation Syste me virtuel Usages de la virtualisation Les inte re ts de la virtualisation Crite res d e valuation Historique Exemples d e mulateurs sur ordinateurs personnels Commodore Amiga a la pointe Processeurs he te roge nes : 80386 et 80486, 68xxx, et PPC Possibilite de lancer d autres syste mes d exploitation Dos / Windows, Macintosh, Unix, Atari... SideCar et PC Task sur PC Emplant et ShapeShifter sur Macintosh Figure : Amiga 500, 1987 Re mi LEBLOND http://remileblond.fr/smb137 SMB137 - Cinquie me partie
Historique Qu est-ce que la virtualisation? Système virtuel Usages de la virtualisation Les intérêts de la virtualisation Critères d évaluation Après 1990 : solutions Unix Architectures NUMA des Superdome d HP (PA-RISC et IA-64) E10000/E15000 de Sun (UltraSparc). Après 1995 : émulation de machines anciennes Atari, Amiga, Amstrad et les consoles NES, SNES, Neo-Geo AES Début 2000 : explosion des solutions de virtualisation professionnelles sur x86 commerciales : VmWare en tête, VirtualPC, Virtual Server libres : Xen, KVM, QEMU, Bochs, Linux-VServer, Virtual Box 9/64 Rémi LEBLOND http://remileblond.fr/smb137 SMB137 - Cinquième partie
Usages de la virtualisation Système virtuel Usages de la virtualisation Les intérêts de la virtualisation Critères d évaluation Émulateur : VirtualPC, Parallels Desktop, Apple Rosetta Outil d infrastructure : VmWare ESX, Microsoft Hyper-V Server, Citrix Xen Support d applications : Java, CLR.Net 10/64 Rémi LEBLOND http://remileblond.fr/smb137 SMB137 - Cinquième partie
Système virtuel Usages de la virtualisation Les intérêts de la virtualisation Critères d évaluation Comparaison avec une architecture physique Machine physique Machines virtuelles Traitement Traitement Traitement Traitement Interface de programmation Noyau Noyau Noyau MV1 MV2 MV3 Noyau Matériel Implémentation de la machine virtuelle Matériel 11/64 Rémi LEBLOND http://remileblond.fr/smb137 SMB137 - Cinquième partie
Système virtuel Usages de la virtualisation Les intérêts de la virtualisation Critères d évaluation Exemple de combinaison de machines virtuelles Machines virtuelles Applet JVM Windows NT VMWARE Linux AIX IBM VM/OS Matériel 12/64 Rémi LEBLOND http://remileblond.fr/smb137 SMB137 - Cinquième partie
Pourquoi un tel essor? Système virtuel Usages de la virtualisation Les intérêts de la virtualisation Critères d évaluation Systèmes centraux concentration des centres de traitement Micro-informatique multiplication du nombre de serveurs difficulté de maintenance dépense énergétique Nécessité de re-centraliser Trois problèmes Sous-utilisation des ressources, adaptation aux besoins, équilibrage de charge Difficultés de maintenance et de sécurisation Moindre efficacité énergétique 14/64 Rémi LEBLOND http://remileblond.fr/smb137 SMB137 - Cinquième partie
Intérêts de la virtualisation Système virtuel Usages de la virtualisation Les intérêts de la virtualisation Critères d évaluation Utilisation optimale des ressources mutualisation du matériel facilité d adaptation à la charge allocation dynamique des ressources Facilité d installation, de gestion et de paramétrage réplication points de reprise plan de reprise facilité (PRA) Optimisation de la consommation énergétique 15/64 Rémi LEBLOND http://remileblond.fr/smb137 SMB137 - Cinquième partie
Domaines d application Système virtuel Usages de la virtualisation Les intérêts de la virtualisation Critères d évaluation Permet de mettre en place des serveurs virtuels dédiés (VDS) permet le partage de ressource, l autonomie et le contrôle total du serveur hébergement mutualisé Améliore la disponibilité des serveurs ou des services répartition de charge reprise automatique sur incident Facilite les tests Simulation d architectures complexes et hétérogènes Facilité de mise en œuvre (clonage et points de reprise) 16/64 Rémi LEBLOND http://remileblond.fr/smb137 SMB137 - Cinquième partie
Système virtuel Usages de la virtualisation Les intérêts de la virtualisation Critères d évaluation Les critères d évaluation de la virtualisation La transparence Le fonctionnement du système non modifié par la virtualisation Le cloisonnement fonctionnement indépendant pas d interférence entre machines virtuelles Les performances minimisation des pertes liées à la virtualisation (overhead) 18/64 Rémi LEBLOND http://remileblond.fr/smb137 SMB137 - Cinquième partie
Implémentation de l hyperviseur L hyperviseur L émulateur Support matériel Placé entre le matériel et le système d exploitation Utilisé pour les émulations de bas niveau Implémentation : soit gère directement toutes les ressources (type 1) soit hébergé par un système hôte (type 2) 21/64 Rémi LEBLOND http://remileblond.fr/smb137 SMB137 - Cinquième partie
L hyperviseur natif - type 1 L hyperviseur L émulateur Support matériel Différents noms hyperviseur de type 1 hyperviseur natif émulation bare metal Noyau simplifié allégé optimisé pour accueillir des OS invités Support matériel de bas niveau : pas de support spécifique paravirtualisation instructions de virtualisation matérielle (AMD-V et Intel-VT) Virtualisation complète 22/64 Rémi LEBLOND http://remileblond.fr/smb137 SMB137 - Cinquième partie
Hyperviseur natif - type 1 Cas de la gestion directe des ressources L hyperviseur L émulateur Support matériel Applications Applications Applications Applications OS invité OS invité OS invité OS invité Hyperviseur Matériel 23/64 Rémi LEBLOND http://remileblond.fr/smb137 SMB137 - Cinquième partie
Exemples de solutions - type 1 L hyperviseur L émulateur Support matériel Solutions logicielles CP/CMS d IBM, ancêtre de z/vm Xen (OpenSource), racheté par Citrix Oracle VM ESX Server de VMware Hyper-V de Microsoft Kernel-based Virtual Machine : QEmu / KVM (OpenSource) Proxmox, OpenSource - Proxmox Server Solutions GmbH Solutions matérielles Intégration de l hyperviseur dans le micrologiciel (firmware) Hyperviseur Virtage d Hitachi 24/64 Rémi LEBLOND http://remileblond.fr/smb137 SMB137 - Cinquième partie
Hyperviseur de type 2 L hyperviseur L émulateur Support matériel Logiciel qui s exécute à l intérieur d un autre OS OS hôte OS invité troisième niveau d exécution au-dessus du matériel perte de performance (overhead) Exemples VMware Server (ex GSX), Workstation, Fusion Open source QEMU Microsoft Virtual PC et VirtualServer VirtualBox d Oracle Parallels Workstation de SWsoft et Parallels Desktop 25/64 Rémi LEBLOND http://remileblond.fr/smb137 SMB137 - Cinquième partie
Hyperviseur de type 2 L hyperviseur L émulateur Support matériel Applications Applications Applications OS invité OS invité OS invité Applications Hyperviseur OS hôte Matériel 26/64 Rémi LEBLOND http://remileblond.fr/smb137 SMB137 - Cinquième partie
Hyperviseurs de type 1 ou 2 L hyperviseur L émulateur Support matériel 27/64 Rémi LEBLOND http://remileblond.fr/smb137 SMB137 - Cinquième partie
L émulation du processeur L hyperviseur L émulateur Support matériel Simulation du processeur traduction de chaque instruction destinée à la CPU Couteux en performances émulation de très bas niveau overhead important Viable uniquement si le système hôte et beaucoup plus puissant que le système invité : Atari, Playstation 1, Apple ][, GameBoy, Palm... 29/64 Rémi LEBLOND http://remileblond.fr/smb137 SMB137 - Cinquième partie
L émulation du processeur L hyperviseur L émulateur Support matériel Exemples de solutions QEMU, émulateur OpenSource fonctionne ou émule x86, PPC ou Sparc VirtualPC, racheté par Microsoft en 2003 émulation d un PC sur Mac PPC Roseta, d Apple 30/64 Rémi LEBLOND http://remileblond.fr/smb137 SMB137 - Cinquième partie
Émulation d un système hôte L hyperviseur L émulateur Support matériel Prise en charge d une autre API, d un autre format de fichier exécutable que le système cible Impact beaucoup plus léger sur les performances Niveau d abstraction nettement plus élevé Exemples : Prise en charge de programmes Windows sur MacOsX ou Linux sur PC x86 31/64 Rémi LEBLOND http://remileblond.fr/smb137 SMB137 - Cinquième partie
Émulation d un système hôte L hyperviseur L émulateur Support matériel Wine Implémentation de l API Win32 pour Linux, MacOsX et autres Unix Deux possibilités : Utilisation des DLL Windows Ré-écriture à partir des spécifications externes (logiciel libre) Excellentes performances (parfois meilleures que sous Windows) 32/64 Rémi LEBLOND http://remileblond.fr/smb137 SMB137 - Cinquième partie
Support matériel L hyperviseur L émulateur Support matériel Solutions matérielles : Intégration au processeur : instructions spécifiques, niveaux de privilèges Virtualisation des accès mémoire : MMU cloisonnables Aide au développement de systèmes virtualisés : Simplification de la virtualisation logicielle Optimisation des performances Doit nécessairement être exploité par du logiciel 34/64 Rémi LEBLOND http://remileblond.fr/smb137 SMB137 - Cinquième partie
Support matériel L hyperviseur L émulateur Support matériel Exemples de support matériel : Hyperviseur IBM Power6 et Micro-partitionnement AIX Mainframes : VM/CMS Sun LDOM (hyperviseur pour la gestion de logical domains ) Sun E10k/E15k HP Superdome AMD-V (anciennement Pacifica) Intel VT (anciennement Vanderpool) 35/64 Rémi LEBLOND http://remileblond.fr/smb137 SMB137 - Cinquième partie
L hyperviseur L émulateur Support matériel Instructions dédiées à la virtualisation Habituellement noyau en Ring 0 programmes utilisateur en Ring 3 seul l OS hôte à accès au Ring 0 Technologie de partition processeur technologie de décalage géré par le BIOS OS invité exploite le Ring 2 lorsqu il croit accéder au Ring 0 Implémentations VT-x (Virtual Technology) - 2003 - EPT (Extended Page Table) sur Nehalem AMD-V 36/64 Rémi LEBLOND http://remileblond.fr/smb137 SMB137 - Cinquième partie
Le cloisonnement Isolation (cloisonnement) La paravirtualisation La virtualisation complète Partitionnement d un système d exploitation tous les OS invités sont du même type isolés les uns des autres Séparation en plusieurs environnements tous sont régis par l OS hôte chaque processus ne peut interagir qu avec les ressources et processus de son contexte Partionnement de serveurs 39/64 Rémi LEBLOND http://remileblond.fr/smb137 SMB137 - Cinquième partie
Le cloisonnement Exemple d Unix : chroot Isolation (cloisonnement) La paravirtualisation La virtualisation complète Isolement d applications dans des contextes cloisonnés mini-système accès limités ne contient que les programmes et les ressources nécessaires Utilisation d un noyau unique Solution légère à mettre en oeuvre (faible overhead) protection du système (serveur FTP, par exemple) cohabitation d applications incompatibles (bibliothèques) Exemple d utilisation de bash chroot /home/debian bash -i 40/64 Rémi LEBLOND http://remileblond.fr/smb137 SMB137 - Cinquième partie
Le cloisement Exemple de Linux VServer Isolation (cloisonnement) La paravirtualisation La virtualisation complète Patch Linux + outils Basé sur les Security Context serveurs virtuels Privés (VPS) base utilisateurs propre isolé de tous les autres VPS, mais partage les mêmes ressources matérielles Permet d exploiter de multiples systèmes sur un système hôte 41/64 Rémi LEBLOND http://remileblond.fr/smb137 SMB137 - Cinquième partie
La paravirtualisation Isolation (cloisonnement) La paravirtualisation La virtualisation complète Plus bas niveau que l isolation S appuie sur une couche hyperviseur bas niveau : interface avec les ressources matérielles présente une machine générique spécifique accueille des OS variés (invités) Nécessite une adaptation des systèmes invités OS modifié pour la paravirtualisation interfaces spéciales drivers adaptation du système hôte et des systèmes invités 43/64 Rémi LEBLOND http://remileblond.fr/smb137 SMB137 - Cinquième partie
La paravirtualisation Exemple de KVM / Vitrio Isolation (cloisonnement) La paravirtualisation La virtualisation complète Virtual Input-Output branche officielle du noyau Linux OS invité : module du noyau Linux OS hôte : outils spécifiques (Linux et Windows) Pilote spécifique Traduit les demandes d E/S en appel de haut niveau ajout dans une liste FIFO exploitée par le système hôte Support cartes réseau et contrôleurs de disques Nécessite une adaptation du système invité uniquement pour des OS ouverts Linux 44/64 Rémi LEBLOND http://remileblond.fr/smb137 SMB137 - Cinquième partie
La virtualisation complète Isolation (cloisonnement) La paravirtualisation La virtualisation complète Hyperviseur de bas niveau émulation du niveau matériel aucune modification de l OS invité transparence les OS invités n ont pas conscience d être virtualisés 46/64 Rémi LEBLOND http://remileblond.fr/smb137 SMB137 - Cinquième partie
Illustration Exemple de Proxmox Virtual Environment Isolation (cloisonnement) La paravirtualisation La virtualisation complète Solution libre de virtualisation Virtualisation bare metal containers Linux (OpenVZ) paravirtalisation (KVM / Virtio) virtualisation complète (KVM sur Inter-VT ou AMD-V) Inclut : système d exploitation complet (Debian Lenny 64 bits) partitionnement de disque dur avec LVM2 outil de sauvegarde support du clustering avec migration à chaud des VM outil Web d administration et de surveillance 47/64 Rémi LEBLOND http://remileblond.fr/smb137 SMB137 - Cinquième partie
Virtualisation de serveurs Virtualisation de serveurs Virtualisation du poste client (VDI) Virtualisation d application Virtualisation et Cloud Computing Utilisation traditionnelle de la virtualisation 50/64 Rémi LEBLOND http://remileblond.fr/smb137 SMB137 - Cinquième partie
Virtualisation du poste client Virtualisation de serveurs Virtualisation du poste client (VDI) Virtualisation d application Virtualisation et Cloud Computing VDI : Virtual Desktop Infrastructure : H-VDI : Hosted VDI : Hyperviseur centralisé Client léger Déport d affichage (RCP, ICA) Local-VDI : Hyperviseur local 52/64 Rémi LEBLOND http://remileblond.fr/smb137 SMB137 - Cinquième partie
Virtualisation d application Virtualisation de serveurs Virtualisation du poste client (VDI) Virtualisation d application Virtualisation et Cloud Computing Emulation de plateforme : Wine : émulation d application Windows sur Linux JVM, CLR : machine virtuelle Java/.Net Encapsulation : VMware ThinApp Microsoft APP-V Citrix XenApp 54/64 Rémi LEBLOND http://remileblond.fr/smb137 SMB137 - Cinquième partie
Virtualisation de serveurs Virtualisation du poste client (VDI) Virtualisation d application Virtualisation et Cloud Computing Les cinq caractéristiques du Cloud Computing [1] 1 Accès réseau universel Accessible via le réseau, quel que soit le terminal 2 Mise en commun de ressources pooling des ressources logiques (puissance de calcul, capacité totale de stockage, bande passante disponible) ne tient pas compte des ressources physiques (nombre de serveurs, taille de disques ou nombre de processeurs) 3 Elasticité Possibilité d adapter rapidement les ressources à ses besoins, dans un sens comme dans l autre 4 Libre-Service Traitement automatique des demandes de ressources 5 Service mesurable et facturable facturation à l usage, en fonction de la consommation de ressources 6/64 Rémi LEBLOND http://remileblond.fr/smb137 SMB137 - Cinquième partie
Virtualisation de serveurs Virtualisation du poste client (VDI) Virtualisation d application Virtualisation et Cloud Computing Les différents niveaux de prise en charge SaaS : Software as a Service Mise à disposition d applications PaaS : Platform as a Service Mise à disposition de plateformes de haut niveau IaaS : Infrastructure as a Service Mise à disposition d une infrastructure virtuelle complète 57/64 Rémi LEBLOND http://remileblond.fr/smb137 SMB137 - Cinquième partie
Virtualisation de serveurs Virtualisation du poste client (VDI) Virtualisation d application Virtualisation et Cloud Computing Les différents niveaux de prise en charge [1] 58/64 Rémi LEBLOND http://remileblond.fr/smb137 SMB137 - Cinquième partie
SaaS : Software as a Service [2] Virtualisation de serveurs Virtualisation du poste client (VDI) Virtualisation d application Virtualisation et Cloud Computing Logiciel consommé sous la forme d un service Aucune visibilité sur la plateforme et l infrastructure mises en oeuvre Niveau d abstraction : l application Exemples de fournisseurs Google Docs, Office 365, Sales Force, Adobe Creative Cloud, Apple icloud, DropBox,... 59/64 Rémi LEBLOND http://remileblond.fr/smb137 SMB137 - Cinquième partie
PaaS : Platform as a Service Virtualisation de serveurs Virtualisation du poste client (VDI) Virtualisation d application Virtualisation et Cloud Computing Mise à disposition d une plateforme sur laquelle des développeurs peuvent déployer des applications Exemples : Serveur d application (J2EE...), serveur Web, API... Serveur de base de données (SQL, NoSQL... ) Niveau d abstraction : la plateforme Exemples de fournisseurs Google App Engine (serveurs Google ou AppScale), Microsoft Azure... 60/64 Rémi LEBLOND http://remileblond.fr/smb137 SMB137 - Cinquième partie
IaaS : Infrastructure as a Service Virtualisation de serveurs Virtualisation du poste client (VDI) Virtualisation d application Virtualisation et Cloud Computing L entreprise gère : les systèmes d exploitation des serveurs les logiciels applicatifs (exécutables, paramétrages, l intégration SOA, les bases de données) Le fournisseur Cloud gère : le matériel serveur les couches de virtualisation le stockage les réseaux Niveau d abstraction : l infrastructure logique Exemples de fournisseurs Cloud Power, Desktone, Infoserv, Provectio, DotRiver... 61/64 Rémi LEBLOND http://remileblond.fr/smb137 SMB137 - Cinquième partie
Exemple d IaaS : OpenStack Virtualisation de serveurs Virtualisation du poste client (VDI) Virtualisation d application Virtualisation et Cloud Computing Plateforme OpenSource double licence GPL, LGPL Compatible avec de nombreux hyperviseurs KVM, Xen, VmWare... Soutenu par de nombreux acteurs importants NASA, IBM, Dell, HP, Cisco, NTT, Redhat, Canonical... 62/64 Rémi LEBLOND http://remileblond.fr/smb137 SMB137 - Cinquième partie
OpenStack : les composants de base Virtualisation de serveurs Virtualisation du poste client (VDI) Virtualisation d application Virtualisation et Cloud Computing OpenStack Compute : gestion de l exécution et des communications réseau OpenStack Object Storage : gestion du stockage des données OpenStack Image Service : gestion des images de référence des machines virtuelles (image de base et snapshot) 63/64 Rémi LEBLOND http://remileblond.fr/smb137 SMB137 - Cinquième partie
Bibliographie I Qu est-ce que la virtualisation? Virtualisation de serveurs Virtualisation du poste client (VDI) Virtualisation d application Virtualisation et Cloud Computing SysDis. Cloud computing : Définitions et notions de base. http://communication.sysdis.fr/2012/05/09/ cloud-computing-dfinitions-et-notions-de-base/, 11 2013. Wikipédia. Software as a service. http: //en.wikipedia.org/wiki/software_as_a_service, 11 2013. 64/64 Rémi LEBLOND http://remileblond.fr/smb137 SMB137 - Cinquième partie