Cómo instalar GlusterFS en Rocky Linux
GlusterFS o Gluster File System 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 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 de escalar el sistema de archivos.
En este tutorial, aprenderás a instalar GlusterFS en dos sistemas Rocky Linux y a configurar el clúster entre dos servidores. También veremos cómo montar el volumen de GlusterFS en la máquina cliente.
Requisitos previos
- Dos servidores Rocky Linux con un disco adicional en cada servidor.
- Se ha configurado una contraseña de root en ambos servidores
Configuración de FQDN y /etc/hosts
Antes de empezar, tendrás que configurar el FQDN y el archivo /etc/hosts en cada servidor.
A continuación se detalla el servidor que utilizaremos para crear el clúster GlusterFS:
- servidor1. dominiolocal.lan con la dirección IP 192.168.10.15
- servidor2. dominiolocal.lan con la dirección IP 192.168.10 .20
Para configurar el FQDN en cada servidor, ejecuta el comando hostnamectl que aparece a continuación.
En el servidor1, ejecuta el siguiente comando hostnamectl.
sudo hostnamectl set-hostname server1.localdomain.lan
Y en el servidor2, ejecuta el siguiente comando.
sudo hostnamectl set-hostname server2.localdomain.lan
A continuación, edita la configuración /etc/hosts con el editor nano.
sudo nano /etc/hosts
Pega la siguiente configuración.
192.168.10.15 server1.localdomain.lan
192.168.10.20 server2.localdomain.lan
Guarda el archivo pulsando Ctrl+X e introduciendo Y para confirmar.
Ahora comprueba la conectividad entre el servidor1 y el servidor2 utilizando el siguiente comando ping.
ping -c3 server1.localdomain.lan
ping -c3 server2.localdomain.lan
Cada nombre de dominio local se resolverá a la dirección IP correcta del servidor.
Configurar la partición
Para desplegar el GlusterFS, se recomienda utilizar un almacenamiento en disco diferente, especialmente para el entorno de producción.
Para este tutorial, tanto el servidor1 como el servidor2 tienen un disco secundario /dev/vdb1 con un tamaño de 5GB.
Ahora edita la configuración de /etc/fstab utilizando el editor nano para añadir tu disco.
sudo nano /etc/fstab
Para el servidor1, el disco /dev/vda1 se montará en el directorio /data/vol1.
/dev/vda1 /data/vol1 ext4 default 0 0
Y para el servidor 2, el disco /dev/vda1 se montará en el directorio /data/vol2.
/dev/vda1 /data/vol2 ext4 default 0 0
A continuación, monta el disco /dev/vda1 con el siguiente comando.
sudo mount -a
Si no hay ningún mensaje de error, verifica la lista de discos montados en cada sistema ejecutando el comando df como se indica a continuación.
sudo df -h
Deberías ver que el disco /dev/vda1 está montado en el directorio /data.
Ahora, antes de empezar a instalar y configurar el cluster GlusterFS, ejecuta el siguiente comando para crear el directorio brick0 dentro del directorio /data.
En el servidor1, ejecuta el siguiente comando.
sudo mkdir -p /data/vol1/brick0
En el servidor2, ejecuta el siguiente comando.
sudo mkdir -p /data/vol2/brick0
Añadir el repositorio GlusterFS para Rocky Linux
Después de configurar con éxito el disco, ahora vas a instalar los paquetes de GlusterFS en tus servidores Rocky Linux.
El actual Rocky Linux todavía no proporciona paquetes de servidor GlusterFS, pero puedes utilizar los paquetes GlusterFS de la versión CentOS.
Añade el repositorio de GlusterFS a tu sistema Rocky Linux mediante el siguiente comando.
sudo dnf install centos-release-gluster9
Escribe y para confirmar la instalación y pulsa ENTER para continuar.
A continuación, ve al directorio /etc/yum.repos.d/ y edita la confioguración del repositorio CentOS-Gluster-9.repo utilizando el editor nano.
cd /etc/yum.repos.d/
sudo nano CentOS-Gluster-9.repo
Cambia la línea baseurl con el repositorio Rocky Linux y comenta la línea mirrorlist como se indica a continuación
# CentOS-Gluster-9.repo
#
# Please see http://wiki.centos.org/SpecialInterestGroup/Storage for more
# information
[centos-gluster9]
name=CentOS-$releasever - Gluster 9
#mirrorlist=http://mirrorlist.centos.org?arch=$basearch&release=$releasever&repo=storage-gluster-9
baseurl=https://dl.rockylinux.org/vault/centos/8.5.2111/storage/x86_64/gluster-9/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-Storage
[centos-gluster9-test]
name=CentOS-$releasever - Gluster 9 Testing
baseurl=http://buildlogs.centos.org/centos/$releasever/storage/$basearch/gluster-9/
gpgcheck=0
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-Storage
Guarda el archivo usando Ctrl+X e Y para confirmar.
Ahora comprueba el repositorio disponible en tu sistema Rocky Linux utilizando el siguiente comando.
sudo dnf repolist
Verás el repositorio de CentOS para GlusterFS 9.
Instalar el servidor GlusterFS
Ahora instala los paquetes de GlusterFS en el sistema Rocky Linux utilizando el siguiente comando dnf.
sudo dnf install glusterfs glusterfs-libs glusterfs-server
Escribe Y para confirmar la instalación y pulsa ENTER para continuar.
Una vez finalizada la instalación, inicia el servicio glusterfsd y añádelo al inicio del sistema mediante el siguiente comando.
sudo systemctl enable glusterfsd.service
sudo systemctl start glusterfsd.service
Ahora verifica el estado del servicio glusterfsd utilizando el siguiente comando.
sudo systemctl status glusterfsd.service
Verás que el servicio glusterfsd está activo con el estado exited, lo que significa que se está ejecutando, pero el gestor systemd no encuentra ningún demonio que monitorizar.
Abrir puerto con Firewalld
Antes de empezar a configurar el clúster GlusterFS, tendrás que abrir el puerto para el servicio GlusterFS.
En los sistemas operativos basados en RHEL Linux, la aplicación de cortafuegos por defecto es firewalld, que proporciona la herramienta de línea de comandos firewall-cmd para gestionar el cortafuegos.
Añade el servicio glusterfs a tu configuración de firewalld y recarga el firewalld con el comando que aparece a continuación.
sudo firewall-cmd --add-service=glusterfs --permanent
sudo firewall-cmd --reload
Después, verifica la lista de servicios en el firewalld utilizando el siguiente comando.
sudo firewall-cmd --list-services
Verás que el servicio glusterfs se ha añadido al firewalld.
Inicializar el clúster GlusterFS
El siguiente paso será inicializar y configurar el clúster GlusterFS en los sistemas Rocky Linux.
En primer lugar, inicializa el clúster GlusterFS con el siguiente comando. Este comando debe ejecutarse en el servidor1 y sólo puede ejecutarse una vez.
Al utilizar este comando, estarás añadiendo el servidor2.localdomain.lan al peer de GlusterFS en el servidor1. Además, el servidor2 se inicializará automáticamente una vez completado el siguiente comando.
sudo gluster peer probe server2.localdomain.lan
Ahora deberías ver el mensaje de salida ‘peer probe: success’.
A continuación, verifica el estado del peer en el servidor1 con el siguiente comando.
sudo gluster peer status
Deberías ver que sólo hay un peer en el servidor1.
Además, ejecuta el siguiente comando en el servidor2 para comprobar los pares disponibles en el servidor2.
sudo gluster peer status
Deberías ver que sólo hay un peer en el servidor2.
Crear un volumen GlusterFS
Después de haber inicializado con éxito el clúster GlusterFS, crearás un nuevo volumen GlusterFS que será utilizado por las máquinas cliente.
En este tutorial, crearás un nuevo volumen con el nombre myvolume con el tipo replica de 2 discos del servidor1 y del servidor2.
sudo gluster volume create myvolume replica 2 server1.localdomain.lan:/data/vol1/brick0 server2.localdomain.com:/data/vol2/brick0
Ahora escribe y para confirmar y pulsa ENTER para crear el volumen GlusterFS.
Cuando el proceso sea un éxito, verás la salida como la siguiente captura de pantalla.
A continuación, inicia el volumen Glusterfs myvolume con el siguiente comando.
sudo gluster volume start myvolume
Verás el mensaje de salida «volume start: myvolume: success», lo que significa que el myvolume se ha iniciado.
Ahora ejecuta el siguiente comando para verificar el estado del volumen GLusterFS.
sudo gluster volume status
A continuación verás que el estado de mivolumen está en línea y listo para ser utilizado por los clientes.
Opcionalmente, también puedes verificar el estado del volumen GlusterFS con el siguiente comando.
sudo gluster volume info
Verás que el volumen myvolume con el tipo replicar y el estado es iniciado. El myvolume se basa en el disco del servidor1 y del servidor2.
Montaje del volumen GlusterFS en la máquina cliente
Ahora has creado el volumen GlusterFS myvolume. A continuación, aprenderás a configurar la máquina cline y a montar el volumen GlusterFS.
En este tutorial, utilizaremos la máquina cliente con el nombre de cliente.
Edita la configuración de /etc/hosts en tu máquina cliente utilizando el editor nano.
sudo nano /etc/hosts
Pega la siguiente configuración.
192.168.10.15 server1.localdomain.lan
192.168.10.20 server2.localdomain.lan
Guarda el archivo con Ctrl+X e introduce Y para confirmar.
Para verificar la conexión entre la máquina cliente y el servidor GlusterFS, ejecuta el siguiente comando ping.
ping -c3 server1.localdomain.lan
Verás que el comando cliente puede conectarse al servidor GlusterFS.
A continuación, instala el paquete cliente de GlusterFS desde el repositorio de AppStream Rocky Linux con el siguiente comando.
sudo dnf install glusterfs-client
Escribe y para confirmar la instalación y pulsa ENTER para continuar.
Una vez completada la instalación, crea un nuevo directorio de montaje /data utilizando el siguiente comando.
sudo mkdir /data
Monta el volumen GlusterFS myvolume en el directorio /data utilizando el comando mount que aparece a continuación.
sudo mount.glusterfs server1.localdomain.lan:/myvolume /data
Si no se produce ningún error, el volumen GlusterFS se ha montado correctamente en tu máquina cliente.
Ejecuta el siguiente comando para verificar el volumen GlusterFS.
df -h
Verás que el myvolume de GlusterFS está montado con éxito en el directorio /data de la máquina cliente.
Prueba del acceso a la escritura y de la alta disponibilidad
En la máquina cliente, ve al directorio /data y crea un nuevo archivo con el siguiente comando.
Con este comando, crearás 5 archivos en el directorio /data.
cd /data
touch file{1..5}.md
Ahora pasa al servidor1 y comprueba el directorio /data/vol1/brick0 utilizando el siguiente comando.
ls /data/vol1/brick0
Deberías ver que el archivo está disponible en el servidor1.
A continuación, apaga o cierra el servidor1 con el siguiente comando.
sudo shutdown -r now
Pasa de nuevo al servidor2 y verifica el estado de GlusterFS en el servidor2 utilizando el siguiente comando.
sudo gluster peer status
Verás que el estado del servidor par1 es desconectado.
Verifica los archivos disponibles en el directorio /data/vol2/brick0 del servidor2.
ls /data/vol2/brick0
Verás que todos los archivos del cliente están disponibles también en el servidor2, lo que significa que los datos se replican desde el servidor par.
Ahora, si vuelves a la máquina cliente, verás que el estado de la conexión con el servidor GlusterFS sigue activo y en funcionamiento, aunque el servidor1 esté caído. Esto significa que la Alta Disponibilidad de GlusterFS es un éxito.
Conclusión
¡Enhorabuena! Ya has instalado y configurado con éxito el almacenamiento en clúster GlusterFS en los sistemas Linux de Rocky. Además, has aprendido a configurar el volumen GlusterFS y a montar el volumen GlusterFS en la máquina cliente.