GNU/Linux >> Tutoriels Linux >  >> Linux

Récupérer à partir d'un serveur défaillant dans une baie GlusterFS

Section précédente

Ajouter et supprimer des serveurs GlusterFS

Cet article présente les méthodes suivantes pour récupérer lorsqu'un seul serveur tombe en panne :

  • Ajoutez un nouveau serveur, avec une nouvelle adresse IP, pour le remplacer (un correctif moins exigeant).

  • Ajoutez un nouveau serveur mais conservez l'adresse IP du serveur défaillant (une solution plus laborieuse).

Après avoir terminé l'article précédent, vous devriez avoir un tableau GlusterFS avec au moins deux nœuds et savoir comment ajouter et supprimer des nœuds.

Prérequis

Pour les besoins de cet article, vous devez exécuter sur un volume Gluster entièrement répliqué à quatre nœuds.

Remplissez votre tableau GlusterFS avec de fausses données pour les tests.

Ajouter un serveur de remplacement

Dans ce scénario, web03 échoue, mais vous ajoutez un nouveau nœud avec l'adresse IP 192.168.0.5 pour le remplacer. Cette méthode est plus simple que d'ajouter un nouveau serveur avec la même adresse IP que le serveur défaillant.

Cet article présente deux formes de reprise après sinistre :

  1. Un seul nœud est tombé en panne et vous ajoutez un nouveau nœud pour le remplacer.
  2. Un seul nœud est tombé en panne, a été reconstruit et a conservé l'adresse IP - cela s'avère être plus de travail à réparer

Ajouter un nœud de remplacement

Dans ce scénario, web03 redescendra, mais vous ajouterez un nouveau nœud à 192.168.0.5 pour le remplacer. Cette méthode est beaucoup plus simple.

  1. À l'aide de l'un des serveurs en cours d'exécution, ajoutez le nouveau serveur au cluster :

    root@matt:~# gluster peer probe 192.168.0.5
    peer probe: success
    
  2. Échangez la brique défaillante contre la nouvelle :

    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. Guérir le système :

    root@matt:~# gluster volume heal www full
    Launching Heal operation on volume www has been successful
    Use heal info commands to check status
    
  4. Obtenir des informations sur la progression de la heal opération :

    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 vous exécutiez un système distribué, exécutez les commandes suivantes :

    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:
    

Conserver l'adresse IP

Dans ce scénario, le serveur web03, avec l'adresse IP 192.168.0.3, est tombé en panne et est complètement irrécupérable.

Pour récupérer, vous construisez un nouveau serveur, avec la même adresse IP , présentez-le à GlusterFS en tant que serveur défaillant et laissez-le s'auto-réparer. Vous rééquilibrez ensuite le volume dans le GlusterFS.

Reportez-vous aux articles précédents pour plus d'informations sur la création et la configuration du serveur de remplacement.

Déguiser le nouveau serveur web03 en serveur défaillant

  1. Construisez le nouveau serveur, installez-y GlusterFS et préparez le disque pour la brique.

  2. Donnez au serveur l'UUID homologue du serveur défaillant. Pour obtenir l'UUID, exécutez la commande suivante sur l'un des serveurs en cours d'exécution (tel que 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. Copiez le nom du fichier (qui est l'UUID Web03 d'origine). Dans l'exemple précédent, il s'agit de :ba502dc2-447f-466a-a732-df989e71b551 .

  4. Attribuez l'UUID du serveur défaillant au nouveau serveur.

    1. Arrêtez le démon Gluster :

      root@web03:~# service glusterfs-server stop
      glusterfs-server stop/waiting
      
    2. Remplacez l'UUID du nœud généré par celui copié dans le glusterd fichier de configuration :

      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
      

    Remarque : Le ba502dc2-447f-466a-a732-df989e71b551 UUID est un exemple d'UUID ; vous devez le remplacer par l'UUID de votre serveur défaillant (mémorisé par web01).

  5. Redémarrez le serveur :

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

Reconfigurer les serveurs pairs

  1. Sur le nouveau serveur, vérifiez que les autres serveurs sont visibles :

    root@web03:~# gluster peer status
    peer status: No peers present
    
  2. Si les serveurs pairs ne sont pas visibles, vous devez les ajouter explicitement :

    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. Exécutez le gluster peer status commande à nouveau sur web03. La réponse doit être :State: Accepted peer request (Connected)

  4. Redémarrez le démon une fois de plus, et les serveurs pairs devraient être 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)
    

Synchroniser les volumes

  1. Vérifiez l'état du volume :

    root@web03:~# gluster volume status
    No volumes present
    
  2. Obtenez les volumes d'un serveur pair :

    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. Réglez le système de fichiers de la brique dans l'ordre. Dans l'exemple suivant, la brique est stockée dans /srv/.bricks/www :

    root@web03:~# mkdir /srv/.bricks/www
    
  4. Allez sur l'un des serveurs en cours d'exécution, installez attr et obtenez le bon ID de volume.

    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. Copiez la chaîne d'ID de volume dans votre presse-papiers. Dans l'exemple, il s'agit de 0s42V5HW+LSuyzqotW1jgAhA== .

  6. Sur le serveur de remplacement, appliquez cet attribut étendu :

    root@web03:~# apt-get install attr -y
    ...
    root@web03:~# setfattr -n trusted.glusterfs.volume-id -v '0s42V5HW+LSuyzqotW1jgAhA==' /srv/.bricks/www
    
  7. Redémarrez le serveur, puis réparez le système :

    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. Obtenir des informations sur la progression de la heal opération. Le nouveau serveur devrait fonctionner comme prévu.

    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
    

Conclusion

Vous avez maintenant appris comment récupérer d'un serveur défaillant dans une baie GlusterFS.


Linux
  1. Création d'un serveur de stockage autonome de type NFS avec GlusterFS 3.2.x sur Debian Wheezy

  2. Comment mettre à niveau d'openSUSE 13.1 vers openSUSE 13.2

  3. Comment SSH sur Linux à partir d'Android

  4. Serveur Ubuntu 14 et Xrdp ?

  5. Ajouter et supprimer des serveurs GlusterFS

Comment mettre à niveau Ubuntu Server vers 20.04 à partir de 18.04

Créer un Serveur Cloud à partir d'un ISO

Créer une image d'un serveur et restaurer un serveur à partir d'une image enregistrée

Comment se connecter à SQL Server à partir de Linux

Envoi de mail depuis mon serveur

Extraire les chemins manquants du tableau bash de chemins