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.