CEPH: Almacenamiento Distribuido
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
- Instalar Debian utilizando el medio oficial netinst.
- 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 --version3.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.
- 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
- 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
- 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:
- Instalar las herramientas comunes de cliente:
apt update && apt -y install ceph-common
- Obtener la clave secreta del usuario administrador (o crear un usuario restringido):
ceph auth get-key client.admin > /etc/ceph/ceph.client.admin.key
- Copiar el archivo de configuración
ceph.confdesde el nodo del clúster a/etc/ceph/ceph.confen el cliente. - 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):
- 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.
- 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
adminpara 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.