Almacenamiento de alta disponibilidad con GlusterFS en Ubuntu 18.04 LTS

GlusterFS es un sistema de archivos de red escalable con capacidades de escalar a varios petabytes y manejar miles de clientes. Es un sistema de archivos distribuido y de código abierto que establece los recursos de almacenamiento en disco de varios servidores en un único espacio de nombres. Es adecuado para tareas de uso intensivo de datos, como el almacenamiento en la nube y la transmisión de medios de datos.
En este tutorial, mostraré cómo configurar un servidor de almacenamiento de alta disponibilidad con GlusterFS en Ubuntu 18.04 LTS (Bionic Beaver). Usaremos 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 raíz
¿Qué haremos?
- Preinstalación de GlusterFS
- Instalar el servidor GlusterFS
- Configurar servidores GlusterFS
- Configurar el cliente GlusterFS
- Prueba de réplica/espejo
Paso 1: Preinstalación de GlusterFS
El primer paso que debemos hacer antes de instalar glusterfs ubuntu en todos los servidores es configurar el archivo de hosts y agregar el repositorio GlusterFS a cada servidor.
Configurar archivo de hosts
Inicie sesión en cada servidor y obtenga el acceso raíz con el comando ‘sudo su’, luego edite el archivo ‘/etc/hosts’.
vim /etc/hosts
Pegue la configuración de los hosts a continuación.
10.0.15.10 gfs01 10.0.15.11 gfs02 10.0.15.12 client01
Guardar y Salir.
Ahora haga ping a cada servidor usando el nombre de host como se muestra a continuación.
ping -c 3 gfs01 ping -c 3 gfs02 ping -c 3 client01
Cada nombre de host se resolverá en cada dirección IP del servidor.
Agregar repositorio GlusterFS
Instale el paquete software-properties-common en el sistema.
sudo apt install software-properties-common -y
Agregue la clave glusterfs y el repositorio ejecutando los comandos a continuación.
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 agregado el repositorio glusterfs a todos los sistemas.
Paso 2: Instalar el servidor GlusterFS
En este paso, instalaremos el servidor glusterfs ubuntu en los servidores ‘gfs01’ y ‘gfs02’.
Instale glusterfs-server usando el comando apt.
sudo apt install glusterfs-server -y
Ahora inicie el servicio glusterd y permita que se inicie cada vez que se inicie el sistema.
sudo systemctl start glusterd sudo systemctl enable glusterd
El servidor GlusterFS ahora está funcionando en los servidores ‘gfs01’ y ‘gfs02’.
Compruebe los servicios y la versión del software instalado.
systemctl status glusterd glusterfsd --version
Paso 3: Configurar servidores GlusterFS
Los servicios de Glusterd ahora están en funcionamiento, y el siguiente paso que haremos será configurar esos servidores creando un grupo de almacenamiento confiable y creando el volumen glusterfs distribuido.
Crear un grupo de almacenamiento de confianza
Desde el servidor ‘gfs01’, necesitamos agregar el servidor ‘gfs02’ al grupo de almacenamiento glusterfs.
Ejecute el siguiente comando.
gluster peer probe gfs02
Ahora veremos el resultado ‘peer probe: success’, y hemos agregado el servidor ‘gfs02’ al grupo de almacenamiento confiable.
Verifique el estado del grupo de almacenamiento y la lista usando los comandos a continuación.
gluster peer status gluster pool list
Y verá que el servidor ‘gfs02’ está conectado al clúster de pares y está en la lista de grupos.
Configuración del volumen de GlusterFS distribuido
Después de crear el grupo 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 usando la partición diferente, no usando un directorio del sistema.
Cree un nuevo directorio ‘/glusterfs/distributed’ en cada servidor bot ‘gfs01’ y ‘gfs02’.
mkdir -p /glusterfs/distributed
Y desde el servidor ‘gfs01’, cree 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
Inicie el ‘vol01’ y verifique la información del volumen.
gluster volume start vol01 gluster volume info vol01
En esta etapa, 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.
Paso 4: Configurar el cliente GlusterFS
En este paso, montaremos el volumen glusterfs ‘vol01’ en el cliente de Ubuntu y debemos instalar glusterfs-client en el servidor del cliente.
Instale glusterfs-client en el sistema Ubuntu usando el comando apt.
sudo apt install glusterfs-client -y
Ahora cree un nuevo directorio ‘/mnt/glusterfs’ cuando se complete la instalación de glusterfs-client.
mkdir -p /mnt/glusterfs
Y monte el volumen glusterfs distribuido ‘vol01’ en el directorio ‘/mnt/glusterfs’.
sudo mount -t glusterfs gfs01:/vol01 /mnt/glusterfs
Ahora verifique el volumen disponible en el sistema.
df -h /mnt/glusterfs
Obtendremos el volumen glusterfs montado en el directorio ‘/mnt/glusterfs’.
Para montar glusterfs de forma permanente en el sistema cliente de Ubuntu, podemos agregar el volumen a ‘/etc/fstab’.
Edite el archivo de configuración ‘/etc/fstab’.
vim /etc/fstab
Y pegue la configuración a continuación.
gfs01:/vol01 /mnt/glusterfs glusterfs defaults,_netdev 0 0
Guardar y Salir.
Paso 5: Prueba de replicación/espejo
En este paso, probaremos la duplicación de datos en cada nodo del servidor.
Monte el volumen glusterfs ‘vol01’ en cada servidor glusterfs.
En el servidor ‘gfs01’.
mount -t glusterfs gfs01:/vol01 /mnt
En el servidor ‘gfs02’.
mount -t glusterfs gfs02:/vol01 /mnt
Ahora regrese al cliente de Ubuntu y vaya al directorio ‘/mnt/glusterfs’.
cd /mnt/glusterfs
Cree algunos archivos usando el comando táctil.
touch file01 file02 file03
Ahora verifique en cada servidor, ‘gfs01’ y ‘gfs02’, y obtendremos todos los archivos que hemos creado desde la máquina cliente.
cd /mnt/ ls -lah
Aquí está el resultado del servidor ‘gfs01’.
Y aquí está el resultado del servidor ‘gfs02’.
Todos los archivos que creamos desde la máquina cliente se distribuirán a todos los servidores de nodos de volumen glusterfs.