
drive-failure-predictor
318.000 discos en producción. 96% de los fallos detectados antes de que ocurran.
El problema
Los discos fallan con curva de bañera: muchos fallos al principio (infant mortality), pocos en la fase estable, y de nuevo muchos al final de vida útil. El problema no es solo detectar cuándo acaba la fase estable: es hacerlo con suficiente antelación para que el equipo de almacenamiento actúe, y con un umbral calibrado para ese entorno concreto — porque en un datacenter que paga soporte 24/7, un falso negativo cuesta mucho más que un falso positivo.
Los datos
Dataset SMART de Backblaze con 318.426 discos en producción real (HDDs de distintos fabricantes y generaciones). ~10 millones de filas. Variables clave: reallocated sectors count (S5), reported uncorrectable errors (BB), pending sectors (C5). Tasa de fallo real: ~0,8% — el dataset es muy desbalanceado por diseño.
Enfoque
- Polars en lugar de pandas: procesa los 10M+ de filas sin reventar la RAM — pandas hacía OOM en la máquina de desarrollo
- XGBoost para clasificación binaria (va a fallar en los próximos 7 días / no va a fallar), con scale_pos_weight para compensar el desbalance de clases
- Validación temporal estricta: train en trimestres anteriores, test en el trimestre siguiente — no se mezclan fechas nunca
- Calibración del umbral por ratio coste de fallo / coste de reemplazo: el corte óptimo no es 0,5 cuando los costes son asimétricos
- Análisis de importancia de features: los tres atributos SMART predictivos son los mismos que identifica la literatura de Backblaze
Herramientas
Resultado
96% recall en el conjunto de test temporal (F1 0,77). El modelo marca los discos que van a fallar con entre 3 y 7 días de antelación. El análisis hace explícito que precision y recall se mueven en sentidos opuestos según el umbral — y que la elección correcta depende del coste de cada error en el entorno concreto.
Próximos pasos
La limitación principal es que el modelo trabaja con snapshots diarios: no ve la tendencia intradiaria de los atributos SMART. La extensión natural es añadir features de ventana temporal (tasa de cambio de reallocated sectors en las últimas N horas) para capturar discos que degradan rápido. También queda explorar si los patrones de fallo varían por fabricante y si entrenar modelos separados por familia mejora el recall en los discos más nuevos, que tienen distribuciones SMART distintas.