@media screen and (min-width: 580px) { .flotantewhatsapp{ display:none; } }

Compartir por WhatsApp

linux-guardar-estado-de-procesos-con-criu-1

Linux: Guardar estado de procesos con CRIU

Linux: Guardar estado de procesos con CRIU

Si administráis servidores Linux, infraestructuras de Contenedores, ya sean Docker, Podman o LXC, creo que esta entrada os interesará. Hoy vamos a hablar de la herramienta CRIU.

CRIU o Checkpoint and Restore In Userspace, surge de un proyecto opensource de Virtuozzo (OpenVZ), que aunque no es de las comunidades más populares a nivel de virtualización, ha conseguido que la herramienta CRIU se ponga en la diana de otros proyectos más importantes, como Docker.

Se utiliza integrado en OpenVZ, que es una solución de virtualización como hemos comentado, sobre contenedores LXC/LXD, Docker, Podman…y ya está empaquetado en la mayoría de distribuciones importantes de Linux.

CRIU nos permite guardar el estado de uno o un grupo de procesos y luego reanudar el trabajo donde lo dejamos. Pero esto no es lo mejor, ya que incluso podemos reanudar ese estado, después de reiniciar el sistema o en otro servidor sin romper las conexiones de red ya establecidas. ¿Impresionante no?

FUNCIONES CRIU

CRIU se puede utilizar tanto en 32 bits, 64 bits o incluso en sistemas ARM. Dispone de muchas funciones para manejar procesos, entre las que destacan:

  • Como ya hemos hablado su función más destacable es la de manejar procesos y funciones comunes como:
    • Jerarquía
    • PID
    • Autenticadores de usuarios y grupos (UID, GID, SID, etc.)
    • Capacidades del sistema
    • Subprocesos
    • Estados de ejecución y detenido
  • Memoria de la aplicación:
    • Archivos asignados en memoria y memoria compartida
  • Podemos abrir archivos
  • Pipes y FIFOs:
    • Pipe: provee una interfaz entre dos procesos
    • FIFOs: es un fichero especial. Una tubería con nombre
  • Unix domain sockets:
    • Es un punto final de comunicaciones de datos para intercambiar datos entre procesos que se ejecutan en el mismo sistema operativo host
  • Network sockets:
    • Incluidos TCP sockets en el estado ESTABLISHED
  • System V IPC:
    • Mecanismos de comunicación entre procesos
  • Timers:
    • Nos permite agendar tareas de forma periódica de una forma similar a Cron
  • Signals:
    • Una señal es una forma limitada de comunicación entre procesos empleada en Unix y otros sistemas operativos compatibles con POSIX
  • Terminales
  • Llamadas del Kernel al sistema específico:
    • Inotify, Signalfd, Eventfdyepoll

Os dejo las URLs del proyecto CRIU…

URLS PROYECTO CRIU:

linux-guardar-estado-de-procesos-con-criu-1

INSTALAR CRIU EN CENTOS

CRIU está en la mayoría distribuciones como parte de los paquetes disponibles. Para instalarlo en Centos simplemente lo haremos de la siguiente forma:

CRIU EN ACCIÓN: MANEJANDO PROCESO

Para ver el poder de CRIU vamos a hacerlo con un ejemplo muy simple. Lo vamos a probar sobre un proceso que consiste en un bucle que va sumando números. Crearemos un fichero con el siguiente contenido:

Lo compilamos:

Nos genera un fichero ejecutable, que lanzaremos de la siguiente forma, y comenzará la cuenta del bucle:

Sacamos el identificador del proceso:

Creamos un directorio para el punto de control o checkpoint:

Ejecutamos CRIU sobre el proceso:

Se congelará el estado del proceso:

Para volver a descongelarlo, simplemente volvemos a ejecutar el siguiente comando:

Imaginaros la aplicación de esto sobre contenedores u otras tecnologías…súper interesante! Intentaré hacer entradas sobre ello…

¿Te ha gustado la entrada SÍGUENOS EN TWITTER?

Te ha gustado la entrada SGUENOS EN TWITTER O INVITANOS A UN CAFE?

El Blog de Negu

Acerca de Raul Unzue Pulido

Administrador de sistemas virtuales e infraestructuras IT, linuxero y entusiasta de la tecnología.

Compruebe también

implementar-soc-monitorizacion-completa-con-prometheus-alertmanager-grafana-y-loki-bajo-contenedores-3

Implementar SOC: Monitorización Completa con Prometheus, AlertManager, Grafana y Loki bajo Contenedores

Implementar SOC: Monitorización Completa con Prometheus, AlertManager, Grafana y Loki bajo Contenedores Seguimos implementando nuestro …

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

3 × 3 =

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.

ACEPTAR
Aviso de cookies
Blog Maquinas Virtuales - El Blog de Negu