Grid Virtualisation et HPC Bernard Ourghanlian CTO CSO
Grid, Virtualisation, et HPC Bernard Ourghanlian CTO & CSO – Microsoft France 1
La virtualisation 2
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 Invité V(Si) Sj V(Sj) Hôte S’i S’j
Usages de la virtualisation aujourd’hui La virtualisation adresse certains problèmes de l’IT Consolidation de serveurs VM 1 VMn … Test et dévelopment VM 1 VMn … App OS OS OS HW 0 HWn VMM HW HW App App OS OS OS Quelquefois 10 pour 1 Permet un déploiement rapide
Quelques modèles d’usage émergents Equilibrage de charge dynamique VM 1 App OS VMn … VM 1 App OS OS VMM HW 0 HWn VMn … Tolérance au désastre VM 1 App OS VMn … VM 1 App OS OS OS HW 0 HWn VMM VMn … App OS HW Objectif : Un véritable « Lights Out Datacenter » Basculement instantané Equilibrage de charge automatique Automatisation Auto-réparation
Les différents modèles de machines virtuelles VMM de type 2 Invité 1 VMM hybride VMM de type 1 (Hyperviseur) Invité 2 VMM OS Hôte Hardware Exemples : JVM CLR Invité 1 OS Hôte Invité 2 Invité 1 VMM Hardware Exemples : Virtual PC & Virtual Server Invité 2 Hardware Exemples: Windows Virtualization Server Xen Ce que nous avons aujourd’hui Ce que nous construisons pour Longhorn Server
Monolithique contre Micronoyau Hyperviseur monolithique Plus simple qu’un noyau moderne mais encore complexe Contient son propre modèle de drivers VM 1 (“Admin”) VM 2 Hyperviseur VM 3 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 VM 1 ( « Parent » ) Pile de Virtualisation VM 2 ( « Enfant » ) VM 3 ( « Enfant » ) Drivers Drivers Drivers Hyperviseur Hardware
Virtualisation et paravirtualisation 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 paravirtualisation 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 paravirtualisation 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 paravirtualisation 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 OS hôte OS invité Fourni par : Microsoft Application Web IIS Virtual Server Service Virtual Server ISV Ring 3: Mode User Ring 1: Mode Kernel invité Mode User Suppl. VM Mode Kernel Windows (NT 4, 2000, 2003) Windows Server 2003 ou Windows XP Noyau Applications invitées Noyau VMM Ring 0: Mode Kernel Noyau VMM Hardware server Designed for Windows OEM
Nouvelle architecture de Windows Vistualization Server Partition Parente Partitions Enfant Virtualization Stack WMI Provider VM Service Server Core Noyau Windows Fourni par : Microsoft Applications VM Worker Processes ISV Mode User Virtualization Service IHV Providers (VSPs) Drivers Virtual Server Virtualization Service Clients (VSCs) VMBus Noyau Windows Enlightenments Mode Kernel Hyperviseur Windows Hardware Serveur Designed for Windows OEM
Virtualisation des applications à travers Soft. Grid La plateforme Soft. Grid® Le moteur Virtualisation des applications Fourniture à la demande Gestion des applications centralisée, en fonction des politiques Extensions Soft. Grid pour SMS Gère les applis virtuelles via SMS
Comment les applications sont-elles virtualisées ? Le Séquenceur Soft. Grid 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
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 Soft. Grid 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 Soft. Grid 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 : System. Guard™ 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
Votre potentiel, notre passion TM © 2007 Microsoft France
- Slides: 20