<  Retour au portail Polytechnique Montréal

Analyse de l'exécution de systèmes virtualisés multiniveaux

Cédric Biancheri

Mémoire de maîtrise (2016)

Document en libre accès dans PolyPublie
[img]
Affichage préliminaire
Libre accès au plein texte de ce document
Conditions d'utilisation: Tous droits réservés
Télécharger (1MB)
Afficher le résumé
Cacher le résumé

Résumé

Au cours des dernières années, l'utilisation de systèmes virtualisés s'est fortement développée, que ça soit dans l'industrie, ou par l'usage de particuliers. Cette globalisation est notamment due au développement des technologies reliées, améliorant toujours plus les performances de tels systèmes. La flexibilité des systèmes virtualisés s'ajoute également aux raisons de cet essor. Cette technologie permet de facilement et rapidement gérer tout un parc de machines virtuelles (VMs) et conteneurs, répartis sur les nœuds d'un réseau de machines physiques. La gestion des ressources a un impact moins onéreux pour son utilisateur car elle permet une adaptation à la charge de travail demandée. Même si les machines virtuelles et les conteneurs offrent une certaine isolation de leur système hôte, toute activité survient éventuellement sur un processeur (CPU) physique d'un des nœuds. Ainsi, VMs et conteneurs partagent un même ensemble de ressources, sans pour autant en avoir conscience. Ce partage peut entraîner un surengagement des ressources, impliquant pour un ou plusieurs systèmes, une baisse de performance. Pour avoir une meilleure approche de l'exécution réelle sur un nœud de réseau, notre étude se donne pour objectif de fournir une représentation, aussi fidèle qu'elle soit, du flot d'exécution survenu sur ses processeurs, malgré les différentes couches de virtualisation. Pour atteindre cet objectif, nous nous servons du traceur LTTng afin de générer et exploiter les traces noyau des systèmes hôte et invités. Les traces noyau fournissent de nombreuses informations, à très bas niveau, sur l'activité d'un système d'exploitation. Elles nous permettent, entre autres, de déterminer les phases où un système virtualisé s'approprie une ressource telle qu'un processeur physique. En plus du flot réel d'exécution, l'exploitation de telles données nous permet de recréer la hiérarchie complète de conteneurs et jusqu'à deux niveaux de machines virtuelles imbriquées. Pour compléter cette étude, nous présentons une vue, développée dans le logiciel Trace Compass, capable de représenter l'ensemble des informations extraites par la précédente analyse. Cette vue permet de visualiser l'ensemble de la hiérarchie des systèmes tracés, de même que leurs flots d'exécution sur les CPUs physique du nœud ciblé. Finalement, par l'utilisation de filtres, il est également possible de mettre en relief des aspects plus précis des systèmes tracés, comme une VM, un CPU virtuel, un conteneur ou un ensemble de processus.

Abstract

Over the past few years, the use of virtualized systems has developed significantly, in industry as well as for personal usage. This global deployment is mainly due to the development of the related technologies, allowing further improvement in the performance of such systems. The flexibility of virtualized systems also contributes to this growth. This technology allows the easy and quick management of large clusters of virtual machines (VMs) and containers, spread over the nodes of a physical machine network. Furthermore, by adapting to changing workloads, the management of physical resources reduces hardware and energy consumption costs. Even if VMs and containers are isolated from their host, all their activity eventually happens on a node's physical CPU. Thus, VMs and containers might unknowingly share the same physical resources, resulting in an overcommitment of those resources and a performance drop. For a better oversight of the real execution on one of the network's node, our study aims to represent an accurate flow of the activities that occurred on its processor cores, erasing the bounds of the virtualization layers. To fulfill this objective, we use the LTTng tracer to generate kernel traces on the host and the guest systems. Kernel traces can provide plenty of fine-grained information, regarding the activity of the operating system. Among others, they allow us to determine the stages when a virtualized system yields a resource such as a physical CPU. In addition to recovering the real execution flow, the analysis of this information allows to reestablish the full hierarchy of containers, and up to two layers of nested VMs. To complete this study, we present a view developed in Trace Compass, able to represent the full extent of the information extracted by the analysis. This view allows to visualize the hierarchy of the traced systems, as well as their execution flow on the physical CPUs of their corresponding node. Finally, by using a system of filters, we offer the possibility to highlight more details of the traced systems, such as the execution flow of a VM, a virtual CPU, a container, or a subset of processes.

Département: Département de génie informatique et génie logiciel
Programme: Génie informatique
Directeurs ou directrices: Michel Dagenais
URL de PolyPublie: https://publications.polymtl.ca/2209/
Université/École: École Polytechnique de Montréal
Date du dépôt: 21 mars 2017 11:18
Dernière modification: 05 avr. 2024 14:18
Citer en APA 7: Biancheri, C. (2016). Analyse de l'exécution de systèmes virtualisés multiniveaux [Mémoire de maîtrise, École Polytechnique de Montréal]. PolyPublie. https://publications.polymtl.ca/2209/

Statistiques

Total des téléchargements à partir de PolyPublie

Téléchargements par année

Provenance des téléchargements

Actions réservées au personnel

Afficher document Afficher document