Questa pagina descrive come recuperare o ripristinare Cassandra in più regioni.
In un deployment multiregionale, Apigee Hybrid viene eseguito il deployment in più località geografiche in diversi data center. Se una o più regioni hanno esito negativo, ma rimangono regioni integre, puoi utilizzare una regione integra per recuperare le regioni Cassandra non riuscite con i dati più recenti.
In caso di errore catastrofico di tutte le regioni ibride, Cassandra può essere ripristinato. È importante notare che, se nel deployment sono presenti più organizzazioni Apigee, il processo di ripristino ripristina i dati di tutte le organizzazioni. In una configurazione multi-organizzazione, il ripristino di una sola organizzazione specifica non è supportato.
Questo argomento descrive entrambi gli approcci per il recupero delle regioni non riuscite:
- Recupera regioni non riuscite: descrive i passaggi per recuperare le regioni non riuscite in base a una regione integra.
- Ripristina le regioni non riuscite: descrive i passaggi per ripristinare le regioni non riuscite da un backup. Questo approccio è necessario solo se sono interessate tutte le regioni ibride.
Recuperare le regioni non riuscite
Per recuperare le regioni non riuscite da una regione integra, segui questi passaggi:
- Reindirizza il traffico API dalle regioni interessate alla regione funzionante. Pianifica la capacità di conseguenza per supportare il traffico dirottato dalle regioni non riuscite.
- Ritira la regione interessata. Per ogni regione interessata, segui i passaggi descritti in Dismissione di una regione ibrida. Attendi il completamento del ritiro prima di procedere con il passaggio successivo.
- Ripristina la regione interessata. Per eseguire il ripristino, crea una nuova regione, come descritto in Deployment in più regioni su GKE, GKE On-Prem e AKS.
Ripristino da un backup
Il backup di Cassandra può risiedere su Cloud Storage o su un server remoto in base alla tua configurazione. Per ripristinare Cassandra da un backup, segui questi passaggi:
- Apri il file di override per la regione che vuoi ripristinare.
- Imposta
cassandra:hostNetworksufalse. - Applica il file di override:
helm upgrade datastore apigee-datastore/ \ --install \ --namespace APIGEE_NAMESPACE \ -f OVERRIDES_FILE
- Prima di continuare, verifica che
hostNetworksia impostato sufalse:kubectl -n APIGEE_NAMESPACE get apigeeds -o=jsonpath='{.items[].spec.components.cassandra.hostNetwork}'
- Elimina l'ibrido dalla regione che stai ripristinando:
helm delete DATASTORE_RELEASE_NAME \ --namespace APIGEE_NAMESPACE
Dove DATASTORE_RELEASE_NAME è il nome della release del datastore in cui hai installato Cassandra nella regione, ad esempio
datastore-region1. -
Ripristina la regione desiderata da un backup. Per ulteriori informazioni, vedi Ripristinare una regione da un backup.
- Rimuovi i nodi non funzionanti dalle regioni eliminate:
- Utilizzando il comando
nodetool status, identifica tutti i nodi con statoDNnelle regioni eliminate:kubectl exec apigee-cassandra-default-0 -n APIGEE_NAMESPACE -- nodetool -u APIGEE_JMX_USER -pw APIGEE_JMX_PASSWORD status
dove:
- APIGEE_JMX_USER è il nome utente per l'utente delle operazioni JMX di Cassandra. Utilizzato
per autenticare e comunicare con l'interfaccia JMX di Cassandra. Vedi
cassandra:auth:jmx:username. - APIGEE_JMX_PASSWORD è la password per l'utente delle operazioni JMX di Cassandra.
Vedi
cassandra:auth:jmx:password.
- APIGEE_JMX_USER è il nome utente per l'utente delle operazioni JMX di Cassandra. Utilizzato
per autenticare e comunicare con l'interfaccia JMX di Cassandra. Vedi
- Rimuovi ogni nodo con lo stato
DNnelle regioni eliminate:kubectl exec apigee-cassandra-default-0 -n APIGEE_NAMESPACE -- nodetool -u APIGEE_JMX_USER -pw APIGEE_JMX_PASSWORD removenode NODE_HOST_ID
Sostituisci NODE_HOST_ID con l'ID host di ogni nodo identificato nel passaggio precedente. Ad esempio:
kubectl exec apigee-cassandra-default-0 -n apigee -- nodetool -u my-jmx-id -pw my-jmx-pwd removenode abcdef-f202-438a-8a77-40636317b7c9
- Esegui di nuovo il comando
nodetool statuse verifica che i nodi con statoDNnelle regioni eliminate non siano più presenti.kubectl exec apigee-cassandra-default-0 -n APIGEE_NAMESPACE -- nodetool -u APIGEE_JMX_USER -pw APIGEE_JMX_PASSWORD status
- Utilizzando il comando
- Rimuovi i riferimenti alle regioni eliminate e aggiungi i riferimenti alle regioni ripristinate nei metadati
KeySpaces.- Recupera il nome del data center Cassandra utilizzando l'opzione
nodetool status.kubectl exec -n APIGEE_NAMESPACE -it apigee-cassandra-default-0 -- bash nodetool -u APIGEE_JMX_USER -pw APIGEE_JMX_PASSWORD status |grep -i Datacenterdove:
- APIGEE_JMX_USER è il nome utente per l'utente delle operazioni JMX di Cassandra. Utilizzato
per autenticare e comunicare con l'interfaccia JMX di Cassandra. Vedi
cassandra:auth:jmx:username. - APIGEE_JMX_PASSWORD è la password per l'utente delle operazioni JMX di Cassandra.
Vedi
cassandra:auth:jmx:password.
- APIGEE_JMX_USER è il nome utente per l'utente delle operazioni JMX di Cassandra. Utilizzato
per autenticare e comunicare con l'interfaccia JMX di Cassandra. Vedi
- Aggiorna la replica di
KeySpaces.- Crea un contenitore client e connettiti al cluster Cassandra tramite l'interfaccia CQL.
- Recupera l'elenco degli spazi chiave utente dall'interfaccia CQL:
cqlsh CASSANDRA_SEED_HOST -u APIGEE_DDL_USER -p APIGEE_DDL_PASSWORD --ssl -e "select keyspace_name from system_schema.keyspaces;"|grep -v systemdove:
- CASSANDRA_SEED_HOST è l'host seed multiregionale di Cassandra. Per la maggior parte
delle installazioni multiregionali, utilizza l'indirizzo IP di un host nella prima regione. Consulta
Configurare Apigee
hybrid per più regioni e
cassandra:externalSeedHost. - APIGEE_DDL_USER e APIGEE_DDL_PASSWORD sono il nome utente e la password dell'amministratore per l'utente DDL (Data Definition Language) di Cassandra. I
valori predefiniti sono "
ddl_user" e "iloveapis123".Consulta
cassandra.auth.ddl.passwordnella documentazione di riferimento per le proprietà di configurazione e Opzioni della riga di comando nella documentazione di cqlsh di Apache Cassandra.
- CASSANDRA_SEED_HOST è l'host seed multiregionale di Cassandra. Per la maggior parte
delle installazioni multiregionali, utilizza l'indirizzo IP di un host nella prima regione. Consulta
Configurare Apigee
hybrid per più regioni e
- Per ogni spazio delle chiavi, esegui il seguente comando dall'interfaccia CQL per aggiornare le impostazioni di replica:
ALTER KEYSPACE KEYSPACE_NAME WITH replication = {'class': 'NetworkTopologyStrategy', 'DATACENTER_NAME':3};dove:
- KEYSPACE_NAME è il nome dello spazio delle chiavi elencato nell'output del passaggio precedente.
- DATACENTER_NAME è il nome del data center Cassandra che hai ottenuto con
l'opzione
nodetool statusnel passaggio 8.
- Recupera il nome del data center Cassandra utilizzando l'opzione