Aggiungi il supporto rack Cassandra

Questa sezione fornisce indicazioni generali per le operazioni di scalabilità di Cassandra rendendo quest'ultima su Apigee Edge per il rack cloud privato.

Per ulteriori informazioni sul motivo per cui è importante rendere sensibile il tuo ring Cassandra, consulta le seguenti risorse:

Che cos'è un rack?

Un rack Cassandra è un raggruppamento logico di nodi Cassandra all'interno dell'anello. Cassandra utilizza i rack per garantire che le repliche siano distribuite tra diversi raggruppamenti logici. Di conseguenza, le operazioni vengono inviate non a un solo nodo, ma a più nodi, ciascuno su un rack separato, offrendo maggiore disponibilità e tolleranza agli errori.

Gli esempi in questa sezione utilizzano tre rack Cassandra, ovvero il numero di rack supportati da Apigee nelle topologie di produzione.

L'installazione predefinita di Cassandra in Apigee Edge per il cloud privato presuppone un singolo rack logico e posiziona tutti i nodi in un data center al suo interno. Sebbene questa configurazione sia semplice da installare e gestire, è soggetta a errori se un'operazione non riesce su uno di questi nodi.

La seguente immagine mostra la configurazione predefinita dell'anello Cassandra:

1 rack con 3 nodi
(Figura 1) Configurazione predefinita: tutti i nodi su un singolo rack

In una configurazione più solida, ogni nodo viene assegnato a un rack separato e le operazioni vengono eseguite anche sulle repliche su ciascuno di questi rack.

La seguente immagine mostra un anello di 3 nodi. Questa immagine mostra l'ordine in cui le operazioni vengono replicate sull'anello (in senso orario) ed evidenzia il fatto che non esistono due nodi nello stesso rack:

3 rack, con 1 nodo in ogni rack
(Figura 2) Configurazione sensibile al rack: tre nodi, uno per ogni rack

In questa configurazione, le operazioni vengono inviate a un nodo, ma anche alle repliche di quel nodo su altri rack (in ordine in senso orario).

Aggiungi rilevamento rack (con 3 nodi)

Tutte le topologie di installazione di produzione di Apigee Edge per il cloud privato hanno almeno tre nodi Cassandra, definiti in questa sezione "IP1", "IP2" e "IP3". Per impostazione predefinita, ciascuno di questi nodi si trova nello stesso rack, "ra-1".

Questa sezione descrive come assegnare i nodi Cassandra a rack separati in modo che tutte le operazioni vengano inviate ai nodi di replica in raggruppamenti logici separati all'interno dell'anello.

Per assegnare i nodi Cassandra a rack diversi durante l'installazione:

  1. Prima di eseguire il programma di installazione, accedi al nodo Cassandra e apri il seguente file di configurazione silenziosa per la modifica:
    /opt/silent.conf

    Crea il file se non esiste e assicurati di impostare come proprietario l'utente "apigee".

  2. Modifica la proprietà CASS_HOSTS, un elenco di indirizzi IP separati da spazi (non voci DNS o di nomi host) che utilizza la seguente sintassi:
    CASS_HOSTS="IP_address:data_center_number,rack_number [...]"

    Il valore predefinito è un anello Cassandra a tre nodi con ciascun nodo assegnato al rack 1 e al data center 1, come illustrato nell'esempio seguente:

    CASS_HOSTS="IP1:1,1 IP2:1,1 IP3:1,1"
  3. Modifica le assegnazioni del rack in modo che il nodo 2 venga assegnato al rack 2 e il nodo 3 al rack 3, come illustrato nell'esempio seguente:
    CASS_HOSTS="IP1:1,1 IP2:1,2 IP3:1,3"

    Modificando le assegnazioni dei rack, indichi a Cassandra di creare due raggruppamenti logici aggiuntivi (rack), che forniscono poi le repliche che ricevono tutte le operazioni ricevute dal primo nodo.

    Per maggiori informazioni sull'utilizzo della proprietà di configurazione CASS_HOSTS, consulta Riferimento file di configurazione perimetrale.

  4. Salva le modifiche apportate al file di configurazione ed esegui questo comando per installare Cassandra con la configurazione aggiornata:
    /opt/apigee/apigee-setup/bin/setup.sh -p c -f path/to/silent/config

    Ad esempio:

    /opt/apigee/apigee-setup/bin/setup.sh -p c -f /opt/silent.conf
  5. Ripeti questa procedura per ogni nodo Cassandra nell'anello, nell'ordine in cui i nodi sono assegnati nella proprietà CASS_HOSTS. In questo caso, devi installare Cassandra nel seguente ordine:
    1. Nodo 1 (IP1)
    2. Nodo 2 (IP2)
    3. Nodo 3 (IP3)

Dopo l'installazione, devi controllare la configurazione di Cassandra.

Controlla la configurazione di Cassandra

Dopo aver installato una configurazione Cassandra rack-aware, puoi verificare che i nodi siano assegnati ai diversi rack utilizzando il comando nodetool status, come mostrato nell'esempio seguente:

/opt/apigee/apigee-cassandra/bin/nodetool status

(esegui questo comando su uno dei nodi Cassandra).

I risultati dovrebbero essere simili al seguente, dove la colonna Rack mostra i diversi ID rack per ciascun nodo:

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

Se hai abilitato l'autenticazione JMX per Cassandra, devi anche passare il tuo nome utente e la password a nodetool. Per ulteriori informazioni, consulta Utilizzare nodetool per gestire i nodi del cluster.

Installa un anello a sei nodi

Per un'ulteriore ridondanza, puoi espandere l'anello Cassandra a sei nodi. In questo caso, assegni due nodi a ciascuno dei tre rack. Questa configurazione richiede tre nodi aggiuntivi: nodo 4 (IP4), nodo 5 (IP5) e nodo 6 (IP6).

L'immagine seguente mostra l'ordine in cui le operazioni vengono replicate sull'anello (in senso orario) ed evidenzia il fatto che durante la replica non esistono due nodi adiacenti sullo stesso rack:

3 rack, con 2 nodi in ogni rack
(Figura 3) Anello Cassandra a 6 nodi: due nodi su ciascuno dei tre rack

In questa configurazione, ogni nodo ha altre due repliche: una in ciascuno degli altri due rack. Ad esempio, il nodo 1 nel rack 1 ha una replica nel rack 2 e nel rack 3. Le operazioni inviate al nodo 1 vengono inviate anche alle repliche negli altri rack, in ordine orario.

Per espandere un anello Cassandra a tre nodi in un anello Cassandra a sei nodi, configura i nodi nel seguente modo nel file di configurazione silenziosa:

CASS_HOSTS="IP1:1,1 IP4:1,3 IP2:1,2 IP5:1,1 IP3:1,3 IP6:1,2"

Come nel caso di un anello di tre nodi, devi installare Cassandra nello stesso ordine in cui i nodi vengono visualizzati nella proprietà CASS_HOSTS:

  1. Nodo 1 (IP1)
  2. Nodo 4 (IP4)*
  3. Nodo 2 (IP2)
  4. Nodo 5 (IP5)
  5. Nodo 3 (IP3)
  6. Nodo 6 (IP6)

* Apporta le modifiche nel file di configurazione invisibile all'utente prima di eseguire l'utilità di configurazione sul quarto nodo (il secondo computer nell'ordine di installazione di Cassandra).

Espandi a 12 nodi

Per aumentare ulteriormente la disponibilità e la tolleranza di errore, puoi aumentare il numero di nodi Cassandra nell'anello da 6 a 12. Questa configurazione richiede sei nodi aggiuntivi (da IP7 a IP12).

L'immagine seguente mostra l'ordine in cui le operazioni vengono replicate sull'anello (in senso orario) ed evidenzia il fatto che durante la replica non esistono due nodi adiacenti sullo stesso rack:

3 rack, con 4 nodi in ogni rack
(Figura 4) Anello Cassandra a 12 nodi: quattro nodi su ciascuno dei tre rack

La procedura per installare un anello di 12 nodi è simile all'installazione di un anello di tre o sei nodi: imposta CASS_HOSTS sui valori specificati ed esegui il programma di installazione nell'ordine specificato.

Per eseguire l'espansione in un anello Cassandra di 12 nodi, configura i nodi nel file di configurazione silenziosa nel seguente modo:

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"

Come nel caso degli anelli di tre e sei nodi, devi eseguire il programma di installazione sui nodi nell'ordine in cui i nodi appaiono nel file di configurazione:

  1. Nodo 1 (IP1)
  2. Nodo 7 (IP7)*
  3. Nodo 4 (IP4)
  4. Nodo 8 (IP8)
  5. Nodo 2 (IP2)
  6. Nodo 9 (IP9)
  7. Nodo 5 (IP5)
  8. Nodo 10 (IP10)
  9. Nodo 3 (IP3)
  10. Nodo 11 (IP11)
  11. Nodo 6 (IP6)
  12. Nodo 12 (IP12)

* Devi apportare queste modifiche prima di installare Apigee Edge per il cloud privato sul settimo nodo (la seconda macchina nell'ordine di installazione di Cassandra).