Desafíos de utilizar Ceph en SBCs como los Raspberry Pi

Introducción

El sistema de almacenamiento distribuido Ceph está pensado para infraestructuras de producción con múltiples servidores potentes y redes robustas. Sin embargo, muchos entusiastas están intentando montarlo en ordenadores de placa reducida (SBC, single-board computers) como los Raspberry Pi. Aunque es factible, hay varios problemas importantes a considerar. En este artículo analizamos los retos más comunes al ejecutar Ceph en SBCs, por qué ocurren, y algunas recomendaciones si decides hacerlo.

Principales problemas al ejecutar Ceph en Raspberry Pi

1. Recursos de hardware limitados

Los SBCs típicos (como Raspberry Pi 3 o similares) tienen memoria RAM, CPU y rendimiento de I/O muy inferiores a los servidores clásicos. Por ejemplo, en un experimento con Raspberry Pi 3 B+ se observó que el proceso ceph-osd alcanzaba unos 750 MiB de uso de memoria, provocando que el sistema quedase sin capacidad de respuesta. (Creative Misconfiguration) Además, muchos SBCs usan almacenamiento microSD o unidades USB, que suelen tener tasas de escritura aleatoria muy bajas y mayor latencia → otro cuello de botella.

2. Arquitectura del procesador y soporte de paquetes

En sistemas como el Raspberry Pi, la arquitectura ARM puede presentar incompatibilidades o menor soporte para Ceph. Por ejemplo, en un hilo se comenta que la versión de “armhf” ya no está suficientemente mantenida y que se requieren imágenes arm64 para que Ceph funcione correctamente. (Unix & Linux Stack Exchange) También se ha reportado que la utilidad cephadm bootstrap no funciona correctamente en ARM sin modificaciones específicas. (openSUSE Forums)

3. Almacenamiento y desgaste de medios

En un blog de pruebas con Raspberry Pi se menciona que el daemon ceph-mon (monitor) escribe constantemente a disco, lo que en una tarjeta SD puede derivar en desgaste prematuro o fallos. (louwrentius.com) Estos medios (tarjetas SD) no están diseñados para un gran volumen de escrituras continuas, como las que puede generar un cluster Ceph activo.

4. Rendimiento y estabilidad reducidos

Incluso cuando la instalación se completa, los SBCs suelen mostrar un rendimiento muy inferior al necesario para un cluster de producción. Por ejemplo:

  • En una prueba de CephFS sobre Raspberry Pi, los escritorios stdin presentaron fallos de I/O, archivos truncados y operaciones de metadatos extremadamente lentas. (Creative Misconfiguration)
  • En varios foros se reportan cuelgues, errores al añadir OSDs o servicios que no arrancan en dispositivos SBC. (Reddit)
  • En la encuesta de usuarios de Ceph (“Ceph User Survey 2022”), aparece como petición: “soporte más estable para arquitecturas como arm64 / Raspberry Pi”. (Ceph)

5. Complejidad de red y disponibilidad

Un cluster Ceph requiere una red confiable, baja latencia, buen ancho de banda entre nodos. En entornos de laboratorio con SBCs puede que la red sea compartida o no esté optimizada para tráfico intensivo de almacenamiento. Esto puede resultar en fallos de quorum, demoras en heartbeat, etc. Además, cuando se mezclan arquitecturas distintas (por ejemplo ARM + x86) pueden surgir problemas de compatibilidad. (Reddit)

¿Cuándo puede tener sentido y cómo mitigarlo?

Aunque los problemas son reales, eso no significa que sea imposible usar Ceph en SBCs para fines experimentales o de laboratorio. Sólo que no es recomendable para producción crítica sin hacer ajustes. Aquí algunos consejos:

  • Utilizar modelos más potentes: por ejemplo Raspberry Pi 4 con 4 GB o 8 GB de RAM, y almacenamiento conectado por USB3 o NVMe si es posible. En el blog oficial de Ceph se usa Raspberry Pi 4 B como hardware base. (Ceph)
  • Usar almacenamiento de mejor calidad: evitar tarjetas microSD para los nodos monitores u otros roles intensivos: utilizar SSD vía USB o discos externos.
  • Asegurarse de utilizar imagen de 64 bits (arm64) y paquetes Ceph adecuados para ARM64, para evitar incompatibilidades.
  • No esperar un rendimiento parecido al de servidores: asumir que será más lento, con mayor latencia, ideal para aprendizaje, no producción.
  • Monitorear uso de RAM, I/O, latencia de red, para detectar cuellos de botella. Ajustar cachés de Ceph, tal vez reducir cargas de trabajo.
  • Usar buena red entre nodos (gigabit, conmutadores dedicados si es posible), para asegurar que el tráfico de Ceph no compita con otros servicios.

Conclusión

Instalar Ceph en SBCs como los Raspberry Pi es una excelente forma de aprender sobre almacenamiento distribuido, experimentar en un laboratorio casero o montar un clúster “hobby”. Pero hay que tener los ojos bien abiertos: los recursos limitados (memoria, CPU, I/O), la arquitectura ARM, el desgaste del almacenamiento e incluso la red pueden provocar fallos y malas experiencias si se usa como infraestructura de producción. Si decides hacerlo, trata de ajustar las expectativas, invertir en hardware mejor que el mínimo, y usarlo para lo que se adapta: experimentación, no misión crítica.