Backup e ripristino senza Google Cloud

Questa sezione spiega come configurare il backup e il recupero del database Cassandra utilizzando ssh e il file system anziché Google Cloud. Vedi anche:

Che cos'è il backup e il recupero di Cassandra senza i servizi Google Cloud?

Il backup senza servizi cloud 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 delle sostituzioni. La connessione al server avviene tramite SSH sicura.

Configurazione dei backup senza i servizi cloud:

I passaggi riportati di seguito 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 è composta dalle seguenti parti:

Configura il server e SSH

  1. Designa un server Linux o Unix per i backup. Questo server deve essere raggiungibile tramite SSH dal tuo piano di runtime Apigee hybrid. Deve avere spazio di archiviazione sufficiente per i backup.
  2. Configura un server SSH sul server o assicurati che sia configurato un server SSH sicuro.
  3. Crea una coppia di chiavi SSH e memorizza il file della chiave privata in un percorso accessibile dal tuo 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.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]-----+
  4. Crea un account utente sul server di backup con il nome "apigee". Assicurati che il nuovo utente "apigee" abbia una home directory in /home.
  5. Sul server di backup, crea una directory "ssh" nella nuova directory /home/apigee.
  6. Copia la chiave pubblica (ssh_key.pub nell'esempio precedente) in un file denominato "authorized_keys" nella nuova directory /home/apigee/ssh. Ad esempio:
    cd /home/apigee
    mkdir .ssh
    cd .ssh
    vi authorized_keys
  7. Sul server di backup, crea una directory di backup all'interno della directory /home/apigee/. La directory di backup può essere qualsiasi directory, a condizione che l'utente "apigee" abbia accesso. Ad esempio:
    cd /home/apigee
    mkdir cassandra-backup
  8. Testa la connessione. Devi assicurarti che i pod Cassandra possano connettersi al server di backup tramite SSH:
    1. 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. Modificalo con il nome del pod da cui vuoi connetterti.

    2. Connettiti tramite SSH al server di backup utilizzando l'indirizzo IP del server:
      ssh apigee@backup-server-ip

Imposta la pianificazione e la destinazione del backup

Imposti la pianificazione e la destinazione dei backup nel file overrides.yaml.

  1. 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 impostare questa proprietà su true
    path-to-private-key-file Il percorso nel file system locale del file della chiave privata SSH (chiamato ssh_key nel 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 è denominata cassandra_backup nel passaggio in cui hai creato la directory di backup).
    HYBRID La proprietà cloudProvider: "HYBRID" è obbligatoria.
    schedule L'ora di inizio del backup, specificata in sintassi crontab standard. Valore predefinito: 0 2 * * *

    Nota:evita di pianificare un backup che inizi poco dopo aver applicato la configurazione del backup al cluster. Quando applichi la configurazione di backup, Kubernetes ricrea i nodi Cassandra. Se il backup viene avviato prima del riavvio dei nodi (possibilmente diversi minuti), il backup non andrà a buon fine.

  2. Utilizza apigeectl per applicare la configurazione del backup all'ambito di archiviazione del tuo cluster:
    $APIGEECTL_HOME/apigeectl --datastore -f your-overrides-file

    dove your-overrides-file è il percorso del file delle sostituzioni che hai appena modificato.

Configurare il ripristino

Il ripristino recupera 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 da quello del cluster del piano di runtime.

Per ripristinare i backup di Cassandra:

  1. Crea un nuovo cluster Kubernetes con un nuovo spazio dei nomi. Non puoi utilizzare lo stesso cluster/spazio dei nomi utilizzato per l'installazione ibrida originale.
  2. Nella directory di installazione ibrida principale, crea un nuovo file overrides-restore.yaml.
  3. Copia la configurazione completa di Cassandra dal file overrides.yaml originale in quello nuovo.
  4. 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:enabled Il 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 (chiamato ssh_key nel 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 è denominata cassandra_backup nel passaggio in cui hai creato la directory di backup).
    HYBRID La proprietà cloudProvider: "HYBRID" è obbligatoria.
    backup-to-restore Il backup specifico che vuoi ripristinare, specificato in sintassi crontab standard (non sono consentite caratteri jolly).
  5. Utilizza apigeectl per applicare la configurazione del backup all'ambito di archiviazione del tuo cluster:
    $APIGEECTL_HOME/apigeectl --datastore -f your-overrides-restore-file

    dove your-overrides-restore-file è il percorso del file overrides-restore.yaml che hai appena modificato.