Dodanie obsługi szafy Cassandra

W tej sekcji znajdziesz ogólne wskazówki dotyczące skalowania operacji Cassandra przez zapewnienie Cassandra w Apigee Edge dla chmury prywatnej świadomości szafy serwerowej.

Więcej informacji o tym, dlaczego ważne jest, aby pierścień Cassandra był świadomy szafy, znajdziesz w tych materiałach:

Czym jest szafa rack?

Szafa Cassandra to grupa logiczna węzłów Cassandra w pierścieniu. Cassandra używa szaf, aby zapewnić dystrybucję replik między różnymi grupami logicznymi. W rezultacie operacje są wysyłane nie tylko do jednego węzła, ale do wielu węzłów, z których każdy znajduje się w osobnym stojaku, co zapewnia większą odporność na błędy i dostępność.

Przykłady w tej sekcji używają 3 szaf Cassandra, czyli liczby szaf obsługiwanych przez Apigee w topologiach produkcyjnych.

Domyślna instalacja Cassandra w Apigee Edge dla chmury prywatnej zakłada, że istnieje pojedyncza szafa logiczna i umieszcza w niej wszystkie węzły w centrum danych. Chociaż ta konfiguracja jest prosta w instalacji i zarządzaniu, jest podatna na awarie, jeśli operacja nie powiedzie się w jednym z tych węzłów.

Poniższy obraz przedstawia domyślną konfigurację pierścienia Cassandra:

1 szafa rack z 3 węzłami
(Rysunek 1) Konfiguracja domyślna: wszystkie węzły w jednej szafie

W bardziej rozbudowanej konfiguracji każdy węzeł byłby przypisany do osobnej szafy, a operacje byłyby wykonywane również na replikach w każdej z tych szaf.

Na ilustracji poniżej widać pierścień z 3 węzłami. Ten obraz przedstawia kolejność, w jakiej operacje są replikowane w pierścieniu (zgodnie z ruchem wskazówek zegara), i podkreśla fakt, że żadne 2 węzły nie znajdują się w tej samej szafie:

3 szafy, po 1 węźle w każdej szafie
(Rysunek 2) Konfiguracja uwzględniająca szafy: 3 węzły, po jednym w każdej szafie

W tej konfiguracji operacje są wysyłane do węzła, ale też do replik tego węzła w innych szafach (w kolejności zgodnej z ruchem wskazówek zegara).

Dodaj świadomość szafy (z 3 węzłami)

Wszystkie produkcyjne topologie instalacji Apigee Edge dla chmury prywatnej mają co najmniej 3 węzły Cassandra, które w tej sekcji są określane jako „IP1”, „IP2” i „IP3”. Domyślnie każdy z tych węzłów znajduje się w tej samej szafie „ra-1”.

W tej sekcji opisano, jak przypisać węzły Cassandra do oddzielnych szaf, aby wszystkie operacje były wysyłane do węzłów replik w oddzielnych grupach logicznych w pierścieniu.

Aby przypisać węzły Cassandra do różnych szaf podczas instalacji:

  1. Przed uruchomieniem instalatora zaloguj się w węźle Cassandra i otwórz do edycji ten plik konfiguracji instalacji dyskretnej:
    /opt/silent.conf

    Jeśli plik nie istnieje, utwórz go i upewnij się, że użytkownik „apigee” jest jego właścicielem.

  2. Edytuj właściwość CASS_HOSTS, czyli rozdzielaną spacjami listę adresów IP (nie wpisów DNS ani nazw hostów), która używa tej składni:
    CASS_HOSTS="IP_address:data_center_number,rack_number [...]"

    Wartość domyślna to pierścień Cassandra z 3 węzłami, z których każdy jest przypisany do szafy 1 i centrum danych 1, jak w tym przykładzie:

    CASS_HOSTS="IP1:1,1 IP2:1,1 IP3:1,1"
  3. Zmień przypisania szaf, tak aby węzeł 2 był przypisany do szafy 2, a węzeł 3 do szafy 3, jak w tym przykładzie:
    CASS_HOSTS="IP1:1,1 IP2:1,2 IP3:1,3"

    Zmieniając przypisania szaf, instruujesz Cassandrę, aby utworzyła 2 dodatkowe grupy logiczne (szafy), które następnie udostępniają repliki otrzymujące wszystkie operacje otrzymane przez pierwszy węzeł.

    Więcej informacji o używaniu właściwości konfiguracji CASS_HOSTS znajdziesz w dokumentacji pliku konfiguracji Edge.

  4. Zapisz zmiany w pliku konfiguracji i wykonaj to polecenie, aby zainstalować Cassandrę ze zaktualizowaną konfiguracją:
    /opt/apigee/apigee-setup/bin/setup.sh -p c -f path/to/silent/config

    Na przykład:

    /opt/apigee/apigee-setup/bin/setup.sh -p c -f /opt/silent.conf
  5. Powtórz tę procedurę dla każdego węzła Cassandra w pierścieniu w kolejności, w jakiej węzły są przypisane we właściwości CASS_HOSTS. W takim przypadku musisz zainstalować Cassandrę w tej kolejności:
    1. Węzeł 1 (IP1)
    2. Węzeł 2 (IP2)
    3. Węzeł 3 (IP3)

Po instalacji sprawdź konfigurację Cassandra.

Sprawdzanie konfiguracji Cassandra

Po zainstalowaniu konfiguracji Cassandra uwzględniającej szafy możesz sprawdzić, czy węzły są przypisane do różnych szaf, używając polecenia nodetool status, jak w tym przykładzie:

/opt/apigee/apigee-cassandra/bin/nodetool status

(Wykonaj to polecenie na jednym z węzłów Cassandra).

Wyniki powinny wyglądać podobnie do poniższych, gdzie kolumna Rack (Szafa) pokazuje różne identyfikatory szaf dla każdego węzła:

Datacenter: dc-1
========================
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
--  Address         Load       Tokens  Owns    Host ID                             Rack
UN  IP1   737 MB  256     ?     554d4498-e683-4a53-b0a5-e37a9731bc5c     ra-1
UN  IP2   744 MB  256     ?     cf8b7abf-5c5c-4361-9c2f-59e988d52da3     ra-2
UN  IP3   723 MB  256     ?     48e0384d-738f-4589-aa3a-08dc5bd5a736     ra-3

Jeśli włączono uwierzytelnianie JMX dla Cassandra, musisz też przekazać nazwę użytkownika i hasło do nodetool. Więcej informacji znajdziesz w artykule o zarządzaniu węzłami klastra za pomocą narzędzia nodetool.

Instalowanie pierścienia z 6 węzłami

Aby uzyskać dodatkową nadmiarowość, możesz rozszerzyć pierścień Cassandra do 6 węzłów. W tym przypadku przypisujesz po 2 węzły do każdej z 3 szaf. Ta konfiguracja wymaga 3 dodatkowych węzłów: węzła 4 (IP4), węzła 5 (IP5) i węzła 6 (IP6).

Ilustracja poniżej przedstawia kolejność, w jakiej operacje są replikowane w pierścieniu (zgodnie z ruchem wskazówek zegara), i podkreśla fakt, że podczas replikacji żadne 2 sąsiadujące węzły nie znajdują się w tej samej szafie:

3 szafy, po 2 węzły w każdej szafie
(Rysunek 3) 6-węzłowy pierścień Cassandra: 2 węzły w każdej z 3 szaf

W tej konfiguracji każdy węzeł ma 2 dodatkowe repliki: po jednej w każdym z pozostałych 2 stojaków. Na przykład węzeł 1 w szafie 1 ma replikę w szafie 2 i szafie 3. Operacje wysyłane do węzła 1 są też wysyłane do replik w innych szafach w kolejności zgodnej z ruchem wskazówek zegara.

Aby rozszerzyć pierścień Cassandra z 3 węzłami do pierścienia z 6 węzłami, skonfiguruj węzły w pliku konfiguracji instalacji dyskretnej w następujący sposób:

CASS_HOSTS="IP1:1,1 IP4:1,3 IP2:1,2 IP5:1,1 IP3:1,3 IP6:1,2"

Podobnie jak w przypadku pierścienia z 3 węzłami, musisz zainstalować system Cassandra w tej samej kolejności, w jakiej węzły pojawiają się we właściwości CASS_HOSTS:

  1. Węzeł 1 (IP1)
  2. Węzeł 4 (IP4)*
  3. Węzeł 2 (IP2)
  4. Węzeł 5 (IP5)
  5. Węzeł 3 (IP3)
  6. Node 6 (IP6)

* Wprowadź zmiany w pliku konfiguracji instalacji dyskretnej przed uruchomieniem narzędzia konfiguracji na czwartym węźle (drugim komputerze w kolejności instalacji Cassandra).

Rozwiń do 12 węzłów

Aby jeszcze bardziej zwiększyć odporność na awarie i dostępność, możesz zwiększyć liczbę węzłów Cassandra w pierścieniu z 6 do 12. Ta konfiguracja wymaga dodatkowych 6 węzłów (IP7–IP12).

Ilustracja poniżej przedstawia kolejność, w jakiej operacje są replikowane w pierścieniu (zgodnie z ruchem wskazówek zegara), i podkreśla fakt, że podczas replikacji żadne 2 sąsiadujące węzły nie znajdują się w tej samej szafie:

3 szafy, po 4 węzły w każdej szafie
(Rysunek 4) 12-węzłowy pierścień Cassandra: 4 węzły w każdej z 3 szaf

Procedura instalacji pierścienia z 12 węzłami jest podobna do instalacji pierścienia z 3 lub 6 węzłami: ustaw CASS_HOSTS na podane wartości i uruchom instalator w określonej kolejności.

Aby rozszerzyć pierścień Cassandra do 12 węzłów, skonfiguruj węzły w następujący sposób w pliku konfiguracji instalacji nienadzorowanej:

CASS_HOSTS="IP1:1,1 IP7:1,2 IP4:1,3 IP8:1,1 IP2:1,2 IP9:1,3 IP5:1,1 IP10:1,2 IP3:1,3 IP11:1,1 IP6:1,2 IP12:1,3"

Podobnie jak w przypadku pierścieni z 3 i 6 węzłami, musisz uruchomić instalator na węzłach w kolejności, w jakiej pojawiają się w pliku konfiguracji:

  1. Węzeł 1 (IP1)
  2. Węzeł 7 (IP7)*
  3. Węzeł 4 (IP4)
  4. Węzeł 8 (IP8)
  5. Węzeł 2 (IP2)
  6. Węzeł 9 (IP9)
  7. Węzeł 5 (IP5)
  8. Węzeł 10 (IP10)
  9. Węzeł 3 (IP3)
  10. Węzeł 11 (IP11)
  11. Node 6 (IP6)
  12. Węzeł 12 (IP12)

* Te zmiany musisz wprowadzić przed zainstalowaniem Apigee Edge dla chmury prywatnej w siódmym węźle (drugim komputerze w kolejności instalacji Cassandry).