GlusterFS
GlusterFS es un sistema de archivos distribuido y escalable que permite agrupar múltiples servidores de almacenamiento en una sola unidad lógica. Esto nos permite crear un sistema de almacenamiento redundante y altamente disponible para nuestros datos, lo que es especialmente útil en entornos de producción donde la disponibilidad y la integridad de los datos son críticas.
Prerequisitos
Debe estar instalado el swarm en cada una de las maquinas que formarán parte del clúster de GlusterFS. Además, es necesario tener acceso root o privilegios sudo en todas las máquinas. Cada maquina debe tener un segundo disco duro o una partición dedicada exclusivamente para GlusterFS. las maquinas deben poder comunicarse entre sí a través de la red.
Definición de Variables (Para este ejemplo) Disco secundario: /dev/sdb (Asegúrate de verificar cuál es tu disco real con lsblk).
lsblk
Nombre del volumen: vol_datos
Directorio de montaje: /mnt/gluster_data
Instalación de GlusterFS
- Instala GlusterFS en cada máquina:
# Para Debian/Ubuntu
sudo apt-get update
sudo apt-get install -y glusterfs-server
# Para CentOS/RHEL
# sudo dnf install -y glusterfs-server
# Iniciar el servicio y habilitarlo para que arranque al inicio
sudo systemctl enable --now glusterd
- Preparación del Disco
Ejecutar en LOS 3 NODOS
Formateamos el segundo disco (recomendado XFS para GlusterFS) y lo montamos.
Advertencia: El comando mkfs borrará todo en /dev/sdb. Asegúrate de que es el disco correcto.
# 1. Crear el sistema de archivos (formatear)
sudo mkfs.xfs -f /dev/sdb
# 2. Crear el directorio base
sudo mkdir -p /mnt/gluster_data
# 3. Montar el disco
sudo mount /dev/sdb /mnt/gluster_data
# (Opcional pero recomendado) Añadir al fstab para montaje automático tras reinicio:
echo "/dev/sdb /mnt/gluster_data xfs defaults 0 0" | sudo tee -a /etc/fstab
- Verificar
Comprueba que se ha montado correctamente:
df -h | grep gluster_data
- Persistencia
Asegúrate de que el disco se monta automáticamente al reiniciar editando el archivo /etc/fstab:
nano /etc/fstab
y comprueba que esta, y si no añade:
/dev/sdb /mnt/gluster_data xfs defaults 0 0
Guarda y cierra el archivo.
- Creación del Clúster (Peering) Ejecutar en: SOLO EN EL NODO 1
Desde el primer nodo, conectamos con los otros dos. No es necesario hacer esto en los nodos 2 y 3.
# Conectar con el Nodo 2
sudo gluster peer probe <IP_Nodo2>
# Conectar con el Nodo 3
sudo gluster peer probe <IP_Nodo3>
# Verificar que los nodos están conectados (deberías ver 2 peers conectados)
sudo gluster peer status
- Creación y Arranque del Volumen
Ejecutar en: SOLO EN EL NODO 1
Aquí creamos el volumen replicado (copia idéntica de los datos en los 3 servidores).
Nota técnica: Aunque el texto original menciona "volumen distribuido", al usar replica 3 estás creando técnicamente un Volumen Replicado (alta disponibilidad). Si un nodo cae, los datos siguen accesibles.
# 1. Crear el volumen
# Sintaxis: gluster volume create <nombre> replica <n> transport tcp <brick1> <brick2> <brick3> force
sudo gluster volume create vol_datos replica 3 transport tcp \
<IP_Nodo1>:/mnt/gluster_data \
<IP_Nodo2>:/mnt/gluster_data \
<IP_Nodo3>:/mnt/gluster_data \
force
# 2. Iniciar el volumen
sudo gluster volume start vol_datos
# 3. Verificar que el volumen está "Started"
sudo gluster volume info
Resumen de estado Si todo ha ido bien, al ejecutar sudo gluster volume status deberías ver que el volumen vol_datos está en línea y los bricks (las carpetas en cada servidor) están activos.
sudo gluster volume status
- Curado automático (Opcional)
GlusterFS tiene una función de curado automático que ayuda a mantener la integridad de los datos en caso de fallos temporales de red o nodos. Para habilitarlo, puedes usar el siguiente comando:
#PAra ver el log
cat /var/log/glusterfs/bricks/mnt-gluster_data.log
sudo gluster volume heal vol_datos full
# sudo gluster volume set vol_datos cluster.self-heal-daemon on