Fast delivery of virtual machines and containers : understanding and optimizing the boot operation
Contributions à l'approvisionnement d'environnements virtualisés : la problématique des temps de démarrage des machines virtuelles et des conteneurs
Résumé
The provisioning process of a VirtualMachine (VM) or a container is a succession of three complex stages : (i) scheduling theVM / Container to an appropriate compute node ;(ii) transferring the VM / Container image to that compute node from a repository ; (iii) and finally performing the VM / Container boot process. Depending on the properties of the client’s request and the status of the platform, each of these three phases can impact the total duration of the provisioning operation. While many works focused on optimizing the two first stages, only few works investigated the impact of the boot duration. This comes to us as a surprise as a preliminary study we conducted showed the boot time of a VM / Container can last up to a few minutes in high consolidated scenarios. To understand the major reasons for such overheads, we performed on top of Grid'5000 up to 15k experiments, booting VM / Containerunder different environmental conditions. The results showed that the most influential factor is the I/O operations. To accelerate the boot process, we defend in this thesis, the design of a dedicated mechanism to mitigate the number of generated I/O operations. We demonstrated the relevance of this proposal by discussing a first prototype entitled YOLO (You Only LoadOnce). Thanks to YOLO, the boot duration can be faster 2-13 times for VMs and 2 times for containers. Finally, it is noteworthy to mention that the way YOLO has been designed enables it to be easily applied to other types of virtualization (e.g., Xen) and containerization technologies.
Le processus d'approvisionnement d'une machine virtuelle (VM) ou d'un conteneur est une succession de trois étapes complexes : (i) la phase d’ordonnancement qui consiste à affecter la VM / le conteneur sur un nœud de calcul ; (ii) le transfert de l'image disque associée vers ce nœud de calcul ; (iii) et l'exécution du processus de démarrage (généralement connu sous le terme « boot »). En fonction des besoins de l’application virtualisée et de l’état de la plate-forme, chacune de ces trois phases peut avoir une durée plus ou moins importante. Si de nombreux travaux se sont concentrés sur l’optimisation des deux premières étapes, la littérature couvre que partiellement les défis liés à la dernière. Cela est surprenant car des études ont montré que le temps de démarrage peut atteindre l’ordre de la minute dans certaines conditions. Durée que nous avons confirmée grâce à une étude préliminaire visant à quantifier le temps de démarrage, notamment dans des scénarios où le ratio de consolidation est élevé. Pour comprendre les principales raisons de ces durées, nous avons effectué en jusqu'à 15000 expériences au dessus de l’infrastructure Grid5000. Chacune de ces expériences a eu pour but d’étudier le processus de démarrage selon différentes conditions environnementales. Les résultats ont montré que les opérations d'entrée/sorties liées au processus de démarrage étaient les plus coûteuses. Afin d’y remédier, nous défendons dans cette thèse la conception d'un mécanisme dédié permettant de limiter le nombre d’entrées/sorties générées lors du processus de démarrage. Nous démontrons la pertinence de notre proposition en évaluant le prototype YOLO (You Only LoadOnce). Grâce à YOLO, la durée de démarrage peut être accélérée de 2 à 13 fois pour les VM et jusqu’à 2 fois pour les conteneurs. Au delà de l’aspect performance, il convient de noter que la façon dont YOLO a été conçu permet de l’appliquer à d’autres types de technologies devirtualisation / conteneurisation.
Origine | Version validée par le jury (STAR) |
---|
Loading...