GNU/Linux >> Tutoriales Linux >  >> Linux

Recuperarse de un servidor fallido en una matriz GlusterFS

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:

  1. Un solo nodo dejó de funcionar y está agregando un nuevo nodo para ocupar su lugar.
  2. 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.

  1. 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
    
  2. 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
    
  3. 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
    
  4. 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
    
  5. 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

  1. Cree el nuevo servidor, instale GlusterFS en él y prepare el disco para el ladrillo.

  2. 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
    
  3. Copie el nombre del archivo (que es el UUID Web03 original). En el ejemplo anterior, es:ba502dc2-447f-466a-a732-df989e71b551 .

  4. Asigne el UUID del servidor fallido al nuevo servidor.

    1. Detenga el demonio Gluster:

      root@web03:~# service glusterfs-server stop
      glusterfs-server stop/waiting
      
    2. 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: El ba502dc2-447f-466a-a732-df989e71b551 UUID es un ejemplo de UUID; debe reemplazarlo con el UUID de su servidor fallido (como lo recuerda web01).

  5. Vuelva a iniciar el servidor:

    root@web03:~# service glusterfs-server start
    glusterfs-server start/running, process 10732
    

Reconfigure los servidores peer

  1. En el nuevo servidor, verifique que los otros servidores estén visibles:

    root@web03:~# gluster peer status
    peer status: No peers present
    
  2. 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
    
  3. Ejecute el gluster peer status comando de nuevo en web03. La respuesta debe ser:State: Accepted peer request (Connected)

  4. 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

  1. Verifique el estado del volumen:

    root@web03:~# gluster volume status
    No volumes present
    
  2. 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
    
  3. 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
    
  4. 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==
    
  5. Copie la cadena de identificación del volumen en su portapapeles. En el ejemplo, es 0s42V5HW+LSuyzqotW1jgAhA== .

  6. 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
    
  7. 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
    
  8. 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.


Linux
  1. Creación de un servidor de almacenamiento independiente similar a NFS con GlusterFS 3.2.x en Ubuntu 12.10

  2. Cómo usar SSH en Linux desde Android

  3. ¿Cómo crear una matriz de elementos únicos a partir de una cadena/matriz en Bash?

  4. Arrancar un servidor desde un volumen de Cloud Block Storage

  5. Migrar a Rackspace desde otro proveedor de hospedaje

Cómo actualizar Ubuntu Server a 20.04 desde 18.04

Creación de un servidor en la nube a partir de una ISO

Cree una imagen de un servidor y restaure un servidor a partir de una imagen guardada

Cómo conectarse a SQL Server desde Linux

Qué debe saber sobre Debi un servidor Linux por volumen

Deteniendo el servidor de la base de datos MySQL:mysqld falló