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
Odpowiedzi:
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ć:
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ć:
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.
źródło
Myślę, że dokument jest dość przejrzysty, podał nawet podobny przykład.
I dla komend leczniczych Gluesterfs, takich jak
Więc nie potrzebujesz się o to martwić.
I podczas konwersji GFID na ścieżkę mówi:
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.
źródło
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.
źródło
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.
Aby to naprawić, musisz zrozumieć, dlaczego twoje dwa węzły nie rozmawiają już ze sobą.
źródło