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:
- Replica (documentazione di Cassandra)
- Cassandra Architecture and Replication Factor Strategy
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:
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:
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:
- 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".
- 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"
- 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. - 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
- 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:- Nodo 1 (IP1)
- Nodo 2 (IP2)
- 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:
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
:
- Nodo 1 (IP1)
- Nodo 4 (IP4)*
- Nodo 2 (IP2)
- Nodo 5 (IP5)
- Nodo 3 (IP3)
- 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:
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:
- Nodo 1 (IP1)
- Nodo 7 (IP7)*
- Nodo 4 (IP4)
- Nodo 8 (IP8)
- Nodo 2 (IP2)
- Nodo 9 (IP9)
- Nodo 5 (IP5)
- Nodo 10 (IP10)
- Nodo 3 (IP3)
- Nodo 11 (IP11)
- Nodo 6 (IP6)
- 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).