Dodanie obsługi szafy Cassandra

Ta sekcja zawiera ogólne wskazówki dotyczące skalowania operacji Cassandra przez informowanie Cassandra w Apigee Edge dla Private Cloud.

Więcej informacji o tym, dlaczego warto powiadamiać o tym na stojaku pierścieniowym Cassandra, znajdziesz w tych materiałach:

Co to jest stojak?

Stojak Cassandra to logiczna grupa węzłów Cassandra w pierścieniu. Cassandra wykorzystuje stojaki, dzięki czemu repliki są rozmieszczone w różnych grupach logicznych. W rezultacie operacje są wysyłane nie tylko do 1 węzła, ale do wielu węzłów, każdy w osobnej stelażu, co zapewnia większą odporność na awarie i większą dostępność.

W przykładach w tej sekcji wykorzystywane są 3 stojaki Cassandra, czyli liczba stojaków obsługiwanych przez Apigee w topologii produkcyjnych.

Domyślna instalacja Cassandra w Apigee Edge for Private Cloud zakłada pojedynczy stojak logiczny i umieszcza w nim wszystkie węzły w centrum danych. Mimo że taka konfiguracja jest łatwa do zainstalowania i zarządzania, w przypadku któregoś z tych węzłów operacja może zakończyć się niepowodzeniem.

Poniższy przykład przedstawia domyślną konfigurację pierścienia Cassandra:

1 stojak z 3 węzłami
(Rysunek 1) Konfiguracja domyślna: wszystkie węzły na jednym stojaku

W bardziej solidnej konfiguracji każdy węzeł zostałby przypisany do osobnego stojaka, a operacje byłyby również wykonywane na replikach w każdym z tych stojaków.

Poniższy przykład przedstawia pierścień z 3 węzłami. Ten obraz przedstawia kolejność, w jakiej operacje są replikowane w pierścieniu (w prawo), oraz podkreśla fakt, że żadne 2 węzły nie znajdują się na tej samej scenie:

3 stojaki po 1 węzeł w każdym stojaku
(Ilustracja 2) Konfiguracja uwzględniająca szafy: 3 węzły, po jednym na każdym stojaku

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

Dodaj informacje o stojaku (z 3 węzłami)

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

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

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

  1. Zanim uruchomisz instalatora, zaloguj się w węźle Cassandra i otwórz ten plik cichej konfiguracji do edycji:
    /opt/silent.conf

    Jeśli plik nie istnieje, utwórz go i pamiętaj, aby przyznać użytkownikowi „apigee” uprawnienia właściciela.

  2. Edytuj właściwość CASS_HOSTS, czyli rozdzielaną spacjami listę adresów IP (nie DNS ani nazwy hosta) o takiej składni:
    CASS_HOSTS="IP_address:data_center_number,rack_number [...]"

    Wartością domyślną jest 3-węzły pierścień Cassandra z każdym węzłem przypisanym do stojaka 1 i centrum danych 1, jak w tym przykładzie:

    CASS_HOSTS="IP1:1,1 IP2:1,1 IP3:1,1"
  3. Zmień przypisania stojaka tak, aby węzeł 2 był przypisany do stojaka 2, a węzeł 3 do stojaka 3, jak pokazano w poniższym przykładzie:
    CASS_HOSTS="IP1:1,1 IP2:1,2 IP3:1,3"

    Zmieniając przypisania szafy, prosisz Cassandra o utworzenie 2 dodatkowych grup logicznych (stojaków), które będą następnie udostępniać repliki odbierające wszystkie operacje odebrane przez pierwszy węzeł.

    Więcej informacji o korzystaniu z właściwości konfiguracji CASS_HOSTS znajdziesz w dokumentacji pliku konfiguracji brzegu.

  4. Zapisz zmiany w pliku konfiguracji i wykonaj to polecenie, aby zainstalować Cassandra 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ą przypisywane we właściwości CASS_HOSTS. W tym przypadku musisz zainstalować Cassandra w tej kolejności:
    1. Węzeł 1 (IP1)
    2. Węzeł 2 (IP2)
    3. Węzeł 3 (IP3)

Po instalacji sprawdź konfigurację Cassandra.

Sprawdź konfigurację Cassandra

Po zainstalowaniu konfiguracji Cassandra działającej na podstawie szaf rackowych możesz sprawdzić, czy węzły są przypisane do różnych szaf rackowych, używając polecenia nodetool status, jak pokazano w poniższym przykładzie:

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

(To polecenie wykonujesz w jednym z węzłów Cassandra).

Wyniki powinny wyglądać podobnie do tych poniżej, gdzie kolumna Rack zawiera różne identyfikatory stojaków 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 masz włączone uwierzytelnianie JMX dla Cassandra, musisz też przekazać swoją 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 węzła.

Montaż pierścienia z 6 węzłami

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

Poniższy przykład przedstawia kolejność replikacji operacji w pierścieniu (w prawo) oraz podkreśla fakt, że podczas replikacji żadne 2 sąsiednie węzły nie znajdują się w tej samej stelacji:

3 stojaki po 2 węzły w każdym stojaku
(Ilustracja 3) Ring o 6 węzłach: 2 węzły na każdym z 3 stojaków

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

Aby rozwinąć pierścień Cassandra z 3 węzłami do sześciowęzłego pierścienia Cassandra, skonfiguruj węzły 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ć Cassandra w tej samej kolejności, w jakiej węzły występują 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. Węzeł 6 (IP6)

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

Rozwiń do 12 węzłów

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

Poniższy przykład przedstawia kolejność replikacji operacji w pierścieniu (w prawo) oraz podkreśla fakt, że podczas replikacji żadne 2 sąsiednie węzły nie znajdują się w tej samej stelacji:

3 stojaki po 4 węzły w każdym stojaku
(Rys. 4) Ring z 12 węzłami Cassandra: 4 węzły w każdym z 3 stojaków

Procedura instalowania 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 rozwinąć do pierścienia Cassandra z 12 węzłami, skonfiguruj je w pliku konfiguracji cichym w następujący sposób:

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"

Tak jak w przypadku pierścieni z 3 i 6 węzłami, instalator musisz uruchomić w węzłach w takiej kolejności, w jakiej węzły występują 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. Węzeł 6 (IP6)
  12. Węzeł 12 (IP12)

* Musisz wprowadzić te zmiany przed zainstalowaniem Apigee Edge for Private Cloud w siódmym węźle (drugim maszynie w kolejności instalacji Cassandra).