Búsqueda de sitios web

Cómo realizar operaciones de autorreparación y reequilibrio en el sistema de archivos Gluster - Parte 2


En mi artículo anterior sobre 'Introducción a GlusterFS (sistema de archivos) e instalación - Parte 1', solo hice una breve descripción general del sistema de archivos y sus ventajas, describiendo algunos comandos básicos. Vale la pena mencionar las dos características importantes, Autocuración y Reequilibrio, en este artículo sin las cuales la explicación sobre GlusterFS será de utilidad. es inútil. Familiaricémonos con los términos Autocuración y Reequilibrio.

¿Qué queremos decir con autorreparación en volúmenes replicados?

Esta característica está disponible para volúmenes replicados. Supongamos que tenemos un volumen replicado [recuento mínimo de réplicas 2]. Supongamos que debido a algunas fallas, uno o más ladrillos entre los ladrillos de réplica dejan de funcionar por un tiempo y el usuario elimina un archivo del punto de montaje que se verá afectado solo en el ladrillo en línea.

Cuando el bloque sin conexión se conecta más adelante, es necesario eliminar ese archivo de este bloque también, es decir, se debe realizar una sincronización entre los ladrillos de réplica denominada curación. Lo mismo ocurre con la creación/modificación de archivos en bloques sin conexión. GlusterFS tiene un demonio de autocuración incorporado para solucionar estas situaciones cada vez que los ladrillos se conectan.

¿Qué entendemos por reequilibrio?

Consideremos un volumen distribuido con un solo ladrillo. Por ejemplo, creamos 10 archivos en el volumen a través del punto de montaje. Ahora todos los archivos residen en el mismo ladrillo, ya que solo hay un ladrillo en el volumen. Al agregar un ladrillo más al volumen, es posible que tengamos que reequilibrar el número total de archivos entre los dos ladrillos. Si un volumen se expande o reduce en GlusterFS, los datos deben reequilibrarse entre los distintos bloques incluidos en el volumen.

Realización de autorreparación en GlusterFS

1. Cree un volumen replicado usando el siguiente comando.

gluster volume create vol replica 2 192.168.1.16:/home/a 192.168.1.16:/home/b

Nota: La creación de un volumen replicado con bloques en el mismo servidor puede generar una advertencia por la cual debes continuar ignorándola.

2. Inicie y monte el volumen.

gluster volume start vol
mount -t glusterfs 192.168.1.16:/vol /mnt/

3. Cree un archivo desde el punto de montaje.

touch /mnt/foo

4. Verifique lo mismo en dos réplicas de ladrillos.

ls /home/a/
foo
ls /home/b/
foo

5. Ahora desconecta uno de los bloques eliminando el demonio glusterfs correspondiente usando el PID obtenido de la información de estado del volumen.

gluster volume status vol
Salida de muestra
Status of volume: vol
Gluster process					Port	Online	Pid 
------------------------------------------------------------------------------ 
Brick 192.168.1.16:/home/a			49152	  Y	3799 
Brick 192.168.1.16:/home/b			49153	  Y	3810 
NFS Server on localhost				2049	  Y	3824 
Self-heal Daemon on localhost			N/A	  Y	3829

Nota: vea la presencia de un demonio de autocuración en el servidor.

kill 3810
gluster volume status vol
Salida de muestra
Status of volume: vol 
Gluster process					Port	Online	Pid 
------------------------------------------------------------------------------ 
Brick 192.168.1.16:/home/a			49152	  Y	3799 
Brick 192.168.1.16:/home/b			N/A	  N	N/A 
NFS Server on localhost				2049	  Y	3824 
Self-heal Daemon on localhost			N/A	  Y	3829

Ahora el segundo ladrillo está fuera de línea.

6. Elimine el archivo foo del punto de montaje y verifique el contenido del bloque.

rm -f /mnt/foo
ls /home/a
ls /home/b
foo

Verás, foo todavía está allí en el segundo ladrillo.

7. Ahora vuelve a poner el ladrillo en línea.

gluster volume start vol force
gluster volume status vol
Salida de muestra
Status of volume: vol 
Gluster process					Port	Online	Pid 
------------------------------------------------------------------------------ 
Brick 192.168.1.16:/home/a			49152	  Y	3799 
Brick 192.168.1.16:/home/b			49153	  Y	4110 
NFS Server on localhost				2049	  Y	4122 
Self-heal Daemon on localhost			N/A	  Y	4129

Ahora el ladrillo está en línea.

8. Compruebe el contenido de los ladrillos.

ls /home/a/
ls /home/b/

El demonio de autocuración eliminó el archivo del segundo ladrillo.

Nota: En el caso de archivos más grandes, la operación de autorreparación puede tardar un poco en realizarse correctamente. Puede verificar el estado de curación usando el siguiente comando.

gluster volume heal vol info

Realización de reequilibrio en GlusterFS

1. Cree un volumen distribuido.

gluster create volume distribute 192.168.1.16:/home/c

2. Inicie y monte el volumen.

gluster volume start distribute
mount -t glusterfs 192.168.1.16:/distribute /mnt/

3. Crea 10 archivos.

touch /mnt/file{1..10}
ls /mnt/
file1  file10  file2  file3  file4  file5  file6  file7  file8  file9

ls /home/c
file1  file10  file2  file3  file4  file5  file6  file7  file8  file9

4. Añade otro ladrillo al volumen distribuir.

gluster volume add-brick distribute 192.168.1.16:/home/d
ls /home/d

5. Reequilibre.

gluster volume rebalance distribute start

volume rebalance: distribute: success: Starting rebalance on volume distribute has been successful.

6. Comprueba el contenido.

ls /home/c
file1  file2  file5  file6  file8 

ls /home/d
file10  file3  file4  file7  file9

Los archivos han sido reequilibrados.

Nota: puede verificar el estado de reequilibrio emitiendo el siguiente comando.

gluster volume rebalance distribute status
Salida de muestra
Node           Rebalanced-files     size          scanned    failures    skipped   status	run time in secs 
---------      -----------          ---------     --------   ---------   -------   --------     ----------------- 
localhost          5                0Bytes           15          0         0       completed         1.00 
volume rebalance: distribute: success:

Con esto planeo concluir esta serie sobre GlusterFS. No dudes en comentar aquí tus dudas sobre las funciones de Autocuración y Reequilibrio.