Sección anterior
Agregar y eliminar servidores GlusterFS
Este artículo muestra las siguientes formas de recuperación cuando falla un único servidor:
-
Agregue un nuevo servidor, con una nueva dirección IP, para ocupar su lugar (una solución que requiere menos trabajo).
-
Agregue un nuevo servidor pero mantenga la dirección IP del servidor fallido (una solución que requiere más trabajo).
Después de completar el artículo anterior, debería tener un arreglo GlusterFS con al menos dos nodos y saber cómo agregar y eliminar nodos.
Requisitos
A los efectos de este artículo, debe ejecutar un volumen Gluster de cuatro nodos totalmente replicado.
Llene su matriz GlusterFS con datos falsos para la prueba.
Agregar un servidor de reemplazo
En este escenario, web03 falla, pero agrega un nuevo nodo con la dirección IP 192.168.0.5 para reemplazarlo. Este método es más fácil que agregar un nuevo servidor con la misma dirección IP que el servidor fallido.
Este artículo mostrará dos formas de recuperación ante desastres:
- Un solo nodo dejó de funcionar y está agregando un nuevo nodo para ocupar su lugar.
- Un solo nodo dejó de funcionar, se reconstruyó y mantuvo la IP; esto resulta ser más difícil de arreglar
Agregar un nodo de reemplazo
En este escenario, web03 volverá a caer, pero agregará un nuevo nodo en 192.168.0.5 para reemplazarlo. Este método es mucho más fácil.
-
Usando uno de los servidores en ejecución, agregue el nuevo servidor al clúster:
root@matt:~# gluster peer probe 192.168.0.5 peer probe: success
-
Cambia el ladrillo fallido por uno nuevo:
root@matt:~# gluster volume replace-brick www 192.168.0.3:/srv/.bricks/www 192.168.0.5:/srv/.bricks/www commit force volume replace-brick: success: replace-brick commit successful
-
Curar el sistema:
root@matt:~# gluster volume heal www full Launching Heal operation on volume www has been successful Use heal info commands to check status
-
Obtén información sobre el progreso de la
heal
operación:root@matt:~# gluster volume heal www info Gathering Heal info on volume www has been successful ... Brick 192.168.0.4:/srv/.bricks/www Number of entries: 23 /wordpress/wp-admin/upload.php
-
Si estaba ejecutando un sistema distribuido, ejecute los siguientes comandos:
root@matt:~# gluster volume rebalance www fix-layout start volume rebalance: www: success: Starting rebalance on volume www has been successful. ID: 0a9719c1-cf04-4161-b3b0-cc6fd8dd9108 root@matt:~# gluster volume rebalance www status Node Rebalanced-files size scanned failures skipped status run time in secs --------- ----------- ----------- ----------- ----------- ----------- ------------ -------------- localhost 0 0Bytes 0 0 0 completed 1.00 localhost 0 0Bytes 0 0 0 completed 1.00 192.168.0.2 0 0Bytes 0 0 0 completed 1.00 192.168.0.4 0 0Bytes 0 0 0 completed 1.00 192.168.0.4 0 0Bytes 0 0 0 completed 1.00 192.168.0.5 0 0Bytes 0 0 0 completed 1.00 volume rebalance: www: success:
Mantener la dirección IP
En este escenario, el servidor web03, con la dirección IP 192.168.0.3, se bloqueó y es completamente irrecuperable.
Para recuperar, construye un nuevo servidor, con la misma dirección IP , preséntelo a GlusterFS como el servidor fallido y deje que se recupere automáticamente. Luego vuelve a equilibrar el volumen en el GlusterFS.
Consulte los artículos anteriores para obtener información sobre cómo construir y configurar el servidor de reemplazo.
Ocultar el nuevo servidor web03 como el servidor fallido
-
Cree el nuevo servidor, instale GlusterFS en él y prepare el disco para el ladrillo.
-
Proporcione al servidor el UUID del mismo nivel del servidor fallido. Para obtener el UUID, ejecute el siguiente comando en uno de los servidores en ejecución (como web01):
root@web01:~# grep 192.168.0.3 /var/lib/glusterd/peers/*/var/lib/glusterd/peers/ba502dc2-447f-466a-a732-df989e71b551:hostname1=192.168.0.3
-
Copie el nombre del archivo (que es el UUID Web03 original). En el ejemplo anterior, es:
ba502dc2-447f-466a-a732-df989e71b551
. -
Asigne el UUID del servidor fallido al nuevo servidor.
-
Detenga el demonio Gluster:
root@web03:~# service glusterfs-server stop glusterfs-server stop/waiting
-
Reemplace el UUID del nodo generado con el copiado en el
glusterd
archivo de configuración:root@web03:~# UUID=ba502dc2-447f-466a-a732-df989e71b551 root@web03:~# sed -i "s/\(UUID\)=\(.*\)/\1=$UUID/g" /var/lib/glusterd/glusterd.info root@web03:~# cat /var/lib/glusterd/glusterd.info UUID=ba502dc2-447f-466a-a732-df989e71b551 operating-version=2
Nota: Elba502dc2-447f-466a-a732-df989e71b551
UUID es un ejemplo de UUID; debe reemplazarlo con el UUID de su servidor fallido (como lo recuerda web01). -
-
Vuelva a iniciar el servidor:
root@web03:~# service glusterfs-server start glusterfs-server start/running, process 10732
Reconfigure los servidores peer
-
En el nuevo servidor, verifique que los otros servidores estén visibles:
root@web03:~# gluster peer status peer status: No peers present
-
Si los servidores del mismo nivel no están visibles, debe agregarlos explícitamente:
root@web03:~# gluster peer probe 192.168.0.1 peer probe: success root@web03:~# gluster peer probe 192.168.0.2 peer probe: success root@web03:~# gluster peer probe 192.168.0.4 peer probe: success
-
Ejecute el
gluster peer status
comando de nuevo en web03. La respuesta debe ser:State: Accepted peer request (Connected)
-
Reinicie el daemon una vez más y los servidores del mismo nivel deberían estar visibles:
root@web03:~# service glusterfs-server restart glusterfs-server stop/waiting glusterfs-server start/running, process 9123 root@web03:~# gluster peer status Number of Peers: 3 Hostname: 192.168.0.2 Uuid: 177cd473-9421-4651-8d6d-18be3a7e1990 State: Peer in Cluster (Connected) Hostname: 192.168.0.1 Uuid: 8555eac6-de14-44f6-babe-f955ebc16646 State: Peer in Cluster (Connected) Hostname: 192.168.0.4 Uuid: 1681b266-dc31-42e1-ab82-4e220906eda1 State: Peer in Cluster (Connected)
Sincronizar los volúmenes
-
Verifique el estado del volumen:
root@web03:~# gluster volume status No volumes present
-
Obtenga los volúmenes de un servidor par:
root@web03:~# gluster volume sync 192.168.0.2 all Sync volume may make data inaccessible while the sync is in progress. Do you want to continue? (y/n) y volume sync: success
-
Ponga en orden el sistema de archivos para el ladrillo. En el siguiente ejemplo, el bloque se almacena en /srv/.bricks/www :
root@web03:~# mkdir /srv/.bricks/www
-
Vaya a uno de los servidores en ejecución, instale
attr
y obtenga el ID de volumen correcto.root@web02:~# apt-get install attr -y ... root@web02:~# getfattr -n trusted.glusterfs.volume-id /srv/.bricks/www getfattr: Removing leading '/' from absolute path names # file: srv/.bricks/www trusted.glusterfs.volume-id=0s42V5HW+LSuyzqotW1jgAhA==
-
Copie la cadena de identificación del volumen en su portapapeles. En el ejemplo, es
0s42V5HW+LSuyzqotW1jgAhA==
. -
En el servidor de reemplazo, aplique ese atributo extendido:
root@web03:~# apt-get install attr -y ... root@web03:~# setfattr -n trusted.glusterfs.volume-id -v '0s42V5HW+LSuyzqotW1jgAhA==' /srv/.bricks/www
-
Reinicie el servidor y luego recupere el sistema:
root@matt:~# service glusterfs-server restart glusterfs-server stop/waiting glusterfs-server start/running, process 13318 root@matt:~# gluster volume heal www full Launching Heal operation on volume www has been successful Use heal info commands to check status
-
Obtén información sobre el progreso de la
heal
operación. El nuevo servidor debería estar funcionando como se esperaba.root@matt:~# gluster volume heal www info Gathering Heal info on volume www has been successful Brick 192.168.0.1:/srv/.bricks/www Number of entries: 0 Brick 192.168.0.2:/srv/.bricks/www Number of entries: 0 Brick 192.168.0.3:/srv/.bricks/www Number of entries: 0 Brick 192.168.0.4:/srv/.bricks/www Number of entries: 0
Conclusión
Ahora ha aprendido cómo recuperarse de un servidor fallido en un arreglo GlusterFS.