Aggiunta di nodi Cassandra

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

  • Le posizioni esistenti dei nodi nell'anello di Cassandra non dovrebbero cambiare per ridurre al minimo i flussi di dati e mantenere un anello bilanciato.
  • Il numero di nodi in tutti i data center deve rimanere coerente.

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 standard di installazione di cluster a 12 nodi distribuita in due data center, avrai un totale di sei nodi Cassandra, tre in ciascun data center. Per espandere il cluster, devi aggiungere tre nodi a ciascun data center, aumentando il numero totale di nodi a 12 (sei nodi in ogni data center). Se è necessaria un'ulteriore espansione, è necessario aggiungere altri sei nodi a ciascun data center, ottenendo un numero totale di nodi pari a 24 (12 nodi in ogni data center).

Questo documento fornisce istruzioni per l'aggiunta di tre nuovi nodi Cassandra a un'installazione di Edge per il cloud privato esistente. Puoi seguire gli stessi passaggi per aggiungere altri nodi. Assicurati sempre che, quando espandi il cluster, il numero di nodi raddoppia.

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

Configurazione perimetrale esistente

Tutte le topologie Edge supportate per un sistema di produzione specificano di utilizzare tre Cassandra nodi. I tre nodi sono specificati per la 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". È necessario informazioni quando aggiungi i nuovi nodi Cassandra.

Modifica il 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 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" 

Questo assicura che i nodi esistenti mantengano le impostazioni iniziali del token e il token iniziale di ogni nuovo nodo si trova tra i valori token dei nodi esistenti.

Configura Edge

Dopo aver modificato il file di configurazione, devi:

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

Riconfigura Cassandra esistente nodi

Nei nodi Cassandra esistenti:

  1. Esegui nuovamente il file setup.sh con "-p c" profilo 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 su il primo nodo come descritto in Installare Utilità apigee-setup.
    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 nuovi nodi Cassandra rimanenti.
  2. Ricrea i tre nuovi nodi Cassandra, specificando come nome della regione il data center in cui stai aggiungendo 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 trasmettere il tuo nome utente e la tua password solo se l'autenticazione JMX abilitata per Cassandra.

    2. Ripeti questo passaggio sui nuovi nodi Cassandra rimanenti.

Riconfigura il server di gestione

Su un nodo di 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

Riavvia tutti i router e i messaggi Processori

  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 libero su disco esistente Nodi Cassandra

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

Per liberare spazio su disco nei nodi Cassandra preesistenti dopo l'aggiunta di un nuovo nodo, esegui la seguente comando:

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

Devi trasmettere il tuo nome utente e la tua password solo se l'autenticazione JMX abilitata per Cassandra.

Verifica rigenerazione

Utilizza i seguenti comandi per verificare che la ricompilazione sia riuscita:

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

Questo comando dovrebbe indicare MODE: Normal quando il nodo è attivo e gli indici vengono create.

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

Deve indicare che il server dell'usato è in esecuzione, il che consente a Cassandra di accettare nuovo client richieste.

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

Deve indicare che il trasporto nativo (o protocollo binario) è in esecuzione.

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

Deve indicare che i nuovi nodi utilizzano la stessa versione dello schema dei nodi precedenti.

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