GlusterFS dzieli mózg bez ścieżki, co to znaczy?

11

Właśnie sprawdzałem status moich tomów glusterfs i mam taki z wpisami podzielonego mózgu, które nie mają ścieżki:

# 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

Co to znaczy? Jak to naprawić?

Korzystam z 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
źródło
Czy używasz tylko 2 serwerów w swoim klastrze?
Sieroty

Odpowiedzi:

8

Co to jest Split-Brain?

Jak wspomniano w oficjalnej dokumentacji zarządzania Split-Brain dostarczonej przez RedHat, split-brain to stan, w którym niespójności w danych lub dostępności wynikające z utrzymywania dwóch oddzielnych zestawów danych mają pokrywający się zakres, albo z powodu serwerów w projekcie sieci, lub stan awarii związany z brakiem komunikacji między serwerami i synchronizacją ich danych. Jest to termin mający zastosowanie do replikacji konfiguracji.

Zwróć uwagę, że mówi się „stan awarii oparty na braku komunikacji między serwerami i synchronizacji ich danych” - z jakiegokolwiek prawdopodobieństwa - ale to nie znaczy, że twoje węzły mogą utracić połączenie. Element równorzędny może być jeszcze w klastrze i być połączony.

Rodzaje podzielonego mózgu:

Mamy trzy różne typy podzielonego mózgu i, o ile widzę, twój jest podzielony. Aby wyjaśnić trzy typy podzielonego mózgu:

  • Dane z podzielonym mózgiem: Zawartość pliku w podzielonym mózgu jest różna dla różnych par replik i automatyczne leczenie nie jest możliwe.

  • Metadane split-brain :, Metadane plików (przykład, atrybut rozszerzony zdefiniowany przez użytkownika) są różne i automatyczne leczenie nie jest możliwe.

  • Wpis podzielony mózg: Dzieje się tak, gdy plik ma różne gfids na każdej parze repliki.


Co to jest GFID?

Wewnętrzny identyfikator pliku GlusterFS (GFID) to identyfikator użytkownika, który jest unikalny dla każdego pliku w całym klastrze. Jest to analogiczne do numeru i-węzła w normalnym systemie plików. GFID pliku jest przechowywany w jego xattr o nazwie trusted.gfid. Aby znaleźć ścieżkę z GFID, gorąco polecam przeczytanie tego oficjalnego artykułu dostarczonego przez GlusterFS.


Jak rozwiązać problem podziału mózgu?

Istnieje wiele metod zapobiegania występowaniu podziału mózgu, ale w celu jego rozwiązania należy usunąć odpowiednie pliki gfid-link. Pliki gfid-link znajdują się w katalogu .glusterfs w katalogu najwyższego poziomu cegły. Przy okazji, uważaj, że przed usunięciem linków gfid musisz upewnić się, że nie ma żadnych twardych linków do plików znajdujących się w tej cegle. Jeśli istnieją twarde linki, należy je również usunąć. Następnie możesz użyć procesu samoleczenia, uruchamiając następujące polecenia.

W międzyczasie, aby wyświetlić listę plików na woluminie, które są w stanie podziału mózgu, możesz użyć:

# gluster volume heal VOLNAME info split-brain

Należy również pamiętać, że w przypadku replikowanych woluminów, gdy cegła przechodzi w tryb offline i wraca do trybu online, do ponownego zsynchronizowania wszystkich replik wymagane jest samoleczenie.

Aby sprawdzić stan leczenia woluminów i plików, możesz użyć:

# gluster volume heal VOLNAME info

Ponieważ używasz wersji 3.5, nie masz automatycznego leczenia. Więc po wykonaniu wyżej wymienionych kroków musisz uruchomić samoleczenie. Aby to zrobić:

  • Tylko w przypadku plików wymagających leczenia:

    # gluster volume heal VOLNAME

  • Na wszystkich plikach:

    # gluster volume heal VOLNAME full

Mam nadzieję, że pomoże ci to rozwiązać problem. Proszę przeczytać oficjalne dokumenty w celu uzyskania dalszych informacji. Twoje zdrowie.

FarazX
źródło
2

Myślę, że dokument jest dość przejrzysty, podał nawet podobny przykład.

I dla komend leczniczych Gluesterfs, takich jak

gluster objętość leczyć ** VOLNAME ** split-brain latest-mtime ** PLIK **

PLIK może być pełną nazwą pliku widoczną z katalogu głównego wolumenu (lub) reprezentacją pliku gfid-string

Więc nie potrzebujesz się o to martwić.

I podczas konwersji GFID na ścieżkę mówi:

Wewnętrzny identyfikator pliku GlusterFS (GFID) to identyfikator użytkownika, który jest unikalny dla każdego pliku w całym klastrze.

ten skrypt może powiedzieć, która nazwa pliku należy do której gfid, ale nastąpił podział mózgu, może nie mieć nazwy pliku.

Używasz wersji 3.5 i nie masz półautomatycznego programu naprawczego cmd, więc może być konieczne samodzielne naprawienie konfliktu, co zwykle oznacza podjęcie decyzji, który plik gfid powinien zostać usunięty.

pingz
źródło
Wydaje się, że moja wersja Glustera nie ma tego polecenia, w przeciwnym razie tak, to proste. Poza tym nie mam nazw plików, mam identyfikatory.
pupeno
2

Jak to naprawić?

Rozdzielczość podzielonego mózgu można znaleźć tutaj . W przypadku, gdy niewiele by to pomogło, instrukcja tutaj powinna wykonać zadanie. W przypadku widzę też artykuł pomocny.

Jak uniknąć podziału mózgu.

Ochrona przed partycjami sieci odbywa się za pomocą algorytmu kworum głosowania. W przypadku awarii hosta lub scenariusza podzielonego mózgu, w którym węzły nadal działają, ale nie mogą się już komunikować, pozostałe węzły lub węzły w klastrze ścigają się, aby umieścić rezerwację SCSI na dysku świadka. W przypadku podzielonego mózgu świadek pomoże zdecydować, który z gospodarzy, który trzyma kopię danych, powinien przejąć kontrolę.

Kilka przykładów.

VMware VSAN pozwala na uruchamianie 2-węzłowego klastra z dyskiem-świadkiem uruchomionym na 3. hoście lub w chmurze. Źródło

Wirtualna sieć SAN StarWind działa tylko w konfiguracji 2-węzłów przy użyciu usługi Microsoft Failover Cluster, która zawiera także mechanizm głosowania kworum, aby uniknąć problemu podziału mózgu. Źródło

W obu przypadkach sieć Heartbeat służy do obsługi / monitorowania komunikacji między węzłami i kworum. Aby uniknąć podziału mózgu, widzę, że obowiązkowe jest korzystanie z nadmiarowych kanałów pulsu.

Mr. Raspberry
źródło
1

podzielony mózg występuje, gdy dwa węzły klastra są odłączone. Każdy węzeł uważa, że ​​drugi nie działa.

podzielony mózg

Aby to naprawić, musisz zrozumieć, dlaczego twoje dwa węzły nie rozmawiają już ze sobą.

bgtvfr
źródło