Dodawanie węzłów Cassandra

Podczas dodawania węzłów Cassandra do klastra należy koniecznie wziąć pod uwagę te 2 kluczowe punkty:

  • Istniejące pozycje węzłów w pierścieniu Cassandra nie powinny się zmieniać w celu zminimalizowania strumieniowania i utrzymania zrównoważonego pierścienia.
  • Liczba węzłów we wszystkich centrach danych musi pozostać stała.

Aby osiągnąć pierwszy cel, należy podwajać liczbę węzłów w klastrze Cassandra za każdym razem, gdy dodajesz nowe węzły.

Jeśli na przykład rozpoczniesz od standardowej topologii 12-węzłów instalacji klastrów rozłożonych na 2 centra danych, będziesz mieć łącznie 6 węzłów Cassandra, a w każdym z nich będzie 3 węzły. Aby rozszerzyć ten klaster, dodaj 3 węzły do każdego centrum danych, zwiększając łączną liczbę węzłów do 12 (6 węzłów w każdym centrum danych). Jeśli wymagane jest dalsze rozszerzanie, należy dodać do każdego centrum danych sześć dodatkowych węzłów, co pozwoli uzyskać łączną liczbę węzłów wynoszącą 24 (12 w każdym centrum danych).

Ten dokument zawiera instrukcje dodawania 3 nowych węzłów Cassandra do istniejącej instalacji Edge for Private Cloud. Kolejne węzły można dodawać w ten sam sposób. Zawsze sprawdzaj, aby podczas rozwijania klastra podwoić liczbę węzłów.

Listę wymagań systemowych dla węzła Cassandra znajdziesz w sekcji Wymagania dotyczące instalacji.

Istniejąca konfiguracja Edge

We wszystkich obsługiwanych topologach Edge systemu produkcyjnego używane są 3 topologie Cassandra węzłów. Te 3 węzły są określone dla właściwości CASS_HOSTS w pliku konfiguracyjnym. jak poniżej:

IP1=10.10.0.1
IP2=10.10.0.2
IP3=10.10.0.3
HOSTIP=$(hostname -i)
ADMIN_EMAIL=opdk@google.com
APIGEE_ADMINPW=Secret123
LICENSE_FILE=/tmp/license.txt
MSIP=$IP1 
USE_LDAP_REMOTE_HOST=n
LDAP_TYPE=1
APIGEE_LDAPPW=secret
MP_POD=gateway
REGION=dc-1
ZK_HOSTS="$IP1 $IP2 $IP3"
ZK_CLIENT_HOSTS="$IP1 $IP2 $IP3"
# Must use IP addresses for CASS_HOSTS, not DNS names.
CASS_HOSTS="$IP1:1,1 $IP2:1,1 $IP3:1,1" 
SKIP_SMTP=n
SMTPHOST=smtp.example.com
SMTPUSER=smtp@example.com
SMTPPASSWORD=smtppwd

Pamiętaj, że właściwość REGION określa nazwę regionu jako „dc-1”. Potrzebujemy go podczas dodawania nowych węzłów Cassandra.

Modyfikowanie pliku konfiguracyjnego w celu dodania i trzech nowych węzłów Cassandra,

W tym przykładzie 3 nowe węzły Cassandra znajdują się pod tymi adresami IP:

  • 10.10.0.14
  • 10.10.0.15
  • 10.10.0.16

Aby dodać nowe węzły, musisz najpierw zaktualizować plik konfiguracji Edge:

IP1=10.10.0.1
IP2=10.10.0.2
IP3=10.10.0.3
# Add the new node IP addresses.
IP14=10.10.0.14
IP15=10.10.0.15
IP16=10.10.0.16
HOSTIP=$(hostname -i)
ADMIN_EMAIL=opdk@google.com
...
# Update CASS_HOSTS to add each new node after an existing nodes. 
# Must use IP addresses for CASS_HOSTS, not DNS names.
CASS_HOSTS="$IP1:1,1 $IP14:1,1 $IP2:1,1 $IP15:1,1 $IP3:1,1 $IP16:1,1" 

Dzięki temu istniejące węzły zachowają początkowe ustawienia tokena i początkowy token każdego nowego węzła jest pomiędzy wartościami tokenów istniejących węzłów.

Skonfiguruj Edge

Po zmodyfikowaniu pliku konfiguracyjnego musisz:

  • Ponowna konfiguracja istniejących węzłów Cassandra
  • Instalowanie systemu Cassandra w nowych węzłach
  • Ponowne konfigurowanie serwera zarządzania

Ponowne konfigurowanie istniejącej bazy danych Cassandra węzłów

W istniejących węzłach Cassandra:

  1. Uruchom ponownie plik setup.sh z rozszerzeniem „-p c” profilu i nowego pliku konfiguracyjnego:
    /opt/apigee/apigee-setup/bin/setup.sh -p c -f updatedConfigFile

Instalowanie systemu Cassandra w nowych węzłach

Wykonaj poniższe czynności, aby zainstalować system Cassandra w nowych węzłach.

W każdym nowym węźle Cassandra:

  1. Zainstaluj system Cassandra w 3 węzłach:
    1. Zainstaluj aplikację apigee-setup pierwszy węzeł zgodnie z opisem w sekcji Zainstaluj Narzędzie Edge apigee-setup.
    2. Zainstaluj Cassandra w pierwszym węźle, używając zaktualizowanego pliku konfiguracji:
      /opt/apigee/apigee-setup/bin/setup.sh -p c -f updatedConfigFile
    3. Powtórz te 2 kroki dla pozostałych nowych węzłów Cassandra.
  2. Utwórz ponownie 3 nowe węzły Cassandra, podając nazwę regionu, która ma być centrum danych w którym dodajesz węzeł (dc-1, dc-2 itd.). W tym przykładzie jest to dc-1:
    1. W pierwszym węźle uruchom polecenie:
      /opt/apigee/apigee-cassandra/bin/nodetool [-u username -pw password] -h nodeIP rebuild dc-1

      Gdzie nodeIP to adres IP węzła Cassandra.

      Nazwa użytkownika i hasło musisz podać tylko wtedy, gdy włączono uwierzytelnianie JMX dla Cassandra.

    2. Powtórz ten krok na pozostałych nowych węzłach Cassandra.

Ponowne konfigurowanie serwera zarządzania

W węźle serwera zarządzania

  1. Uruchom ponownie plik setup.sh, aby zaktualizować serwer zarządzania dla nowo dodanych węzłów Cassandra:
    /opt/apigee/apigee-setup/bin/setup.sh -p ms -f updatedConfigFile

Uruchom ponownie wszystkie routery i wiadomości Procesory

  1. We wszystkich routerach:
    /opt/apigee/apigee-service/bin/apigee-service edge-router restart
  2. We wszystkich procesorach wiadomości:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart

Wolne miejsce na dysku w istniejącej Węzły Cassandra

Po dodaniu nowego węzła możesz użyć polecenia nodetool cleanup na stronie aby zwolnić miejsce na dysku. To polecenie usuwa tokeny konfiguracji, które nie są należący do istniejącego wcześniej węzła Cassandra.

Aby po dodaniu nowego węzła zwolnić miejsce na dysku w istniejących węzłach Cassandra, uruchom polecenie to polecenie:

/opt/apigee/apigee-cassandra/bin/nodetool [-u username -pw password] -h cassandraIP cleanup

Nazwa użytkownika i hasło musisz podać tylko wtedy, gdy włączono uwierzytelnianie JMX dla Cassandra.

Zweryfikuj odbudowywanie

Aby sprawdzić, czy odbudowanie się udało, użyj tych poleceń:

nodetool [-u username -pw password] -h nodeIP netstats

To polecenie powinno wskazywać MODE: Normal, gdy węzeł jest uruchomiony, a indeksy budowania atmosfery.

nodetool [-u username -pw password] -h nodeIP statusthrift

Powinien wskazywać, że serwer używany jest przez pośrednik, co umożliwia Cassandra zaakceptowanie nowego klienta żądań.

nodetool [-u username -pw password] -h nodeIP statusbinary

Powinien wskazywać, że uruchomiono transport natywny (lub protokół binarny).

nodetool [-u username -pw password] -h nodeIP describecluster

Powinno pokazywać, że nowe węzły korzystają z tej samej wersji schematu co starsze węzły.

Więcej informacji o korzystaniu z usługi nodetool znajdziesz tutaj: dokumentację korzystania z nodetool.