Dodawanie węzłów Cassandra

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

  • Istniejące pozycje węzłów w pierścieniu Cassandra nie powinny się zmieniać, aby zminimalizować strumieniowanie i zachować zrównoważony pierścień.
  • Liczba węzłów we wszystkich centrach danych musi być taka sama.

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

Jeśli na przykład zaczniesz od standardowej instalacji klastra 12-węzłowego rozmieszczonego w 2 centrach danych, będziesz mieć łącznie 6 węzłów Cassandra (po 3 w każdym centrum danych). Aby rozszerzyć ten klaster, do każdego centrum danych należy dodać po 3 węzły, zwiększając łączną liczbę węzłów do 12 (po 6 węzłach w każdym centrum danych). Jeśli wymagane jest dalsze zwiększenie liczby węzłów, do każdego centrum danych należy dodać po 6 węzłów, co da w sumie 24 węzły (po 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. Aby dodać kolejne węzły, wykonaj te same czynności. Pamiętaj, aby podczas rozszerzania klastra podwoić liczbę węzłów.

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

Istniejąca konfiguracja Edge

Wszystkie obsługiwane topologie Edge w przypadku systemu produkcyjnego wymagają użycia 3 węzłów Cassandra. Właściwość CASS_HOSTS w pliku konfiguracyjnym ma 3 węzły, jak pokazano 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 polu właściwości REGION nazwa regionu to „dc-1”. Potrzebujesz tych informacji podczas dodawania nowych węzłów Cassandra.

zmodyfikować plik konfiguracji, aby dodać 3 nowe węzły Cassandra;

W tym przykładzie 3 nowe węzły Cassandra mają te adresy 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, a początkowy token każdego nowego węzła będzie znajdować się między wartościami tokenów dotychczasowych węzłów.

Konfigurowanie Edge

Po zmodyfikowaniu pliku konfiguracji:

  • Skonfiguruj ponownie istniejące węzły Cassandra
  • Instalowanie systemu Cassandra na nowych węzłach
  • Ponowna konfiguracja serwera zarządzania

Skonfiguruj ponownie istniejące węzły Cassandra

Na istniejących węzłach Cassandra:

  1. Ponownie uruchom plik setup.sh z profilem „-p c” i nowym plikiem konfiguracji:
    /opt/apigee/apigee-setup/bin/setup.sh -p c -f updatedConfigFile

Instalowanie systemu Cassandra na nowych węzłach

Aby zainstalować Cassandra na nowych węzłach, wykonaj podaną niżej procedurę.

Na każdym nowym węźle Cassandra:

  1. Zainstaluj system Cassandra na 3 węzłach:
    1. Zainstaluj apigee-setup na pierwszym węźle zgodnie z instrukcjami podanymi w artykule Instalowanie narzędzia do konfiguracji apigee w Edge.
    2. Zainstaluj Cassandra na 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 w przypadku pozostałych nowych węzłów Cassandra.
  2. Utwórz ponownie 3 nowe węzły Cassandra, podając nazwę regionu jako centrum danych, do którego dodajesz węzeł (dc-1, dc-2 itd.). W tym przykładzie jest to dc-1:
    1. Na pierwszym węźle uruchom:
      /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 są potrzebne tylko wtedy, gdy usługa Cassandra ma włączone uwierzytelnianie JMX.

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

Ponowna konfiguracja serwera zarządzania

Na węźle serwera zarządzania

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

Ponownie uruchom wszystkie routery i procesory wiadomości

  1. W przypadku wszystkich routerów:
    /opt/apigee/apigee-service/bin/apigee-service edge-router restart
  2. W przypadku wszystkich procesorów wiadomości:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart

Wolne miejsce na dysku w istniejących węzłach Cassandra

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

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

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

Nazwę użytkownika i hasło musisz podać tylko wtedy, gdy usługa Cassandra ma włączone uwierzytelnianie JMX.

Sprawdzanie odtwarzania

Aby sprawdzić, czy ponowne skompilowanie zakończyło się sukcesem, użyj tych poleceń:

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

To polecenie wskazuje, czy natywny transport (czyli protokół binarny) jest uruchomiony, co pozwala Cassandra akceptować nowe żądania klientów.

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

To polecenie wskazuje, czy usługa natywnych transportów (czyli binarnego protokołu) jest uruchomiona.

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

To polecenie pokazuje, czy nowe węzły używają tej samej wersji schematu co starsze węzły.

Więcej informacji o używaniu narzędzia nodetool znajdziesz w dokumentacji dotyczącej nodetool.