Pianificare i backup in un server remoto

Questa pagina descrive come pianificare i backup per Cassandra senza Cloud Storage. In questo metodo, i backup vengono archiviati su un server remoto specificato da te anziché in un bucket Cloud Storage. Apigee utilizza SSH per comunicare con il server remoto.

Devi pianificare i backup come job cron. Una volta applicata una pianificazione di backup al tuo cluster ibrido, un job di backup Kubernetes viene eseguito periodicamente in base alla pianificazione nel piano di runtime. Il job interagisce con ogni pod Cassandra nel cluster ibrido per raccogliere tutti i dati, creare un file di archivio (compresso) dei dati e inviare l'archivio al server specificato nel file overrides.yaml.

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:

Configurare il server e SSH

  1. Designa un server Linux o Unix per i backup. Questo server deve essere raggiungibile tramite SSH dal 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 archivia il file della chiave privata in un percorso accessibile dal piano di runtime ibrido. 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]-----+

    Dove: exampleuser@example.com è una stringa. Qualsiasi stringa che segue -C nel comando ssh-keygen diventa un commento incluso nella chiave ssh appena creata. La stringa di input può essere qualsiasi stringa. Quando utilizzi un nome account nel formato exampleuser@example.com, puoi identificare rapidamente a quale account è associata la chiave.

  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, purché l'utente apigee abbia accesso alla directory. Ad esempio:
    cd /home/apigee
    mkdir cassandra-backup

Impostare 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: "private.key"# path relative to apigee-datastore path
        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.
    backup:keyFile

    PATH_TO_PRIVATE_KEY_FILE

    Il percorso nel file system locale del file della chiave privata SSH (denominato ssh_key nel passaggio in cui hai creato la coppia di chiavi SSH). Questo percorso deve essere relativo alla directory del grafico apigee-datastore.

    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 è denominata cassandra_backup nel passaggio in cui hai creato la directory di backup).

    backup:cloudProvider

    HYBRID

    Per un backup del server remoto, imposta la proprietà su HYBRID.

    backup:schedule

    SCHEDULE

    L'ora di inizio del backup, specificata nella sintassi standard di crontab. Gli orari sono espressi nel fuso orario locale del cluster Kubernetes. Valore predefinito: 0 2 * * *

  2. Applica la configurazione di backup all'ambito di archiviazione del tuo cluster:
    helm upgrade datastore apigee-datastore/ \
      --install \
      --namespace APIGEE_NAMESPACE \
      --atomic \
      -f OVERRIDES_FILE.yaml
    

    Dove OVERRIDES_FILE è il percorso del file di override che hai appena modificato.

  3. Verifica il job di backup. Ad esempio:
    kubectl get cronjob -n APIGEE_NAMESPACE
    NAME                      SCHEDULE     SUSPEND   ACTIVE   LAST SCHEDULE   AGE
    apigee-cassandra-backup   33 * * * *   False     0        <none>          94s