Cómo configurar un clúster GlusterFS como sistema de archivos

Artículos Guías Manuales Sistemas Linux Windows Redes MySql Binario 0 Binario Cero

GlusterFS es una plataforma de almacenamiento definida por software, adecuada tanto para entornos empresariales como para uso personal. Es de código abierto y gratuito, aunque también ofrece opciones de soporte de pago. GlusterFS puede desplegarse en hardware físico, contenedores, máquinas virtuales e incluso en entornos de nube.

Algunas ventajas de utilizar GlusterFS:

  • Escalabilidad
  • Cumplimiento con POSIX
  • Soporte para múltiples sistemas de archivos
  • Opciones de optimización para diferentes cargas de trabajo
  • Geo-replicación
  • Capacidad para manejar numerosos clientes

Cómo configurar un clúster GlusterFS

En este ejemplo, usaremos Ubuntu 20.04 como sistema operativo. Sin embargo, puedes optar por otra distribución de Linux, teniendo en cuenta que el método para instalar los paquetes puede variar (por ejemplo, usando yum, dnf o apt).

El escenario considera tres servidores con las siguientes direcciones IP y nombres de host:

  • 10.0.2.101 - server-1
  • 10.0.2.102 - server-2
  • 10.0.2.103 - server-3

Paso 1: Preparación inicial

Lo primero es asegurarte de que los sistemas puedan comunicarse entre sí. Esto se puede lograr añadiendo los nombres y direcciones IP de cada servidor al archivo /etc/hosts en cada máquina. Otra opción, preferida, es configurar estos sistemas en tu servidor DNS.

Nota sobre los cortafuegos

GlusterFS requiere que ciertos puertos estén abiertos en los cortafuegos para permitir la comunicación adecuada. En esta guía no habilitaremos cortafuegos, pero, si decides utilizarlos, asegúrate de abrir los puertos necesarios.

Paso 2: Instalación de GlusterFS

Ejecuta los siguientes pasos en cada servidor con privilegios de sudo o como usuario root.

1. Actualiza la lista de paquetes:

apt-get update

2. Instala los paquetes del servidor y cliente de GlusterFS:

apt install -y glusterfs-server glusterfs-client

3. Habilita e inicia el servicio glusterd:

systemctl enable --now glusterd

Paso 3: Preparación del almacenamiento (Bricks)

Ahora que GlusterFS está instalado y el servicio está en ejecución, es momento de preparar los bricks de almacenamiento. Estos pasos deben realizarse en cada servidor:

1. Crea una partición en el dispositivo de almacenamiento:

parted --script -a optimal -- /dev/sda6 mklabel gpt mkpart primary 1MiB -1

2. Crea un sistema de archivos en la nueva partición, un punto de montaje y móntalo:

mkfs.xfs -i size=512 /dev/sda6
mkdir /cluster-gfs
mount /dev/sda6 /cluster-gfs

3. Crea un subdirectorio que servirá como brick:

mkdir /cluster-gfs/brick-1

Nota: Si no tienes un dispositivo de almacenamiento para crear una partición, puedes simplemente crear el directorio /cluster-gfs/brick-1 y usarlo. Aunque esto no es una buena práctica, sirve para fines de demostración.

Paso 4: Configuración de un "Trusted Storage Pool"

En este punto, tienes tres servidores ejecutando GlusterFS y un dispositivo de almacenamiento (o directorio) listo para usar en tu primer volumen. Antes de configurar el volumen, debes crear un Trusted Storage Pool para indicar a GlusterFS qué hosts se utilizarán como almacenamiento.

1. Ejecuta los siguientes comandos desde el primer servidor (server-1), reemplazando los nombres si usas otros:

gluster peer probe server-2
gluster peer probe server-3

2. Verifica el estado del pool de almacenamiento:

gluster pool list

Paso 5: Creación de un volumen GlusterFS

Ahora estás listo para crear tu primer volumen GlusterFS. Para este ejemplo, crearemos un volumen distribuido, donde los archivos se distribuyen entre todos los bricks que forman parte del volumen.

1. Crea el volumen desde el primer servidor:

gluster volume create cluster_vol server-1:/cluster-gfs/brick-1 server-2:/cluster-gfs/brick-1 server-3:/cluster-gfs/brick-1

2. Inicia el volumen:

gluster volume start cluster_vol

Paso 6: Montaje del volumen

Una vez creado y activado el volumen, ya puedes montarlo para empezar a usarlo. Puedes montarlo en cualquier punto; en este ejemplo, usaremos /mnt:

mount -t glusterfs server-1:/cluster-gfs /mnt
df -h /mnt

Conclusión

¡Y eso es todo! Ahora has configurado un clúster GlusterFS básico con un volumen distribuido. Puedes comenzar a crear archivos en el volumen, los cuales se distribuirán entre los bricks en los diferentes servidores.

Al examinar el directorio o dispositivo de almacenamiento en cada servidor, notarás diferentes archivos debido a la distribución. Sin embargo, al acceder al volumen a través del punto de montaje, verás todos los archivos distribuidos en el clúster como si estuvieran en un único sistema de archivos.