Dlaczego nie mogę utworzyć tego glustera?


9

Konfiguruję moją pierwszą instalację Gluster 3.4 i wszystko jest w porządku, dopóki nie chcę utworzyć rozproszonego replikowanego woluminu.

Mam 4 serwery 192.168.0.11, 192.168.0.12, 192.168.0.13 i 192.168.0.14.

Od 192.168.0.11 prowadziłem:

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

Na każdym serwerze mam zamontowany wolumin pamięci w / export / brick1

Następnie uruchomiłem 192.168.0.11

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

Ale dostaję błąd:

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

Rzeczywiście, jeśli uruchomisz status gluster peer, pokaże 3 peery z innymi podłączonymi hostami. tzn. liczba rówieśników: 3

Nazwa hosta: 192.168.0.12 Port: 24007 Uuid: bcea6044-f841-4465-88e4-f76a0c8d5198 Stan: Peer in Cluster (podłączony)

Nazwa hosta: 192.168.0.13 Port: 24007 Uuid: 3b5c188e-9be8-4d0f-a7bd-b738a88f2199 Stan: Peer in Cluster (podłączony)

Nazwa hosta: 192.168.0.14 Port: 24007 Uuid: f6f326eb-0181-4f99-8072-f27652dab064 Stan: Peer in Cluster (podłączony)

Ale od 192.168.0.12 ta sama komenda pokazuje również 3 hosty, a 192.168.0.11 jest jej częścią. to znaczy

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)

Zatem 192.168.0.11 jest zdecydowanie częścią klastra.

Pytanie brzmi: dlaczego nie mogę utworzyć woluminu na pierwszym serwerze gluster podczas uruchamiania polecenia gluster. Czy to normalne zachowanie czy jakiś błąd?

Odpowiedzi:


15

Widziałem niejasny komunikat o błędzie dotyczący niepołączonego gniazda z peerem 127.0.0.1.

[2013-08-16 00: 36: 56.765755] W [socket.c: 1494: __ socket_proto_state_machine] Zarządzanie 0-gniazdem: odczyt z gniazda nie powiódł się. Błąd (punkt końcowy transportu nie jest połączony), peer (127.0.0.1:1022)

Okazuje się, że miałem problem z NAT. Próbowałem stworzyć serwery gluster, które znajdowały się za urządzeniem NAT i użyłem publicznego adresu IP do rozwiązania nazw. To po prostu nie będzie działać poprawnie dla lokalnego komputera.

W każdym węźle miałem coś takiego jak poniżej.

Plik hosts zawierający

192.168.0.11  gluster1
192.168.0.12  gluster2
192.168.0.13  gluster3
192.168.0.14  gluster4

Rozwiązaniem było usunięcie najpierw zaufanych partnerów

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

Następnie zmień plik hosts na każdym komputerze na

# 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

itp

Następnie obejrzyj sondę, a na końcu utwórz wolumin, który był wtedy udany.

Wątpię, aby w tym przypadku działało użycie adresów IP (publicznych). Powinno działać, jeśli korzystasz z prywatnych adresów za NAT. W moim przypadku każdy serwer znajdował się za NAT w chmurze AWS.


1
W moim przypadku nie musiałem dotykać 127.0.0.1, wystarczyła praca z wewnętrznym adresem IP
arod

1

Spróbuj jawnie zdefiniować liczbę replik jako cztery węzły, używając tego formatu: -

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

Zakładam, że ta czysta replika i bez pasków?

spróbuj tego od 192.168.0.11: -

najpierw odłącz wszystko:

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

następnie ponownie dodaj w tym formacie

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

Uwaga : jawnie zdefiniowałem ten zestaw replik z czterema węzłami. także wyraźnie zdefiniowałem transport przez tcp .

jeśli chcesz rozłożyć na dwóch urządzeniach w zestawie replik, użyj czegoś takiego:

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

Trzymaj się, odkryłem ostatnio gluster i jestem zakochany w tej ideologii dla rozproszonych systemów plików .. prawdziwe dzieło sztuki.

Używam gluster, aby zapewnić redundancję HA w wirtualnych magazynach danych KVM. magiczne rzeczy


Niestety dostaję dokładnie ten sam błąd. Ponadto, gdy nie podaje się liczby replik i przy wszystkich odłączonych woluminach, pojawia się ten sam błąd. Po usunięciu klocka 192.168.0.11 twierdzi, że host 192.168.0.12 nie ma statusu równorzędnego w klastrze, więc najpierw trzeba je zbadać. Przynajmniej tak jest w wersji 3.4
Matt

Być może masz rację, sugerując, że to tylko dziwactwo w najnowszej wersji. fakt, że ustawiasz wszystkie trzy elementy równorzędne w zestawie, wskazuje, że krawędzie działają bez względu na błędy ustawione na 192.168.0.11. Co się stanie, gdy zamontujesz udział z piątego węzła testowego i napiszesz do glusterFS. czy napis pojawia się na wszystkich cegłach?
AngryWombat

Właściwie nie mogę nawet stworzyć normalnego wolumenu rozproszonego na jednej cegle. Po prostu pojawia się błąd informujący, że nie można go utworzyć. Dzienniki zawierają bezowocne informacje. To sprawia, że ​​mam ochotę go wyrzucić.
Matt

Miałem podobny problem 5 tygodni temu, przejście do wersji 3.3 rozwiązało mój problem. Jedyną inną sugestią na tym etapie byłoby rozważenie roli z powrotem do wersji 3.3 i ponowne przetestowanie.
AngryWombat

Być może po prostu zacznij od dwóch węzłów i zacznij od tego ... Jakiej dystrybucji używasz? Mam mój działający na buntu 12.04 z tym repozytorium: - sudo add-apt-repository ppa: semiosis / ubuntu-glusterfs-3.3
AngryWombat 15.08.2013
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.