Almacenamiento de alta disponibilidad con GlusterFS en Ubuntu 18.04 LTS

Glusterfs es un sistema de archivos de red escalable con capacidad para escalar hasta varios petabytes y manejar miles de clientes. Es un sistema de archivos distribuido y de código abierto que agrupa los recursos de almacenamiento en disco de varios servidores en un único espacio de nombres. Es adecuado para tareas que requieren muchos datos, como el almacenamiento en la nube y la transmisión de datos multimedia.

En este tutorial, mostraré cómo configurar un servidor de almacenamiento de alta disponibilidad con GlusterFS en Ubuntu 18.04 LTS (Bionic Beaver). Utilizaremos 3 servidores Ubuntu, 1 servidor como cliente y otros 2 como almacenamiento. Cada servidor de almacenamiento será un espejo del otro, y los archivos se replicarán en ambos servidores de almacenamiento.

Requisitos previos

  • 3 servidores Ubuntu 18.04
    • 10.0.15.10 – gfs01
    • 10.0.15.11 – gfs02
    • 10.0.15.12 – cliente01
  • Privilegios de root

¿Qué vamos a hacer?

  1. Preinstalación de GlusterFS
  2. Instalar el servidor GlusterFS
  3. Configurar los servidores GlusterFS
  4. Configurar el Cliente GlusterFS
  5. Probar la Replicación/Mirroring

Paso 1 – Preinstalación de GlusterFS

El primer paso que tenemos que hacer antes de instalar glusterfs en todos los servidores es configurar el archivo de hosts y añadir el repositorio de GlusterFS a cada servidor.

Configurar el archivo de hosts

Entra en cada servidor y obtén el acceso de root con el comando ‘sudo su’, luego edita el archivo ‘/etc/hosts’.

vim /etc/hosts

Pega la configuración de hosts que aparece a continuación.

10.0.15.10 gfs01
10.0.15.11 gfs02
10.0.15.12 client01

Guarda y sal.

Ahora haz un ping a cada servidor utilizando el nombre de host que se indica a continuación.

ping -c 3 gfs01
ping -c 3 gfs02
ping -c 3 client01

Cada nombre de host se resolverá a la dirección IP de cada servidor.

Configurar el archivo de hosts

Añade el repositorio GlusterFS

Instala el paquete software-properties-common en el sistema.

sudo apt install software-properties-common -y

Añade la clave y el repositorio de glusterfs ejecutando los comandos siguientes.

wget -O- https://download.gluster.org/pub/gluster/glusterfs/3.12/rsa.pub | apt-key add -
sudo add-apt-repository ppa:gluster/glusterfs-3.12

El comando actualizará todos los repositorios. Y ya hemos añadido el repositorio glusterfs a todos los sistemas.

Añadir Repositorio GlusterFS

Paso 2 – Instalar el servidor GlusterFS

En este paso, instalaremos el servidor glusterfs en los servidores ‘gfs01’ y ‘gfs02’.

Instala el servidor glusterfs con el comando apt.

sudo apt install glusterfs-server -y

Ahora inicia el servicio glusterd y habilítalo para que se inicie siempre al arrancar el sistema.

sudo systemctl start glusterd
sudo systemctl enable glusterd

El servidor glusterfs ya está en marcha en los servidores ‘gfs01’ y ‘gfs02’.

Comprueba los servicios y la versión de software instalada.

systemctl status glusterd
glusterfsd --version

Instalar el servidor GlusterFS

Paso 3 – Configurar los servidores GlusterFS

Los servicios de Glusterd ya están en marcha, y el siguiente paso que haremos será configurar esos servidores creando un pool de almacenamiento de confianza y creando el volumen glusterfs distribuido.

Crear un pool de almacenamiento de confianza

Desde el servidor ‘gfs01’, tenemos que añadir el servidor ‘gfs02’ al pool de almacenamiento glusterfs.

Ejecuta el siguiente comando.

gluster peer probe gfs02

Ahora veremos el resultado ‘peer probe: success’, y habremos añadido el servidor ‘gfs02’ al pool de almacenamiento de confianza.

Comprueba el estado y la lista del pool de almacenamiento utilizando los comandos siguientes.

gluster peer status
gluster pool list

Y verás que el servidor ‘gfs02’ está conectado al clúster de pares, y está en la lista de pools.

Crear un grupo de almacenamiento de confianza

Configurar el volumen GlusterFS distribuido

Después de crear el pool de almacenamiento de confianza, crearemos un nuevo volumen glusterfs distribuido. Crearemos el nuevo volumen glusterfs basado en el directorio del sistema.

Nota:

  • Para la producción del servidor, se recomienda crear el volumen glusterfs utilizando la partición diferente, no utilizando un directorio del sistema.

Crea un nuevo directorio ‘/glusterfs/distribuido’ en cada servidor bot ‘gfs01’ y ‘gfs02’.

mkdir -p /glusterfs/distributed

Y desde el servidor ‘gfs01’, crea el volumen glusterfs distribuido llamado ‘vol01’ con 2 réplicas ‘gfs01’ y ‘gfs02’.

gluster volume create vol01 replica 2 transport tcp \
gfs01:/glusterfs/distributed \
gfs02:/glusterfs/distributed \
force

Ahora que hemos creado el volumen distribuido ‘vol01’, inicia el ‘vol01’ y comprueba la información del volumen.

gluster volume start vol01
gluster volume info vol01

Y el siguiente es el resultado.

Configurar un volumen GlusterFS distribuido

En esta fase, hemos creado el volumen ‘vol01’ con el tipo ‘Replicar’ y 2 ladrillos en el servidor ‘gfs01’ y ‘gfs02’. Todos los datos se distribuirán automáticamente a cada servidor de réplica, y estamos listos para montar el volumen.

A continuación, la información del volumen ‘vol01’ del servidor ‘gfs02’.

información sobre el volumen

Paso 4 – Configurar el cliente GlusterFS

En este paso, montaremos el volumen glusterfs ‘vol01’ en el cliente Ubuntu, y necesitamos instalar el glusterfs-client en el servidor cliente.

Instala glusterfs-client en el sistema Ubuntu utilizando el comando apt.

sudo apt install glusterfs-client -y

Ahora crea un nuevo directorio ‘/mnt/glusterfs’ cuando la instalación de glusterfs-client esté completa.

mkdir -p /mnt/glusterfs

Y monta el volumen glusterfs distribuido ‘vol01’ en el directorio ‘/mnt/glusterfs’.

sudo mount -t glusterfs gfs01:/vol01 /mnt/glusterfs

Ahora comprueba el volumen disponible en el sistema.

df -h /mnt/glusterfs

Y obtendremos el volumen glusterfs montado en el directorio ‘/mnt/glusterfs’.

configurar el cliente GlusterFS

Además:

Para montar glusterfs permanentemente en el sistema cliente de Ubuntu, podemos añadir el volumen al ‘/etc/fstab’.

Edita el archivo de configuración ‘/etc/fstab’.

vim /etc/fstab

Y pega la configuración de abajo.

gfs01:/vol01 /mnt/glusterfs glusterfs defaults,_netdev 0 0

Guarda y sal.

Ahora reinicia el servidor y cuando esté en línea, obtendremos el volumen glusterfs ‘vol01’ montado automáticamente a través del fstab.

Paso 5 – Probar la replicación/replicación

En este paso, probaremos la réplica de datos en cada uno de los nodos del servidor.

Monta el volumen glusterfs ‘vol01’ en cada uno de los servidores glusterfs.

En el servidor ‘gfs01’.

mount -t glusterfs gfs01:/vol01 /mnt

En el servidor ‘gfs02’.

mount -t glusterfs gfs02:/vol01 /mnt

Ahora vuelve al cliente de Ubuntu y ve al directorio ‘/mnt/glusterfs’.

cd /mnt/glusterfs

Crea algunos archivos con el comando touch.

touch file01 file02 file03

Réplica de la prueba

Ahora comprueba en cada servidor -‘gfs01’ y ‘gfs02’- y obtendremos todos los archivos que hemos creado desde la máquina cliente.

cd /mnt/
ls -lah

Este es el resultado del servidor ‘gfs01’.

Resultado del servidor 1

Y aquí está el resultado del servidor ‘gfs02’.

Resultado del servidor 2

Todos los archivos que hemos creado desde la máquina cliente se distribuirán a todos los servidores de nodos de volumen glusterfs.

También te podría gustar...