Restablecer en varias regiones

En esta página, se describe cómo recuperar o restablecer Cassandra en varias regiones.

En una implementación multirregional, Apigee Hybrid se implementa en varias ubicaciones geográficas en diferentes centros de datos. Si una o más regiones fallan, pero permanecen regiones en buen estado, puedes usar una región en buen estado para recuperar regiones con errores de Cassandra con los datos más recientes.

En caso de una falla catastrófica de todas las regiones híbridas, Cassandra se puede restablecer. Es importante tener en cuenta que, si tienes varias organizaciones de Apigee en tu implementación, el proceso de restablecimiento restablece los datos de todas las organizaciones. En una configuración de varias organizaciones, no se admite restablecer solo una organización específica.

En este tema, se describen ambos enfoques para recuperar las regiones con errores:

  • Recuperar regiones con errores: Describe los pasos para recuperar regiones con errores en función de una región en buen estado.
  • Restablecer regiones con errores: Describe los pasos para restablecer regiones con errores desde una copia de seguridad. Este enfoque solo es necesario si todas las regiones híbridas se ven afectadas.

Recupera las regiones con errores

Para recuperar regiones con errores a partir de una región en buen estado, sigue estos pasos:

  1. Redirecciona el tráfico de la API de las regiones afectadas a la región que funciona. Planifica la capacidad según corresponda para admitir el tráfico desviado de las regiones con errores.
  2. Quita la región afectada. Para cada región afectada, sigue los pasos descritos en Retira una región híbrida. Espera a que se complete el retiro antes de continuar con el siguiente paso.

  3. Restablece la región afectada. Para restablecer, crea una región nueva, como se describe en Implementación multirregional en GKE, GKE On-Prem y AKS.

Restablece a partir de una copia de seguridad

La copia de seguridad de Cassandra puede residir en Cloud Storage o en un servidor remoto según la configuración. Para restablecer Cassandra desde una copia de seguridad, realiza los siguientes pasos:

  1. Abre el archivo de anulaciones para la región que deseas restablecer.
  2. Establece cassandra:hostNetwork en false.
  3. Aplica el archivo de anulaciones:

    Helm

    helm upgrade datastore apigee-datastore/ \
      --install \
      --namespace apigee \
      -f OVERRIDES_FILE
    

    apigeectl

    $APIGEECTL_HOME/apigeectl apply -f YOUR_OVERRIDES_FILE.yaml
  4. Antes de continuar, asegúrate de que hostNetwork esté configurado como false:
    kubectl -n apigee get apigeeds -o=jsonpath='{.items[].spec.components.cassandra.hostNetwork}'
  5. Borra los componentes híbridos de la región que estás restableciendo:

    Helm

    helm delete DATASTORE_RELEASE_NAME \
      --namespace apigee
    

    En el ejemplo anterior, DATASTORE_RELEASE_NAME es el nombre de la versión del almacén de datos en el que instalaste Cassandra en la región, por ejemplo, datastore-region1.

    apigeectl

    $APIGEECTL_HOME/apigeectl delete -f YOUR_OVERRIDES_FILE.yaml
  6. Restablece la región deseada a partir de una copia de seguridad. Para obtener más información, consulta Restablece una región a partir de una copia de seguridad.

  7. Quita las referencias de las regiones borradas y agrega las referencias de las regiones restablecidas en los metadatos KeySpaces.
  8. Obtén el nombre del centro de datos de Cassandra con la opción nodetool status.
    kubectl exec -n apigee -it apigee-cassandra-default-0 -- bash
          nodetool  -u APIGEE_JMX_USER -pw APIGEE_JMX_PASSWORD status |grep -i Datacenter

    Donde:

    • APIGEE_JMX_USER es el nombre de usuario para el usuario de operaciones de Cassandra JMX. Se usa para autenticar y comunicarse con la interfaz de Cassandra JMX. Consulta cassandra:auth:jmx:username.
    • APIGEE_JMX_PASSWORD es la contraseña para el usuario de operaciones de Cassandra JMX. Consulta cassandra:auth:jmx:password.
  9. Actualiza la replicación KeySpaces.
    1. Crea un contenedor de cliente y conéctate al clúster de Cassandra a través de la interfaz de CQL.
    2. Obtén la lista de espacios de claves de usuario de la interfaz de 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

      Donde:

      • CASSANDRA_SEED_HOST es el host de origen multirregión de Cassandra. Para la mayoría de las instalaciones multirregionales, usa la dirección IP de un host en tu primera región. Consulta Configura Apigee Hybrid para multirregión y cassandra:externalSeedHost.
      • APIGEE_DDL_USER y APIGEE_DDL_PASSWORD son el nombre de usuario y la contraseña del administrador para el usuario del lenguaje de definición de datos (DDL) de Cassandra. Los valores predeterminados son “ddl_user” y “iloveapis123”.

        Consulta cassandra.auth.ddl.password en la referencia de las propiedades de configuración y las Opciones de la línea de comandos en la documentación de cqlsh de Apache Cassandra.

    3. En cada espacio de clave, ejecuta el siguiente comando desde la interfaz de CQL para actualizar la configuración de la replicación:
      ALTER KEYSPACE KEYSPACE_NAME WITH replication = {'class': 'NetworkTopologyStrategy', 'DATACENTER_NAME':3};

      Donde:

      • KEYSPACE_NAME es el nombre del espacio de claves que aparece en el resultado del paso anterior.
      • DATACENTER_NAME es el nombre del centro de datos de Cassandra que obtuviste con la opción nodetool status en el paso 8.