Sauvegarde et récupération sans Google Cloud

Cette section explique comment configurer la sauvegarde et la récupération de votre base de données Cassandra en utilisant ssh et votre système de fichiers plutôt que Google Cloud. Voir également :

Présentation de la sauvegarde et de la récupération Cassandra sans services Google Cloud

La sauvegarde sans services Google Cloud permet de stocker les sauvegardes de votre base de données Cassandra dans des fichiers compressés dans le système de fichiers d'un serveur que vous spécifiez. Les sauvegardes sont effectuées suivant une programmation que vous spécifiez dans votre fichier de remplacement. La connexion au serveur s'effectue via une connexion SSH sécurisée.

Configuration des sauvegardes sans services Cloud :

Les étapes suivantes incluent des exemples de tâches typiques, comme la création d'une paire de clés SSH. Utilisez les méthodes adaptées à votre installation.

La procédure comprend les éléments suivants :

Configurer le serveur et SSH

  1. Désignez un serveur Linux ou Unix pour vos sauvegardes. Ce serveur doit être accessible via SSH à partir de votre plan d'exécution Apigee hybrid. Il doit disposer de suffisamment d'espace de stockage pour vos sauvegardes.
  2. Configurez un serveur SSH sur le serveur, ou vérifiez qu'un serveur SSH sécurisé est déjà configuré.
  3. Créez une paire de clés SSH et stockez le fichier de clé privée dans un emplacement accessible à partir de votre plan d'exécution hybride. N'utilisez pas de mot de passe vide pour votre paire de clés. Par exemple :
    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. Créez un compte utilisateur nommé apigee sur le serveur de sauvegarde. Assurez-vous que le nouvel utilisateur apigee dispose d'un répertoire d'accueil sous /home.
  5. Sur le serveur de sauvegarde, créez un répertoire ssh dans le nouveau répertoire /home/apigee.
  6. Copiez la clé publique (ssh_key.pub dans l'exemple précédent) dans un fichier nommé authorized_keys dans le nouveau répertoire /home/apigee/ssh. Par exemple :
    cd /home/apigee
    mkdir .ssh
    cd .ssh
    vi authorized_keys
  7. Sur votre serveur de sauvegarde, créez un répertoire de sauvegarde dans le répertoire /home/apigee/. Il peut s'agir de n'importe quel répertoire auquel l'utilisateur "apigee" a accès. Par exemple :
    cd /home/apigee
    mkdir cassandra-backup
  8. Testez la connexion. Vous devez vous assurer que vos pods Cassandra peuvent se connecter à votre serveur de sauvegarde via SSH :
    1. Connectez-vous à l'interface système de votre pod Cassandra. Par exemple :
      kubectl exec -it -n apigee apigee-cassandra-default-0 -- /bin/bash

      apigee-cassandra-default-0 est le nom d'un pod Cassandra. Remplacez ce nom par le nom du pod à partir duquel vous souhaitez vous connecter.

    2. Connectez-vous via SSH à votre serveur de sauvegarde en utilisant l'adresse IP du serveur :
      ssh apigee@backup-server-ip

Planifier les sauvegardes et définir leur destination

Vous devez définir le calendrier et la destination des sauvegardes dans le fichier overrides.yaml.

  1. Ajoutez les paramètres suivants au fichier overrides.yaml :

    Paramètres

    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"
    

    Exemple

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

    Où :

    Propriété Description
    backup:enabled La sauvegarde est désactivée par défaut. Vous devez définir cette propriété sur true.
    path-to-private-key-file Chemin d'accès au fichier de clé privée SSH (nommé ssh_key à l'étape où vous avez créé la paire de clés SSH) dans votre système de fichiers local.
    backup-server-ip Adresse IP de votre serveur de sauvegarde.
    backup-directory Nom du répertoire de sauvegarde sur votre serveur de sauvegarde. Il doit s'agir d'un répertoire dans home/apigee (le répertoire de sauvegarde nommé cassandra_backup à l'étape de création du répertoire de sauvegarde).
    HYBRID La propriété cloudProvider: "HYBRID" est obligatoire.
    schedule L'heure de début de la sauvegarde, spécifiée dans la syntaxe crontab standard. Par défaut : 0 2 * * *

    Remarque : Évitez de programmer une sauvegarde qui démarre peu de temps après l'application de la configuration de sauvegarde à votre cluster. Lorsque vous appliquez la configuration de sauvegarde, Kubernetes recrée les nœuds Cassandra. Si la sauvegarde se lance avant le redémarrage des nœuds (qui peut prendre plusieurs minutes), la sauvegarde échoue.

  2. Utilisez la commande apigeectl pour appliquer la configuration de la sauvegarde au champ d'application de stockage de votre cluster :
    $APIGEECTL_HOME/apigeectl --datastore -f your-overrides-file

    your-overrides-file est le chemin d'accès au fichier que vous venez de modifier.

Configurer la restauration

La restauration récupère les données du fichier de sauvegarde comportant le code temporel spécifié et les restaure dans un nouveau cluster Cassandra ayant le même nombre de pods. Le nouveau cluster doit avoir un espace de noms différent de celui du cluster du plan d'exécution.

Pour restaurer des sauvegardes Cassandra :

  1. Créez un nouveau cluster Kubernetes avec un nouvel espace de noms. Vous ne pouvez pas utiliser le même cluster/espace de noms que celui utilisé pour l'installation hybride d'origine.
  2. Dans le répertoire racine d'installation hybride, créez un nouveau fichier overrides-restore.yaml.
  3. Copiez la configuration Cassandra complète à partir de votre fichier overrides.yaml d'origine dans le nouveau fichier.
  4. Ajoutez les paramètres suivants au fichier overrides-restore.yaml :

    Paramètres

    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"
    

    Exemple

    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"
    

    Où :

    Propriété Description
    restore-namespace Nom du nouvel espace de noms pour le nouveau cluster Cassandra. N'utilisez pas le même espace de noms que celui utilisé pour votre cluster d'origine.
    restore:enabled La restauration est désactivée par défaut. Vous devez définir cette propriété sur true.
    path-to-private-key-file Chemin d'accès au fichier de clé privée SSH (nommé ssh_key à l'étape où vous avez créé la paire de clés SSH) dans votre système de fichiers local.
    backup-server-ip Adresse IP de votre serveur de sauvegarde.
    backup-directory Nom du répertoire de sauvegarde sur votre serveur de sauvegarde. Il doit s'agir d'un répertoire dans home/apigee (le répertoire de sauvegarde nommé cassandra_backup à l'étape de création du répertoire de sauvegarde).
    HYBRID La propriété cloudProvider: "HYBRID" est obligatoire.
    backup-to-restore Sauvegarde spécifique que vous souhaitez restaurer, spécifiée en utilisant la syntaxe crontab standard (sans caractère générique).
  5. Utilisez la commande apigeectl pour appliquer la configuration de la sauvegarde au champ d'application de stockage de votre cluster :
    $APIGEECTL_HOME/apigeectl --datastore -f your-overrides-restore-file

    your-overrides-restore-file est le chemin d'accès au fichier overrides-restore.yaml que vous venez de modifier.