Blog · 14

Un clúster Slurm real en Docker Compose, con health checks de GPU

Drain, requeue y validate, y cuatro iteraciones de CI para que funcionen los cgroups v2.

Por qué este laboratorio

Se apoya en la administración de servidores Linux (Red Hat). Muchos clústeres de GPU usan Slurm en lugar de Kubernetes, así que este laboratorio lleva la política XID del laboratorio 09 a un Slurm real.

Qué he hecho

  • Slurm 23.11 con paquetes de Ubuntu 24.04 en Docker Compose: MariaDB, slurmdbd, slurmctld y 4 nodos con 4 GPU simuladas cada uno.
  • gpuops health como HealthCheckProgram cada 10 segundos: cordon (drenar y dejar que acaben los trabajos), drain (drenar y reencolar) o cuarentena. Nunca reactiva un nodo y respeta el motivo de un drain puesto por una persona.
  • gpuops validate: reserva de mantenimiento, resume, burn-in en todas las GPU y después libera o vuelve a drenar.
  • Un entrenamiento de dos nodos con checkpoints en almacenamiento compartido que se cuelga, en lugar de fallar, ante un XID de hardware.
  • gpuops events une sacct, el log del trabajo y el del health check en el formato de eventos del laboratorio 12.

Cómo se prueba

CI: 36 comprobaciones en unos 7 minutos. El XID 79 drena el nodo en 2 segundos y reencola el trabajo; el trabajo termina sus 150 pasos; sacct muestra REQUEUED, REQUEUED, COMPLETED. Los ficheros reales de esa ejecución se guardan como fixtures.

Qué aprendí

Hicieron falta cuatro iteraciones de CI para que funcionaran los cgroups v2 sin systemd, y el reencolado tardaba entre 60 y 80 segundos. Las dos cosas están en docs/design.md.

Siguientes pasos

  • En nodos reales, cambiar la fuente de salud a nvidia-smi y el log del kernel.
  • Activar el aislamiento por cgroups de las GPU.
  • Ejecutar NHC (Node Health Check) junto al chequeo de salud de GPU.

¿Quieres llevarlo a tu entorno o adaptarlo a tu caso? Escríbeme y lo vemos.

Tech Career Lab · newsletter

¿Te ha servido? Cada dos semanas envío una idea práctica para perfiles IT: LinkedIn, proyectos, networking y procesos de selección.

Apúntate y llévate las 33 ideas →