🎨 Sysprovider Code
Sysprovider LogoWiki
🇪🇸Hosting español para ecommerce

Almacenamiento Definido por Software (SDS) con Ceph

Actualizado el 16 de abril de 2026

Introducción al Almacenamiento Definido por Software (SDS) y Ceph

El panorama del almacenamiento empresarial ha evolucionado drásticamente. Los sistemas tradicionales basados en hardware propietario y controladores RAID están siendo desplazados por soluciones más flexibles, escalables y rentables. En este contexto, el almacenamiento definido por software (SDS) emerge como la arquitectura dominante, y Ceph se consolida como su exponente más potente y de código abierto.

Ceph no es solo un sistema de almacenamiento; es una plataforma unificada que ofrece almacenamiento de objetos, bloques y archivos desde un mismo clúster. Su diseño, inspirado en principios de sistemas distribuidos, le confiere una escalabilidad horizontal casi ilimitada y una tolerancia a fallos inherente, sin puntos únicos de fallo.

Este artículo técnico profundiza en los fundamentos de Ceph, su arquitectura, sus componentes clave y cómo implementarlo para construir una infraestructura de SDS robusta. Si eres SysAdmin o arquitecto de infraestructura, aquí encontrarás una guía práctica y detallada.


¿Qué es exactamente Ceph y por qué es la referencia en SDS?

Ceph nació en el laboratorio de Sage Weil (hoy Red Hat) con una premisa clara: el almacenamiento debe ser auto-gestionado, auto-curativo y escalar sin intervención humana. Su núcleo es RADOS (Reliable Autonomic Distributed Object Store), una capa de almacenamiento de objetos que elimina la necesidad de metadatos centralizados.

Características diferenciales de Ceph:

  • Sin punto único de fallo (SPOF): Todos los componentes son redundantes. No hay un “controller master”.
  • Auto-balanceo: Los datos se redistribuyen automáticamente al añadir o eliminar nodos.
  • CRUSH (Controlled Replication Under Scalable Hashing): Algoritmo que calcula dónde almacenar y recuperar datos sin tablas de búsqueda centralizadas.
  • Soporte multi-protocolo: Un mismo clúster sirve:
    • RADOS Block Device (RBD): para máquinas virtuales (KVM, OpenStack).
    • CephFS: sistema de archivos POSIX para contenedores y aplicaciones.
    • RADOS Gateway (RGW): interfaz S3 y Swift para almacenamiento de objetos.

[INFO] Ceph es la base de muchas nubes públicas y privadas. Empresas como DigitalOcean, DreamHost o CERN lo utilizan en producción.


Arquitectura de Ceph: Componentes Esenciales

Para entender Ceph, hay que dominar sus componentes. Cada uno tiene un rol específico y puede escalar de forma independiente.

1. Monitores (MON)

Son el “cerebro” del clúster. Mantienen el mapa de estado (cluster map) que contiene información sobre:

  • Nodos OSD, MDS y MON.
  • Estado de salud del clúster.
  • Ubicación de los PGs (Placement Groups).

Recomendación: Implementa al menos 3 monitores para lograr quórum. Un número impar evita split-brain.

2. OSD (Object Storage Daemon)

Cada disco duro o SSD se convierte en un OSD. Es el responsable de:

  • Almacenar objetos en disco.
  • Replicar datos (por defecto 3 copias).
  • Participar en el rebalanceo y recuperación.

Escalabilidad: Puedes tener cientos o miles de OSDs. Más OSDs = mayor rendimiento y capacidad.

3. MDS (Metadata Server)

Solo necesario si usas CephFS. Gestiona los metadatos del sistema de archivos. Puede escalar horizontalmente para mejorar el rendimiento de operaciones como ls o stat.

4. RADOS Gateway (RGW)

Proxy que expone APIs compatibles con Amazon S3 y OpenStack Swift. Ideal para backups, data lakes o aplicaciones cloud-native.

5. Manager (MGR)

Añadido en versiones recientes (Luminous+). Proporciona métricas avanzadas, balanceo de carga y dashboards (vía módulo ceph-mgr).


Instalación y Configuración Básica de un Clúster Ceph

Vamos a montar un clúster de prueba con 3 nodos (mon, mgr, osd). Usaremos Ceph Quincy (17.x) sobre Ubuntu 22.04.

Requisitos Mínimos

  • 3 servidores (físicos o VMs) con:
    • 4 GB RAM mínimo.
    • 2 discos: uno para SO y otro para OSD.
    • Red dedicada (al menos 1 Gbps, ideal 10 Gbps).

Paso 1: Preparación de los Nodos

# En todos los nodos:
sudo apt update && sudo apt upgrade -y
sudo apt install -y python3 python3-pip ntp
sudo timedatectl set-ntp true

Paso 2: Crear Usuario y Claves SSH

# En el nodo administrador (ceph-admin):
sudo useradd -d /home/ceph -m ceph
sudo passwd ceph
ssh-keygen -t rsa -b 4096 -f /home/ceph/.ssh/id_rsa -N ""
# Copiar clave pública a todos los nodos (incluido admin)
ssh-copy-id ceph@ceph-node1
ssh-copy-id ceph@ceph-node2
ssh-copy-id ceph@ceph-node3

Paso 3: Instalar Ceph con cephadm (método moderno)

# En el nodo administrador:
sudo apt install -y docker.io
sudo systemctl enable --now docker
sudo curl -fsSL https://download.ceph.com/keys/release.asc | sudo apt-key add -
sudo apt-add-repository 'deb https://download.ceph.com/debian-quincy/ $(lsb_release -sc) main'
sudo apt update
sudo apt install -y cephadm

Paso 4: Bootstrap del Clúster

# Inicializar el clúster en el nodo admin:
sudo cephadm bootstrap --mon-ip <IP_DEL_NODO_ADMIN>

Este comando:

  • Crea el primer monitor.
  • Genera el archivo /etc/ceph/ceph.conf y la clave de administración.
  • Despliega el manager (MGR).

Paso 5: Añadir Nodos OSD

# Desde el nodo admin:
ceph orch host add node1 <IP_NODE1>
ceph orch host add node2 <IP_NODE2>
ceph orch host add node3 <IP_NODE3>

# Añadir discos como OSDs (en cada nodo):
ceph orch apply osd --all-available-devices

[TIP] Para entornos productivos, usa ceph-volume para gestionar OSDs con LVM y evitar problemas con discos raw.


Escalabilidad y Tolerancia a Fallos en Ceph

Ceph está diseñado para escalar desde 3 nodos hasta miles. La clave está en su arquitectura descentralizada.

Escalabilidad Horizontal

  • Añadir OSDs: Simplemente conecta nuevos discos. Ceph redistribuye los Placement Groups (PGs) automáticamente.
  • Añadir nodos: Con ceph orch host add el nuevo servidor se integra sin downtime.
  • Rendimiento lineal: El rendimiento de IOPS y ancho de banda escala casi linealmente con el número de OSDs.

Tolerancia a Fallos

Ceph replica objetos (por defecto 3 copias) en diferentes hosts, racks o incluso centros de datos (mediante CRUSH maps). Si un OSD falla:

  1. El monitor detecta la caída.
  2. Los PGs afectados se marcan como “degradados”.
  3. Se inicia una recuperación automática: los OSDs restantes reconstruyen las copias perdidas.

Ejemplo de configuración de replicación por rack:

# Editar crushmap (extraer, modificar, inyectar)
ceph osd getcrushmap -o crushmap.bin
crushtool -d crushmap.bin -o crushmap.txt
# Añadir regla:
rule replicated_rack {
    id 1
    type replicated
    min_size 1
    max_size 10
    step take root
    step choose rack type 2
    step chooseleaf host type 2
    step emit
}
crushtool -c crushmap.txt -o crushmap.bin
ceph osd setcrushmap -i crushmap.bin

[WARNING] La recuperación masiva consume recursos de red y CPU. Ajusta los parámetros osd_recovery_max_active y osd_recovery_op_priority para evitar impacto en producción.


Casos de Uso: ¿Dónde brilla Ceph?

1. Infraestructura Cloud (OpenStack + Ceph)

Ceph es el backend de almacenamiento por defecto en OpenStack. Proporciona:

  • Volúmenes (Cinder): Discos persistentes para VMs.
  • Imágenes (Glance): Almacenamiento de imágenes de SO.
  • Objetos (Swift): Compatible directamente con RGW.

2. Kubernetes y Contenedores

Usando Rook, un operador nativo de Kubernetes, puedes desplegar Ceph dentro de un clúster K8s. Ofrece:

  • PersistentVolumeClaims dinámicos.
  • CSI drivers para RBD y CephFS.
  • Snapshots y clones a nivel de bloque.

3. Backup y Archivado

RGW con S3 permite integrar herramientas como Restic, Duplicati o Veeam para backups eficientes. Además, soporta compresión y cifrado del lado del servidor.


Monitorización y Mantenimiento

Ceph incluye herramientas potentes para el día a día:

Comandos Esenciales

# Estado del clúster
ceph status
ceph health detail

# Uso de OSDs
ceph osd df
ceph osd perf

# Placement Groups
ceph pg dump | grep -E "active+clean|degraded"
ceph pg stat

# Logs
journalctl -u ceph-osd@<id> -f

Dashboards con Prometheus y Grafana

El módulo ceph-mgr expone métricas vía Prometheus. Puedes integrarlo con Grafana usando el dashboard oficial (ID 2842 en Grafana Labs).

[INFO] Existe el proyecto Ceph Dashboard integrado (desde Luminous) que ofrece una interfaz web para gestión básica. Accede vía https://<IP_MON>:8443.


Mejores Prácticas y Recomendaciones

Para Producción

  1. Red dedicada: Separa el tráfico de almacenamiento (cluster network) del tráfico público (public network). Usa VLANs o interfaces dedicadas.
  2. Discos NVMe: Para OSDs, prioriza NVMe sobre SATA. El rendimiento de Ceph mejora drásticamente con baja latencia.
  3. Memoria RAM: Asigna al menos 4 GB por OSD para el caché de objetos.
  4. Backup del cluster: Realiza backups periódicos del /etc/ceph y del crushmap.
  5. Actualizaciones: Sigue el ciclo de versiones (quinquenal). Usa ceph orch upgrade para actualizaciones rolling.

Errores Comunes

  • Demasiados PGs: No excedas 100 PGs por OSD. Calcula: (Total OSDs * 100) / Tamaño replicación.
  • Monitores lentos: No uses VMs compartidas para MON. Necesitan baja latencia de red.
  • Ignorar la red de cluster: Mezclar tráfico público y de replicación causa cuellos de botella.

Conclusión

Ceph representa la madurez del almacenamiento definido por software. Su capacidad para unificar objetos, bloques y archivos en una sola plataforma, junto con una escalabilidad y tolerancia a fallos excepcionales, lo convierten en la opción predilecta para entornos cloud, contenedores y centros de datos modernos.

Implementar Ceph requiere planificación y conocimiento de sus componentes, pero los beneficios son claros: reducción de costes (frente a soluciones propietarias), flexibilidad total y alta disponibilidad. Si buscas una solución de SDS preparada para el futuro, Ceph es tu mejor aliado.


¿Listo para construir tu clúster Ceph? Empieza con un laboratorio de 3 nodos y escala gradualmente. La comunidad es activa y la documentación oficial (docs.ceph.com) es excelente. Recuerda: en el mundo del SDS, Ceph es el rey indiscutible.

¿Necesitas ayuda?Son dos de nuestros técnicos, Agustín y Mikel, y están disponibles para resolver cualquier problema.

Hablar con ellos ahora
Agustín y Mikel