CEPH: Almacenamiento Distribuido

14 de oct. de 2026

Manual Paso a Paso para la creación de un Sistema de Almacenamiento distribuido de Alta Disponiblidad con CEPH y Debian

Este documento detalla el diseño, despliegue y puesta en producción de una solución de almacenamiento distribuido sin puntos de fallo (Single Point of Failure - SPOF) utilizando Ceph sobre servidores basados en Debian.

Está dirigida a pequeñas empresas que dispongan de algún perfil técnico de nivel inicial-intermedio y quieran tener sus datos almacenados con alta disponibilidad.

1. Arquitectura y Hardware Mínimo Requerido

Para garantizar la alta disponibilidad y evitar puntos únicos de fallo en Ceph, se requiere un mínimo estricto de 3 nodos (servidores físicos independientes).

Esto permite alcanzar un cuórum de Monitores (MON) y mantener políticas de réplica (por defecto, 2 o 3 copias de los datos).

Ubicación Física del Hardware

  • Los 3 nodos deben estar distribuidos en la medida de lo posible (idealmente en diferentes armarios de rack, diferentes regletas de alimentación eléctrica o incluso distintas salas si la infraestructura lo permite) para mitigar fallos eléctricos o de hardware local.

Especificaciones por Nodo (Mínimo recomendado para PYME)

  • CPU: Procesador de 6 a 8 núcleos (Arquitectura x86_64 / AMD64).
  • Memoria RAM: 32 GB RAM por nodo (fundamental para el rendimiento de las OSDs y los daemons de gestión).
  • Almacenamiento del Sistema Operativo: 1 disco SSD NVMe o SATA de 240 GB o superior (en RAID 1 por nodo si se desea alta disponibilidad local para el SO).
  • Almacenamiento de Datos (OSDs): Mínimo 2 discos duros o SSDs dedicados exclusivamente a datos por nodo (ej. discos SAS/SATA de Enterprise de 2TB+ o SSDs dedicados).
Nota: Los discos de datos nunca se comparten con el SO.
  • Redes: 2 tarjetas de red (NIC) de 1 Gbps (mínimo) o 10 Gbps (recomendado), configuradas en bonding/LACP o separando la red pública de la red de clúster (heartbeat/backend).

2. Preparación del Sistema Operativo (Debian)

Los pasos descritos a continuación se deben ejecutar en todos y cada uno de los 3 nodos del clúster (ej. nodo1, nodo2, nodo3).

2.1 Instalación Base de Debian

  1. Instalar Debian utilizando el medio oficial netinst.
  2. Durante el asistente de instalación, configurar:
  • Hostname: Nombrar adecuadamente cada servidor (ceph-nodo1, ceph-nodo2, ceph-nodo3).
  • Red: Direccionamiento IP estático (ej: 192.168.1.51, 192.168.1.52, 192.168.1.53).
  • Selección de Software: Únicamente marcar “Standard system utilities” y “SSH server”. Evitar entornos gráficos.

2.2 Configuraciones Previas en el Sistema Operativo

Iniciar sesión como root y preparar los prerrequisitos básicos:

# Actualizar repositorios e instalar dependencias esenciales
apt update && apt -y upgrade
apt -y install curl lvm2 chrony podman python3 sudo

Asegurar la sincronización horaria mediante NTP (chrony), ya que los clústeres distribuidos dependen críticamente del tiempo:

systemctl enable --now chronyd

Configurar la resolución de nombres local editando el archivo /etc/hosts en los tres nodos para que se reconozcan por nombre:

192.168.1.51 ceph-nodo1
192.168.1.52 ceph-nodo2
192.168.1.53 ceph-nodo3

3. Despliegue del Clúster Ceph mediante cephadm

El método moderno y recomendado para desplegar Ceph en Debian es a través de contenedores gestionados por cephadm.

Todo el proceso de orquestación se realiza inicialmente desde el nodo principal (ceph-nodo1).

En el nodo principal.

Al ejecutar el asistente de incorporación del repositorio, especifica la rama estable correspondiente o deja que cephadm detecte automáticamente la versión compatible (como Quincy o superior) soportada por los repositorios nativos de Debian 13:

./cephadm add-repo --release quincy
apt update && apt -y install cephadm ceph-common
Verificación: Comprueba que el comando principal de orquestación está disponible escribiendo: cephadm --version

3.1 Configuración de SSH sin contraseña

Desde el nodo principal (ceph-nodo1), genera una clave SSH y cópiela al resto de nodos:

ssh-keygen -t rsa -b 4096 -N "" -f /root/.ssh/id_rsa
ssh-copy-id root@ceph-nodo1
ssh-copy-id root@ceph-nodo2
ssh-copy-id root@ceph-nodo3

3.2 Instalación de cephadm en el Nodo Principal

Descargar e instalar la herramienta de gestión en ceph-nodo1:

curl --silent --remote-name --location https://github.com/ceph/ceph/raw/quincy/src/cephadm/cephadm
chmod +x cephadm
./cephadm add-repo --release quincy
apt update
apt -y install cephadm ceph-common

3.3 Bootstrap del Clúster

Inicializar el clúster en el primer nodo especificando la IP pública de la red y configurando las credenciales iniciales para el panel web (Dashboard):

cephadm bootstrap --mon-ip 192.168.1.51 --initial-dashboard-user admin --initial-dashboard-password TuPasswordSeguro123

Una vez finalizado el proceso, el comando mostrará la URL de acceso al panel web (normalmente [https://192.168.1.51:8443](https://192.168.1.51:8443)) y el comando para interactuar con el clúster (ceph -s).

3.4 Incorporar los Nodos Adicionales al Clúster

Para que ceph-nodo2 y ceph-nodo3 formen parte del almacenamiento distribuido, copia la clave pública del clúster a los nodos secundarios y añádelos:

# Copiar clave pública del clúster a los demás nodos
ssh-copy-id -f -i /etc/ceph/ceph.pub root@ceph-nodo2
ssh-copy-id -f -i /etc/ceph/ceph.pub root@ceph-nodo3

# Añadir los hosts desde la shell de administración de Ceph
ceph orch host add ceph-nodo2 192.168.1.52
ceph orch host add ceph-nodo3 192.168.1.53

4. Aprovisionamiento de Almacenamiento (OSDs)

Los OSDs (Object Storage Daemons) gestionan los discos físicos donde se almacenarán realmente los datos.

  1. Asegurar que los discos destinados a datos estén completamente limpios (sin particiones previas ni metadatos LVM antiguos):
wipefs -a /dev/sdb
ceph-volume lvm zap /dev/sdb

  1. Añadir los discos como OSDs utilizando el orquestador de Ceph (ejecutar en el nodo principal):
ceph orch daemon add osd ceph-nodo1:/dev/sdb
ceph orch daemon add osd ceph-nodo2:/dev/sdb
ceph orch daemon add osd ceph-nodo3:/dev/sdb

  1. Verificar el estado del clúster para comprobar que todas las OSDs están arriba y operativas (HEALTH_OK):
ceph -s

5. Creación de Servicios de Almacenamiento (CephFS y RBD)

5.1 Crear un Sistema de Archivos Compartido (CephFS)

Ideal para compartir carpetas en red de manera similar a NFS/CIFS con soporte POSIX:

# Crear los pools necesarios para los metadatos y los datos
ceph osd pool create cephfs_metadata 16
ceph osd pool create cephfs_data 32

# Crear el sistema de archivos
ceph fs new cephfs cephfs_metadata cephfs_data

6. Integración con Clientes (Linux y Windows)

6.1 Conexión desde Clientes Linux (Ej. Debian Client)

Para montar el almacenamiento compartido CephFS en un servidor cliente Linux:

  1. Instalar las herramientas comunes de cliente:
apt update && apt -y install ceph-common

  1. Obtener la clave secreta del usuario administrador (o crear un usuario restringido):
ceph auth get-key client.admin > /etc/ceph/ceph.client.admin.key

  1. Copiar el archivo de configuración ceph.conf desde el nodo del clúster a /etc/ceph/ceph.conf en el cliente.
  2. Montar el directorio mediante el kernel Linux:
mkdir -p /mnt/cephfs
mount -t ceph 192.168.1.51:/:/ /mnt/cephfs -o name=admin,secretfile=/etc/ceph/ceph.client.admin.key

6.2 Conexión desde Clientes Windows

Para entornos Windows (Windows Server o Windows 10/11 Pro):

  1. Utilizar bloques de disco virtual mediante el protocolo RBD (RADOS Block Device) o exportar CephFS mediante un gateway NFS-Ganesha integrado en Ceph, permitiendo que Windows monte el recurso nativamente mediante el cliente SMB/NFS estándar de Windows.
  2. Para habilitar NFS en el clúster Ceph:
ceph orch apply nfs nfs-cluster 1 ceph-nodo1:nfs-export

Una vez configurado, el recurso NFS exportado se puede conectar desde el Panel de Control de Windows (“Activar o desactivar características de Windows” -> “Servicios para NFS”) ejecutando:

mount -o anon \\192.168.1.51\cephfs Z:

7. Gestión, Monitorización y Buenas Prácticas

  • Dashboard Web: Acceda a https://192.168.1.51:8443 con el usuario admin para monitorizar visualmente el rendimiento de los discos, la capacidad libre/ocupada y las alertas del sistema.
  • Alertas y Notificaciones: Configure notificaciones por correo electrónico desde el propio Dashboard de Ceph para recibir avisos ante fallos de hardware o pérdida de redundancia en las OSDs.
  • Copias de Seguridad (Backup): Aunque Ceph elimina los puntos de fallo por hardware local gracias a la distribución y réplica, no sustituye a una copia de seguridad. Se recomienda programar snapshots periódicos y respaldar los datos críticos hacia un almacenamiento externo o cinta/NFS independiente.

Luis GuLo

🐧 SysAdmin GNU/Linux - 🐳 Docker - 🖥️ Bash Scripting - 🐪 Perl - 🐬 MySQL - 👥 Formador de TI - 👥 Formador de SysAdmin's - 💢 Ansible - ☁️ Cloud Computing - ❤️ Debian GNU/Linux