Questa sezione descrive come configurare il backup e il ripristino del database Cassandra utilizzando SSH e il file system anziché Google Cloud. Vedi anche:
Che cos'è il backup e il ripristino di Cassandra senza i servizi Google Cloud?
Il backup senza Cloud Services archivia i backup del database Cassandra in file compressi nel file system di un server specificato. I backup vengono eseguiti in base a una pianificazione specificata nel file di override. La connessione al server avviene tramite SSH sicuro.
Configurazione dei backup senza Cloud Services:
I passaggi seguenti includono esempi comuni per completare attività specifiche, come la creazione di una coppia di chiavi SSH. Utilizza i metodi appropriati per la tua installazione.
La procedura è suddivisa nelle seguenti parti:
- Configura il server e SSH
- Impostare la pianificazione e la destinazione del backup
- Configurazione per il recupero
Configurare il server e SSH
- Designa un server Linux o Unix per i tuoi backup. Questo server deve essere raggiungibile tramite SSH dal piano di runtime di Apigee hybrid. Deve avere spazio di archiviazione sufficiente per i backup.
- Configura un server SSH sul server o assicurati che ne sia configurato uno sicuro.
- Crea una coppia di chiavi SSH e archivia il file della chiave privata in un percorso accessibile dal piano di runtime ibrido. Non utilizzare una password vuota per la coppia di chiavi. Ad esempio:
ssh-keygen -t rsa -b 4096 -C exampleuser@example.comEnter 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 utente "apigee" abbia una home directory in/home. - Sul server di backup, crea una directory "
ssh" nella nuova directory/home/apigee. - Copia la chiave pubblica (
ssh_key.pubnell'esempio precedente) in un file denominato "authorized_keys" nella nuova directory/home/apigee/ssh. Ad esempio:cd /home/apigee
mkdir .sshcd .sshvi authorized_keys - Sul server di backup, crea una directory di backup all'interno della directory
/home/apigee/. La directory di backup può essere qualsiasi directory, purché l'utente "apigee" abbia accesso. Ad esempio:cd /home/apigee
mkdir cassandra-backup - Testa la connessione. Devi assicurarti che i pod Cassandra possano connettersi al server di backup tramite SSH:
- Accedi alla shell del 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. Modifica questo valore con 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 pod Cassandra. Ad esempio:
Impostare la pianificazione e la destinazione del backup
Imposti 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:enabledIl backup è disattivato per impostazione predefinita. Devi impostare questa proprietà su true.path-to-private-key-file Il percorso nel file system locale del file della chiave privata SSH (denominato ssh_keynel passaggio in cui hai creato la coppia di chiavi SSH).backup-server-ip L'indirizzo IP del server di backup. 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_backupnel passaggio in cui hai creato la directory di backup).HYBRIDLa proprietà cloudProvider: "HYBRID"è obbligatoria.schedule L'ora di inizio del backup, specificata nella sintassi standard di crontab. Valore predefinito: 0 2 * * *Nota: evita di pianificare un backup che inizi poco dopo l'applicazione della configurazione di backup al cluster. Quando applichi la configurazione di backup, Kubernetes ricrea i nodi Cassandra. Se il backup inizia prima del riavvio dei nodi (potrebbero essere necessari diversi minuti), non andrà a buon fine.
- Utilizza
apigeectlper applicare la configurazione di backup all'ambito di archiviazione del cluster:$APIGEECTL_HOME/apigeectl --datastore -f your-overrides-file
Dove your-overrides-file è il percorso del file di override che hai appena modificato.
Configura ripristino
Il ripristino prende i dati dal file di backup con il timestamp specificato e li ripristina in un nuovo cluster Cassandra con lo stesso numero di pod. Il nuovo cluster deve avere uno spazio dei nomi diverso dal cluster del piano di runtime.
Per ripristinare i backup di Cassandra:
- Crea un nuovo cluster Kubernetes con un nuovo spazio dei nomi. Non puoi utilizzare lo stesso cluster/spazio dei nomi che hai utilizzato per l'installazione ibrida originale.
- Nella directory di installazione ibrida root, crea un nuovo file
overrides-restore.yaml. - Copia la configurazione completa di Cassandra dal file
overrides.yamloriginale nel nuovo file. - Aggiungi i seguenti parametri al file
overrides-restore.yaml:Parametri
namespace: 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: "backup-to-restore"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"Dove:
Proprietà Descrizione restore-namespace Il nome del nuovo spazio dei nomi per il nuovo cluster Cassandra. Non utilizzare lo stesso spazio dei nomi utilizzato per il cluster originale. restore:enabledIl ripristino è disattivato per impostazione predefinita. Devi impostare questa proprietà su true.path-to-private-key-file Il percorso nel file system locale del file della chiave privata SSH (denominato ssh_keynel passaggio in cui hai creato la coppia di chiavi SSH).backup-server-ip L'indirizzo IP del server di backup. 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_backupnel passaggio in cui hai creato la directory di backup).HYBRIDLa proprietà cloudProvider: "HYBRID"è obbligatoria.backup-to-restore Il backup specifico che vuoi ripristinare, specificato nella sintassi crontab standard (non sono consentiti caratteri jolly). - Utilizza
apigeectlper applicare la configurazione di backup all'ambito di archiviazione del cluster:$APIGEECTL_HOME/apigeectl --datastore -f your-overrides-restore-file
Dove your-overrides-restore-file è il percorso del file
overrides-restore.yamlche hai appena modificato.