Copia de seguridad y recuperación sin Google Cloud

En esta sección, se explica cómo configurar la copia de seguridad y recuperación de tu base de datos de Cassandra con SSH y tu sistema de archivos en lugar de usar Google Cloud. También consulta lo siguiente:

¿Qué es la copia de seguridad y recuperación de Cassandra sin los servicios de Google Cloud?

La copia de seguridad sin los servicios de Cloud almacena copias de seguridad de tu base de datos de Cassandra en archivos comprimidos en el sistema de archivos del servidor que especifiques. Las copias de seguridad se realizan en la programación que especifiques del archivo de anulaciones. La conexión al servidor se realiza mediante SSH seguro.

Configura copias de seguridad sin los servicios de Cloud

En los siguientes pasos, se incluyen ejemplos comunes para completar tareas específicas, como crear un par de claves SSH. Usa los métodos adecuados para tu instalación.

El procedimiento tiene las siguientes partes:

Configura el servidor y SSH

  1. Designa un servidor Linux o Unix para tus copias de seguridad. Se debe poder acceder a este servidor mediante SSH desde el plano de entorno de ejecución de Apigee Hybrid. Debe tener suficiente almacenamiento para tus copias de seguridad.
  2. Configura un servidor SSH o asegúrate de que tenga configurado un servidor SSH seguro.
  3. Crea un par de claves SSH y almacena el archivo de claves privadas en una ruta a la que se pueda acceder desde tu plano de entorno de ejecución híbrido. No utilices una contraseña en blanco para tu par de claves. Por ejemplo:
    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 una cuenta de usuario en el servidor de copia de seguridad con el nombre “apigee”. Asegúrate de que el usuario “apigee” nuevo tenga un directorio principal en /home.
  5. En el servidor de copia de seguridad, crea un directorio “ssh” en el directorio /home/apigee nuevo.
  6. Copia la clave pública (ssh_key.pub en el ejemplo anterior) en un archivo llamado “authorized_keys” en el directorio /home/apigee/ssh nuevo. Por ejemplo:
    cd /home/apigee
    mkdir .ssh
    cd .ssh
    vi authorized_keys
  7. En tu servidor de copia de seguridad, crea un directorio de copia de seguridad dentro del directorio /home/apigee/. El directorio de copia de seguridad puede ser cualquier directorio, siempre y cuando el usuario de “Apigee” pueda acceder a él. Por ejemplo:
    cd /home/apigee
    mkdir cassandra-backup
  8. Prueba la conexión. Debes asegurarte de que tus Pods de Cassandra se puedan conectar al servidor de copia de seguridad a través de SSH:
    1. Accede a la shell de tu Pod de Cassandra. Por ejemplo:
      kubectl exec -it -n apigee apigee-cassandra-default-0 -- /bin/bash

      En el que apigee-cassandra-default-0 es el nombre de un Pod de Cassandra. Cambia esto por el nombre del Pod desde el que deseas conectarte.

    2. Conéctate mediante SSH a tu servidor de copia de seguridad con la dirección IP del servidor:
      ssh apigee@backup-server-ip

Configura el programa y el destino de la copia de seguridad

Tú estableces el programa y el destino de las copias de seguridad en tu archivo overrides.yaml.

  1. Agrega los siguientes parámetros a tu archivo overrides.yaml:

    Parámetros

    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"
    

    Ejemplo

    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 * * *"
    

    Aquí:

    Propiedad Descripción
    backup:enabled La copia de seguridad está inhabilitada de forma predeterminada. Debes establecer esta propiedad en true.
    path-to-private-key-file La ruta de tu sistema de archivos local al archivo de claves privadas SSH (llamado ssh_key en el paso en el que creaste el par de claves SSH).
    backup-server-ip La dirección IP de tu servidor de copia de seguridad.
    backup-directory El nombre del directorio de copia de seguridad de tu servidor de copia de seguridad. Debe ser un directorio dentro de home/apigee (el directorio de copia de seguridad se llama cassandra_backup en el paso en el que creaste el directorio de copia de seguridad).
    HYBRID La propiedad cloudProvider: "HYBRID" es obligatoria.
    schedule El momento en el que se inicia la copia de seguridad, especificado en sintaxis de crontab estándar. Predeterminada: 0 2 * * *

    Nota: Evita programar una copia de seguridad que comienza poco tiempo después de que aplicas la configuración de copia de seguridad al clúster. Cuando aplicas la configuración de copia de seguridad, Kubernetes vuelve a crear los nodos de Cassandra. La copia fallará si la copia de seguridad comienza antes de que los nodos se reinicien (posiblemente varios minutos).

  2. Usa apigeectl para aplicar la configuración de copia de seguridad al permiso de almacenamiento de tu clúster:
    $APIGEECTL_HOME/apigeectl --datastore -f your-overrides-file

    En el que your-overrides-file es la ruta de acceso al archivo de anulación que acabas de editar.

Configura el restablecimiento

El restablecimiento lleva los datos del archivo de copia de seguridad con la marca de tiempo que especificas y los restablece en un clúster de Cassandra nuevo con la misma cantidad de pods. El clúster nuevo debe tener un espacio de nombres diferente del clúster del plano de entorno de ejecución.

Para restablecer copias de seguridad de Cassandra, haz lo siguiente:

  1. Crea un nuevo clúster de Kubernetes con un espacio de nombres nuevo. No puedes usar el mismo clúster o espacio de nombres que usaste para la instalación híbrida original.
  2. En el directorio raíz de la instalación híbrida, crea un archivo overrides-restore.yaml nuevo.
  3. Copia la configuración completa de Cassandra del archivo overrides.yaml original al nuevo.
  4. Agrega los siguientes parámetros a tu archivo overrides-restore.yaml:

    Parámetros

    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"
    

    Ejemplo

    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"
    

    Aquí:

    Propiedad Descripción
    restore-namespace El nombre del espacio de nombres nuevo para el clúster de Cassandra nuevo. No uses el mismo espacio de nombres que usaste para tu clúster original.
    restore:enabled La opción para restablecer está inhabilitada de forma predeterminada. Debes establecer esta propiedad en true.
    path-to-private-key-file La ruta de tu sistema de archivos local al archivo de claves privadas SSH (llamado ssh_key en el paso en el que creaste el par de claves SSH).
    backup-server-ip La dirección IP de tu servidor de copia de seguridad.
    backup-directory El nombre del directorio de copia de seguridad de tu servidor de copia de seguridad. Debe ser un directorio dentro de home/apigee (el directorio de copia de seguridad se llama cassandra_backup en el paso en el que creaste el directorio de copia de seguridad).
    HYBRID La propiedad cloudProvider: "HYBRID" es obligatoria.
    backup-to-restore La copia de seguridad específica que deseas restablecer, especificada en la sintaxis estándar de crontab (no se permiten comodines).
  5. Usa apigeectl para aplicar la configuración de copia de seguridad al permiso de almacenamiento de tu clúster:
    $APIGEECTL_HOME/apigeectl --datastore -f your-overrides-restore-file

    En el que your-overrides-restore-file es la ruta de acceso al archivo overrides-restore.yaml que acabas de editar.