Questa sezione illustra come configurare il backup e il recupero del tuo database Cassandra
utilizzando ssh
e il tuo file system invece di utilizzare Google Cloud. Vedi anche:
Che cos'è il backup e il ripristino di Cassandra senza i servizi cloud
Il backup senza servizi cloud archivia i backup del tuo database Cassandra in file compressi nel file system di a un server da te specificato. I backup vengono eseguiti in base a una pianificazione specificata nel file degli override. La connessione al server avviene tramite SSH.
Configurazione dei backup senza servizi cloud
I passaggi seguenti includono esempi comuni per il completamento di attività specifiche, come la creazione di un SSH una coppia di chiavi. Utilizza i metodi appropriati alla tua installazione.
La procedura comprende le seguenti parti:
- Configura il server e SSH
- Imposta la pianificazione e la destinazione per il backup
- Configura il recupero
Configura il server e SSH
- Specifica un server Linux o Unix per i backup. Questo server deve essere raggiungibile tramite SSH da il tuo piano di runtime ibrido Apigee. Deve avere spazio di archiviazione sufficiente per i backup.
- Configura un server SSH sul server o assicurati che sia configurato un server SSH sicuro.
- Creare una coppia di chiavi SSH e archiviare il file della chiave privata in un percorso accessibile dal server
nel piano di runtime. Devi utilizzare una password vuota per la coppia di chiavi, altrimenti il backup non andrà a buon fine. Ad esempio:
ssh-keygen -t rsa -b 4096 -C exampleuser@example.com
Enter file in which to save the key (/Users/exampleuser/.ssh/id_rsa): $APIGEE_HOME/hybrid-files/certs/ssh_key Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in ssh_key Your public key has been saved in ssh_key.pub The key fingerprint is: SHA256:DWKo334XMZcZYLOLrd/8HNpjTERPJJ0mc11UYmrPvSA exampleuser@example.com The key's randomart image is: +---[RSA 4096]----+ | +. ++X| | . . o.=.*+| | . o . . o==o | | . . . =oo+o...| | . S +E oo .| | . . .. . o .| | . . . . o.. | | . ...o ++. | | .. .. +o+. | +----[SHA256]-----+ - Crea un account utente sul server di backup con il nome
apigee
. Assicurati che il nuovo utenteapigee
ha una home directory in/home
. - Sul server di backup, crea una directory
ssh
nel nuovo/home/apigee
. - Copia la chiave pubblica (
ssh_key.pub
nell'esempio precedente) in un file denominatoauthorized_keys
nella nuova directory/home/apigee/ssh
. Ad esempio:cd /home/apigee
mkdir .ssh
cd .ssh
vi authorized_keys
- Sul server di backup, crea una directory di backup all'interno di
/home/apigee/
. La directory di backup può essere qualsiasi directory, purché l'utenteapigee
disponga dell'accesso che le sono assegnati. Ad esempio:cd /home/apigee
mkdir cassandra-backup
- Testa la connessione. Devi assicurarti che i pod Cassandra possano connettersi
server di backup mediante SSH:
- Accedi alla shell del tuo pod Cassandra. Ad esempio:
kubectl exec -it -n apigee APIGEE_CASSANDRA_DEFAULT_0 -- /bin/bash
Dove APIGEE_CASSANDRA_DEFAULT_0 è il nome di un pod Cassandra. Cambia in il nome del pod da cui vuoi connetterti.
- Connettiti tramite SSH al server di backup utilizzando l'indirizzo IP del server:
ssh apigee@BACKUP_SERVER_IP
- Accedi alla shell del tuo pod Cassandra. Ad esempio:
Imposta la pianificazione e la destinazione per il backup
Sei tu a impostare la pianificazione e la destinazione dei backup nel file overrides.yaml
.
- Aggiungi i seguenti parametri al file
overrides.yaml
:Parametri
cassandra: backup: enabled: true keyFile: "PATH_TO_PRIVATE_KEY_FILE" server: "BACKUP_SERVER_IP" storageDirectory: "/home/apigee/BACKUP_DIRECTORY" cloudProvider: "HYBRID" # required verbatim "HYBRID" (all caps) schedule: "SCHEDULE"
Esempio
cassandra: backup: enabled: true keyFile: "/Users/exampleuser/apigee-hybrid/hybrid-files/service-accounts/private.key" server: "34.56.78.90" storageDirectory: "/home/apigee/cassbackup" cloudProvider: "HYBRID" schedule: "0 2 * * *"
Dove:
Proprietà Descrizione backup:enabled
Il backup è disattivato per impostazione predefinita. Devi impostarlo a true
.backup:keyFile
PATH_TO_PRIVATE_KEY_FILE
Percorso del file system locale al file della chiave privata SSH (denominato
ssh_key
nel passaggio in cui hai creato la coppia di chiavi SSH).backup:server
BACKUP_SERVER_IP
L'indirizzo IP del server di backup.
backup:storageDirectory
BACKUP_DIRECTORY
Il nome della directory di backup sul server di backup. Deve essere una directory all'interno di
home/apigee
(la directory di backup è denominatacassandra_backup
nel passaggio in cui hai creato la directory di backup).backup:cloudProvider
HYBRID
La proprietà
cloudProvider: "HYBRID"
è obbligatoria.backup:schedule
SCHEDULE
L'ora di avvio del backup, specificata in sintassi standard di crontab. Predefinita:
0 2 * * *
- Utilizza
apigeectl
per applicare la configurazione del backup all'ambito dello spazio di archiviazione del tuo cluster:$APIGEECTL_HOME/apigeectl --datastore -f YOUR_OVERRIDES_FILE
Dove YOUR_OVERRIDES_FILE è il percorso del file degli override che hai appena modificato.
Configura ripristino
Il ripristino recupera i dati dalla posizione di backup e li ripristina in una nuova Cluster Cassandra con lo stesso numero di nodi. Nessun dato viene preso dalla precedente Cassandra in un cluster Kubernetes.
Le istruzioni di ripristino riportate di seguito sono per i deployment in una singola regione che non e usare Google Cloud Storage per i backup. Per altri deployment, consulta quanto segue:
- Per i deployment in una singola regione che utilizzano Google Cloud Storage per i backup, consulta Backup e ripristino Cassandra.
- Per i deployment multiregionali, consulta Deployment in più regioni su GKE e GKE On-Prem.
Per ripristinare i backup di Cassandra:
- Crea un nuovo spazio dei nomi all'interno del cluster Kubernetes esistente che verrà utilizzato per il ripristino il deployment huntime ibrido. Non utilizzare il nome originale dello spazio dei nomi per il nuovo spazio dei nomi. Non utilizzare il vecchio spazio dei nomi per il ripristino.
-
Nella directory di installazione ibrida radice, crea un nuovo
overrides-restore.yaml
. -
Copia la configurazione completa di Cassandra dal file
overrides.yaml
originale nel nuovo fileoverrides-restore.yaml
. Ad esempio:cp ./overrides.yaml ./overrides-restore.yaml
- Aggiungi un elemento dello spazio dei nomi al nuovo file
overrides-restore.yaml
.Parametri
namespace: YOUR_RESTORE_NAMESPACE cassandra: ... restore: enabled: true keyFile: "PATH_TO_PRIVATE_KEY_FILE" server: "BACKUP_SERVER_IP" storageDirectory: "/home/apigee/BACKUP_DIRECTORY" cloudProvider: "HYBRID" # required verbatim "HYBRID" (all caps) snapshotTimestamp: "TIMESTAMP" ...
Esempio
namespace: cassandra-restore cassandra: restore: enabled: true keyFile: "/Users/exampleuser/apigee-hybrid/hybrid-files/service-accounts/private.key" server: "34.56.78.90" storageDirectory: "/home/apigee/cassbackup" cloudProvider: "HYBRID" snapshotTimestamp: "20201001183903"
- Modifica l'etichetta
app
su qualsiasi nodo Cassandra nello spazio dei nomi precedente eseguendo il comando seguente comando:kubectl label pods --overwrite --namespace=OLD_NAMESPACE -l app=apigee-cassandra app=apigee-cassandra-old
- Creare un nuovo deployment di runtime ibrido. Verrà creato un nuovo cluster Cassandra e verrà avviata
ripristinando i dati di backup nel cluster:
./apigeectl init -f ../overrides-restore.yaml
./apigeectl apply -f ../overrides-restore.yaml
-
Una volta completato il ripristino, il traffico deve essere convertito in modo da utilizzare la Cassandra nel nuovo spazio dei nomi. Esegui questi comandi per modificare il traffico:
kubectl get rs -n OLD_NAMESPACE # look for the 'apigee-connect' replicaset
kubectl patch rs -n OLD_NAMESPACE APIGEE_CONNECT_RS_NAME -p '{"spec":{"replicas" : 0}}'
- Una volta completato il passaggio del traffico, puoi riconfigurare i backup sul cluster ripristinato
rimuovendo la configurazione
restore
e aggiungendo la configurazionebackup
aloverrides-restore.yaml
file. Sostituisci YOUR_RESTORE_NAMESPACE con nuovo nome dello spazio dei nomi creato nel passaggio 1.namespace: YOUR_RESTORE_NAMESPACE cassandra: ... backup: enabled: true serviceAccountPath: SA_JSON_FILE_PATH dbStorageBucket: CLOUD_STORAGE_BUCKET_PATH schedule: BACKUP_SCHEDULE_CODE ...
Quindi applica la configurazione
backup
con il seguente comando:./apigeectl apply -f ../overrides-restore.yaml
Dove:
Proprietà | Descrizione |
---|---|
namespace |
YOUR_RESTORE_NAMESPACE Il nome del nuovo spazio dei nomi creato nel passaggio 1. per il nuovo cluster Cassandra. Non utilizzare lo stesso spazio dei nomi che hai utilizzato per cluster originale. |
restore:enabled |
Il ripristino è disattivato per impostazione predefinita. Devi impostarlo
a true . |
restore:keyFile |
PATH_TO_PRIVATE_KEY_FILE Il percorso sul file system locale per
File di chiave privata SSH (denominato |
restore:server |
BACKUP_SERVER_IP L'indirizzo IP del server di backup. |
restore:storageDirectory |
BACKUP_DIRECTORY Il nome della directory di backup sul server di backup.
Deve essere una directory all'interno di
|
restore:cloudProvider |
La proprietà |
restore:snapshotTimestamp |
TIMESTAMP
Timestamp dello snapshot di backup da ripristinare. Per verificare quali timestamp puoi usare:
vai su
Dove 20210203213003 è il valore |