Checkpoint and Restore of Singularity Containers
Total Page:16
File Type:pdf, Size:1020Kb
Universitat politecnica` de catalunya (UPC) - BarcelonaTech Facultat d'informatica` de Barcelona (FIB) Checkpoint and restore of Singularity containers Grado en ingenier´ıa informatica´ Tecnolog´ıas de la Informacion´ Memoria 25/04/2019 Director: Autor: Jordi Guitart Fernandez Enrique Serrano G´omez Departament: Arquitectura de Computadors 1 Abstract Singularity es una tecnolog´ıade contenedores software creada seg´unlas necesidades de cient´ıficos para ser utilizada en entornos de computaci´onde altas prestaciones. Hace ya 2 a~nosdesde que los usuarios empezaron a pedir una integraci´onde la fun- cionalidad de Checkpoint/Restore, con CRIU, en contenedores Singularity. Esta inte- graci´onayudar´ıaen gran medida a mejorar la gesti´onde los recursos computacionales de las m´aquinas. Permite a los usuarios guardar el estado de una aplicaci´on(ejecut´andose en un contenedor Singularity) para poder restaurarla en cualquier momento, sin perder el trabajo realizado anteriormente. Por lo que la posible interrupci´onde una aplicaci´on, debido a un fallo o voluntariamente, no es una p´erdidade tiempo de computaci´on. Este proyecto muestra como es posible realizar esa integraci´on. Singularity ´esuna tecnologia de contenidors software creada segons les necessitats de cient´ıfics,per ser utilitzada a entorns de computaci´od'altes prestacions. Fa 2 anys desde que els usuaris van comen¸cara demanar una integraci´ode la funcional- itat de Checkpoint/Restore, amb CRIU, a contenidors Singularity. Aquesta integraci´o ajudaria molt a millorar la gesti´odels recursos computacionals de les m`aquines.Permet als usuaris guardar l'estat d'una aplicaci´o(executant-se a un contenidor Singularity) per poder restaurar-la en qualsevol moment, sense perdre el treball realitzat anteriorment. Per la qual la possible interrupci´od'una aplicaci´o,a causa de una fallada o volunt`ariament, no ´esuna p`erduade temps de computaci´o. Aquest projecte mostra com ´espossible realitzar la integraci´o. Singularity is a software container technology created thinking in the needs of the scientists, so it can be used on High Performance Computing environments. It has been 2 years since the users started demanding an integration of the Check- point/Restore functionality, using CRIU on Singularity containers. This integration would help to a large degree to improve the management of the machine's computational re- sources. It allows the users to save the state of an application (being executed on a Singularity container) to be able of restoring it anytime, without losing the work already done. So that the prospect of interrupting an application, due to an error or voluntarily, is not a computation time lost. This project shows how the integration can be done. 2 ´Indice de contenidos 1 Contexto 8 1.1 Uso de Contenedores . .9 1.2 Singularity . 10 1.3 Actores implicados . 10 2 Estado del arte 11 2.1 Checkpoint ....................................... 11 2.2 Sistemas de Checkpoint ................................ 12 2.3 Container Checkpoint ................................. 12 2.4 Checkpoint/Restore in Userspace, CRIU ...................... 13 2.5 Conclusiones . 13 3 Formulaci´ondel problema 14 4 Planteamiento inicial 15 4.1 Alcance . 15 4.1.1 Posibles obst´aculos . 15 4.2 Metodolog´ıay rigor . 16 4.2.1 Herramientas . 16 4.2.2 M´etodo de validaci´on . 17 4.3 Planificaci´on. 18 4.3.1 Descripci´onde las fases y tareas . 18 4.3.1.1 Planificaci´oninicial . 18 4.3.1.2 An´alisisProyecto . 18 4.3.1.3 Estructuraci´onSingularity . 18 4.3.1.4 Integraci´onCRIU-Singularity . 18 4.3.1.5 Finalizaci´onproyecto . 19 4.4 Recursos . 20 4.5 Valoraci´onde alternativas y plan de acci´on. 21 4.5.1 Planificaci´onincorrecta . 21 4.5.2 Inviabilidad de integraci´onde CRIU . 21 4.6 Identificaci´ony estimaci´onde los costes . 22 4.6.1 Costes Directos . 22 4.6.1.1 Recursos Humanos . 22 4.6.1.2 Amortizaciones . 23 4.6.1.3 Costes indirectos . 23 4.6.2 Imprevistos . 23 4.6.3 Contingencias . 24 4.6.4 Resumen . 24 4.7 Control de gesti´on . 25 5 Planteamiento final 26 5.1 Alcance y Objetivos . 26 5.1.1 Obst´aculosencontrados . 26 5.2 Metodolog´ıay rigor . 27 3 5.2.1 M´etodo de validaci´on . 27 5.3 Planificaci´on. 28 5.3.1 Revisi´on:Estructuraci´onde Singularity . 28 5.3.2 Documentaci´oninicial . 28 5.3.3 An´alisisde las tecnolog´ıas . 28 5.3.4 Integraci´onCRIU-Singularity . 28 5.3.5 Finalizaci´ondel proyecto . 29 5.4 Recursos . 30 5.5 Costes del proyecto . 31 5.5.1 Costes Directos . 31 5.5.1.1 Recursos Humanos . 31 5.5.1.2 Amortizaciones . 32 5.5.2 Costes indirectos . 32 5.5.3 Imprevistos y Contingencias . 32 5.5.4 Resumen . 32 5.6 Revisi´on:Valoraci´onde alternativas, plan de acci´ony control de gesti´on . 33 5.6.1 Planificaci´onIncorrecta . 33 5.6.2 Inviabilidad de integraci´onde CRIU . 33 6 Sostenibilidad del Proyecto 34 6.1 Ambiental . 34 6.1.1 Proyecto puesto en producci´on(PPP) . 34 6.1.2 Vida ´util. 34 6.1.3 Riesgos . 34 6.2 Econ´omico. 35 6.2.1 Proyecto puesto en producci´on(PPP) . 35 6.2.2 Vida ´util. 35 6.2.3 Riesgos . 35 6.3 Social . 36 6.3.1 Proyecto puesto en producci´on(PPP) . 36 6.3.2 Vida ´util. 36 6.3.3 Riesgos . 36 7 Leyes y regulaciones relativas al proyecto 37 8 An´alisisde las tecnologias 38 8.1 Singularity . 38 8.1.1 Imagen de Contenedor Singularity . 38 8.1.2 Generaci´ondel SIF . 39 8.1.3 Singularity definition files .......................... 40 8.1.4 Namespaces de Linux . 41 8.1.4.1 Mount namespaces ......................... 41 8.1.4.2 PID namespaces .......................... 42 8.1.5 Creaci´onde contenedores . 43 8.1.6 Caracter´ısticasde una imagen en ejecuci´on. 44 8.1.7 Comunicaci´oncon el contenedor . 47 8.2 CRIU, Checkpoint/Restore in User Space ...................... 49 8.2.1 Checkpoint .................................. 49 4 8.2.2 Restore .................................... 52 8.2.3 Uso de CRIU . 54 9 Integraci´onCRIU-Singularity 55 9.1 External Checkpoint/Restore ............................ 56 9.1.1 Checkpoint .................................. 56 9.1.2 Restore .................................... 58 9.2 Internal Checkpoint/Restore ............................. 60 9.2.1 Soluci´on . 61 9.2.2 Pruebas de checkpoint/restore con el manager . 62 9.2.2.1 Contador . 63 9.2.2.2 Contadores . 64 9.2.2.3 Escritor . 65 9.2.2.4 Lector . 66 9.2.2.5 Cliente/Servidor TCP Contador . 67 9.2.2.6 Manager y contenedores en instancias . 68 10 Conclusiones 69 11 Glosario 70 12 Anexo A: Singularity Definition Files 71 13 Anexo B: Scripts 72 14 Anexo C: Debug de Singularity 78 15 Referencias 81 ´Indice de tablas 1 Horas por tarea y sus dependencias. 19 2 Costes directos por actividad. 22 3 Precio/hora por rol. 23 4 Amortizaciones Hardware. 23 5 Costes indirectos. 23 6 Resumen presupuesto. 24 7 Horas por tarea dedicadas. 29 8 Costes directos de las actividades realizadas. 31 9 Precio/hora por rol. 31 10 Amortizaciones Hardware. 32 11 Costes indirectos 7 meses. 32 12 Resumen presupuesto, . 32 5 ´Indice de figuras 1 Arquitectura Contenedor Software ..........................8 2 Arquitectura M´aquinavirtual ............................9 3 Escenario t´ıpico de uso de Checkpoint/Restore ................... 11 4 M´etodo iterativo. ................................... 16 5 Diagrama de flujo de trabajo. ..