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:
- Replikacja (dokumentacja Cassandra)
- Strategia dotycząca architektury i replikacji Cassandra
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:
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:
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:
- 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.
- 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"
- 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. - 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
- 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:- Węzeł 1 (IP1)
- Węzeł 2 (IP2)
- 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:
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
:
- Węzeł 1 (IP1)
- Węzeł 4 (IP4)*
- Węzeł 2 (IP2)
- Węzeł 5 (IP5)
- Węzeł 3 (IP3)
- 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:
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:
- 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)
- Węzeł 6 (IP6)
- 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).