Publicación de CRIU 4.3, un sistema para guardar y restaurar el estado de los procesos en Linux

Después de 11 meses de desarrollo, se ha publicado la versión 4.3 de la herramienta CRIU (Checkpoint and Restore In Userspace), diseñada para guardar y restaurar procesos en el espacio de usuario. Esta herramienta permite conservar el estado de uno o varios procesos, y luego continuar desde la posición guardada, incluso después de reiniciar el sistema o en otro servidor sin interrumpir las conexiones de red establecidas. El código del proyecto está escrito en C y se distribuye bajo la licencia GPLv2. CRIU se utiliza en sistemas de gestión de contenedores como OpenVZ, LXC/LXD y Docker. Los cambios necesarios para que CRIU funcione se han incluido en el núcleo principal de Linux.

Entre las áreas de aplicación de la tecnología CRIU se destacan la reinicialización del sistema operativo sin interrumpir la continuidad de la ejecución de procesos de larga duración, la migración en vivo de contenedores aislados, la aceleración del inicio de procesos lentos (se puede comenzar a trabajar desde un estado guardado después de la inicialización), realizar actualizaciones del núcleo sin reiniciar servicios, guardar periódicamente el estado de tareas computacionales de larga duración para reanudar el trabajo en caso de un fallo, equilibrar la carga en nodos dentro de clústeres, duplicar procesos en otra máquina (fork en un sistema remoto) y crear instantáneas de aplicaciones de usuario en ejecución para su análisis en otro sistema o en caso de que se necesite deshacer acciones posteriores en el programa.

En esta nueva versión:

  • Se ha implementado la capacidad de comprimir bloques y páginas de memoria utilizando el algoritmo LZ4 y descompresión multihilo.
  • Se ha mejorado el rendimiento mediante el uso de entrada/salida asíncrona (AIO) al restaurar páginas de VMA (Virtual Memory Area), un nuevo método para detener tareas sin utilizar puntos de detención de hardware y la paralelización de la restauración de memfd y memoria compartida anónima.
  • Se ha añadido soporte para la extensión ARM64 GCS (Guarded Control Stack), que proporciona protección de hardware para las direcciones de retorno de las funciones. Después de transferir el control a la función, las direcciones de retorno se guardan en el procesador no solo en la pila normal, sino también en una pila de sombra separada, que no se puede modificar directamente. Antes de salir de la función, la dirección de retorno se extrae de la pila de sombra y se verifica con la dirección de retorno de la pila principal.
  • Se ha añadido un backend para guardar el estado de la API del controlador NVIDIA CUDA.
  • Se ha asegurado la restauración del mapeo de GPU.
  • Para el controlador amdgpu se ha implementado el guardado y la restauración del estado de los búferes del subsistema DRM (Direct Rendering Manager) y de los descriptores de archivos DMA-BUF.
  • Se han añadido comandos para comprimir y descomprimir imágenes de memoria en modo offline.
  • Se ha añadido soporte para guardar y restaurar información sobre la vinculación de identificadores UID a los sockets de red.
  • Se ha añadido la opción '--image-io-mode' para escribir y leer imágenes de páginas de memoria en modo O_DIRECT (sin utilizar la caché de páginas).

Fuente: opennet.ru

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster