GNU/Linux >> Linux Esercitazione >  >> Linux

Recupera da un server guasto in un array GlusterFS

Sezione precedente

Aggiungi e rimuovi server GlusterFS

Questo articolo mostra i seguenti modi per eseguire il ripristino in caso di guasto di un singolo server:

  • Aggiungi un nuovo server, con un nuovo indirizzo IP, al suo posto (una soluzione meno laboriosa).

  • Aggiungi un nuovo server ma mantieni l'indirizzo IP del server guasto (una soluzione più laboriosa).

Dopo aver completato l'articolo precedente dovresti avere un array GlusterFS con almeno due nodi e sapere come aggiungere ed eliminare nodi.

Prerequisiti

Ai fini di questo articolo, devi essere in esecuzione su un volume Gluster completamente replicato a quattro nodi.

Riempi il tuo array GlusterFS con dati falsi per il test.

Aggiungi un server sostitutivo

In questo scenario, web03 non riesce, ma aggiungi un nuovo nodo con l'indirizzo IP 192.168.0.5 per sostituirlo. Questo metodo è più semplice rispetto all'aggiunta di un nuovo server con lo stesso indirizzo IP del server guasto.

Questo articolo mostrerà due forme di ripristino di emergenza:

  1. Un singolo nodo si è interrotto e stai aggiungendo un nuovo nodo al suo posto.
  2. Un singolo nodo si è interrotto, è stato ricostruito e ha mantenuto l'IP:si tratta di più lavoro da risolvere

Aggiungi un nodo sostitutivo

In questo scenario, web03 andrà di nuovo inattivo, ma aggiungerai un nuovo nodo a 192.168.0.5 per sostituirlo. Questo metodo è molto più semplice.

  1. Utilizzando uno dei server in esecuzione, aggiungi il nuovo server al cluster:

    root@matt:~# gluster peer probe 192.168.0.5
    peer probe: success
    
  2. Scambia il mattone guasto con quello nuovo:

    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. Guarisci il 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. Ottieni informazioni sullo stato di avanzamento della heal operazione:

    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. Se stavi eseguendo un sistema distribuito, esegui i seguenti comandi:

    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:
    

Mantieni l'indirizzo IP

In questo scenario, il server web03, con l'indirizzo IP 192.168.0.3, si è bloccato ed è completamente irrecuperabile.

Per ripristinare, costruisci un nuovo server, con lo stesso indirizzo IP , presentalo a GlusterFS come server guasto e lascia che si ripari automaticamente. Quindi riequilibri il volume in GlusterFS.

Fare riferimento agli articoli precedenti per informazioni sulla creazione e la configurazione del server sostitutivo.

Travesti il ​​nuovo server web03 da server guasto

  1. Costruisci il nuovo server, installa GlusterFS su di esso e prepara il disco per il mattone.

  2. Assegna al server l'UUID peer del server guasto. Per ottenere l'UUID, esegui il seguente comando su uno dei server in esecuzione (come 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. Copiare il nome del file (che è l'UUID Web03 originale). Nell'esempio precedente è:ba502dc2-447f-466a-a732-df989e71b551 .

  4. Assegna l'UUID del server guasto al nuovo server.

    1. Ferma il demone Gluster:

      root@web03:~# service glusterfs-server stop
      glusterfs-server stop/waiting
      
    2. Sostituisci l'UUID del nodo generato con quello copiato nel glusterd file di configurazione:

      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: Il ba502dc2-447f-466a-a732-df989e71b551 UUID è un esempio di UUID; devi sostituirlo con l'UUID del tuo server guasto (come ricordato da web01).

  5. Riavvia il server:

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

Riconfigura i server peer

  1. Sul nuovo server, controlla che gli altri server siano visibili:

    root@web03:~# gluster peer status
    peer status: No peers present
    
  2. Se i server peer non sono visibili, devi aggiungerli esplicitamente:

    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. Esegui lo gluster peer status comando di nuovo su web03. La risposta dovrebbe essere:State: Accepted peer request (Connected)

  4. Riavvia il demone ancora una volta e i server peer dovrebbero essere visibili:

    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)
    

Sincronizza i volumi

  1. Controlla lo stato del volume:

    root@web03:~# gluster volume status
    No volumes present
    
  2. Ottieni i volumi da un server peer:

    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. Imposta il file system per il mattone in ordine. Nell'esempio seguente, il mattone è archiviato in /srv/.bricks/www :

    root@web03:~# mkdir /srv/.bricks/www
    
  4. Vai su uno dei server in esecuzione, installa attr e ottieni l'ID del volume corretto.

    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. Copia la stringa dell'ID del volume negli appunti. Nell'esempio, è 0s42V5HW+LSuyzqotW1jgAhA== .

  6. Sul server sostitutivo, applica l'attributo esteso:

    root@web03:~# apt-get install attr -y
    ...
    root@web03:~# setfattr -n trusted.glusterfs.volume-id -v '0s42V5HW+LSuyzqotW1jgAhA==' /srv/.bricks/www
    
  7. Riavvia il server, quindi ripristina il 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. Ottieni informazioni sullo stato di avanzamento della heal operazione. Il nuovo server dovrebbe funzionare come previsto.

    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
    

Conclusione

Ora hai imparato come eseguire il ripristino da un server guasto in un array GlusterFS.


Linux
  1. Creazione di un server di archiviazione autonomo simile a NFS con GlusterFS 3.2.x su Ubuntu 12.10

  2. Come creare una matrice di elementi unici da una stringa/array in Bash?

  3. Server Ubuntu 14 e Xrdp?

  4. Avvia un server da un volume Cloud Block Storage

  5. Migra a Rackspace da un altro provider di hosting

Come aggiornare il server Ubuntu a 20.04 dal 18.04

Creazione di un Cloud Server da una ISO

Crea un'immagine di un server e ripristina un server da un'immagine salvata

Estendi un volume in Windows Server con diskpart

Servi il tuo dominio da un server cloud Rackspace

Come connettersi a SQL Server da Linux