Edge for Private Cloud w wersji 4.17.01
Zestawy ZooKeeper zostały zaprojektowane tak, aby pozostawały funkcjonalne bez utraty danych co najmniej jeden węzeł ZooKeeper. Ta odporność może być skutecznie wykorzystywana do przeprowadzania konserwacji węzłów ZooKeeper bez przestojów w działaniu systemu.
Informacje o ZooKeeper i Edge
W Edge węzły ZooKeeper zawierają dane konfiguracji dotyczące lokalizacji i konfiguracji różnych komponentów Edge oraz wysyłają powiadomienia o zmianach konfiguracji do różnych komponentów. Wszystkie obsługiwane topologie brzegu dla systemu produkcyjnego określają używanie co najmniej 3 zooKeeper węzłów.
Aby określić węzły ZooKeeper, użyj właściwości ZK_HOSTS i ZK_CLIENT_HOSTS w pliku konfiguracji Edge. Na przykład:
ZK_HOSTS="$IP1 $IP2 $IP3" ZK_CLIENT_HOSTS="$IP1 $IP2 $IP3"
gdzie:
- ZK_HOSTS – określa
adresy IP węzłów ZooKeeper. Adresy IP muszą być wymienione w tej samej kolejności we wszystkich węzłach ZooKeeper.
W środowisku wielu centrów danych należy wyświetlić wszystkie węzły ZooKeeper ze wszystkich centrów danych. - ZK_CLIENT_HOSTS –
Określa adresy IP węzłów ZooKeeper używanych tylko przez to centrum danych. Adres IP
Adresy muszą być wymienione w tej samej kolejności we wszystkich węzłach ZooKeeper w centrum danych.
W przypadku pojedynczej instalacji Data Center są to te same węzły, które zostały określone przez parametr ZK_HOSTS. W wiele centrów danych, plik konfiguracyjny Edge dla każdego centrum danych powinien zawierać tylko Węzły ZooKeeper dla tego centrum danych
Domyślnie wszystkie węzły ZooKeeper są oznaczone jako węzły wyborców. Oznacza to, że wszystkie węzły biorą udział w wyborze lidera usługi ZooKeeper. Możesz użyć parametru Modyfikator „:observer” z parametrem ZK_HOSTS wskazujący, że jest to węzeł obserwatora, a nie głosujący. Węzeł obserwatora nie uczestniczy wybór lidera.
Zmiana „:observer” jest zwykle określana podczas tworzenia wielu centr danych peryferyjnych lub gdy pojedyncze centrum danych ma dużą liczbę węzłów ZooKeeper. Na przykład w parametrze 12-hostowa instalacja Edge z 2 centrami danych, ZooKeeper w węźle 9 w Centrum danych 2 to obserwator:
Następnie użyj następujących ustawień w pliku konfiguracyjnym Centrum danych 1:
ZK_HOSTS="$IP1 $IP2 $IP3 $IP7 $IP8 $IP9:observer" ZK_CLIENT_HOSTS="$IP1 $IP2 $IP3"
A w przypadku centrum danych
ZK_HOSTS="$IP1 $IP2 $IP3 $IP7 $IP8 $IP9:observer" ZK_CLIENT_HOSTS="$IP7 $IP8 $IP9"
O liderach, obserwatorach, wyborców i obserwatorów
W instalacji ZooKeeper z wieloma węzłami jeden z węzłów jest wyznaczany jako lider. Wszystkie pozostałe węzły ZooKeeper są oznaczane jako obserwatorzy. Odczyt może odbywać się Węzeł ZooKeeper, wszystkie żądania zapisu są przekazywane do lidera. Na przykład do Edge dodano nowy procesor wiadomości. Te informacje są zapisywane w zbiorze ZooKeeper. Wszyscy obserwatorzy a potem replikuj dane.
W momencie instalacji Edge każdy węzeł ZooKeeper jest wyznaczany jako głosujący lub obserwator. lider jest następnie wybierany przez wszystkie węzły wyborców ZooKeeper. Jedynym wymaganiem przy wyborze lidera jest to, że musi być dostępne kworum działających węzłów głosujących ZooKeepera. O kworum oznacza, że ponad połowa wszystkich węzłów ZooKeeper głosujących we wszystkich centrach danych jest i funkcjonalność.
Jeśli nie ma kworum w przypadku węzłów głosujących, nie można wybrać lidera. W takim przypadku Właściciel zoo nie może realizować próśb. Oznacza to, że do czasu przywrócenia kworum nie można wysyłać żądań do serwera Edge Management, przetwarzać żądań interfejsu Management API ani logować się w interfejsie Edge.
Na przykład w jednej instalacji Data Center:
- Zainstalowano 3 węzły ZooKeeper
- Wszystkie węzły ZooKeeper są głosujące
- Kworum to 2 działające węzły głosujące
- Jeśli dostępny jest tylko jeden węzeł wyborczy, zespół ZooKeeper nie będzie mógł funkcjonować.
W instalacji z dwoma centrami danych:
- Na każdym centrum danych zainstalowano trzy węzły ZooKeeper. Łącznie daje to 6 węzłów.
- Centrum danych 1 ma trzy węzły wyborcze
- Centrum danych 2 ma 2 węzły głosujące i 1 węzeł obserwujący
- Kworum jest oparte na 5 głosujących węzłach w obu centrach danych, a zatem na 3 działających węzłach głosujących
- Jeśli dostępne są tylko 2 węzły głosujące lub mniej, zestaw ZooKeeper nie może działać.
Dodawanie węzłów jako głosujących lub obserwatorów
Wymagania systemowe mogą wymagać dodania dodatkowych węzłów ZooKeeper do Edge instalacji. Dokumentacja Dodawanie węzłów ZooKeeper zawiera informacje o dodawaniu dodatkowych węzłów ZooKeeper do Edge. Podczas dodawania węzłów ZooKeeper musisz wziąć pod uwagę typ węzłów, które chcesz dodać: węzeł głosujący lub węzeł obserwujący.
Upewnij się, że masz wystarczającą liczbę węzłów głosujących, aby w przypadku awarii co najmniej jednego węzła głosującego zestaw ZooKeeper mógł nadal działać, co oznacza, że nadal jest dostępne kworum węzłów głosujących. Dodając węzły głosujących, zwiększasz kworum, więc tolerować, że więcej węzłów wyborczych nie działa.
Dodanie dodatkowych węzłów głosujących może jednak negatywnie wpłynąć na wydajność operacji zapisu, ponieważ operacje zapisu wymagają, aby kworum uzgodniło się co do lidera. Czas potrzebny na określenie lidera zależy od liczby węzłów głosujących, która rośnie wraz z dodawaniem kolejnych węzłów. Dlatego nie chcesz, aby wszystkie węzły były głosującymi.
Zamiast dodawać węzły głosujące, możesz dodać węzły obserwujące. Dodanie węzłów obserwujących zwiększa ogólną wydajność odczytu systemu bez zwiększania narzutu związanego z wyborem lidera, ponieważ węzły obserwujące nie głosują i nie wpływają na rozmiar kworum. Jeśli więc węzeł obserwatora przestanie działać, nie wpływa na możliwość wyboru lidera przez zespół. Jednak utrata obserwatora mogą pogorszyć wydajność odczytu zespołu ZooKeeper, ponieważ dla żądań danych usługi dostępnych jest mniej węzłów.
W jednym centrum danych Apigee zaleca, aby nie było więcej niż 5 głosujących niezależnie od liczby węzłów obserwujących. W przypadku 2 centrów danych Apigee zaleca, aby nie mieć więcej niż 9 głosujących (5 w jednym centrum danych i 4 w drugim). Następnie możesz dodać dowolną liczbę węzłów obserwatora, które są wymagane do spełnienia wymagań systemowych.
Uwagi na temat konserwacji
Konserwację ZooKeeper można przeprowadzić na działającym zespole bez przestojów, jeśli jest ona wykonywana na jednym węźle naraz. Upewnij się, że tylko jeden węzeł ZooKeeper nie działa możesz mieć pewność, że w każdej chwili masz kworumę węzłów wyborczych, które mogą .
Konserwacja w wielu centrach danych
Podczas pracy z wieloma centrami danych pamiętaj, że zestaw ZooKeeper nie rozróżnia centrów danych. Zestawy ZooKeeper wyświetlają wszystkie węzły ZooKeeper we wszystkich Centra danych jako całość.
Lokalizacja węzłów głosujących w danym centrum danych nie ma znaczenia podczas obliczania kworum przez ZooKeeper. Poszczególne węzły mogą przestać działać w różnych centrach danych, ale dopóki w całym zbiorze zachowana jest wymagana większość, usługa ZooKeeper będzie działać.
Wpływ na konserwację
W różnych momentach trzeba wyłączyć węzeł ZooKeepera na czas konserwacji, czy to węzeł głosujący, czy węzeł obserwujący. Konieczne może być na przykład uaktualnienie wersji Edge w węźle, maszyna hostująca ZooKeeper może ulec awarii lub węzeł może stać się niedostępny dla innego przyczyna, na przykład błąd sieci.
Jeśli węzeł, który nie działa, jest węzłem obserwatora, można spodziewać się niewielkiego pogorszenia działania zespołu ZooKeeper do momentu przywrócenia węzła. Jeśli węzeł jest wyborcą może wpłynąć na wydajność zespołu ZooKeeper z powodu utraty węzła, który uczestniczy w procesie wyborów na liderów. Niezależnie od tego, jaki jest powód, dla którego ważne jest utrzymanie kworum dostępnych węzłów wyborczych.
Procedura konserwacji
Wszelkie procedury konserwacji należy rozważyć dopiero po upewnieniu się, że urządzenie ZooKeeper jest funkcjonalny. Zakładamy przy tym, że węzły obserwatora działają i jest wystarczająco dużo węzłów wyborczych dostępnych podczas konserwacji, aby zachować kworum.
Gdy te warunki są spełnione, klaster ZooKeeper o dowolnej wielkości może tolerować utratę pojedynczego węzła w dowolnym momencie bez utraty danych lub znaczącego wpływu na wydajność. Ten pozwala na konserwację dowolnego węzła w zespole, dopóki jest on w jednym tylko jeden węzeł jednocześnie.
W ramach konserwacji wykonaj poniższe czynności, aby określić typ Węzeł ZooKeeper (lider, wyborca lub obserwator):
- Jeśli nie jest zainstalowany na węźle ZooKeeper, zainstaluj nc:
> sudo yum install nc - Uruchom na węźle to polecenie nc:
> echo stat | nc localhost 2181
gdzie 2181 to port ZooKeeper. Powinny pojawić się dane wyjściowe w formularzu:
Wersja Zookeeper: 3.4.5-1392090, utworzono 30.09.2012 o godz. 17:52 czasu GMT
Klienci: /a.b.c.d:xxxx[0](queued=0,recved=1,sent=0)
Czas oczekiwania min./śr./maks.: 0/0/0
Odebrano: 1
Wysłano: 0
Połączenia: 1
Oczekujące: 0
Zxid: 0xc00000044
Tryb: obserwator
Liczba węzłów: 653
W wierszu Mode danych wyjściowych dla węzłów powinien być widoczny atrybut obserwator, leader lub obserwator (czyli wyborca, który nie jest wiodący) w zależności od konfiguracji węzła.
Uwaga: w samodzielnej instalacji Edge z jednym węzłem ZooKeeper opcja Tryb jest ustawiona na samodzielny. - Powtórz kroki 1 i 2 na każdym węźle ZooKeeper.
Podsumowanie
Najlepszym sposobem konserwacji zespołu ZooKeeper jest wykonanie go w jednym węźle obecnie się znajdujesz. Pamiętaj:
- Musisz utrzymać kworum węzłów wyborczych w czasie prac konserwacyjnych, aby całość pozostaje funkcjonalna
- Wyłączenie węzła obserwatora nie ma wpływu na kworum ani na możliwość wyboru lidera.
- Kwarum jest obliczane na podstawie wszystkich węzłów ZooKeeper we wszystkich centrach danych.
- Przejdź do konserwacji następnego serwera po uruchomieniu poprzedniego.
- Sprawdzanie węzła ZooKeeper za pomocą polecenia nc