Warum kann ich dieses Glanzvolumen nicht erstellen?

9

Ich richte meine erste Gluster 3.4-Installation ein und alles ist in Ordnung, bis ich ein verteiltes repliziertes Volume erstellen möchte.

Ich habe 4 Server 192.168.0.11, 192.168.0.12, 192.168.0.13 und 192.168.0.14.

Von 192.168.0.11 lief ich:

gluster peer probe 192.168.0.12
gluster peer probe 192.168.0.13
gluster peer probe 192.168.0.14

Auf jedem Server habe ich ein gemountetes Speichervolume unter / export / paint1

Ich lief dann am 192.168.0.11

gluster volume create gv0 replica2 192.168.0.11:/export/brick1 192.168.0.12:/export/brick1 192.168.0.13:/export/brick1 192.168.0.14:/export/brick1

Aber ich bekomme den Fehler:

volume create: gv0: failed: Host 192.168.0.11 is not in 'Peer in Cluster' state

Sicher genug, wenn Sie den Gluster-Peer-Status ausführen, werden 3 Peers mit den anderen verbundenen Hosts angezeigt. dh Anzahl der Peers: 3

Hostname: 192.168.0.12 Port: 24007 Uuid: bcea6044-f841-4465-88e4-f76a0c8d5198 Status: Peer in Cluster (verbunden)

Hostname: 192.168.0.13 Port: 24007 Uuid: 3b5c188e-9be8-4d0f-a7bd-b738a88f2199 Status: Peer in Cluster (verbunden)

Hostname: 192.168.0.14 Port: 24007 Uuid: f6f326eb-0181-4f99-8072-f27652dab064 Status: Peer in Cluster (verbunden)

Ab 192.168.0.12 zeigt derselbe Befehl jedoch auch 3 Hosts an, und 192.168.0.11 ist Teil davon. dh

Number of Peers: 3

Hostname: 192.168.0.11
Port: 24007
Uuid: 09a3bacb-558d-4257-8a85-ca8b56e219f2
State: Peer in Cluster (Connected)

Hostname: 192.168.0.13
Uuid: 3b5c188e-9be8-4d0f-a7bd-b738a88f2199
State: Peer in Cluster (Connected)

Hostname: 192.168.0.14
Uuid: f6f326eb-0181-4f99-8072-f27652dab064
State: Peer in Cluster (Connected)

192.168.0.11 ist also definitiv Teil des Clusters.

Die Frage ist, warum ich das Volume auf dem ersten Gluster-Server nicht erstellen kann, wenn ich den Befehl gluster ausführe. Ist das normales Verhalten oder eine Art Fehler?

Matt
quelle

Antworten:

15

Ich habe eine obskure Fehlermeldung über einen nicht verbundenen Socket mit Peer 127.0.0.1 gesehen.

[2013-08-16 00: 36: 56.765755] W [socket.c: 1494: __ socket_proto_state_machine] 0-socket.management: Lesen vom Socket fehlgeschlagen. Fehler (Transportendpunkt ist nicht verbunden), Peer (127.0.0.1:1022)

Es stellt sich heraus, dass das Problem, das ich hatte, auf NAT zurückzuführen war. Ich habe versucht, Gluster-Server zu erstellen, die sich hinter einem NAT-Gerät befinden, und die öffentliche IP-Adresse zum Auflösen der Namen zu verwenden. Dies wird für den lokalen Computer einfach nicht richtig funktionieren.

Was ich hatte, war auf jedem Knoten so etwas wie das Folgende.

Eine Hosts-Datei mit

192.168.0.11  gluster1
192.168.0.12  gluster2
192.168.0.13  gluster3
192.168.0.14  gluster4

Das Update bestand darin, zuerst die vertrauenswürdigen Peers zu entfernen

sudo gluster peer detach gluster2
sudo gluster peer detach gluster3
sudo gluster peer detach gluster4

Ändern Sie dann die Hosts-Datei auf jedem Computer

# Gluster1
127.0.0.1     gluster1
192.168.0.12  gluster2
192.168.0.13  gluster3
192.168.0.14  gluster4


# Gluster2
192.168.0.11  gluster1
127.0.0.1     gluster2
192.168.0.13  gluster3
192.168.0.14  gluster4

usw

Dann Peer-Probe und erstellen Sie schließlich das Volume, das dann erfolgreich war.

Ich bezweifle, dass die Verwendung von IP-Adressen (die öffentlichen) in diesem Fall funktioniert. Es sollte funktionieren, wenn Sie die privaten Adressen hinter Ihrem NAT verwenden. In meinem Fall befand sich jeder Server hinter einem NAT in der AWS-Cloud.

Matt
quelle
1
In meinem Fall musste ich nicht 127.0.0.1 berühren, mit interner IP - Adresse arbeitete genug
arod
1

Versuchen Sie, die Anzahl der Replikate in diesem Format explizit als vier Knoten zu definieren: -

gluster volume create NEW-VOLNAME [stripe COUNT] [replica COUNT] [transport <tcp | rdma>] NEW-BRICK ...

Ich nehme diese reine Nachbildung und keinen Streifen an?

Versuchen Sie dies ab 192.168.0.11: -

alles zuerst abnehmen:

sudo gluster peer detach 192.168.0.12
sudo gluster peer detach 192.168.0.13
sudo gluster peer detach 192.168.0.14

Als nächstes in diesem Format erneut hinzufügen

gluster volume create gv0 replica 4 transport tcp 192.168.0.11:/export/brick1 192.168.0.12:/export/brick1 192.168.0.13:/export/brick1 192.168.0.14:/export/brick1

Hinweis Ich habe dies explizit als Replikatsatz mit vier Knoten definiert. auch ich habe den transport über tcp explizit definiert .

Wenn Sie zwei Geräte in einem Replikatsatz streifen möchten, verwenden Sie Folgendes: -

gluster volume create gv0 stripe 2 replica 2 transport tcp 192.168.0.11:/export/brick1 192.168.0.12:/export/brick1 192.168.0.13:/export/brick1 192.168.0.14:/export/brick1

Bleiben Sie dabei, ich habe kürzlich Glanz entdeckt und bin verliebt in diese Ideologie für verteilte Dateisysteme. Ein echtes Kunstwerk.

Ich verwende Gluster, um HA-Redundanz für virtuelle KVM-Datenspeicher bereitzustellen. magisches Zeug

AngryWombat
quelle
Leider bekomme ich genau den gleichen Fehler. Wenn keine Replikatzahl angegeben wird und alle Volumes derzeit getrennt sind, wird der gleiche Fehler angezeigt. Wenn Sie den 192.168.0.11-Baustein entfernen, wird behauptet, dass sich der 192.168.0.12-Host im Clusterstatus nicht im Peer befindet, sodass Sie ihn zuerst prüfen müssen. Zumindest ist dies in Version 3.4
Matt
Sie könnten Recht haben, wenn Sie vorschlagen, dass es in der neuesten Version nur eine Eigenart ist. Die Tatsache, dass Sie alle drei Peers im Set einstellen, zeigt an, dass alle Brinks funktionieren, unabhängig von den auf 192.168.0.11 eingestellten Fehlern. Was passiert, wenn Sie die Freigabe von einem fünften Testknoten bereitstellen und in das glusterFS schreiben? Erscheint das Schreiben auf allen Steinen?
AngryWombat
Eigentlich kann ich nicht einmal ein normal verteiltes Volume auf einem einzelnen Baustein erstellen. Ich erhalte nur eine Fehlermeldung, dass es nicht erstellt werden konnte. Die Protokolle enthalten erfolglose Informationen. Ich habe das Gefühl, es ganz rauszuwerfen.
Matt
Ich hatte vor 5 Wochen ein ähnliches Problem. Durch die Umstellung auf Version 3.3 wurde mein Problem behoben. Der einzige andere Vorschlag in dieser Phase wäre, eine Rolle zurück zu 3.3 zu betrachten und erneut zu testen.
AngryWombat
Beginnen Sie vielleicht auch einfach mit den beiden Knoten und arbeiten Sie von dort aus ... Welche Distribution verwenden Sie? Ich habe meine auf Buntu 12.04 mit diesem Repo zum Laufen gebracht: - Sudo Add-Apt-Repository ppa: Semiosis / Ubuntu-Glusterfs-3.3
AngryWombat