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:
- Replication (dokumentacja Cassandra)
- Architektura Cassandra i strategia współczynnika replikacji
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:
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:
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:
- 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.
- 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"
- 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_HOSTSznajdziesz w dokumentacji pliku konfiguracji Edge. - 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
- 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:- Węzeł 1 (IP1)
- Węzeł 2 (IP2)
- 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:
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:
- Węzeł 1 (IP1)
- Węzeł 4 (IP4)*
- Węzeł 2 (IP2)
- Węzeł 5 (IP5)
- Węzeł 3 (IP3)
- 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:
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:
- Węzeł 1 (IP1)
- Węzeł 7 (IP7)*
- Węzeł 4 (IP4)
- Węzeł 8 (IP8)
- Węzeł 2 (IP2)
- Węzeł 9 (IP9)
- Węzeł 5 (IP5)
- Węzeł 10 (IP10)
- Węzeł 3 (IP3)
- Węzeł 11 (IP11)
- Node 6 (IP6)
- 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).