GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wiederherstellung von einem ausgefallenen Server in einem GlusterFS-Array

Vorheriger Abschnitt

GlusterFS-Server hinzufügen und entfernen

Dieser Artikel zeigt die folgenden Wiederherstellungsmethoden, wenn ein einzelner Server ausfällt:

  • Fügen Sie einen neuen Server mit einer neuen IP-Adresse hinzu, um seinen Platz einzunehmen (eine weniger arbeitsintensive Lösung).

  • Fügen Sie einen neuen Server hinzu, aber behalten Sie die IP-Adresse des ausgefallenen Servers bei (eine arbeitsintensivere Lösung).

Nachdem Sie den vorherigen Artikel abgeschlossen haben, sollten Sie über ein GlusterFS-Array mit mindestens zwei Knoten verfügen und wissen, wie Knoten hinzugefügt und gelöscht werden.

Voraussetzungen

Für die Zwecke dieses Artikels müssen Sie auf einem vollständig replizierten Gluster-Volume mit vier Knoten arbeiten.

Füllen Sie Ihr GlusterFS-Array zum Testen mit gefälschten Daten.

Ersatzserver hinzufügen

In diesem Szenario schlägt web03 fehl, aber Sie fügen einen neuen Knoten mit der IP-Adresse 192.168.0.5 hinzu, um ihn zu ersetzen. Diese Methode ist einfacher als das Hinzufügen eines neuen Servers mit derselben IP-Adresse wie der ausgefallene Server.

Dieser Artikel zeigt zwei Formen der Notfallwiederherstellung:

  1. Ein einzelner Knoten ist ausgefallen, und Sie fügen einen neuen Knoten hinzu, um seinen Platz einzunehmen.
  2. Ein einzelner Knoten fiel aus, wurde neu erstellt und behielt die IP - dies stellte sich als mehr Arbeit heraus, die behoben werden musste

Ersatzknoten hinzufügen

In diesem Szenario fällt web03 wieder aus, aber Sie fügen einen neuen Knoten bei 192.168.0.5 hinzu, um ihn zu ersetzen. Diese Methode ist viel einfacher.

  1. Fügen Sie mit einem der laufenden Server den neuen Server zum Cluster hinzu:

    root@matt:~# gluster peer probe 192.168.0.5
    peer probe: success
    
  2. Tauschen Sie den fehlerhaften Stein gegen den neuen aus:

    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. Heilen Sie das System:

    root@matt:~# gluster volume heal www full
    Launching Heal operation on volume www has been successful
    Use heal info commands to check status
    
  4. Erhalte Informationen über den Fortschritt der heal Betrieb:

    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. Wenn Sie ein verteiltes System ausgeführt haben, führen Sie die folgenden Befehle aus:

    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:
    

IP-Adresse behalten

In diesem Szenario ist der Server web03 mit der IP-Adresse 192.168.0.3 abgestürzt und kann nicht wiederhergestellt werden.

Zur Wiederherstellung erstellen Sie einen neuen Server mit derselben IP-Adresse , präsentieren Sie es GlusterFS als ausgefallenen Server und lassen Sie es sich selbst reparieren. Sie gleichen dann die Lautstärke in GlusterFS neu aus.

Informationen zum Erstellen und Konfigurieren des Ersatzservers finden Sie in den vorherigen Artikeln.

Den neuen web03-Server als den ausgefallenen Server tarnen

  1. Erstellen Sie den neuen Server, installieren Sie GlusterFS darauf und bereiten Sie die Festplatte für den Baustein vor.

  2. Geben Sie dem Server die Peer-UUID des ausgefallenen Servers. Um die UUID abzurufen, führen Sie den folgenden Befehl auf einem der laufenden Server (z. B. web01) aus:

    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. Kopieren Sie den Dateinamen (der die ursprüngliche Web03-UUID ist). Im vorherigen Beispiel ist es:ba502dc2-447f-466a-a732-df989e71b551 .

  4. Weisen Sie dem neuen Server die UUID des ausgefallenen Servers zu.

    1. Stoppen Sie den Gluster-Daemon:

      root@web03:~# service glusterfs-server stop
      glusterfs-server stop/waiting
      
    2. Ersetzen Sie die generierte Knoten-UUID durch die kopierte in der glusterd Konfigurationsdatei:

      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
      

    Hinweis: Der ba502dc2-447f-466a-a732-df989e71b551 UUID ist eine Beispiel-UUID; Sie müssen es durch die UUID Ihres ausgefallenen Servers ersetzen (wie von web01 gespeichert).

  5. Starten Sie den Server erneut:

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

Konfigurieren Sie die Peer-Server neu

  1. Prüfen Sie auf dem neuen Server, ob die anderen Server sichtbar sind:

    root@web03:~# gluster peer status
    peer status: No peers present
    
  2. Wenn die Peer-Server nicht sichtbar sind, müssen Sie sie explizit hinzufügen:

    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. Führen Sie den gluster peer status aus Befehl erneut auf web03. Die Antwort sollte lauten:State: Accepted peer request (Connected)

  4. Starten Sie den Daemon noch einmal neu, und die Peer-Server sollten sichtbar sein:

    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)
    

Synchronisieren Sie die Volumes

  1. Überprüfen Sie den Lautstärkestatus:

    root@web03:~# gluster volume status
    No volumes present
    
  2. Holen Sie sich die Volumes von einem Peer-Server:

    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. Bringen Sie das Dateisystem für den Baustein in Ordnung. Im folgenden Beispiel wird der Brick in /srv/.bricks/www gespeichert :

    root@web03:~# mkdir /srv/.bricks/www
    
  4. Gehen Sie zu einem der laufenden Server und installieren Sie attr und erhalten Sie die richtige Volume-ID.

    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. Kopieren Sie die Volume-ID-Zeichenfolge in Ihre Zwischenablage. Im Beispiel ist es 0s42V5HW+LSuyzqotW1jgAhA== .

  6. Wenden Sie auf dem Ersatzserver dieses erweiterte Attribut an:

    root@web03:~# apt-get install attr -y
    ...
    root@web03:~# setfattr -n trusted.glusterfs.volume-id -v '0s42V5HW+LSuyzqotW1jgAhA==' /srv/.bricks/www
    
  7. Starten Sie den Server neu und heilen Sie dann das System:

    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. Erhalte Informationen über den Fortschritt der heal Betrieb. Der neue Server sollte wie erwartet laufen.

    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
    

Schlussfolgerung

Sie haben jetzt gelernt, wie Sie einen ausgefallenen Server in einem GlusterFS-Array wiederherstellen können.


Linux
  1. Erstellen eines NFS-ähnlichen eigenständigen Speicherservers mit GlusterFS 3.2.x unter Ubuntu 12.10

  2. Erstellen eines NFS-ähnlichen eigenständigen Speicherservers mit GlusterFS 3.2.x auf Debian Wheezy

  3. So aktualisieren Sie von openSUSE 13.1 auf openSUSE 13.2

  4. Wie man SSH unter Linux von Android aus macht

  5. Wie erstelle ich ein Array eindeutiger Elemente aus einer Zeichenfolge/einem Array in Bash?

So aktualisieren Sie Ubuntu Server auf 20.04 vom 18.04

Erstellen eines Cloud-Servers aus einer ISO

Erstellen Sie ein Image eines Servers und stellen Sie einen Server aus einem gespeicherten Image wieder her

So stellen Sie von Linux aus eine Verbindung zu SQL Server her

Wissenswertes über Debi a Volume Linux Server

Stoppen des MySQL-Datenbankservers:mysqld fehlgeschlagen