Grid, Virtualisation, et HPC 4/22/2017 4:44 PM Grid, Virtualisation, et HPC Bernard Ourghanlian CTO & CSO – Microsoft France © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
La virtualisation
La virtualisation traditionnelle Mémoire virtuelle Fournit protection, isolation, réaffectation, échange (swapping) Requiert le support du hardware support pour une meilleure efficacité mmap() Unix Très utile pour la lecture, plus délicat à utiliser en écriture RAID – un disque à partir de plusieurs Mise en œuvre matérielle ou logicielle La disposition des blocs devient virtuelle Deux objectifs contradictoires pour la virtualisation Transparence Faible surcoût
Exemples de virtualisation de machine Exécuter simultanément Linux et Windows sur la même machine Différents systèmes d’exploitation, même ISA Exécuter des applications Linux/x86 sur Linux/PowerPC Même système d’exploitation, différentes ISA Exécuter Windows/x86 sur MacOSX/PowerPC Différents systèmes d’exploitation, différentes ISA Exécuter plusieurs machines virtuelles Windows/x86 Même système d’exploitation, même ISA Exécuter des bytecodes Java sur Windows/x86
Applications de la virtualisation de machine (1 / 2) Compatibilité (ISA et/ou système d’exploitation) VAX/VMS Indépendance du hardware (par exemple les machines virtuelles Java) De la même nature : le code morphing de Transmeta Installation de nouveaux environnements et tests logiciels Migration de logiciel Développement et débogage Systèmes logiciels complexes Conception de processeurs (simulation plutôt qu’émulation) Analyse générale des performances
Applications de la virtualisation de machine (2 / 2) Confinement d’erreurs et d’attaques Les processus ne constituent pas des moyens suffisants d’isolation Considérations de gestion d’erreurs et de sécurité Partage dynamique des ressources (mémoire, disque, processeurs) Consolidation de serveurs N machines virtuelles hébergeant différents serveurs web sur un simple biprocesseur « Location » des machines virtuelles au propriétaire d’un serveur « réel »
Virtualisation : une tentative de définition La virtualisation fournit un moyen d’assouplir les contraintes et d’augmenter la flexibilité Quand un système (ou un sous-système ), c’est-à-dire un processeur, de la mémoire ou un périphérique d’E/S est virtualisé, son interface et toutes les ressources visibles à travers cette interface sont mis en correspondance avec l’interface et les ressources d’un véritable système qui les met en œuvre Le véritable système est donc transformé de telle façon qu’il apparaisse comme système virtuel ou même comme un ensemble de systèmes virtuels
Virtualisation : une définition formelle Formellement, la virtualisation implique la construction d’un isomorphisme qui fait correspondre un système virtuel invité et un système réel hôte (Popek et Goldberg [1974]) Cet isomorphisme (cf. page suivante) fait correspondre l’état de l’invité et l’état du hôte (fonction V) et, pour une séquence d’opérations, e, qui modifie l’état de l’invité (la fonction e fait passer l’état Si en état Sj) il y a une séquence d’opérations correspondantes, e’, dans le hôte qui effectue une modification équivalente de l’état du système hôte en faisant passer l’état de S’i en S’j
Virtualisation : une définition formelle Si Sj Invité V(Si) V(Sj) Hôte S’i S’j
Techniques employées par les systèmes de virtualisation Virtual Machine Monitors (VMM) « hyperviseurs » Coordonne et virtualise les ressources Traduction binaire Dynamique, statique, contrôlée par une boucle de rétroaction En logiciel ou en matériel Support matériel Changements pour permettre une virtualisation transparente Support pour une virtualisation à faible surcoût Les « trucs » habituels des systèmes d’exploitation Par exemple copy-on-write, traps, modes privilégiés,…
Les défis de la virtualisation Certaines interfaces ne sont pas bien définies Ou certainement pas conçues avec la virtualisation à l’esprit Interfaces à tous les niveaux Instructions, APIs, bytecodes, ABIs, périphériques d’E/S Tension entre la transparence et la performance Spécialement difficile pour les technologies uniquement logicielles
Les couches standard des systèmes d’exploitation Bénéfices Découpage des tâches de conception Réutilisation du logiciel à travers des configurations et des générations différentes de hardware Notre point de départ pour l’analyse des machines virtuelles dans cette présentation
Désavantages et limitations ? Performance sous-optimale à travers les interfaces Le logiciel dépend encore de l’ISA et des interfaces de l’OS L’OS dépend toujours de l’ISA On est « coincé » par les interfaces
VM pour la flexibilité Perspective logicielle : on veut avoir la possibilité de pouvoir s’exécuter sur toutes les machines On peut atteindre plus de clients Il est possible de déplacer du code entre des machines en réseau Perspective matérielle : on veut avoir la possibilité d’exécuter tous les programmes Consolidation de serveurs Applications anciennes Environnement de développement logiciel cross-plateformes
VM pour la performance Optimisation just in time Plus l’on en sait, plus l’on peut optimiser Isolation des fautes et des risques en matière de sécurité Plusieurs images serveur sont plus stables qu’une seule image serveur Augmentation du taux d’utilisation des ressources Ajustement dynamique des affectations Réduction de la fragmentation
Exemples
Les puzzles de VM Indiquent le positionnement des VM par rapport aux couches standard du système Montrent les types d’interface utilisées entre les composants Illustrent la réplication
Taxonomie des VM Interface au sommet ABI (application binary interface) ISA (instruction set architecture) ISA identique ou différente en haut et en bas
ISA et ABI L’Instruction Set Architecture sépare le hardware du reste L’Application Binary Interface sépare les processus du reste
VM processus et VM système Les VM au niveau processus fournissent une ABI aux applications Les VM au niveau système fournissent une ISA à l’OS et aux applications
VM processus (1) Multiprogrammation Même ISA, même OS Réplique l’ABI pour que chaque processus ait l’impression qu’il dispose de sa propre machine Standard dans tous les OS « modernes » On peut se demander s’il est nécessaire d’appeler cela une VM Note : la réplication peut aller dans les deux sens Un multiprocesseur apparaît comme un seul environnement Clusters, grid computing
VM processus (2) « Emulation » et « traduction binaire dynamique » L’OS est le même, l’ISA est différent Plus connu sous le nom d’« interprétation » et de « compilation » Optimiseurs dynamiques Même OS et ISA L’objectif est la performance
VM processus (3) VM de haut niveau Utilisation d’une ISA synthétique P-code (référence historique) Bytecode Java MSIL .NET Indépendance maximum par rapport à la plateforme Prendre en considération les appels à l’OS Pénalisation en termes de performance Les limites de la compilation just-in-time
VM processus (4) ?? Cette combinaison n’est pas traitée par notre taxonomie : L’OS est différent, l’ISA est la même Par exemple, exécuter des applications Windows x86 dans un environnement Linux x86 (exemple : WINE) Un cas particulier sur lequel nous ne nous étendrons pas
VM système (1) VM système classique Le VMM (Virtual Machine Monitor) procure la réplication et la gestion de ressources Bénéfices potentiels : flexibilité, utilisation, isolation Semblable à ce qu’un OS fait pour les processus Repose sur le hardware Mode (super)privilégié
VM système (2) VM système hébergées Comme des VM système classiques mais opérant dans l’espace d’un processus Peut utiliser divers « trucs » pour surmonter les limitations VM système classiques/hébergées : On essaye de faire le plus possible de choses de manière native C’est plus difficile à faire pour les VM hébergées que pour les VM classiques L’ISA sous-jacente peut faire la différence
VM système (3) VM système complète L’ISA est différente Par d’exécution « native » possible Emulation/traduction complète nécessaire Habituellement réalisée comme une VM hébergée
VM système (4) VM co-conçues Utilisation d’une ISA synthétique customisée Objectif : réconcilier des besoins divergents entre l’ISA et la microarchitecture Pas d’exécution « native » possible Emulation/traduction Peut résulter d’une effort commun du logiciel et du matériel Peut être conçu pour être complètement transparent
Les problèmes généraux d’implémentation pour les VM Comment concevoir/vérifier l’implémentation Besoin de Besoin de faire correspondre les fonctionnalités de l’invité et les fonctionnalités de l’hôte Besoin de savoir comment matérialiser l’état (par exemple lors des interruptions) Pour comprendre tout cela, on va Comparer cela à architecture / microarchitecture Décrire les problèmes typiques rencontrés pour chaque type de VM
Analogie : Architecture versus Microarchitecture (1) Faire correspondre les états architecturés aux états d’implémentation Par de relation un pour un : plusieurs états d’implémentation par état architecturé
Analogie : Architecture versus Microarchitecture (2) Quand on conçoit la microarchitecture, on fait correspondre les fonctionnalités de l’ISA avec les fonctionnalités de la microarchitecture Quand on vérifie l’implémentation, on Fait correspondre les états d’implémentation aux états architecturaux On fait correspondre les étapes d’implémentation aux (zéro ou plus) états architecturaux Le diagramme doit pouvoir commuter
Comment implémenter une VM Faire correspondre les fonctionnalités de l’invité et du hôte
Problèmes d’implémentation : VM processus
Problèmes d’implementation : VM système
Finallement : les VM sur les VM
Pour en savoir plus… L’essentiel des graphiques et du contenu de cette introduction provient du livre Virtual Machines: Versatile Platforms for Systems and Processes (The Morgan Kaufmann Series in Computer Architecture and Design) dont je vous recommande chaudement la lecture
4/22/2017 4:44 PM Usages de la virtualisation aujourd’hui La virtualisation adresse certains problèmes de l’IT Consolidation de serveurs Test et dévelopment HWn … HW0 VM1 VMn OS App … HW VM1 VMn VMM OS App VM1 OS App OS App VMM HW Quelquefois 10 pour 1 Permet un déploiement rapide © 2006 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
Quelques modèles d’usage émergents 4/22/2017 4:44 PM Quelques modèles d’usage émergents Equilibrage de charge dynamique Tolérance au désastre VM1 VMn VM1 VMn VM1 HWn … VMn OS App VM1 … VMn OS App OS App OS App OS App OS App OS App OS App … … VMM VMM HW0 VMM HW0 HWn HW Objectif : Un véritable « Lights Out Datacenter » Basculement instantané Equilibrage de charge automatique Automatisation Auto-réparation © 2006 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
Les différents modèles de machines virtuelles VMM de type 2 VMM hybride VMM de type 1 (Hyperviseur) Invité 1 Invité 2 VMM Invité 1 Invité 2 Invité 1 Invité 2 OS Hôte OS Hôte VMM VMM Hardware Hardware Hardware Exemples : JVM CLR Exemples : Virtual PC & Virtual Server Exemples: Windows Virtualization Server Xen Ce que nous construisons pour Longhorn Server Ce que nous avons aujourd’hui
Monolithique contre Micronoyau Hyperviseur micronoyau Fonctionnalité de partitionnement simple Amélioration de la robustesse et minimisation du TCB Pas de code tiers Les drivers s’exécutent dans les invités Hyperviseur monolithique Plus simple qu’un noyau moderne mais encore complexe Contient son propre modèle de drivers VM 1 (“Admin”) VM 2 VM 3 VM 2 (« Enfant ») VM 3 (« Enfant ») VM 1 (« Parent ») Pile de Virtualisation Hyperviseur Drivers Drivers Drivers Drivers Drivers Drivers Drivers Drivers Drivers Drivers Drivers Drivers Hyperviseur Hardware Hardware
Virtualisation et para-virtualisation Il y a deux approches répandues de la virtualisation : la virtualisation classique et ce que l’on appelle la para-virtualisation Virtualisation classique En virtualisation classique, la couche de virtualisation (l’hyperviseur) doit gérer toutes les structures hardware telles que les tables de page, les périphériques d’/ES, les contrôleurs DMA, etc. afin d’assurer que chaque OS invité ait une vue cohérente du hardware Quand l’hyperviseur effectue un changement de contexte entre les images d’OS, il doit d’abord préserver l’état que l’OS qui s’exécute s’attend à trouver quand il sera autorisé à nouveau à s’exécuter et préparer le hardware à accueillir la prochaine image d’OS
Virtualisation et para-virtualisation Ceci a, bien évidemment un coût, ne serait-ce que parce que des structures hardware telles que le TLB doivent être invalidées lors de ce changement de contexte Ces fonctionnalités nécessitent de réécrire le binaire (« patch » au fil de l’eau) du système d’exploitation pour s’assurer que l’hyperviseur puisse regagner le contrôle quand c’est nécessaire, par exemple quand l’OS invité modifie les structures de données du hardware
Virtualisation et para-virtualisation L’OS invité est porté sur une couche hardware « idalisée » qui virtualise complètement toutes les interfaces hardware Quand l’OS invité met à jour une structure de données hardware ou initialise une opération de DMA, il effectue un appel à une API de l’hyperviseur (hypercall) Ceci permet à l’hyperviseur de tracer tous les changements effectués par l’OS invité et de décider de manière optimale comme modifier le hardware lors d’un changement de contexte
Virtualisation et para-virtualisation Il y a donc coopération entre les OS invités et l’hyperviseur, ce qui nécessite une modification des OS invités Par ailleurs, les drivers peuvent être virtualisés en utilisation un modèle para-virtualisé (en éclatant le modèle des drivers invités en une partie « haute » et une partie « basse »), ce qui offre de nombreux avantages (voir plus loin)
Virtual Server 2005 : Architecture Fourni par : Microsoft ISV OEM Virtual Server OS hôte OS invité Windows Server 2003 ou Windows XP Noyau Noyau VMM Mode Kernel Mode User Virtual Server Service IIS Application Web Ring 1: Mode Kernel invité Windows (NT4, 2000, 2003) Suppl. VM Ring 0: Mode Kernel Noyau VMM Ring 3: Mode User Applications invitées Hardware server Designed for Windows
Nouvelle architecture de Windows Vistualization Server Partition Parente Partitions Enfant Fourni par : Microsoft ISV OEM Virtual Server Virtualization Stack VM Worker Processes VM Service WMI Provider Applications Mode User Virtualization Service Clients (VSCs) Noyau Windows Enlightenments VMBus Virtualization Service Providers (VSPs) Noyau Windows Server Core IHV Drivers Mode Kernel Hyperviseur Windows Hardware Serveur Designed for Windows
Le poste de travail SoftGrid Instantané Disponible Intelligent Sécurisé Economique Accélérer la mise à disposition des applications aux utilisateurs au moment du besoin, tout en réduisant les coûts
SoftGrid : les scénarios de valeur Réduit le coût de gestion des applications Centralise et accélère la dispo des applications Consolide les serveurs Simplifie la migration des OS Crée un environnement dynamique Rend continue la disponibilité des applications Améliore la sécurité des applications Valide les nouvelles applications
SoftGrid : les scénarios de valeur Elimine les conflits applicatifs et les tests de régression Permet l’itinérance Disponible en agence Réduit les appels de support Permet d’exécuter plusieurs JVM Crée des images applicatives stables Autorise le suivi des packages applicatifs Stabilise les profils Gére le patrimoine applicatifs
Virtualisation des applications à travers SoftGrid La plateforme SoftGrid® Le moteur Virtualisation des applications Fourniture à la demande Gestion des applications centralisée, en fonction des politiques Extensions SoftGrid pour SMS Gère les applis virtuelles via SMS
INSTALLATION vs VIRTUALISATION : SOFTRICITY Comment les applications sont-elles virtualisées ? Le Séquenceur SoftGrid Le Séquenceur est un logiciel de type assistant qui virtualise les applications sans changement du code source Une fois séquencés, les packages (.SFT, .OSD, .ICO) sont copiés sur un point central : le Serveur SVAS La base de connaissances propose des « recettes » sur le séquencement. La plupart des applications du marché sont déjà séquencées MIEL - 06 décembre 2005
Gestion centralisée des applications SoftGrid Le service Web de gestion de SoftGrid est le service central pour paramétrer et administrer les serveurs et les applications SoftGrid Affectation des privilèges des applications via Active Directory Plein contrôle des licences pour les applications virtualisées
Streaming des applications virtuelles à la demande Basé sur des permissions L’utilisateur clique sur l’icone de l’application – l’authentification, autorisation et contrôle des licences chaque fois qu’un utilisateur lance une application SoftGrid Gestion Centralisée Streaming du code minimum au premier lancement (20-40%) vers le client ou la machine TS. Livraison dynamique du reste du code « à la demande » Exécution Locale Les applications s’exécutent sur les PC, les portables ou les TS, pas sur les Serveurs SoftGrid Utilisation d’un cache pour la performance Le code des applications est caché pour réutilisation – même sans réseau Mode déconnecté supporté L’ensemble des applis est caché pour une durée définissable avant expiration
Virtualisation : SystemGuard™ INSTALLATION vs VIRTUALISATION : SOFTRICITY Virtualisation : SystemGuard™ Les Applications sont virtualisées par instance: Fichiers (système) Base de registre Polices .ini Objets COM Les applications ne sont pas installées et n’altèrent pas l’OS Ensuite les tâches s’exécutent sur le poste MIEL - 06 décembre 2005
Architecture SoftGrid INSTALLATION vs VIRTUALISATION : SOFTRICITY Architecture SoftGrid MIEL - 06 décembre 2005
Self Service applicatif via le Web INSTALLATION vs VIRTUALISATION : SOFTRICITY Self Service applicatif via le Web Accès à toutes les applications (PC, serveur de terminal et web) avec une vue consolidée Accès universel (domicile, site distant, kiosque…) Disponible via des pages web et/ou des icônes sur le bureau Permet l’accès de postes distants MIEL - 06 décembre 2005
Provisionnement Intelligent INSTALLATION vs VIRTUALISATION : SOFTRICITY Provisionnement Intelligent Des règles déterminent en temps réel si l’application est livrée sur le poste ou s’exécute via terminal serveur. Types de règles : Bande passante du client Taille de l’application à lancer Adresses IP et Classes Date/Heure d’accès Existence du client Nom du système client Ajustement de la zone horaire Exécuté sur le PC Exécuté sur TS Exécuté sur le PC MIEL - 06 décembre 2005
Provisionnement en Self-Service INSTALLATION vs VIRTUALISATION : SOFTRICITY Provisionnement en Self-Service Ancienne Méthode Avec SoftGrid MIEL - 06 décembre 2005
Reporting automatique par métier INSTALLATION vs VIRTUALISATION : SOFTRICITY Reporting automatique par métier L’informatique et les métiers peuvent visualiser des rapports d’utilisation des applications sans en faire la demande à l’informatique • Par utilisateur/groupe • Taux d’utilisation des applications • Audit logiciel Permet à l’informatique et aux métiers d’être en conformité avec la politique de licence Permet aux métiers de connaître les dépenses et de contrôler les coûts de la mise en œuvre de nouvelles applications MIEL - 06 décembre 2005
Intégration SoftGrid et SMS INSTALLATION vs VIRTUALISATION : SOFTRICITY Intégration SoftGrid et SMS Intègre virtualisation des applications et streaming à la demande via SMS Gestion et déploiement des applications virtualisées au travers de la console SMS Accélère le déploiement via SMS Elimine les conflits et réduit les tests Upgrade et réparation des applications Fourni un accès à la demande aux applications à tout utilisateur Réduit le coût du déploiement et de la gestion via SMS Réduit rapidement le déploiement Bloque les applications infectées Réduit les images applicatives Simplifie les migrations OS et applications Gère les applications comme un service dans SMS MIEL - 06 décembre 2005
Votre potentiel, notre passion TM 4/22/2017 4:44 PM Votre potentiel, notre passion TM © 2007 Microsoft France © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.