Ceph es un sistema de al­ma­ce­na­mie­n­to di­s­tri­bui­do que se integra pe­r­fe­c­ta­me­n­te con Proxmox y ofrece una solución de al­ma­ce­na­mie­n­to altamente di­s­po­ni­ble y tolerante a fallos. En esta guía de­s­cu­bri­rás paso a paso cómo instalar un clúster Ceph en tu servidor Proxmox.

Paso 1: comprobar los re­qui­si­tos

Antes de empezar a instalar Ceph en Proxmox, debes ase­gu­rar­te de que tu entorno cumple los re­qui­si­tos básicos. Ceph es un sistema de al­ma­ce­na­mie­n­to que replica los datos entre varios se­r­vi­do­res. Para que esta re­du­n­da­n­cia funcione de forma fiable, necesitas al menos tres nodos Proxmox. Así el sistema puede seguir operando incluso si uno de los nodos falla.

Comprueba también que la in­s­ta­la­ción bare metal de Proxmox está co­m­ple­ta­da en todos los se­r­vi­do­res y que Proxmox está ac­tua­li­za­do. Cada nodo debe disponer de un disco libre y dedicado ex­clu­si­va­me­n­te a los OSD de Ceph. Estos discos serán el al­ma­ce­na­mie­n­to principal del clúster. Igua­l­me­n­te im­po­r­ta­n­te es una conexión de red rápida y estable entre los nodos para mantener la latencia al mínimo. Además, necesitas acceso root en todos los hosts, ya que la in­s­ta­la­ción realiza cambios de sistema.

Verifica la versión actual de Proxmox instalada en tu sistema con el siguiente comando:

pveversion
bash

Compara el número de versión entre nodos. Si en­cue­n­tras di­fe­re­n­cias o tu in­s­ta­la­ción está des­ac­tua­li­za­da, ejecuta una ac­tua­li­za­ción para alinear todos los sistemas:

apt update && apt full-upgrade -y
reboot
bash

Una vez que todos los nodos estén ac­tua­li­za­dos y ac­ce­si­bles, tu entorno estará listo para instalar Ceph.

Nota

Aunque no es un requisito obli­ga­to­rio, para entornos pro­du­c­ti­vos con Proxmox y Ceph es re­co­me­n­da­ble utilizar discos SSD. Ceph se beneficia eno­r­me­me­n­te de los tiempos de lectura y escritura rápidos, ya que cada objeto se replica múltiples veces y se di­s­tri­bu­ye entre varios nodos.

Se­r­vi­do­res dedicados
Re­n­di­mie­n­to e in­no­va­ción
  • Pro­ce­sa­do­res de última ge­ne­ra­ción
  • Hardware dedicado de alto re­n­di­mie­n­to
  • Seguridad de primer nivel

Paso 2: activar el re­po­si­to­rio de Ceph

Para poder instalar Ceph fá­ci­l­me­n­te a través del gestor de paquetes, primero debes activar el re­po­si­to­rio co­rre­s­po­n­die­n­te en cada uno de tus nodos Proxmox. Este re­po­si­to­rio contiene todos los paquetes de Ceph que Proxmox adapta y prueba es­pe­cí­fi­ca­me­n­te para ga­ra­n­ti­zar su co­m­pa­ti­bi­li­dad. Inicia sesión como usuario root en cada host y ejecuta:

pveceph install
bash

Este comando configura au­to­má­ti­ca­me­n­te el re­po­si­to­rio oficial de Ceph para Proxmox e instala los co­m­po­ne­n­tes básicos del sistema. Para activar las nuevas fuentes de paquetes, actualiza la lista de paquetes con:

apt update
bash

Paso 3: iniciar Ceph en el primer nodo

En este tercer paso pre­pa­ra­rás el clúster Ceph en tu primer nodo Proxmox. Aquí defines la red por la que se co­mu­ni­ca­rá el clúster y creas el primer monitor. El monitor es un co­m­po­ne­n­te esencial en Ceph: supervisa el estado del clúster, gestiona los miembros y garantiza que todas las partes tengan siempre la misma in­fo­r­ma­ción.

Inicia la co­n­fi­gu­ra­ción en el primer host Proxmox con:

pveceph init --network 10.0.0.0/24
bash

La subred 10.0.0.0/24 es solo un ejemplo. Debes usar la red interna por la que tus nodos Proxmox se conectan di­re­c­ta­me­n­te entre sí. Con pveceph init, Proxmox crea la co­n­fi­gu­ra­ción básica de Ceph en el primer nodo. Esto incluye el archivo central de co­n­fi­gu­ra­ción del clúster, el keyring de Ceph para la au­te­n­ti­ca­ción interna y los di­re­c­to­rios ne­ce­sa­rios para los servicios del sistema.

Cuando la ini­cia­li­za­ción termine, puedes crear el primer servicio monitor:

pveceph createmon
bash

Este comando inicia el proceso del monitor y lo registra en el clúster. A partir de este momento dispones de un nodo Ceph operativo, aunque sin un clúster completo todavía. El monitor comienza a recopilar in­fo­r­ma­ción de estado y sienta las bases para la co­mu­ni­ca­ción con los si­guie­n­tes nodos.

Nota

En un clúster Ceph se suelen utilizar al menos tres monitores. Esto asegura que el clúster siga fu­n­cio­na­n­do incluso si uno de ellos falla. Solo cuando existen varios monitores puede Ceph alcanzar el llamado estado de quórum, es decir, una mayoría capaz de tomar de­ci­sio­nes sobre el estado del clúster.

Paso 4: añadir más nodos al clúster

Para que Ceph ofrezca la alta di­s­po­ni­bi­li­dad prevista, debes in­co­r­po­rar los demás nodos al clúster Ceph de Proxmox. Cada nodo adicional aporta re­du­n­da­n­cia y capacidad de al­ma­ce­na­mie­n­to. Accede a los otros nodos y ejecuta, uno por uno, los si­guie­n­tes comandos:

pveceph install
pveceph createmon
bash

Así crearás también los monitores (MON) en los demás hosts. Cuando todos los monitores estén activos, puedes comprobar el estado del clúster desde cualquier nodo con:

ceph -s
bash

La salida mostrará qué monitores y servicios están en ejecución. Si aparecen varios monitores listados, significa que has integrado co­rre­c­ta­me­n­te todos los nodos en el clúster.

Paso 5: crear los OSD

Los OSD (Object Storage Daemons) son el núcleo de tu clúster Ceph. Cada disco que destines a Ceph se co­n­ve­r­ti­rá en una unidad OSD in­de­pe­n­die­n­te. Estos daemons se encargan de escribir los datos en los discos, re­pli­car­los y pro­po­r­cio­nar­los de nuevo cuando otro nodo o una máquina virtual los solicita. Cuantos más OSD tenga tu clúster, mayor será su capacidad de al­ma­ce­na­mie­n­to y re­n­di­mie­n­to. Antes de co­n­fi­gu­rar­los, comprueba qué discos están di­s­po­ni­bles en tu nodo con:

lsblk
bash

La salida muestra todos los discos y pa­r­ti­cio­nes de­te­c­ta­dos por el sistema. Asegúrate de utilizar úni­ca­me­n­te discos que no estén en uso, es decir, que no contengan el sistema operativo ni estén montados. Cuando ide­n­ti­fi­ques un disco completo y sin pa­r­ti­cio­nes (en este ejemplo, /dev/sdb) puedes ini­cia­li­zar­lo como OSD:

pveceph createosd /dev/sdb
bash

Este comando formatea au­to­má­ti­ca­me­n­te la unidad y crea la es­tru­c­tu­ra necesaria para Ceph. Después se iniciará el daemon OSD y se integrará en el clúster. Ten en cuenta que todos los datos del disco se­le­c­cio­na­do se borrarán. Asegúrate de que la unidad es ex­clu­si­va­me­n­te para Ceph.

Repite este pro­ce­di­mie­n­to en todos los nodos y con todos los discos que quieras incluir en tu al­ma­ce­na­mie­n­to Proxmox Ceph. De­pe­n­die­n­do del tamaño del clúster y del hardware, la in­te­gra­ción completa de los OSD puede tardar varios minutos.

A co­n­ti­nua­ción verifica que los OSD recién creados han sido de­te­c­ta­dos co­rre­c­ta­me­n­te y están activos. Para ello usa:

ceph osd tree
bash

El árbol de OSD te permitirá ver cómo están di­s­tri­bui­dos los di­s­po­si­ti­vos de al­ma­ce­na­mie­n­to dentro del clúster y si funcionan sin errores. Una vez ve­ri­fi­ca­do que los OSD funcionan co­rre­c­ta­me­n­te, ya puedes crear el servicio Ceph Manager.

Paso 6: activar el Ceph Manager y el panel de control

Para su­pe­r­vi­sar y ad­mi­ni­s­trar tu clúster Proxmox Ceph de forma sencilla, debes instalar el Ceph Manager (MGR). Este servicio recopila in­fo­r­ma­ción de re­n­di­mie­n­to, supervisa todos los co­m­po­ne­n­tes activos y ofrece funciones adi­cio­na­les mediante módulos. Uno de esos módulos es el panel de control web integrado. Instálalo en tu nodo Proxmox con:

pveceph createmgr
bash

Cuando el Manager esté en fu­n­cio­na­mie­n­to, puedes activar el módulo del panel de control. El MGR lo pro­po­r­cio­na au­to­má­ti­ca­me­n­te, solo necesitas activarlo:

ceph mgr module enable dashboard
bash

El panel de control te ofrece una interfaz gráfica desde la que puedes consultar el estado del clúster, revisar el uso de los OSD y MON (monitores de Ceph) y vi­sua­li­zar alertas de forma inmediata. Accede a él desde tu navegador usando el puerto estándar 8443:

https://<PROXMOX_IP>:8443

Sustituye PROXMOX_IP por la dirección IP del nodo Proxmox en el que in­s­ta­la­s­te el Ceph Manager.

Paso 7: crear y probar los pools de Ceph

Una vez que tu clúster Ceph está co­n­fi­gu­ra­do y todos los OSD están activos, puedes crear el área de al­ma­ce­na­mie­n­to donde se guardarán tus datos. Ceph organiza la in­fo­r­ma­ción en pools. Un pool es una unidad lógica donde Ceph almacena archivos, imágenes de disco o volúmenes de co­n­te­ne­do­res. Cada pool está formado por múltiples Placement Groups, que di­s­tri­bu­yen los datos entre los OSD y ga­ra­n­ti­zan un reparto equi­li­bra­do de la carga. Gracias a los pools defines cómo y dónde Ceph almacena tus datos. Así puedes crear, por ejemplo, un pool para máquinas virtuales y otro para copias de seguridad o imágenes de co­n­te­ne­do­res, según tus ne­ce­si­da­des.

Para crear un nuevo pool, ejecuta en uno de tus nodos Proxmox:

pveceph pool create cephpool --size 3 --min_size 2 --pg_num 128
bash

En este ejemplo, se crea un pool llamado cephpool. Los pa­rá­me­tros indican a Ceph cómo gestionar tus datos:

  • --size 3: cada objeto se replica tres veces. Esto pro­po­r­cio­na alta di­s­po­ni­bi­li­dad; si un OSD falla, seguirán exi­s­tie­n­do dos copias.
  • --min_size 2: define que al menos dos copias deben estar di­s­po­ni­bles para que el pool funcione co­rre­c­ta­me­n­te, evitando que Ceph trabaje con datos in­co­m­ple­tos.
  • --pg_num 128: es­pe­ci­fi­ca el número de Placement Groups. Estos co­n­te­ne­do­res lógicos permiten a Ceph di­s­tri­buir in­te­r­na­me­n­te los datos entre los OSD. Cuantos más OSD tengas, mayor puede ser este valor para mejorar el equi­li­brio.
Nota

El número de Placement Groups que es­ta­ble­ces al crear un pool de Ceph no puede reducirse de forma segura po­s­te­rio­r­me­n­te. Puede au­me­n­tar­se si tu clúster crece, pero no di­s­mi­nui­r­se, ya que esto podría ocasionar pérdida de datos. Por eso conviene pla­ni­fi­car con an­te­la­ción. Como regla general: entre 50 y 100 PG por OSD es un buen punto de partida para entornos pequeños y medianos.

Una vez creado el pool, comprueba que todo funciona co­rre­c­ta­me­n­te:

ceph -s
bash

La salida mostrará el estado actual de tu clúster Ceph. Si aparece HEALTH_OK, significa que el pool está co­n­fi­gu­ra­do co­rre­c­ta­me­n­te y tu clúster Proxmox Ceph funciona de manera estable.

Consejo

Un clúster Ceph ofrece re­du­n­da­n­cia, pero no sustituye las copias de seguridad. Para una pro­te­c­ción real de tus datos en entornos Proxmox, se re­co­mie­n­da usar Proxmox Backup Server. Permite realizar copias de­du­pli­ca­das y cifradas de tus máquinas virtuales y co­n­te­ne­do­res, incluso cuando están al­ma­ce­na­dos en Ceph.

Se­r­vi­do­res Intel®
Impulsa tu proyecto web
  • Intel Xeon E Raptor Lake
  • Hardware integrado en el Cloud
  • Pro­ce­sa­do­res Intel® Xeon® de alto re­n­di­mie­n­to
  • Al­ma­ce­na­mie­n­to HDD, SSD o NVMe

Paso 8: integrar el al­ma­ce­na­mie­n­to Ceph en Proxmox

Después de co­n­fi­gu­rar tu clúster Ceph y crear el primer pool, solo queda in­te­grar­lo en Proxmox para que tus máquinas virtuales y co­n­te­ne­do­res puedan uti­li­zar­lo como al­ma­ce­na­mie­n­to. Proxmox emplea para ello el protocolo RBD. La forma más sencilla de realizar la in­te­gra­ción es desde la interfaz gráfica. Abre el panel web y navega a “Da­ta­ce­n­ter > Al­ma­ce­na­mie­n­to > Añadir > RBD (Ceph)”.

En el diálogo que aparece, introduce los datos de conexión de tu clúster Ceph:

  • En ID, asigna un nombre único para el nuevo al­ma­ce­na­mie­n­to.
  • En monitores, introduce las di­re­c­cio­nes IP de tus Ceph MON, es decir, los nodos donde se ejecutan los servicios de monitor. Si son varios, sepáralos por comas, por ejemplo: 10.0.0.11,10.0.0.12,10.0.0.13.
  • En Pool, es­pe­ci­fi­ca el nombre del pool que creaste pre­via­me­n­te, por ejemplo cephpool.
  • En Usuario, no­r­ma­l­me­n­te puedes usar admin.
  • El Keyring se co­m­ple­ta­rá au­to­má­ti­ca­me­n­te, ya que Proxmox lee la clave de au­te­n­ti­ca­ción desde la co­n­fi­gu­ra­ción de Ceph.
Nota

Si prefieres trabajar desde la línea de comandos, puedes realizar la misma operación con un único comando:

pvesm add rbd ceph-storage --monhost <mon1,mon2,mon3> --pool cephpool --content images
bash

Sustituye <mon1,mon2,mon3> por las di­re­c­cio­nes IP de tus MON.

Una vez añadido, el al­ma­ce­na­mie­n­to aparecerá en la interfaz de Proxmox y podrás se­le­c­cio­nar­lo di­re­c­ta­me­n­te como destino para tus máquinas virtuales. Desde ese momento, Proxmox utilizará Ceph como backend de al­ma­ce­na­mie­n­to mediante RBD, lo que permite que todas las máquinas virtuales que crees allí se be­ne­fi­cien au­to­má­ti­ca­me­n­te de la re­du­n­da­n­cia y la alta di­s­po­ni­bi­li­dad de tu clúster Ceph.

Consejo

Si más adelante vas a ejecutar un clúster Ku­be­r­ne­tes sobre Proxmox, la in­te­gra­ción con Ceph es es­pe­cia­l­me­n­te ventajosa. Ceph puede usarse como al­ma­ce­na­mie­n­to pe­r­si­s­te­n­te para Ku­be­r­ne­tes de forma nativa, de modo que tus co­n­te­ne­do­res disfrutan de la misma re­du­n­da­n­cia y alta di­s­po­ni­bi­li­dad que tus máquinas virtuales.

Ir al menú principal