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

Fügen Sie GlusterFS-Server hinzu und entfernen Sie sie

Dieser Artikel beschreibt, wie Sie GlusterFS-Server zu Ihrem Server-Array hinzufügen und daraus entfernen.

Neuen Server erstellen

Verwenden Sie den nova boot Befehl aus dem vorherigen Artikel, um einen Server namens web3 zu erstellen:

nova boot --image bb02b1a3-bc77-4d17-ab5b-421d89850fca --flavor performance1-4 web3

Sie können den neuen Server auch über das Rackspace Cloud Control Panel erstellen.

Fügen Sie den Server zum benutzerdefinierten Netzwerk von Rackspace hinzu

Im vorherigen Artikel haben Sie ein benutzerdefiniertes Netzwerk von Rackspace hinzugefügt.

  1. Rufen Sie den Universal Unique Identifer (UUID) des Netzwerks ab, indem Sie den folgenden nova verwenden Befehl:

    nova network-list
    
  2. Nachdem Sie die UUID haben, ordnen Sie ihr den neuen Host zu.

    Ersetzen Sie UUID im folgenden Befehl mit der tatsächlichen UUID (z. B. 5492de89-1497-4aa0-96eb-bcdd55e1195c1 ). web03 ist der Hostname des Servers, den Sie hinzufügen möchten.

    nova network-associate-host UUID web03
    

Sie können auch das Rackspace Cloud Control Panel verwenden, um einen Server mit Ihrem bestehenden Netzwerk zu verknüpfen.

Wenn Sie fertig sind, sollte der neue Server die IP-Adresse 192.168.0.3 auf der Schnittstelle /dev/eth3 haben . Das ist die Adresse, die GlusterFS verwendet, um mit dem anderen Server zu kommunizieren.

Partition formatieren und GlusterFS installieren

Verwenden Sie die folgenden Schritte, um die Serverpartition zu formatieren und GlusterFS zu installieren:

  1. Verwenden Sie Secure Shell (SSH), um sich beim Server anzumelden.

  2. Befolgen Sie die Anweisungen aus dem vorherigen Artikel, installieren Sie GlusterFS und formatieren Sie die bricks wie folgt partitionieren:

    apt-get update
    apt-get install -y glusterfs-server glusterfs-client
    apt-get install -y xfsprogs
    mkfs.xfs /dev/xvde1
    mkdir /srv/.bricks
    echo /dev/xvde1 /srv/.bricks xfs rw 0 1 >> /etc/fstab
    mount /srv/.bricks
    ufw allow in on eth2
    

Integrieren Sie den neuen Baustein in das Gluster-Volumen

  1. Verwenden Sie SSH, um sich entweder bei web01 anzumelden oder web02 .

  2. Der folgende Befehl weist das GlusterFS-Volume an, dem neuen Server zu vertrauen:

    root@web02 :~# gluster peer probe 192.168.0.3
    peer probe: success
    
  3. Fügen Sie den Baustein mit den folgenden Befehlen zum Volume hinzu:

    root@web02 :~# gluster volume add-brick www replica 3 192.168.0.3:/srv/.bricks/www
    volume add-brick: success
    

Der Befehl enthält die folgenden Teile:

  • gluster - Der Befehl ist für GlusterFS.
  • volume - Der Befehl bezieht sich auf ein Volume.
  • add-brick - Sie fügen dem Volumen einen Baustein hinzu.
  • www - Dies ist der Name des Volumes.
  • replica 3 - Nachdem Sie diesen Baustein hinzugefügt haben, behält das Volume mindestens drei Kopien jeder Datei, eine Kopie pro Baustein und in diesem Fall eine Kopie pro Server (da sich auf jedem Server nur ein Baustein befindet).
  • 192.168.0.3:/srv/.bricks/www - Dieser Teil des Befehls ist die IP-Adresse des Gluster-Servers, gefolgt vom absoluten Pfad zum Speicherort der Brick-Daten.

Volumenspeicherstrategien

GlusterFS bietet die folgenden Arten von Volume-Speicherstrategien:

  • Verteilt - Eine Datei befindet sich auf einem Stein und die nächste Datei befindet sich auf dem nächsten Stein. Diese Strategie gibt Ihnen mehr Platz, da Ihr Volumen die Summe aller Bausteine ​​ist.
  • Repliziert (Empfohlen ) - Jede Datei wird auf jeden Server kopiert.
  • Gestreift - Dateien werden in Stücke geschnitten, und ein Stück wird in den ersten Baustein geschrieben, ein Stück wird in den zweiten Baustein geschrieben und so weiter.

Sie können Strategien auch kombinieren, z. B. repliziert und verteilt, wie im folgenden Beispiel veranschaulicht:

gluster volume create www replica 2 transport tcp
192.168.0.1:/srv/.bricks/www 192.168.0.2:/srv/.bricks/www
192.168.0.3:/srv/.bricks/www 192.168.0.4:/srv/.bricks/www

Die Replikatnummer ist die Anzahl der Bausteine, aus denen ein Replikatsatz besteht, dh eine vollständige Kopie der Dateien enthalten. Im vorherigen Beispiel 192.168.0.1 und 192.168.0.2 halten eine vollständige Kopie der Dateien, ebenso wie 192.168.0.3 und 192.168.0.4 . Die Ziegelreihenfolge ist signifikant. Wenn Sie es 1,3,2,4 bestellt haben, würden 1 und 3 und 2 und 4 die vollständigen Dateien enthalten. Wenn 1 und 2 ausfallen würden, würden Sie die Hälfte Ihrer Dateien verlieren und zwei Kopien der anderen Hälfte haben.

Eine Kombination aus repliziertem und verteiltem Volume gibt Ihnen ein wenig mehr Geschwindigkeit und mehr Speicherplatz im Austausch für Datensicherheit.

Eine Kombination aus Stripeset- und replizierten Volumes wird nur empfohlen, wenn Sie Dateien haben, die größer als ein Ziegelstein sind, oder viele große Dateien, die vielen E/A-Vorgängen unterzogen werden.

Status der Server anzeigen

Die folgenden Befehle helfen Ihnen, mehr darüber herauszufinden, was in Ihrem Cluster passiert. Sie werden diese Befehle in späteren GlusterFS-Artikeln verwenden.

Peer-Status

Wenn Sie den folgenden Befehl von einem beliebigen Server aus ausführen, zeigt er alle ihm bekannten Peer-Server an:

root@web01:~# gluster peer status
Number of Peers: 2

Hostname: 192.168.0.3
Uuid: ba502dc2-447f-466a-a732-df989e71b551
State: Peer in Cluster (Connected)

Hostname: 192.168.0.2
Uuid: 56e02356-d2c3-4787-ae25-6b46e867751a
State: Peer in Cluster (Connected)

Volumestatus

Der folgende Befehl ist ein hilfreicher Befehl zur Fehlerbehebung. Es gibt Informationen über alle GlusterFS-Volumes und Aufgaben in der Warteschlange und in Bearbeitung.

root@web03:~# gluster volume status
Status of volume: www
Gluster process						Port	Online	Pid
------------------------------------------------------------------------------
Brick 192.168.0.2:/srv/.bricks/www			49152	Y	13673
Brick 192.168.0.1:/srv/.bricks/www			49152	Y	10249
Brick 192.168.0.3:/srv/.bricks/www			49153	Y	13783
NFS Server on localhost					2049	Y	13793
Self-heal Daemon on localhost				N/A	Y	13800
NFS Server on 192.168.0.2				2049	Y	13900
Self-heal Daemon on 192.168.0.2				N/A	Y	13907
NFS Server on 192.168.0.1				2049	Y	10286
Self-heal Daemon on 192.168.0.1				N/A	Y	10293

There are no active volume tasks

Entferne einen Stein

Sie können Volumes nach Bedarf verkleinern, während der Cluster online und verfügbar ist. Verwenden Sie den folgenden Befehl, um einen Baustein zu entfernen:

# gluster volume remove-brick <volName> <brickName> start

Ausführen von remove-brick mit start Option löst automatisch einen Neuausgleichsvorgang aus, um Daten von den entfernten Bausteinen auf den Rest des Volumes zu migrieren.

Das folgende Beispiel entfernt Baustein 2:

root@web01:~# gluster volume remove-brick www replica 2 192.168.0.2:/srv/.bricks/www start
Removing brick(s) can result in data loss. Do you want to Continue? (y/n) y
volume remove-brick commit force: success

Dieser Befehl teilt GlusterFS mit, dass der www Volume behält jetzt nur noch 2 Kopien jeder Datei. Es warnt Sie, dass Sie möglicherweise Daten verlieren, und fordert Sie auf, fortzufahren.

Wenn Sie einen Baustein auf einem verteilten Volume entfernen möchten, sollten Sie stattdessen den folgenden Befehl ausführen:

root@web01:~# gluster volume remove-brick www 192.168.0.2:/srv/.bricks/www start

Sie können den Status des remove-brick anzeigen Vorgang mit dem folgenden Befehl:

root@web01:~# watch gluster volume remove-brick www replica 2 192.168.0.2:/srv/.bricks/www status

Baustein erneut hinzufügen

In diesem Abschnitt wird erklärt, wie Sie einen Baustein erneut hinzufügen.

Versuchen Sie, web02 wie folgt wieder zum Volume hinzuzufügen:

root@web02:~# gluster volume add-brick www replica 3 192.168.0.2:/srv/.bricks/www
volume add-brick: failed:

Es ging schief. Sehen Sie sich die Protokolle auf web02 an, um zu sehen, warum der Befehl fehlgeschlagen ist:

root@web02:/srv/.bricks# tail /var/log/glusterfs/*log -f | grep E
[2014-05-25 00:19:04.954410] I [input.c:36:cli_batch] 0-: Exiting with: 0
[2014-05-25 00:19:12.958620] I [input.c:36:cli_batch] 0-: Exiting with: 0
[2014-05-25 00:40:46.923747] E [glusterd-utils.c:5377:glusterd_is_path_in_use] 0-management: /srv/.bricks/www or a prefix of it is already part of a volume
[2014-05-25 00:40:46.923789] E [glusterd-op-sm.c:3719:glusterd_op_ac_stage_op] 0-management: Stage failed on operation 'Volume Add brick', Status : -1

Das Problem ist, dass /srv/.bricks/www enthält noch die Daten aus der Zeit, als web02 Mitglied des Bandes war.

Sie brauchen einen sauberen Ort, um die Daten zu speichern. Der einfachste Weg zur Bereinigung besteht darin, einfach alle Daten mit dem folgenden Befehl zu entfernen:

root@web02:~# rm -rf /srv/.bricks/www

Warnung :Achten Sie darauf, diese Aktion auf dem richtigen Host auszuführen (web02, das derzeit nicht im Volume ist). Wenn Sie einen Fehler machen, zeigt Ihnen der nächste Artikel, wie Sie ihn wiederherstellen können. Alternative Aktionen sind das Verschieben von www Verzeichnis aus dem Weg zu räumen oder den Baustein mit einem anderen Verzeichnis wie www2 hinzuzufügen .

Jetzt, da Sie einen sauberen Ort haben, an dem Sie den Baustein lagern können, ist das Hinzufügen des Bausteins erfolgreich:

root@web01:/srv# gluster volume add-brick www replica 3 192.168.0.2:/srv/.bricks/www
volume add-brick: success

Nächste Schritte

  • Wie man einen ausgefallenen Server in einem GlusterFS-Array wiederherstellt

Linux
  1. Xorg, X11, Wayland? Erklärung von Linux-Display-Servern und -Protokollen

  2. So fügen Sie Domains in Plesk hinzu und entfernen sie

  3. Rollen und Features auf Windows Server hinzufügen und entfernen

  4. Häufig gestellte Fragen zu Cloud-Servern

  5. Neue Funktionen in Allzweck- und arbeitsoptimierten Cloud-Servern

Wie füge ich A-Einträge in cPanel hinzu und entferne sie?

Wie füge ich MX-Einträge in cPanel hinzu und entferne sie?

Wie füge ich TXT-Einträge in cPanel hinzu und entferne sie?

30 interessante Tools und Dienste zur Überwachung Ihrer Linux-Server

So fügen Sie eine Website in cPanel und WHM unter CentOS 6.7 hinzu

So fügen Sie PHP-FPM-Unterstützung auf Apache und Nginx-Webserver auf Ubuntu 18.04 hinzu