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 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.
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.
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‘.
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.
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:
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:
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:
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:
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.
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.
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.
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.
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:
Por último, ahora puedes verificar la información detallada sobre el‘testVolume’ mediante el siguiente comando gluster.
sudo gluster volume info
Recibirás una salida similar a ésta – El‘testVolume’ con el tipo‘Replicado‘, la transferencia por defecto es‘tcp‘, y tres servidores diferentes nodo1, nodo2 y nodo3.
Resultado:
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.
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:
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 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:
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:
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:
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 del‘nodo1′ 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‘.
Pasa al terminal cliente y ejecuta el siguiente comando para asegurarte de que sigues conectado al clúster GlusterFS.
cd /data ls
Salida:
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.