Vamos a configurar un cluster de Ceph en Debian11. Toda la información para hacer este laboratorio ha sido sacado de las siguientes webs:
- https://ceph.io/en/
- https://ralph.blog.imixs.com/2021/10/03/ceph-pacific-running-on-debian-11-bullseye/
Para este laboratorio necesitaremos tres máquinas virtuales, a las cuales llamaré Ceph1, Ceph2 y Ceph3. Todas tienen un disco de 20GB, en el cual está el sistema de archivos principal y un segundo disco de 50GB, los cuales serán los que usemos para el Ceph
Ceph está formado por 3 componentes base:
- Admin Console: Sirve para administrar el cluster. En este laboratorio lo instalaremos sobre la máquina ceph1 y, al final, para prevenir posibles errores futuros, replicaremos la configuración sobre la máquina Ceph2
- Monitors: Monitorizan la salud del cluster.
- OSDs: Sus siglas son «Object Storage Daemon». Son los que se encargan de almacenar los datos, restaurarlos, replicarlos. En ocasiones, los discos también reciben este nombre.
Una cosa a mayores que necesita un cluster de Ceph es una buena configuración de red. En la página de documentación pública de Ceph (https://docs.ceph.com/en/quincy/start/hardware-recommendations/#networks) indican que replicar un 1 TB de datos puede llevar hasta 3 horas con una red de 1Gb/s pero, en cambio con una red de 10 Gb/s llevará sobre 20 minutos.
Instalación
Para la instalación de Ceph he usado cephadm, lo cual simplifica mucho la instalación. Como requisitos previos necesitamos instalar docker. En mi caso ya lo tenía instalado previamente pero en la web que facilito al principio del post, tiene un script que simplifica mucho la instalación.
Con Docker instalado, instalaremos cephadm, lo cual lo haremos ejecutando los siguientes comandos:
curl --silent --remote-name --location https://github.com/ceph/ceph/raw/pacific/src/cephadm/cephadm
mv cephadm /usr/local/bin
chmod +x /usr/local/bin/cephadm
mkdir -p /etc/ceph
cephadm add-repo --release pacific
cephadm install ceph-common
También se facilita un script en la web indicada.
Configuración de red
El cluster estará en una red privada que yo he creado para el laboratorio. Todo sobre la red 192.168.1.0/24 y las máquinas tendrán las siguientes IPs:
- ceph1 – 192.168.1.200
- ceph2 – 192.168.1.202
- ceph3 – 192.168.1.203
Creacción del cluster
Para arrancar el cluster podemos ejecutar el siguiente comando:
sudo cephadm bootstrap --mon-ip 192.168.1.200 --initial-dashboard-user admin --initial-dashboard-password PASSWORD --dashboard-password-noupdate --skip-mon-network
Cuando acabe la ejecución de este comando nos dará acceso al panel de administración de Ceph:
Ahora simplemente le indicaremos al cluster con que red debe trabajar:
ceph config set mon cluster_network 192.168.1.0/24
Para acceder al panel, deberemos entrar al enlace indicado con las credenciales facilitadas:
Agregar nodos al Cluster
Para poder añadir las otras dos máquinas, Ceph2 y Ceph3 al cluster, deberán tener instalado Docker y también deberemos compartir desde Ceph1 nuestra clave ssh. Esta es necesaria para el cephadmin para poder aplicar la configuración en el resto de nodos.
Una vez hechas estas dos cosas, para añadir un nodo al cluster lo haremos ejecutando el siguiente comando para cada máquina
ceph orch host add ceph2
Añadir monitores
Los monitores proveerán información sobre los nodos por lo que siempre es aconsejable instalarlo en cada nodo del cluster. Esto lo haremos ejecutando los siguientes comandos:
$ sudo ceph orch apply mon --unmanaged
$ sudo ceph orch host label add ceph1 mon
$ sudo ceph orch host label add ceph2 mon
$ sudo ceph orch host label add ceph3 mon
Lo que he hecho con eses comandos es deshabilitar la automatización a la hora de añadir los monitors, y así tendré que añadirlos yo de forma manual. Después de esto añado cada monitor con su IP al cluster:
$ sudo ceph orch daemon add mon ceph2:192.168.1.202
$ sudo ceph orch daemon add mon ceph3:192.168.1.203
Para comprobar si se han añadido correctamente, desde el panel tendremos que ver algo así:
Añadiendo almacenamiento
Por último, necesitamos añadir los OSDs al cluster. Para ello usaremos los discos secundarios de cada máquina (sdb). Para ello ejecutaremos el siguiente comando para cada disco:
ceph orch daemon add osd ceph1:/dev/sdb
Una vez ejecutado para los 3 discos, con el siguiente comando podremos verificar si todo está correcto:
ceph status
Finalmente en el panel, veremos lo siguiente: