Virtualisation et Cloud Computing Chapitre 2 : Abstraction et Virtualisation
Objectifs Présenter la notion de niveaux d abstraction séparés par des interfaces bien définies Description des avantages et désavantages de l abstraction avec des interfaces standards Expliquer les différentes visions d une «machine» abstraite Taxonomie des VMs Virt. & Cloud 12/13 2
Abstraction avec interfaces standards Interface : dispositif qui permet des échanges et interactions entre différents acteurs Homme-Machine Programme-Librairie (API) OS (appel de fonctions) Logiciel-Matériel etc. Virt. & Cloud 12/13 3
Avantages Découplage des tâches de conception majeures En temps et en espace Développements matériels et logiciels sont indépendants Un logiciel peut s exécuter sur n importe quelle machine Supportant une interface compatible Virt. & Cloud 12/13 4
Inconvénients Logiciel compilé pour un ISA ne peut pas s exécuter sur un autre ISA Code binaire pour ios sur un x86 Même si les ISAs sont les mêmes, les OS peuvent différer Application Windows sur un Linux x86 Le code binaire peut ne pas être optimisé pour le matériel spécifique sur lequel il s exécute Binaire pour Intel P4 sur un AMD Athlon? Virt. & Cloud 12/13 5
Inconvénients (suite) L innovation serait inhibée pour un ISA déterminé Difficile d ajouter de nouvelles instructions Ou d en supprimer les instructions obsolètes Quel est l ISA le nouveau plus réussi? Ou le nouveau OS? Difficile pour un logiciel d interagir directement avec une implémentation Critères de performance Gestion de puissance (énergie) Tolérance aux fautes Un logiciel devrait être indépendant d une implémentation Virt. & Cloud 12/13 6
Ressources matérielles Un système traditionnel gère les ressources directement Un OS gère une mémoire physique d une taille spécifique Les dispositifs d E/S sont gérés comme des ressources physiques Difficile de partager les ressources excepté via un OS Tous les utilisateurs du matériels doivent utiliser le même OS Tous les utilisateurs sont vulnérables aux attaques des autres utilisateurs qui partagent les mêmes ressources (failles sécuritaires des OS) Virt. & Cloud 12/13 7
Abstraction Les systèmes informatiques sont bâtis sur des niveaux d abstraction Les hauts niveaux d abstraction cachent les détails des niveaux les plus bas Fichiers: abstraction d un disque Virt. & Cloud 12/13 8
Virtualisation Un isomorphisme de l invité (guest) vers hôte (host) Transformer l état de l invité à celui de l hôte Implémenter des fonctions «équivalentes» Virt. & Cloud 12/13 9
Virtualisation Similaire à l abstraction Sauf que Les détails ne sont pas nécessairement cachés Créer des disques virtuels Idem que des fichiers dans un disque plus large Transformer l état Implémenter des fonctions VMs : faire la même chose avec la machine entière Virt. & Cloud 12/13 10
La machine Différentes perceptions de ce que représente la machine Développeur d OS Jeux d instructions (ISA) Distinction totale entre matériel et logiciel Virt. & Cloud 12/13 11
La machine Développeur de compilateurs Application Binary Interface ABI User ISA + appels système Virt. & Cloud 12/13 12
La machine Programmeur Interfaces de programmation d applications API ISA utilisateur + Appels de librairies Virt. & Cloud 12/13 13
Interfaces de programmes Interface ISA supporte tous les logiciels conventionnels Application Binary Interface (ABI) supporte seulement les logiciels d applications Virt. & Cloud 12/13 14
Machines Virtuelles Ajouter un logiciel de virtualisation a une plateforme Hôte (Host) et, supporter un processus ou un système Invité (Guest) dans une Machine Virtuelle (VM) Virt. & Cloud 12/13 15
Familles de VMs Ce qu on appelle «machines virtuelles» IBM VM/370 Java VMware Ce qu on n appelle pas «machines virtuelles» alors qu elles le sont IA-32 EL Dynamo Transmeta Crusoe Virt. & Cloud 12/13 16
Machines Virtuelles de Systèmes Fournir un environnement système Construit au niveau ISA Persistent Exemples: IBM VM/360, Vmware, Transmeta Crusoe Virt. & Cloud 12/13 17
Machines Virtuelles de Processus Exécuter du code binaire d applications sur un ISA différent de la plateforme matérielle Couplage au niveau ABI via le Système d exécution (Runtime System) Exemples : IA-32 EL, FX!32 Virt. & Cloud 12/13 18
Optimiseur Dynamique de Binaires Optimise du code binaire à l exécution Optimisation au niveau ABI Un type de VM de processus Exemple : HP Dynamo Peut optimiser les propriétés dynamiques d un programme Peut optimiser pour un processeur spécifique Virt. & Cloud 12/13 19
VM de Langages de Haut Niveau Hausser le niveau d abstraction ISA virtuel élevé au niveau utilisateur OS abstrait à des librairies standards VM de Processus (ou VM d API) Virt. & Cloud 12/13 20
Composition Virt. & Cloud 12/13 21
Résumé (Taxonomie) Virt. & Cloud 12/13 22