Questa sezione fornisce indicazioni generali per la scalabilità delle operazioni di Cassandra rendendo Cassandra su Apigee Edge for Private Cloud compatibile con i rack.
Per ulteriori informazioni sul motivo per cui è importante rendere il tuo anello Cassandra compatibile con i rack, consulta le seguenti risorse:
- Replication (documentazione di Cassandra)
- Architettura Cassandra e strategia del fattore di replica
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 gruppi logici. Di conseguenza, le operazioni vengono inviate non solo a un nodo, ma a più nodi, ciascuno su un rack separato, offrendo una maggiore tolleranza di errore e disponibilità.
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 for Private Cloud presuppone un singolo rack logico e posiziona tutti i nodi di 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.
L'immagine seguente mostra la configurazione predefinita dell'anello Cassandra:
In una configurazione più solida, ogni nodo verrebbe assegnato a un rack separato e le operazioni verrebbero eseguite anche sulle repliche in ciascuno di questi rack.
La seguente immagine mostra un anello a 3 nodi. Questa immagine mostra l'ordine in cui le operazioni vengono replicate nell'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 senso orario).
Aggiungi la consapevolezza del rack (con 3 nodi)
Tutte le topologie di installazione di produzione di Apigee Edge for Private Cloud hanno almeno tre nodi Cassandra, che in questa sezione vengono chiamati "IP1", "IP2" e "IP3". Per impostazione predefinita, ognuno 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 gruppi 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 l'utente "apigee" come proprietario.
- Modifica la proprietà
CASS_HOSTS, un elenco di indirizzi IP separati da spazi (non voci DNS o nome 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 ogni nodo assegnato al rack 1 e al data center 1, come mostrato nell'esempio seguente:
CASS_HOSTS="IP1:1,1 IP2:1,1 IP3:1,1"
- Modifica le assegnazioni dei rack in modo che il nodo 2 sia assegnato al rack 2 e il nodo 3 sia assegnato al rack 3, come mostrato nell'esempio seguente:
CASS_HOSTS="IP1:1,1 IP2:1,2 IP3:1,3"
Modificando le assegnazioni dei rack, indichi a Cassandra di creare altri due raggruppamenti logici (rack), che poi forniscono repliche che ricevono tutte le operazioni ricevute dal primo nodo.
Per ulteriori informazioni sull'utilizzo della proprietà di configurazione
CASS_HOSTS, consulta il riferimento al file di configurazione di Edge. - Salva le modifiche al file di configurazione ed esegui il comando seguente 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 che tiene conto dei rack, 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 ai seguenti, dove la colonna Rack mostra i diversi ID rack per ogni 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 attivato l'autenticazione JMX per Cassandra, devi anche passare il nome utente e la password a nodetool. Per saperne di più, consulta Utilizza nodetool per gestire i nodi del cluster.
Installa un anello a sei nodi
Per una maggiore ridondanza, puoi espandere l'anello Cassandra a sei nodi. In questo caso, assegni due nodi a ciascuno dei tre rack. Questa configurazione richiede altri tre nodi: Nodo 4 (IP4), Nodo 5 (IP5) e Nodo 6 (IP6).
L'immagine seguente mostra l'ordine in cui le operazioni vengono replicate nell'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 senso orario.
Per espandere un anello Cassandra da tre nodi 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 per un anello a 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 al file di configurazione invisibile prima di eseguire l'utilità di configurazione sul quarto nodo (la seconda macchina nell'ordine di installazione di Cassandra).
Espandi a 12 nodi
Per aumentare ulteriormente la tolleranza di errore e la disponibilità, puoi aumentare il numero di nodi Cassandra nell'anello da sei a 12. Questa configurazione richiede altri sei nodi (da IP7 a IP12).
L'immagine seguente mostra l'ordine in cui le operazioni vengono replicate nell'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 a quella per installare un anello di tre o sei nodi:
imposta CASS_HOSTS sui valori indicati ed esegui il programma di installazione nell'ordine specificato.
Per espandere un anello Cassandra a 12 nodi, configura i nodi nel seguente modo nel file di configurazione silenziosa:
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 per gli anelli a tre e sei nodi, devi eseguire il programma di installazione sui nodi nell'ordine in cui i nodi vengono visualizzati 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 for Private Cloud sul settimo nodo (la seconda macchina nell'ordine di installazione di Cassandra).