Aggiunta di nodi Cassandra

Quando aggiungi nodi Cassandra a un cluster, è essenziale considerare i seguenti due punti chiave:

  • Le posizioni esistenti dei nodi nell'anello Cassandra non devono cambiare per ridurre al minimo lo streaming e mantenere un anello bilanciato.
  • Il numero di nodi in tutti i data center deve rimanere invariato.

Per garantire il primo obiettivo, è fondamentale raddoppiare il numero di nodi nel cluster Cassandra ogni volta che aggiungi nuovi nodi.

Ad esempio, se inizi con una topologia di installazione di cluster a 12 nodi standard distribuita su due data center, avrai un totale di sei nodi Cassandra, tre in ogni data center. Per espandere questo cluster, devi aggiungere tre nodi a ogni data center, aumentando il numero totale di nodi a 12 (sei nodi in ogni data center). Se è necessaria un'ulteriore espansione, devi aggiungere altri sei nodi a ciascun data center, per un totale di 24 nodi (12 in ogni data center).

Questo documento fornisce istruzioni per aggiungere tre nuovi nodi Cassandra a un'installazione Edge for Private Cloud esistente. Per aggiungere altri nodi, puoi seguire la stessa procedura. Assicurati sempre di raddoppiare il numero di nodi quando espandi il cluster.

Per un elenco dei requisiti di sistema per un nodo Cassandra, consulta la sezione Requisiti di installazione.

Configurazione Edge esistente

Tutte le topologie Edge supportate per un sistema di produzione specificano l'utilizzo di tre nodi Cassandra. I tre nodi sono specificati nella proprietà CASS_HOSTS nel file di configurazione come mostrato di seguito:

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

Tieni presente che la proprietà REGION specifica il nome della regione come "dc-1". Ti serviranno queste informazioni quando aggiungi i nuovi nodi Cassandra.

Modifica del file di configurazione per aggiungere i tre nuovi nodi Cassandra

In questo esempio, i tre nuovi nodi Cassandra si trovano ai seguenti indirizzi IP:

  • 10.10.0.14
  • 10.10.0.15
  • 10.10.0.16

Devi prima aggiornare il file di configurazione di Edge per aggiungere i nuovi nodi:

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" 

In questo modo, i nodi esistenti mantengono le impostazioni iniziali dei token e il token iniziale di ogni nuovo nodo è compreso tra i valori dei token dei nodi esistenti.

Configurare Edge

Dopo aver modificato il file di configurazione, devi:

  • Riconfigura i nodi Cassandra esistenti
  • Installa Cassandra sui nuovi nodi
  • Configurare nuovamente il server di gestione

Riconfigura i nodi Cassandra esistenti

Sui nodi Cassandra esistenti:

  1. Esegui di nuovo setup.sh con il profilo "-p c" e il nuovo file di configurazione:
    /opt/apigee/apigee-setup/bin/setup.sh -p c -f updatedConfigFile

Installa Cassandra sui nuovi nodi

Utilizza la procedura riportata di seguito per installare Cassandra sui nuovi nodi.

Su ogni nuovo nodo Cassandra:

  1. Installa Cassandra sui tre nodi:
    1. Installa apigee-setup sul primo nodo come descritto in Installa l'utilità apigee-setup di Edge.
    2. Installa Cassandra sul primo nodo utilizzando il file di configurazione aggiornato:
      /opt/apigee/apigee-setup/bin/setup.sh -p c -f updatedConfigFile
    3. Ripeti questi due passaggi per i restanti nuovi nodi Cassandra.
  2. Ricostruisci i tre nuovi nodi Cassandra, specificando il nome della regione come il data center in cui aggiungi il nodo (dc-1, dc-2 e così via). In questo esempio, è dc-1:
    1. Sul primo nodo, esegui:
      /opt/apigee/apigee-cassandra/bin/nodetool [-u username -pw password] -h nodeIP rebuild dc-1

      dove nodeIP è l'indirizzo IP del nodo Cassandra.

      Devi passare il nome utente e la password solo se hai attivato l'autenticazione JMX per Cassandra.

    2. Ripeti questo passaggio sui restanti nuovi nodi Cassandra.

Configurare nuovamente il server di gestione

Su un nodo Management-Server

  1. Esegui di nuovo setup.sh per aggiornare il server di gestione per i nodi Cassandra appena aggiunti:
    /opt/apigee/apigee-setup/bin/setup.sh -p ms -f updatedConfigFile

Riavviare tutti i router e i processori di messaggi

  1. Su tutti i router:
    /opt/apigee/apigee-service/bin/apigee-service edge-router restart
  2. Su tutti i processori di messaggi:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart

Spazio su disco libero sui nodi Cassandra esistenti

Dopo aver aggiunto un nuovo nodo, puoi utilizzare il comando nodetool cleanup sui nodi preesistenti per liberare spazio su disco. Questo comando cancella i token di configurazione che non sono più di proprietà del nodo Cassandra esistente.

Per liberare spazio su disco sui nodi Cassandra esistenti dopo aver aggiunto un nuovo nodo, esegui il seguente comando:

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

Devi passare il nome utente e la password solo se hai abilitato l'autenticazione JMX per Cassandra.

Verifica la ricostruzione

Utilizza i seguenti comandi per verificare che la ricostruzione sia andata a buon fine:

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

Questo comando indica se il trasporto nativo (o protocollo binario) è in esecuzione, il che consente a Cassandra di accettare nuove richieste del client.

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

Questo comando indica se il trasporto nativo (o protocollo binario) è in esecuzione.

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

Questo comando mostra se i nuovi nodi utilizzano la stessa versione dello schema dei nodi precedenti.

Per ulteriori informazioni sull'utilizzo di nodetool, consulta la documentazione sull'utilizzo di nodetool.