Creación de un clúster de discos (SDS) usando GlusterFS (Parte 2)

Este artículo es la continuación de la Parte 1 y será tomado como base para este.

3- Operaciones básicas y de control del volumen gluster

El artículo anterior se limitó solo a la creación del volumen, pero hay muchos otros elementos a tener en cuenta, como agregar discos, sustituir discos rotos…

3.1- Agregando discos a un volumen distribuido replicado

Al expandir el volumen distribuido-replicado, se debe de agregar una cantidad de discos que sea un múltiplo del recuento de réplicas. Por ejemplo, para expandir un volumen replicado distribuido con un recuento de réplicas de 2, se deben agregar discos en múltiplos de 2 (como 4, 6, 8, etc.).

Lo más lógico es colocar estos discos no en los mismos nodos, sino distribuidos. En este caso se van a agregar dos discos, uno a gluster1 y otro a gluster2.

Primeramente se le da formato al disco y se crea una partición, en este caso específico el disco que se va a montar será el ubicado en /dev/sdd tanto en gluster1 como en gluster2:

Se creael directorio en donde se va a montar el disco, se agrega el punto de montaje persistente y se aplica el montaje:

Se puede comprbar que se haya montado correctamente con

Se crea la carpeta de montaje del volumen, pues recordando no se puede montar el volumen gluster en el mismo punto de montaje del disco:

Ahora toca agregar los discos al volumen ya existente, en el caso presente el volumen existente tiene como nombre (vol1) siguiendo:

Para comprobar la correcta aplicación del cambio solo basta con checkear la info del disco. Como se aprecia ahora el volumen cuenta con 8 discos, en vez de 6:

Y se puede listar los volúmenes montados para verificar que, en efecto, el volumen creció de tamaño (anteriormente el volumen contaba con 3GB, ahora cuenta con 4Gb, pues al agregar dos discos de 1GB, al estar replicada la información, solo será utilizable 1GB más):

Ya los nuevos discos fueron reconocidos, pero hay que hacer un rebalance para que la información pueda ser guardada en los discos nuevos:

Tener en cuenta que el comando ejecutado anteriormente realiza un rebalance solo en el nodo en el que se agregó el disco, esto es útil se los discos se agregaron en un mismo nodo. Para hacer un rebalance general hay que correr otro comando:

Se puede checkear el estado del rebalance con:

NOTA: En el ejemplo presente se trabaja en un ambiente ultra controlado, pero en producción (en caso de ser requerido) debe hacerse con extrema precaución y evitando horarios de máxima actividad por parte de los clientes pues puede ser un proceso que demore.

3.2- Reemplazando discos rotos de un volumen distribuido replicado

Puede darse el caso de que exista un disco con problemas, que resulte inutilizable, el siguiente procedimiento se realiza en estos casos en los que hay que reemplazar algún disco.

Para simular un caso real, se copió información al volumen:

Para comprobar el estado del volumen, como se puede apreciar hay información en el volumen:

En este ejemplo se asumirá que el disco roto es sdc de gluster1.

En el comando anterior ya detectamos su punto de montaje (/data/glusterfs/vol1/brick1) y se puede ver que tiene un 52% del espacio ocupado, ahora se necesita saber el nodo en el que se encuentra y qué número de disco es:

Como se aprecia es el disco 3 (Brick3). Ya con todos los datos en mente se busca el PID del disco:

Como vemos el su PID es 1157. Ahora toca detener el proceso:

Se comprueba nuevamente el estado del volumen y se checkea el estado de dicho disco:

Como se aprecia ya el disco no tiene asociado ningún PID. Se procede a desmontar el disco:

Se comenta en la línea referente al disco en /etc/fstab:

Se comprueba con df –hT que el disco se encuentre realmente desmontado.

La salida del comando ll indica la relación de los discos del sistema operativo (sda, sdb, sdc, …) con las ranuras en el servidor (1,2,3, …). El número después de la palabra «ata/sas» es la ranura del servidor donde está instalado el disco (en este caso no se muestra, pues es un servidor virtualizado):

Si el servidor admite la tecnología «Hot Swap«, el disco afectado se puede quitar sin apagar el servidor. De lo contrario, el servidor debe apagarse para realizar el reemplazo. En el caso de este laboratorio virtual hay que apagar la VM, retirar el disco y poner uno nuevo.

Una vez cambiado el disco, se tendrá que hacer el proceso de darle formato y crearle su partición. Primeramente se busca que letra le asigno el OS, en este caso fue sdc nuevamente, y luego:

Crear un nuevo punto de montaje para el disco. No se puede utilizar el punto de montaje utilizado por el disco roto.

Se crea el directorio en donde se va a montar el disco, se agrega el punto de montaje persistente y se aplica el montaje

Se comrpueba que se haya montado correctamente con df -hT | grep glusterfs.

Crear la carpeta data:

Ahora resta hacer que glusterfs reemplace el disco, el comando general será:

Se checkea que la operación haya sido exitosa:

Se borra el punto de montaje del disco reemplazado:

Se comprueba que el espacio ocupado del disco nuevo para ver si gluster replico los archivos:

Como se puede apreciar el disco ya tiene el 52% del espacio ocupado, el mismo espacio que tenía anterior a su “rotura”!!!

3.3- Sustituyendo la información de un nodo roto a un nodo completamente nuevo

Todo el laboratorio se ha conformado de tal manera (distribuido replicado) en la que si se pierde un nodo perteneciente al pool de gluster los otros dos puedan continuar trabajando en perfecto estado. En esta sección se va a simular la pérdida total del nodo gluster3, se asumirá que tanto el nodo como todo son discos son inaccesibles.

Se puede comprobar el estado de un nodo perteneciente al pool corriendo desde gluster1:

La nueva VM asumirá el rol de gluster4, con un nuevo IP (en este caso será 192.168.43.53). Contará con la misma cantidad de discos que el nodo roto (gluster3 contaba con 2 discos pertenecientes al clúster gluster). Para dejarla lista, antes de hacer nada relacionado con el gluster, se recomienda hacer un update y upgrade, e instalar la paquetería necesaria.

Configuración de /etc/hosts en gluster4 agregando las líneas:

Añadir el repositorio:

Instalar y comprobar la version:

Una vez instalados deberemos de habilitar el servicio que se creó con la instalación (en ambos servidores), su nombre es glusterd, el siguiente comando además de habilitarlo lo inicia sin esperar al siguiente reinicio del sistema:

Para el brick0 y brick1:

Ahora toca crear el directorio donde se va a montar el disco. Se recomienda la siguiente sintaxis:

Agregar el punto de montaje de forma persistente:

Verificar si se realizaron correctamente los puntos de montaje:

Debe devolver lo siguiente:

Crear directorio data en el punto de montaje de cada brick en cada servidor gluster4:

Usando uno de los restantes servidores (gluster1 o gluster2), agregar al nuevo server al clustergluster:

Comprobamos que se haya agregado al pool:

Ahora se necesita reemplazar los discos erróneos (los pertenecientes al nodo caído), para ello necesitamos saber cuáles son esos discos:

Como se puede apreciar, los discos pertenecientes a gluster3 son los Brick4 y Brick6. Esta información se puede contrastar usando gluster volumen status vol1.

Con el conocimiento de los discos rotos y sus puntos de montaje en el cluster, ya se puede proceder a reemplazarlos:

Una vez agregados correctamente, se puede comprobar el estado del volumen:

Como se puede apreciar, los discos pertenecientes al gluster4 tomaron la misma posición que tenían los discos de gluster3.

Si se lista el contenido de los discos, se puede ver que la replicación de los datos que existían anteriormente ya se están replicando:

Para forzar la replicación se puede hacer:

Y se puede comprobar el estado de la misma:

En el caso de este laboratorio se esta corriendo un volumen distribuido, por lo tanto hay que correr:

Una vez terminado el proceso, solo resta darle de baja al nodo roto del pool, desde gluster1 se corre:

Y se comprueba que se haya eliminado:

Y de esta forma se concluyen los articulos de GlusterFS

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Autores:

  • Frank Morales
  • Franco Díaz

¿De cuánta utilidad te ha parecido este contenido?

¡Haz clic en una estrella para puntuar!

Promedio de puntuación 0 / 5. Recuento de votos: 0

Hasta ahora, ¡no hay votos!. Sé el primero en puntuar este contenido.

2 comentarios

    • Firefox 96.0 Firefox 96.0 Windows 10 x64 Edition Windows 10 x64 Edition
      Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:96.0) Gecko/20100101 Firefox/96.0

      Sip, pero si se pone en la configuración de Distribuido Replicado sólo verás el volumen con el tamaño del disco más pequeño.

Dejar una contestacion

Tu dirección de correo electrónico no será publicada.


*