Cómo instalar el sistema de archivos de red escalable GlusterFS en Debian 11

GlusterFS o Sistema de Archivos Gluster, es un sistema de archivos distribuido gratuito y de código abierto desarrollado por RedHat. GlusterFS es un sistema de archivos escalable formado por varios servidores en un sistema de archivos de entidad única que permite a los usuarios conectarse y montar el volumen GlusterFS.

GlusterFS es un sistema de archivos moderno que puede manejar petabytes de datos. Además, es fácil de instalar y mantener, y también es fácil escalar el sistema de archivos.

En este tutorial, instalarás GlusterFS -sistema de archivos de red distribuido y escalable- en servidores Debian 11. Configurarás el volumen GlusterFS que replica automáticamente los datos en varios servidores y configurarás el sistema de archivos de alta disponibilidad. Además, aprenderás a utilizar «parted», una herramienta de particionado de Linux para configurar discos adicionales en servidores Debian. Por último, comprobarás la replicación de datos en GlusterFS entre varios servidores Debian y verificarás también la alta disponibilidad.

Requisitos previos

Para completar este tutorial, debes tener los siguientes requisitos:

  • Dos o tres servidores Debian 11.
  • Un usuario no root con privilegios de root sudo/administrador.

Este ejemplo utiliza tres servidores Debian 11 con los siguientes detalles:

Hostname    IP Address
--------------------------
node1       192.168.5.50
node2       192.168.5.56
node3       192.168.5.57

Eso es todo. Si estos requisitos están listos, inicia la instalación de GlusterFS.

Configurar el nombre de host y el FQDN

El primer paso que debes dar es configurar el nombre de host y el fqdn de todos tus servidores Debian que utilizará GlusterFS. Puedes configurar el nombre de host mediante el comando«hostnamectl» y configurar el FQDN (Fully Qualified Domain Name) mediante el archivo«/etc/hosts«.

Para configurar el nombre de host, introduce el siguiente comando en cada servidor.

# run on node1
sudo hostnamectl set-hostname node1.home.lan

# run on node2
sudo hostnamectl set-hostname node2.home.lan

# run on node3
sudo hostnamectl set-hostname node3.home.lan

A continuación, abre el archivo«/etc/hosts» en cada servidor utilizando el editor que prefieras. Para todo este tutorial, utilizarás el editor nano.

sudo nano /etc/hosts

Añade las siguientes líneas al archivo. Cuando tengas una dirección IP que haga referencia a varios nombres de host, sustitúyela por las siguientes líneas.

192.168.5.50  node1.home.lan  node1
192.168.5.56  node2.home.lan  node2
192.168.5.57  node3.home.lan  node3

Pulsa Ctrl+x para salir, introduce y para confirmar, y pulsa ENTER para continuar.

Por último, verifica el fqdn en cada servidor emitiendo el siguiente comando.

hostname -f
cat /etc/hosts

Recibirás una salida similar a ésta – En el nodo1, el fqdn debe ser nodo1.home.lan, en el nodo2 es nodo2.home.lan, y en el nodo3 debe ser nodo3.home.lan.

configurar nombre de host y fqdn

Configurar la partición de disco

Se recomienda utilizar una unidad/disco específico para la implantación de GlusterFS. En este ejemplo, cada servidor Debian tiene un disco adicional ‘/dev/vdb’ que se utilizará para la instalación de GlusterFS. En este paso aprenderás a configurar un nuevo disco en un sistema Linux mediante el terminal y el comando ‘fdisk’.

Para empezar, ejecuta el siguiente comando«fdisk» para comprobar la lista de discos disponibles en tu servidor Debian.

sudo fdisk -l

Recibirás una salida similar a ésta – Hay dos discos disponibles en el«nodo1«, el «/dev/vda«, donde está instalado el sistema operativo, y el«/dev/vdb«, que aún no está configurado.

listar discos

Para empezar a particionar el disco ‘ /dev/vdb‘, introduce el siguiente comando fdisk. Deberías obtener el nuevo prompt de la herramienta fdisk y conectarte al disco ‘/dev/vdb‘.

sudo fdisk /dev/vdb
  • Para crear una nueva partición, introduce el comando‘n‘.
  • Selecciona el tipo de partición que quieres crear. ‘p‘ para primaria y ‘e‘ para extendida. En este ejemplo, crearás una partición primaria, así que introduce«p«.
  • Dentro del disco «/dev/vdb«, ¿cuántas particiones quieres crear? En este ejemplo, sólo crearás una partición, así que introduce«1«.
  • Elige el primer sector para la nueva partición. Puedes dejarlo por defecto, así que pulsa ENTER para continuar.
  • El último sector es donde defines el tamaño de la partición que quieres crear. En este ejemplo será de unos 5GB, así que introduce ‘+5GB‘.
  • Por último, introduce ‘w‘ para confirmar y aplicar los cambios que has hecho en el disco ‘/dev/vdb‘.

La salida«La tabla de particiones ha sido modificada» confirma que los cambios se han aplicado a tu disco.

crear partición fdisk

Con esto, tu nueva partición está creada, pero aún inutilizable. Porque necesitas formatear tu nueva partición con formatos específicos del sistema de archivos. Puedes introducir el siguiente comando fdisk para asegurarte de que se crea la nueva partición en el disco ‘/dev/vdb ‘.

sudo fdiks -l

Recibirás una salida similar a ésta – En la sección ‘/dev/vdb‘, verás que se ha creado la nueva partición‘/dev/vdb1‘ con el tamaño‘4,7GB‘.

listar partición dev/vdb

A continuación, ejecuta el siguiente comando para formatear tu nueva partición ‘/dev/vdb1‘. En este ejemplo, formatearás la partición con el formato de sistema de archivos ext4.

sudo mkfs -t ext4 /dev/vdb1

Recibirás una salida similar a ésta: La nueva partición «/dev/vda1» está formateada como un sistema de archivos ext4.

partición formadora

Configurar el montaje automático de la partición

En este paso, configurarás el montaje automático de la nueva partición «/dev/vdb1» mediante el archivo«/etc/fstab«. También crearás un nuevo directorio que se utilizará para almacenar datos en GlusterFS.

En primer lugar, crea un nuevo directorio de destino que se utilizará para montar la nueva partición ‘/dev/vdb1‘.

# run on node1
mkdir -p /data/node1

# run on node2
mkdir -p /data/node2

# run on node3
mkdir -p /data/node3

Abre el archivo de configuración‘/etc/fstab‘ utilizando el siguiente comando del editor nano.

sudo nano /etc/fstab

Añade la siguiente línea al archivo. Con esto, la nueva partición ‘/dev/vdb1 ‘ se montará automáticamente al iniciar el sistema.

# for node1
/dev/vdb1    /data/node1    ext4    defaults    0    1

# for node2
/dev/vdb1    /data/node2    ext4    defaults    0    1

# for node3
/dev/vdb1    /data/node3    ext4    defaults    0    1

A continuación, ejecuta el siguiente comando para montar la nueva partición que has configurado mediante el archivo ‘/etc/fstab ‘. Si no se produce ningún error, estás listo para empezar.

sudo mount -a

Por último, ejecuta el siguiente comando para crear un nuevo directorio ‘brick0’ en la partición recién montada para cada servidor.

# run on node1
mkdir -p /data/node1/brick0

# run on node2
mkdir -p /data/node2/brick0

# run on node3
mkdir -p /data/node3/brick0

Instalación del Servidor GlusterFS

En este paso, instalarás el paquete GlusterFS en los servidores Debian que se utilizarán para el clúster GlusterFS. Por tanto, asegúrate de ejecutar los siguientes comandos en los servidores nodo1, nodo2 y nodo3.

Ejecuta el siguiente comando apt para instalar las dependencias básicas en tu sistema. Introduce y cuando se te pida y pulsa ENTER para continuar.

sudo apt install gnupg2 apt-transport-https software-properties-common

Salida:

instalar dependencias

Descarga la clave GPG del repositorio GlusterFS mediante el comando curl. A continuación, convierte la nueva clave en el archivo‘/usr/share/keyrings/glusterfs-archive-keyring.gpg‘.

curl https://download.gluster.org/pub/gluster/glusterfs/10/rsa.pub | gpg --dearmor > /usr/share/keyrings/glusterfs-archive-keyring.gpg

A continuación, ejecuta el siguiente comando para crear nuevas variables de entorno y añadir el repositorio GlusterFS a tu sistema.

DEBID=$(grep 'VERSION_ID=' /etc/os-release | cut -d '=' -f 2 | tr -d '"')
DEBVER=$(grep 'VERSION=' /etc/os-release | grep -Eo '[a-z]+')
DEBARCH=$(dpkg --print-architecture)

echo «deb [signed-by=/usr/share/keyrings/glusterfs-archive-keyring.gpg] https://download.gluster.org/pub/gluster/glusterfs/LATEST/Debian/${DEBID}/${DEBARCH}/apt ${DEBVER} main» | sudo tee /etc/apt/sources.list.d/gluster.list

Salida:

añadir repo

Una vez añadidas la clave GPG y el repositorio, ejecuta el siguiente comando apt para actualizar y refrescar tu índice de paquetes.

sudo apt update

Resultado:

actualizar repo

Ahora instala el paquete del servidor GLusterFS introduciendo el siguiente comando. Cuando se te pida confirmación, introduce y y pulsa ENTER.

sudo apt install glusterfs-server

Resultado:

instalar glusterfs

Una vez instalado GlusterFS, ejecuta el siguiente comando systemctl para iniciar y habilitar el servicio GLusterFS. Con esto, GlusterFS debería estar ejecutándose en todos tus servidores y ahora está habilitado, lo que significa que el servicio GlusterFS se iniciará automáticamente al arrancar el sistema.

sudo systemctl start glusterd
sudo systemctl enable glusterd

Por último, ejecuta el siguiente comando systemctl para verificar el servicio GlusterFS y asegurarte de que se está ejecutando y está habilitado.

sudo systemctl status glusterd

La salida «active (running)» confirma que GlusterFS se está ejecutando y la salida «…; enabled;» confirma que GlusterFS está activado y se iniciará automáticamente al arrancar el sistema.

iniciar la verificación del servicio glusterfs

Llegados a este punto, ya has preparado un nuevo disco/partición e instalado el servidor GLusterFS. A continuación, empezarás a crear e inicializar el clúster GLusterFS.

Inicializar el Pool de Almacenamiento

En este paso, configurarás el clúster GlusterFS con tres servidores Debian, nodo1, nodo2 y nodo3. Inicializarás el clúster GlusterFS desde el‘nodo1′ y añadirás los otros nodos‘nodo2′ y‘nodo3‘ al clúster.

Antes de empezar, asegúrate de que cada servidor es accesible a través del nombre de host o fqdn. Puedes comprobarlo emitiendo el comando ping a cada servidor.

ping node2.home.lan
ping node3.home.lan

En el terminal «nodo1», ejecuta el siguiente comando gluster para inicializar el clúster GlusterFS con los miembros del clúster nodo2 y nodo3.

sudo gluster peer probe node2.home.lan
sudo gluster peer probe node3.home.lan

La salida«peer probe: success» confirma que la inicialización del clúster GlusterFS se ha realizado correctamente.

iniciar el grupo de almacenamiento del clúster

A continuación, pasa al terminal‘nodo2′ y emite el siguiente comando para verificar el estado del clúster GlusterFS.

sudo gluster peer status

Deberías recibir una salida similar a ésta – En el ‘nodo2‘, puedes ver el clúster GlusterFS con dos peers, nodo1 y nodo3 con el estado conectado.

estado del nodo2

Ahora pasa al terminal «nodo3» y ejecuta el siguiente comando para verificar el estado del clúster GLusterFS.

sudo gluster peer status

Salida – En el ‘nodo3‘, puedes ver el cluster GlusterFS con dos peers, nodo1 y nodo2 con el estado conectado.

estado del nodo3

Además, también puedes verificar la lista de pools del clúster GlusterFS mediante el siguiente comando. Puedes ejecutarlo en el servidor nodo1, nodo2 o nodo3.

sudo gluster pool list

Con esto, ya has inicializado correctamente el clúster GlusterFS con tres servidores Debian. En el siguiente paso, aprenderás a crear un volumen en GlusterFS y a montar el volumen GlusterFS desde la máquina cliente.

Crear un volumen replicado

En GlusterFS puedes crear varios tipos de volúmenes: volumen distribuido, volumen replicado, volumen replicado distribuido, volumen disperso y volumen disperso distribuido. Consulta la Documentación oficial de GlusterFS para obtener detalles sobre cada tipo de volumen.

En este paso, crearás un nuevo volumen GlusterFS con el tipo Replicado con tres servidores GlusterFS diferentes. Con esto, tus datos se copiarán automáticamente de un servidor a otro dentro del pool de almacenamiento y del clúster GlusterFS.

Ejecuta el siguiente comando gluster para crear un nuevo volumen replicado en GlusterFS. En este ejemplo, crearás un nuevo volumen‘testVolume‘ con el tipo Replicado entre tres servidores nodo1, nodo2 y nodo3.

sudo gluster volume create testVolume replica 3 node1.home.lan:/data/node1/brick0 node2.home.lan:/data/node2/brick0 node3.home.lan:/data/node3/brick0

La salida‘volume create: testVolume: success: …‘ confirma que se ha creado el nuevo volumen ‘testVolume‘.

A continuación, debes iniciar el«testVolume» antes de poder utilizarlo mediante el siguiente comando.

sudo gluster volume start testVolume

La salida‘volume start: testVolume: success’ confirma que el ‘testVolume‘ está iniciado y listo.

Salida:

crear e iniciar volumen

Por último, ahora puedes verificar la información detallada sobre eltestVolume’ mediante el siguiente comando gluster.

sudo gluster volume info

Recibirás una salida similar a ésta – EltestVolume’ con el tipo‘Replicado‘, la transferencia por defecto es‘tcp‘, y tres servidores diferentes nodo1, nodo2 y nodo3.

Resultado:

verificar volumen

Con esto, ya has inicializado el clúster GlusterFS con tres servidores diferentes y creado un volumen Replicado ‘testVolume’ sobre él. En el siguiente paso, aprenderás a configurar la máquina cliente y a montar el volumen GLusterFS.

Montar el Volumen GlusterFS en el Cliente

En este paso, aprenderás a montar un volumen GlusterFS en la máquina cliente, este ejemplo utiliza una máquina basada en Ubuntu/Debian con el nombre de host‘cliente‘. Ahora, montarás el volumen GlusterFS‘testVolume‘ en la máquina cliente y configurarás el montaje automático mediante el archivo ‘/etc/fstab’.

Primero, abre el archivo‘/etc/hosts‘ utilizando el siguiente comando del editor nano.

sudo nano /etc/hosts

Introduce las siguientes líneas en el archivo y asegúrate de cambiar los detalles de las direcciones IP y los nombres de host con el servidor GLusterFS.

192.168.5.50  node1.home.lan  node1
192.168.5.56  node2.home.lan  node2
192.168.5.57  node3.home.lan  node3

Guarda el archivo y sal del editor cuando hayas terminado.

A continuación, ejecuta el siguiente comando apt para instalar el paquete ‘glusterfs-client’. Para montar el volumen GlusterFS, debes instalar el paquete ‘glusterfs-client ‘ en tu máquina cliente.

sudo apt install glusterfs-client

Introduce y cuando se te pida y pulsa ENTER para continuar.

instalar cliente glusterfs

Una vez instalado el cliente glusterfs, crea un nuevo directorio «/data » que se utilizará como directorio de destino para montar el volumen GlusterFS.

mkdir /data

Monta el volumen GlusterFS‘testVolume‘ en el directorio ‘/data ‘ mediante el comando mount que se indica a continuación.

sudo mount.glusterfs node1.home.lan:/testVolume /data

Comprueba la lista de discos montados en tu sistema mediante el siguiente comando df.

sudo df -h

Si lo has hecho correctamente, deberías ver el volumen GlusterFS «testVolume» montado en el directorio «/data».

Salida:

montar glusterfs

A continuación, configurarás el montaje automático del volumen GlusterFS mediante el archivo ‘/ect/fstab‘.

Abre el archivo ‘ /etc/fstab‘ utilizando el siguiente comando del editor nano.

sudo nano /etc/fstab

Añade las siguientes líneas al archivo. Con esto, el volumen GlusterFS‘testVolume‘ se montará automáticamente al arrancar.

node1.home.lan:/testVolume /data glusterfs defaults,_netdev 0 0

Guarda el archivo y sal de él cuando hayas terminado.

Ahora ya has terminado la configuración del cliente para montar el volumen GlusterFS y has configurado el montaje automático del volumen GlusterFS mediante el archivo ‘/etc/fstab’. En el siguiente paso, comprobarás la replicación y la alta disponibilidad del clúster GLusterFS.

Prueba de replicación y alta disponibilidad

En la máquina cliente, mueve el directorio de trabajo a ‘/data’ y crea nuevos archivos utilizando el siguiente comando. Esto creará nuevos archivos‘1-15.md‘.

cd /data
touch file{1..15}.md

Ejecuta el comando ls para obtener la lista de archivos del directorio actual.

ls

Salida:

añadir nuevos archivos

A continuación, pasa al terminal‘nodo1‘ y ve al directorio‘/data/node1/brick0‘. A continuación, ejecuta el comando ls para comprobar la lista de archivos y directorios.

cd /data/node1/brick0
ls

Deberías ver los archivos‘1-15.md‘ disponibles en el nodo1.

Salida:

datos replicados nodo1

Pasa al terminal‘nodo2‘ y ve al directorio‘/data/node2/brick0‘. A continuación, ejecuta el comando ls para comprobar la lista de archivos y directorios.

cd /data/node2/brick0
ls

Deberías ver los archivos‘1-15.md‘ disponibles en el nodo2.

Salida:

datos replicados nodo2

Pasa al terminal‘nodo3‘ y ve al directorio ‘/data/node3/brick0‘. A continuación, ejecuta el comando ls para comprobar la lista de archivos y directorios.

cd /data/node3/brick0
ls

Deberías ver los archivos‘1-15.md‘ disponibles en el nodo3.

Salida:

datos replicados nodo3

Con esto, los datos que has realizado desde la máquina cliente se replican en varios servidores del servidor GlusterFS.

A continuación, para la Alta Disponibilidad de GLusterFS, puedes apagar o desconectar el ‘nodo1‘ y comprobar que la máquina cliente sigue conectada al clúster GlusterFS.

Ve al terminal delnodo1′ y ejecuta el siguiente comando para apagar el servidor.

sudo poweroff

A continuación, ve al terminal «nodo2» y ejecuta el siguiente comando para comprobar el estado del clúster GLusterFS.

sudo gluster peer status

Deberías recibir una salida como ésta – El estado del nodo1 es‘Desconectado‘.

prueba ha

Pasa al terminal cliente y ejecuta el siguiente comando para asegurarte de que sigues conectado al clúster GlusterFS.

cd /data
ls

Salida:

prueba ha

Con esto, la Alta Disponibilidad del clúster GlusterFS está funcionando.

Conclusión

En este tutorial has instalado un clúster GlusterFS con tres servidores Debian 11. También has configurado un nuevo disco/partición en Linux mediante fdisk y has configurado el montaje automático del disco/partición Linux mediante el archivo /etc/fstab. Además, has aprendido a crear un volumen replicado en GlusterFS y a configurar una máquina cliente basada en Debian/Ubuntu para montar el volumen GlusterFS.

Con esto en mente, ahora puedes aprovechar tu clúster GlusterFS añadiendo más discos y servidores para tener un sistema de archivos de red de alta disponibilidad accesible desde tus Redes. Puedes obtener más información sobre la administración de GlusterFS en la Documentación oficial de GlusterFS.

También te podría gustar...