Effectuer une restauration dans plusieurs régions

Cette page explique comment récupérer ou restaurer Cassandra dans plusieurs régions.

Dans un déploiement multirégional, Apigee hybrid est déployé dans plusieurs emplacements géographiques situés dans différents centres de données. Si une ou plusieurs régions connaissent une défaillance, mais qu'il reste des régions opérationnelles, vous pouvez utiliser l'une de ces régions opérationnelles afin de récupérer les données les plus récentes pour les régions Cassandra subissant une défaillance.

En cas de défaillance sérieuse de toutes les régions hybrides, il est possible de restaurer Cassandra. Il est important de noter que, si vous avez plusieurs organisations Apigee dans votre déploiement, le processus de restauration restaure les données pour toutes les organisations. Dans une configuration comportant plusieurs organisations, la restauration d'une organisation spécifique n'est pas acceptée.

Cet article décrit les deux approches permettant de récupérer la ou les régions subissant une défaillance :

Récupérer des régions ayant échoué

Pour récupérer une ou plusieurs régions ayant échoué à partir d'une région opérationnelle, procédez comme suit :

  1. Redirigez le trafic de l'API des régions concernées vers la région opérationnelle. Planifiez la capacité en conséquence pour gérer le trafic détourné des régions défaillantes.
  2. Mettez hors service la région concernée. Pour chaque région affectée, suivez les étapes décrites dans la section Mettre hors service une région hybride. Attendez la fin de la mise hors service avant de passer à l'étape suivante.

  3. Restaurez la région affectée. Pour effectuer une restauration, créez une région comme décrit dans la section Déploiement multirégional sur GKE, GKE On-Prem et AKS.

Effectuer une restauration à partir d'une sauvegarde

En fonction de votre configuration, la sauvegarde Cassandra peut se trouver sur Cloud Storage ou sur un serveur distant. Pour restaurer Cassandra à partir d'une sauvegarde, procédez comme suit :

  1. Ouvrez le fichier de remplacement correspondant à la région que vous souhaitez restaurer.
  2. Définissez cassandra:hostNetwork sur false.
  3. Appliquez le fichier de remplacement :
    helm upgrade datastore apigee-datastore/ \
      --install \
      --namespace APIGEE_NAMESPACE \
      -f OVERRIDES_FILE
    
  4. Avant de continuer, assurez-vous que hostNetwork est défini sur false :
    kubectl -n APIGEE_NAMESPACE get apigeeds -o=jsonpath='{.items[].spec.components.cassandra.hostNetwork}'
  5. Supprimez Apigee hybrid de la région que vous restaurez :
    helm delete DATASTORE_RELEASE_NAME \
      --namespace APIGEE_NAMESPACE
    

    DATASTORE_RELEASE_NAME correspond au nom de la version du datastore dans lequel vous avez installé Cassandra dans la région (par exemple, datastore-region1).

  6. Restaurez la région souhaitée à partir d'une sauvegarde. Pour en savoir plus, consultez la section Restaurer une région à partir d'une sauvegarde.

  7. Supprimez les références des régions supprimées et ajoutez les références des régions restaurées dans les métadonnées KeySpaces.
  8. Obtenez le nom du centre de données Cassandra à l'aide de l'option nodetool status.
    kubectl exec -n APIGEE_NAMESPACE -it apigee-cassandra-default-0 -- bash
          nodetool  -u APIGEE_JMX_USER -pw APIGEE_JMX_PASSWORD status |grep -i Datacenter

    où :

    • APIGEE_JMX_USER est le nom de l'utilisateur des opérations Cassandra JMX. Permet l'authentification et la communication avec l'interface Cassandra JMX. Consultez cassandra:auth:jmx:username.
    • APIGEE_JMX_PASSWORD est le mot de passe de l'utilisateur des opérations Cassandra JMX. Consultez cassandra:auth:jmx:password.
  9. Mettez à jour la réplication KeySpaces.
    1. Créez un conteneur client et connectez-vous au cluster Cassandra via l'interface CQL.
    2. Obtenez la liste des espaces de clés utilisateur à partir de l'interface CQL :
      cqlsh CASSANDRA_SEED_HOST -u APIGEE_DDL_USER -p APIGEE_DDL_PASSWORD
            --ssl -e "select keyspace_name from system_schema.keyspaces;"|grep -v system

      où :

      • CASSANDRA_SEED_HOST est l'hôte source multirégional pour Cassandra. Pour la plupart des installations multirégionales, utilisez l'adresse IP d'un hôte de votre première région. Consultez les sections Configurer Apigee hybrid pour une zone multirégionale et cassandra:externalSeedHost.
      • APIGEE_DDL_USER et APIGEE_DDL_PASSWORD sont le nom d'utilisateur et le mot de passe d'administrateur de l'utilisateur Cassandra LDD (langage de définition de données). Les valeurs par défaut sont "ddl_user" et "iloveapis123".

        Consultez la section cassandra.auth.ddl.password dans la documentation de référence sur les propriétés de configuration et les options de ligne de commande dans la documentation cqlsh Apache Cassandra.

    3. Pour chaque espace de clés, exécutez la commande suivante à partir de l'interface CQL pour mettre à jour les paramètres de réplication :
      ALTER KEYSPACE KEYSPACE_NAME WITH replication = {'class': 'NetworkTopologyStrategy', 'DATACENTER_NAME':3};

      où :

      • KEYSPACE_NAME correspond au nom de l'espace de clés répertorié dans la sortie de l'étape précédente.
      • DATACENTER_NAME est le nom du centre de données Cassandra obtenu avec l'option nodetool status à l'étape 8.