GlusterFS spaltete das Gehirn ohne Pfad, was bedeutet das?

11

Ich habe gerade den Status meiner glusterfs-Volumes überprüft und habe einen mit Split-Brain-Einträgen, die keinen Pfad haben:

# gluster volume heal private_uploads info
Brick server01:/var/lib/glusterfs/brick01/uploads/
<gfid:4c0edafb-0c28-427c-a162-e530280b3396> - Is in split-brain
<gfid:42d62418-1be9-4f96-96c4-268230316869> - Is in split-brain
Number of entries: 2

Brick server02:/var/lib/glusterfs/brick01/uploads/
<gfid:42d62418-1be9-4f96-96c4-268230316869> - Is in split-brain
<gfid:4c0edafb-0c28-427c-a162-e530280b3396> - Is in split-brain
Number of entries: 2

Was bedeutet es? Wie behebe ich das?

Ich verwende GlusterFS 3.5.9:

# gluster --version
glusterfs 3.5.9 built on Mar 28 2016 07:10:17
Repository revision: git://git.gluster.com/glusterfs.git
pupeno
quelle
Verwenden Sie nur 2 Server in Ihrem Cluster?
Waisenkinder

Antworten:

8

Was ist Split-Brain?

Wie in der von RedHat bereitgestellten offiziellen Dokumentation zur Verwaltung von Split-Brain erwähnt , ist Split-Brain ein Zustand, in dem Daten- oder Verfügbarkeitsinkonsistenzen aus der Pflege von zwei separaten Datensätzen mit überlappendem Umfang resultieren, entweder aufgrund von Servern in einem Netzwerkdesign. oder eine Fehlerbedingung, die darauf beruht, dass Server ihre Daten nicht miteinander kommunizieren und synchronisieren. Dieser Begriff gilt für die Replikationskonfiguration.

Beachten Sie, dass es sich um eine Fehlerbedingung handelt, die darauf beruht, dass Server ihre Daten nicht miteinander kommunizieren und synchronisieren. Dies bedeutet jedoch, dass Ihre Knoten möglicherweise die Verbindung verlieren. Der Peer befindet sich möglicherweise noch im Cluster und ist verbunden.

Split-Brain-Typen:

Wir haben drei verschiedene Arten von Split-Brain, und soweit ich sehen kann, ist Ihr Eintrag Split-Brain. Um drei Arten von Split-Brain zu erklären:

  • Daten Split-Brain: Der Inhalt der Datei unter Split-Brain ist in verschiedenen Replikatpaaren unterschiedlich und eine automatische Heilung ist nicht möglich.

  • Metadaten split-brain : , Die Metadaten der Dateien (z. B. benutzerdefiniertes erweitertes Attribut) sind unterschiedlich und eine automatische Heilung ist nicht möglich.

  • Eintrag split-brain: Dies passiert, wenn eine Datei auf jedem Replikatpaar unterschiedliche gfids hat.


Was ist GFID?

Die interne Dateikennung (GFID) von GlusterFS ist eine UUID, die für jede Datei im gesamten Cluster eindeutig ist. Dies ist analog zur Inode-Nummer in einem normalen Dateisystem. Die GFID einer Datei wird in ihrem xattr-Namen gespeichert trusted.gfid. Um den Pfad von GFID zu finden, empfehle ich Ihnen dringend, diesen offiziellen Artikel von GlusterFS zu lesen .


Wie löse ich den Eintrag Split-Brain?

Es gibt mehrere Methoden, um das Auftreten von Split-Brain zu verhindern. Um dies zu beheben, müssen die entsprechenden gfid-link-Dateien entfernt werden. Die gfid-link-Dateien befinden sich im Verzeichnis .glusterfs im Verzeichnis der obersten Ebene des Bausteins. Beachten Sie übrigens, dass Sie vor dem Löschen der gfid-Links sicherstellen müssen, dass keine festen Links zu den auf diesem Baustein vorhandenen Dateien vorhanden sind. Wenn Hardlinks vorhanden sind, müssen Sie diese ebenfalls löschen. Anschließend können Sie den Selbstheilungsprozess verwenden, indem Sie die folgenden Befehle ausführen.

In der Zwischenzeit können Sie Folgendes verwenden, um die Liste der Dateien auf einem Volume anzuzeigen, die sich in einem Split-Brain-Zustand befinden:

# gluster volume heal VOLNAME info split-brain

Beachten Sie außerdem, dass bei replizierten Volumes, wenn ein Baustein offline geschaltet und wieder online geschaltet wird, eine Selbstheilung erforderlich ist, um alle Replikate erneut zu synchronisieren.

So überprüfen Sie den Heilungsstatus von Volumes und Dateien:

# gluster volume heal VOLNAME info

Da Sie Version 3.5 verwenden, haben Sie keine automatische Heilung. Nachdem Sie die zuvor genannten Schritte ausgeführt haben, müssen Sie die Selbstheilung auslösen. Um dies zu tun:

  • Nur für die Dateien, die geheilt werden müssen:

    # gluster volume heal VOLNAME

  • Auf allen Dateien:

    # gluster volume heal VOLNAME full

Ich hoffe, dies wird Ihnen bei der Behebung Ihres Problems helfen. Bitte lesen Sie die offiziellen Dokumente für weitere Informationen. Prost.

FarazX
quelle
2

Ich denke, das Dokument ist klar genug, es hat Ihnen sogar ein ähnliches Beispiel gegeben.

Und für Gluesterfs 'Heilungsbefehle wie

Gluster Volumen heilen ** VOLNAME ** Split-Brain spätestens ** DATEI **

DATEI kann entweder der vollständige Dateiname sein, gesehen vom Stammverzeichnis des Volumes (oder) die gfid-string-Darstellung der Datei

Sie brauchen sich also keine Sorgen zu machen.

Und wie die Konvertierung von GFID in Pfad lautet:

Die interne Dateikennung (GFID) von GlusterFS ist eine UUID, die für jede Datei im gesamten Cluster eindeutig ist.

Dieses Skript sagt Ihnen möglicherweise, welcher Dateiname zu welcher gfid gehört, aber es ist eine Gehirnaufteilung aufgetreten. Möglicherweise hat es keinen Dateinamen.

Sie verwenden 3.5 und haben kein halbautomatisches Heal-Cmd. Daher müssen Sie Konflikte möglicherweise manuell beheben. Dies bedeutet normalerweise, dass Sie entscheiden, welche gfid-Datei gelöscht werden muss.

pingz
quelle
Meine Version von Gluster scheint diesen Befehl nicht zu haben, sonst ist das einfach. Außerdem habe ich keine Dateinamen, sondern Benutzeroberflächen.
Pupeno
2

Wie behebe ich das?

Die Split-Brain-Auflösung finden Sie entweder hier . Für den Fall, dass es nicht viel helfen würde, sollte das Handbuch hier die Arbeit erledigen. Für den Fall sehe ich den Artikel auch hilfreich.

Wie vermeide ich Split-Brain?

Der Schutz vor Netzwerkpartitionen erfolgt durch einen Quorum-Voting-Algorithmus. Falls ein Host ausfällt oder es ein Split-Brain-Szenario gibt, in dem die Knoten weiterhin ausgeführt werden, aber nicht mehr miteinander kommunizieren können, versuchen der verbleibende Knoten oder die verbleibenden Knoten im Cluster, eine SCSI-Reservierung auf dem Zeugenlaufwerk zu platzieren. Im Falle eines Split-Brain hilft der Zeuge bei der Entscheidung, welcher der Hosts, der eine Kopie der Daten besitzt, die Kontrolle übernehmen soll.

Einige Beispiele.

Mit VMware VSAN können Cluster mit zwei Knoten ausgeführt werden, wobei das Zeugenlaufwerk auf einem dritten Host oder in der Cloud ausgeführt wird. Quelle

StarWind Virtual SAN wird in nur 2 Knoten mit dem Microsoft Failover Cluster-Dienst ausgeführt, der auch einen Quorum-Abstimmungsmechanismus enthält, um das Split-Brain-Problem zu vermeiden. Quelle

Für beide wird das Heartbeat-Netzwerk verwendet, um die Kommunikation zwischen Knoten und Quorum zu bedienen / zu überwachen. Um ein Split-Brain zu vermeiden, ist es meines Erachtens obligatorisch, redundante Heartbeat-Kanäle zu verwenden.

Herr Himbeere
quelle
1

Split-Brain tritt auf, wenn zwei Knoten eines Clusters getrennt werden. Jeder Knoten glaubt, dass der andere nicht funktioniert.

geteiltes Gehirn

Um dies zu beheben, müssen Sie verstehen, warum Ihre beiden Knoten nicht mehr miteinander sprechen.

bgtvfr
quelle