logo EDITE Sujets de doctorat

Automatisation de la mutualisation de la mémoire entre machines virtuelles

Sujet proposé par
Directeur de thèse:
Encadré par
Doctorant: Damien CARVER
Unité de recherche UMR 7606 Laboratoire d'informatique de Paris 6

Domaine: Sciences et technologies de l'information et de la communication

Projet

Objectifs de la thèse

L’enjeu de cette thèse est de proposer un mécanisme pour dimensionner l'espace mémoire mutualisable. Il s'agit de définir de nouvelles métriques permettant de caractériser cet espace au sein du noyau Linux. L'une des difficultés sera alors de limiter au maximum l'impact de ces mécanismes sur le fonctionnement du noyau.

A partir de ces métriques, il faudra proposer une modélisation du partage de la mémoire entre les caches et étudier les comportements des applications cibles vis à vis des caches. L'objectif final est de réaliser un mécanisme qui mutualise automatique les caches de plusieurs machines.

Cette thèse demande des compétences tant en système qu’en algorithmique. En effet, si les compositions hiérarchiques de cache ont largement été étudiées, peu de travaux portent sur une collaboration "horizontale" de caches à un même niveau. De plus, des résultats trouveraient immédiatement leur application dans les nombreux mécanismes de partage de mémoire inter-VM.

Références

[1] Hwanju Kim, Heeseung Jo, and Joonwon Lee. Xhive : Efficient cooperative caching for virtual machines. Computers, IEEE Transactions on, 60(1) :106–119, 2011.

[2] Maxime Lorrillere, Julien Sopena, Sébastien Monnet, and Pierre Sens. Vers un cache réparti adapté au cloud computing. In 9ème Conférence Française sur les Systèmes d’Exploitation (CFSE’13), Chapitre français de l’ACM-SIGOPS, GDR ARP, January 2013.

[3] Dan Magenheimer. Zcache and ramster overview and some benchmarking. In Linux Storage Filesystem and Memory Management Summit. Oracle Corp, 2011.

[4] Grzegorz Milos, Derek G Murray, Steven Hand, and Michael A Fetterman. Satori : Enlightened page sharing. In Proceedings of the 2009 conference on USENIX Annual technical conference, pages 1–1. USENIX Association, 2009.

[5] Joel H Schopp, Keir Fraser, and Martine J Silbermann. Resizing memory with balloons and hotplug. In Proceedings of the Linux Symposium, volume 2, pages 313–319, 2006. [6] http://www.linux-kvm.org/page/Projects/auto-ballooning

Enjeux

Contexte et défis

La virtualisation est aujourd'hui omniprésente dans les systèmes distribués à grande échelle. À la base du "cloud computing", on la retrouve aussi dans nombre de clusters privés. L'utilisation de Machines Virtuelles (VM) permet en effet d'introduire dynamicité (déploiement à la volée, migration,...) et sécurité (isolation des applications, sauvegarde du contexte,...). Cependant cette flexibilité se fait au prix d'une importante fragmentation de la mémoire. Or le bon dimensionnement des VMs reste une tâche ardue et les administrateurs sur-dimensionnent souvent la mémoire allouée à chaque VM, générant ainsi un énorme gâchis de ressources.

Contrer cette fragmentation de la mémoire est aujourd'hui un enjeu majeur des systèmes distribués et l'on trouve aujourd'hui dans la littérature de multiples propositions en ce sens : Xhive [1], Satori [4], Ballooning [5], RAMSter [3],… Elles se basent sur des mécanismes différents (re-mapping de la mémoire, cache-distant,...) et interviennent à plusieurs niveaux (hyperviseur, et/ou systèmes d'exploitation invités), mais elles reposent toutes sur l'hypothèse de mémoire "inutilisée" clairement identifiée. Or la réalité est beaucoup plus complexe. En effet, les systèmes d'exploitation utilisent l'espace mémoire libre (non utilisé par les processus) pour mettre en place des mécanismes de caches. La mémoire prise à une VM pour l'offrir à une autre diminue d'autant la place qu'elle consacre à ses caches. La difficulté est donc de déterminer quelle proportion de la mémoire peut être récupérée sans trop dégrader les performances de la VM. Des premiers travaux ont été effectués dans le cadre du ballooning (auto-ballooning [6]) mais présentent de sévères limitations (ne fonctionne que sur une même machine hôte, ne prend pas bien en compte les caches d’entrées/sorties,…).

Remarques additionnelles

Cette thèse sera co-encadrée par Julien Sopena et Sébastien Monnet