Thèse soutenue

Virtualisation des composants micro-architecturaux en utilisant des solutions logiciels

FR  |  
EN
Auteur / Autrice : Vo Quoc Bao Bui
Direction : Daniel HagimontAlain Bouzaïde Tchana
Type : Thèse de doctorat
Discipline(s) : Réseaux, Télécommunications, Systèmes et Architecture
Date : Soutenance le 29/09/2020
Etablissement(s) : Toulouse, INPT
Ecole(s) doctorale(s) : École doctorale Mathématiques, informatique et télécommunications (Toulouse)
Partenaire(s) de recherche : Laboratoire : Institut de Recherche en Informatique de Toulouse (1995-....)
Jury : Président / Présidente : Fabrice Huet
Examinateurs / Examinatrices : Daniel Hagimont, Alain Bouzaïde Tchana, Fabienne Boyer, Jalil Boukhobza
Rapporteurs / Rapporteuses : Fabienne Boyer, Jalil Boukhobza

Mots clés

FR  |  
EN

Résumé

FR  |  
EN

Le cloud computing est devenu un paradigme dominant dans l'industrie informatique en raison de sa flexibilité et de son efficacité dans le partage et la gestion des ressources. La technologie clé qui permet le cloud computing est la virtualisation. L'isolation et la prédictibilité de performance sont des exigences essentielles d'un système virtualisé où plusieurs machines virtuelles (MVs) s'exécutent sur une même machine physique. Pour mettre en œuvre ces propriétés, le logiciel de virtualisation (appelé l'hyperviseur) doit trouver un moyen de diviser les ressources physiques (par exemple, la mémoire physique, le temps processeur) du système et de les allouer aux MVs en fonction de la quantité de ressources virtuelles définies pour chaque MV. Cependant, les machines modernes ont des architectures complexes et certaines ressources de niveau microarchitectural telles que les caches de processeur, les contrôleurs de mémoire, les interconnexions ne peuvent pas être divisées et allouées aux MVs. Elles sont partagées globalement entre toutes les MVs qui rivalisent pour leur utilisation, ce qui conduit à la contention. Par conséquent, l'isolation et la prédictibilité de performance sont compromises. Dans cette thèse, nous proposons des solutions logicielles pour prevenir la non-prédictibilité des performances due aux composants micro-architecturaux. La première contribution s'appelle Kyoto, une solution pour le problème de contention du cache, inspirée du principe pollueur-payeur. Une MV est pollueuse si elle provoque des remplacements importants de lignes de cache qui ont un impact sur la performance des autres MVs. Désormais, en utilisant le système Kyoto, le fournisseur peut encourager les utilisateurs du cloud à réserver des permis de pollution pour leurs MVs. La deuxième contribution aborde le problème de la virtualisation efficace des machines NUMA. Le défi majeur vient du fait que l'hyperviseur reconfigure régulièrement le placement d'une MV sur la topologie NUMA. Cependant, ni les systèmes d'exploitation (OSs) invités ni les librairies de l'environnement d'exécution (par exemple, HotSpot) ne sont conçus pour prendre en compte les changements de topologie NUMA pendant leur exécution, conduisant les applications de l'utilisateur final à des performances imprévisibles. Nous présentons eXtended Para-Virtualization (XPV), un nouveau principe pour virtualiser efficacement une architecture NUMA. XPV consiste à revisiter l'interface entre l'hyperviseur et l'OS invité, et entre l'OS invité et les librairies de l'environnement d'exécution afin qu'ils puissent prendre en compte de manière dynamique les changements de topologie NUMA