Lanzamiento de CRIU 4.2, un sistema para guardar y restaurar el estado de procesos en Linux

Después de seis meses de desarrollo, se ha publicado la versión 4.2 de la herramienta CRIU (Checkpoint and Restore In Userspace), destinada a guardar y restaurar procesos en el espacio del usuario. La herramienta permite guardar el estado de uno o más procesos y luego reanudar el trabajo 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 el funcionamiento de CRIU están incluidos 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:

  • El plugin amdgpu implementa la posibilidad de paralelizar la restauración del estado de procesos que utilizan GPU.
  • Se ha añadido la opción «--allow-uprobes», que permite trabajar con procesos que utilizan vma (Área de Memoria Virtual) al rastrear procesos a través del mecanismo uprobe.
  • En la biblioteca libcriu se ha agregado la posibilidad de especificar un archivo de configuración RPC para contenedores en runtime que utilizan esta biblioteca, como crun. Por ejemplo, la funcionalidad implementada puede ser útil para establecer opciones como «--tcp-established» a través del archivo /etc/criu/runc.conf para Kubernetes.
  • Se han resuelto problemas de compilación en sistemas ARM64 con la biblioteca C musl.
  • Se ha eliminado un desbordamiento entero en la función pagemap_len().
  • Se han resuelto problemas con el uso de las opciones getsockopt SO_PASSCRED y SO_PASSSEC en sistemas con el núcleo Linux 6.16.

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