Informacje o konserwacji ZooKeeper

Zestawy ZooKeeper zostały zaprojektowane tak, aby pozostawały funkcjonalne bez utraty danych co najmniej jeden węzeł ZooKeeper. Tę odporność można skutecznie wykorzystać do konserwacji Węzły ZooKeeper bez przestoju systemu.

Informacje o ZooKeeper i Edge

W Edge węzły ZooKeeper zawierają dane konfiguracyjne dotyczące lokalizacji i konfiguracji różnych komponentów Edge i powiadamia o nich poszczególne komponenty. Wszystkie w obsługiwanych topologach brzegu systemu produkcyjnego wykorzystywane są co najmniej 3 zbiory ZooKeeper węzłów.

Użyj właściwości ZK_HOSTS i ZK_CLIENT_HOSTS w Plik konfiguracyjny Edge do określania węzłów ZooKeeper. 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 przez tę funkcję Tylko w centrum danych. Adresy IP muszą być podane w tej samej kolejności we wszystkich węzłach ZooKeeper w w centrum danych.

    W jednej instalacji centrum danych są to te same węzły określone przez ZK_HOSTS. W wiele centrów danych, plik konfiguracyjny Edge dla każdego centrum danych powinien zawierać tylko węzłów ZooKeeper w tym centrum danych.

Domyślnie wszystkie węzły ZooKeeper są oznaczone jako węzły wyborców. Oznacza to, że węzły wszyscy biorą udział w wyborze lidera ZooKeeper. Możesz użyć parametru Modyfikator :observer z wartością ZK_HOSTS wskazującą, że węzeł jest węzłem obserwatora, a nie wyborcą. Węzeł obserwatora nie uczestniczy wybór lidera.

Podczas tworzenia wielu danych brzegowych zwykle określa się modyfikator :observer lub gdy pojedyncze centrum danych ma dużą liczbę węzłów ZooKeeper. Na przykład w parametrze Instalacja Edge na 12 hostach 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"

W przypadku Centrum danych 2:

ZK_HOSTS="$IP1 $IP2 $IP3 $IP7 $IP8 $IP9:observer"
ZK_CLIENT_HOSTS="$IP7 $IP8 $IP9"

Poniższe sekcje zawierają więcej informacji o liderze, wyborcy węzłów obserwatora i omówić kwestie związane z dodaniem takich węzłów.

O liderach, obserwatorach, wyborców i obserwatorów

W przypadku instalacji ZooKeeper z wieloma węzłami 1 z nich jest określany jako wiodący. 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 nowa wiadomość Procesor został dodany do Edge. Ta informacja jest wysyłana do lidera ZooKeeper. Wszyscy obserwatorzy a potem replikuj dane.

Podczas instalacji Edge wyznaczasz każdy węzeł ZooKeeper jako wyborcę lub obserwatora. lider jest następnie wybierany przez wszystkie węzły wyborców ZooKeeper. Jedynym wymogiem dotyczącym wyboru przywódcą jest konieczność kworum działających węzłów wyborczych ZooKeeper. 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ęzłów wyborczych, nie można wybrać lidera. W takim przypadku Właściciel zoo nie może realizować próśb. Oznacza to, że nie możesz wysłać żądania do zarządzania urządzeniami brzegowymi Serwer, przetwarzaj żądania do interfejsu API lub loguj się w interfejsie Edge, dopóki kworum nie zostanie przywrócone.

Na przykład w przypadku pojedynczej instalacji w centrum danych:

  • Zainstalowano 3 węzły ZooKeeper
  • Wszystkie węzły ZooKeeper to głosujący
  • Korum to 2 funkcjonujące węzły wyborcze
  • 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 dwa węzły wyborcze i jeden obserwator
  • Korum wynika z liczby 5 głosujących w obu centrach danych, 3 funkcjonujące węzły wyborcze
  • Jeśli dostępnych jest maksymalnie dwóch węzłów wyborczych, zespół ZooKeeper nie będzie mógł funkcja

Istotne kwestie dotyczące dodawania węzłów jako głosujących obserwatorzy

Wymagania systemowe mogą wymagać dodania dodatkowych węzłów ZooKeeper do Edge instalacji. Dokumentacja dodawania węzłów ZooKeeper. opisuje sposób dodawania kolejnych węzłów ZooKeeper do Edge. Podczas dodawania węzłów ZooKeeper musisz: uwzględnia rodzaj węzłów do dodania: wyborca lub obserwator.

Musisz mieć wystarczającą liczbę węzłów wyborczych, aby w razie awarii co najmniej jednego z nich zespół ZooKeeper wciąż może funkcjonować, co oznacza, że cały czas jest kworum wyborców. i dostępności informacji. Dodając węzły głosujących, zwiększasz kworum, więc tolerować, że więcej węzłów wyborczych nie działa.

Jednak dodanie kolejnych węzłów głosujących może negatywnie wpłynąć na wydajność zapisu, ponieważ zapis wymaga kworum zgody co do lidera. Czas potrzebny na określenie zwycięzcy zależy od liczby węzłów wyborczych, która wzrasta w miarę dodawania kolejnych takich węzłów. Dlatego nie chcesz, aby wszystkie węzły miały być głosowane.

Zamiast dodawać węzły wyborców, możesz dodać węzły obserwatorów. Dodawanie węzłów obserwatora wzrasta ogólną wydajność systemu odczytu bez dodatkowego dokładności przy wybieraniu lidera, ponieważ węzły obserwatorów nie głosują i nie wpływają na 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.

Apigee zaleca, aby w jednym centrum danych nie było więcej niż 5 głosujących w zależności od liczby węzłów obserwatora. W 2 centrach danych Apigee zaleca, aby nie było więcej niż dziewięciu głosujących (pięć w jednym centrum danych, a 4 w drugim). Potem możesz dodać ich tyle węzłów Obserwatorzy, zgodnie z wymaganiami systemowymi.

Usuwanie węzła Zookeeper

Jest wiele powodów, dla których warto usunąć węzeł Zookeeper. na przykład węzeł ma został uszkodzony lub został dodany do niewłaściwego środowiska.

W tej sekcji opisano, jak usunąć węzeł Zookeeper, gdy węzeł jest wyłączony. i osiągalny cel.

Aby usunąć węzeł Zookeeper:

  1. Edytuj plik konfiguracji cichej i usuń adres IP węzła Zookeeper, który które chcesz usunąć.
  2. Uruchom ponownie polecenie setup dla Zookeeper, aby ponownie skonfigurować pozostałą część ZooKeeper węzłów:
    /opt/apigee/apigee-service/bin/apigee-service apigee-zookeeper setup -f updated_config_file
  3. Ponownie uruchom wszystkie węzły Zookeeper:
    /opt/apigee/apigee-service/bin/apigee-service apigee-zookeeper restart
  4. Skonfiguruj ponownie węzeł serwera zarządzania:
    /opt/apigee/apigee-service/bin/apigee-service edge-management-server setup -f updated_config_file
    /opt/apigee/apigee-service/bin/apigee-service edge-management-server restart
  5. Skonfiguruj ponownie wszystkie routery:
    /opt/apigee/apigee-service/bin/apigee-service edge-router setup -f updated_config_file
    /opt/apigee/apigee-service/bin/apigee-service edge-router restart
  6. Skonfiguruj ponownie wszystkie procesory wiadomości:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor setup -f updated_config_file
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
  7. Skonfiguruj ponownie wszystkie węzły Qpid:
    /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server setup -f updated_config_file
    /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server restart
  8. Skonfiguruj ponownie wszystkie węzły Postgres:
    /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server setup -f updated_config_file
    /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server restart

Uwagi na temat konserwacji

Konserwację ZooKeeper można przeprowadzić na w pełni sprawnym zestawie bez przestojów, wykonywać ją 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 całkowitą liczbę węzłów wyborczych, które mogą .

Konserwacja w wiele centrów danych

Przy pracy z wieloma centrami danych należy pamiętać, że zespół ZooKeeper nie rozróżniają między centrami danych. Zestawy ZooKeeper wyświetlają wszystkie węzły ZooKeeper we wszystkich Centra danych jako całość.

Lokalizacja węzłów wyborczych w danym centrum danych nie jest brana pod uwagę przy wykonywaniu przez ZooKeeper kworum. Poszczególne węzły mogą zejść poniżej założeń między centrami danych, ale tak długo, jak stanowi to kworum zachwycają w całym zespole, a ZooKeeper działa bez zarzutu.

Konsekwencje konserwacji

Na różne czasy trzeba wyłączyć węzeł ZooKeeper w celu konserwacji, np. wyborca lub obserwatora. 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

Wykonuj procedury konserwacyjne dopiero po upewnieniu się, że 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, grupa ZooKeeper o dowolnej wielkości może tolerować utraty jednego węzła bez utraty danych ani istotnego 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):

  1. Jeśli nie jest on zainstalowany w węźle ZooKeeper, zainstaluj nc:
    sudo yum install nc
  2. Uruchom w węźle poniższe polecenie nc, gdzie 2181 to port ZooKeeper:
    echo stat | nc localhost 2181

    Powinny pojawić się dane wyjściowe w formularzu:

    Zookeeper version: 3.4.5-1392090,
    built on 09/30/2012 17:52 GMT
    Clients: /a.b.c.d:xxxx[0](queued=0,recved=1,sent=0)
    Latency min/avg/max: 0/0/0
    Received: 1
    Sent: 0
    Connections: 1
    Outstanding: 0
    Zxid: 0xc00000044
    Mode: follower
    Node count: 653

    W wierszu Mode danych wyjściowych węzłów powinien być widoczny tekst observer, leader lub follower (co oznacza wyborcę, który nie jest liderem) w zależności od konfiguracji węzła.

  3. Powtórz kroki 1 i 2 w 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 w domu pozostaje funkcjonalny.
  • Usunięcie węzła obserwatora nie ma wpływu na kworum ani możliwość wyboru lidera.
  • Kworum jest obliczany dla wszystkich węzłów ZooKeeper we wszystkich centrach danych.
  • Kontynuuj konserwację na następnym serwerze, gdy poprzedni serwer zacznie działać.
  • Użyj polecenia nc, aby sprawdzić węzeł ZooKeeper.