Cómo agregar un centro de datos

Edge para la nube privada v4.18.01

En este documento, se describe cómo agregar un centro de datos (también llamado región) a uno existente.

Aspectos que se deben considerar antes de agregar un centro de datos

Antes de instalar un centro de datos, debes comprender cómo configurar los servidores OpenLDAP, ZooKeeper, Cassandra y Postgres en todos los centros de datos. También debes asegurarte de que los puertos necesarios estén abiertos entre los nodos de los dos centros de datos.

  • OpenLDAP
    Cada centro de datos tiene su propio servidor OpenLDAP configurado con la replicación habilitada. Cuando instalas el centro de datos nuevo, debes configurar OpenLDAP para usar la replicación y volver a configurar el servidor de OpenLDAP en el centro de datos existente a fin de usar la replicación.
  • ZooKeeper
    En la propiedad ZK_HOSTS de ambos centros de datos, especifica las direcciones IP o los nombres de DNS de todos los nodos de ZooKeeper de ambos centros de datos, en el mismo orden, y marca los nodos con el modificador “:observar”. Los nodos sin el modificador “:observar” se denominan “voters”. Debes tener una cantidad impar de “votantes” en la configuración.

    En esta topología, el host de ZooKeeper en el host 9 es el observador:



    En el archivo de configuración de ejemplo que se muestra a continuación, el nodo 9 se etiqueta con el modificador ":observar" para que tengas cinco votantes: Nodos 1, 2, 3, 7 y 8.

    Para la propiedad ZK_CLIENT_HOSTS de cada centro de datos, especifica las direcciones IP o los nombres de DNS solo de los nodos de ZooKeeper en el centro de datos, en el mismo orden, para todos los nodos de ZooKeeper en el centro de datos.
  • Cassandra
    Todos los centros de datos deben tener la misma cantidad de nodos de Cassandra.

    En el caso de CASS_HOSTS correspondiente a cada centro de datos, asegúrate de especificar todas las direcciones IP de Cassandra (no los nombres de DNS) para ambos. Para el centro de datos 1, primero enumera los nodos de Cassandra en ese centro de datos. Para el centro de datos 2, primero enumera los nodos de Cassandra en ese centro de datos. Enumera los nodos de Cassandra en el mismo orden para todos los nodos de Cassandra del centro de datos.

    Todos los nodos de Cassandra deben tener un sufijo “:<d>,<r>”, por ejemplo “<ip>:1,1 = centro de datos 1 y bastidor/zona de disponibilidad 1 y “<ip>:2,1 = centro de datos 2 y bastidor/zona de disponibilidad 1.
    Por ejemplo, “192.168.124.201:1,1 192.168.124.202:1,1 192.168.124.203:1,1 192.168.124.204:2,1 192.168.124.202:1,1 192.168.124.203:1,1 192.168.124.204:2,1 nodo 192.168.12.12:192.168.12.2

    En este modelo de implementación, la configuración de Cassandra se verá de la siguiente manera:


  • Postgres
    De forma predeterminada, Edge instala todos los nodos de Postgres en el modo principal. Sin embargo, cuando tienes varios centros de datos, debes configurar los nodos de Postgres para que usen la replicación de instancia principal en espera, de modo que, si el nodo principal falla, el nodo en espera pueda continuar con el tráfico del servidor. Por lo general, debes configurar el servidor Postgres principal en un centro de datos y el servidor en espera en el segundo.

    Si el centro de datos existente ya está configurado para tener dos nodos de Postgres que se ejecutan en modo principal o en espera, como parte de este procedimiento, anula el registro del nodo en espera existente y reemplázalo por uno en espera en el centro de datos nuevo.

    En la siguiente tabla, se muestra la configuración de Postgres anterior y posterior a ambas situaciones:

    Antes

    Después

    Nodo único principal de Postgres en dc-1

    Nodo principal de Postgres en dc-1

    Nodo de Postgres en espera en dc-2

    Nodo principal de Postgres en dc-1

    Nodo de Postgres en espera en dc-1

    Nodo principal de Postgres en dc-1

    Nodo de Postgres en espera en dc-2

    Anula el registro del nodo Postgres de Standby anterior en dc-1

  • Requisitos de puertos
    Debes asegurarte de que los puertos necesarios estén abiertos entre los nodos de los dos centros de datos. Para ver un diagrama de puertos, consulta Requisitos de instalación.

Actualiza el centro de datos existente

Para agregar un centro de datos, debes seguir los pasos a fin de instalar y configurar los nodos del centro de datos nuevo, pero también debes actualizar los nodos del centro de datos original. Estas modificaciones son necesarias porque estás agregando nodos de Cassandra y ZooKeeper nuevos al centro de datos nuevo, a los que debe poder acceder el centro de datos existente, y debes volver a configurar OpenLDAP para que use la replicación.

Crea los archivos de configuración

A continuación, se muestran los archivos de configuración silenciosos de los dos centros de datos, en los que cada uno tiene 6 nodos, como se muestra en Topologías de instalación. Ten en cuenta que el archivo de configuración para dc-1 agrega configuraciones adicionales a lo siguiente:

  • Configurar OpenLDAP con replicación en dos nodos de OpenLDAP.
  • Agrega los nodos de Cassandra y ZooKeeper nuevos de dc-2 al archivo de configuración de dc-1.
# Datacenter 1
IP1=IPorDNSnameOfNode1
IP2=IPorDNSnameOfNode2
IP3=IPorDNSnameOfNode3
IP7=IPorDNSnameOfNode7
IP8=IPorDNSnameOfNode8
IP9=IPorDNSnameOfNode9 
HOSTIP=$(hostname -i)
MSIP=$IP1
ADMIN_EMAIL=opdk@google.com
APIGEE_ADMINPW=Secret123
LICENSE_FILE=/tmp/license.txt
USE_LDAP_REMOTE_HOST=n
LDAP_TYPE=2
LDAP_SID=1
LDAP_PEER=$IP7
APIGEE_LDAPPW=secret
MP_POD=gateway-1
REGION=dc-1
ZK_HOSTS="$IP1 $IP2 $IP3 $IP7 $IP8 $IP9:observer"
ZK_CLIENT_HOSTS="$IP1 $IP2 $IP3"
# Must use IP addresses for CASS_HOSTS, not DNS names.
CASS_HOSTS="$IP1:1,1 $IP2:1,1 $IP3:1,1 $IP7:2,1 $IP8:2,1 $IP9:2,1"
SKIP_SMTP=n
SMTPHOST=smtp.example.com
SMTPUSER=smtp@example.com 
SMTPPASSWORD=smtppwd   
SMTPSSL=n
SMTPPORT=25
SMTPMAILFROM="My Company <myco@company.com>"
# Datacenter 2
IP1=IPorDNSnameOfNode1
IP2=IPorDNSnameOfNode2
IP3=IPorDNSnameOfNode3
IP7=IPorDNSnameOfNode7
IP8=IPorDNSnameOfNode8
IP9=IPorDNSnameOfNode9 
HOSTIP=$(hostname -i)
MSIP=$IP7
ADMIN_EMAIL=opdk@google.com
APIGEE_ADMINPW=Secret123
LICENSE_FILE=/tmp/license.txt
USE_LDAP_REMOTE_HOST=n
LDAP_TYPE=2
LDAP_SID=2
LDAP_PEER=$IP1
APIGEE_LDAPPW=secret
MP_POD=gateway-2
REGION=dc-2
ZK_HOSTS="$IP1 $IP2 $IP3 $IP7 $IP8 $IP9:observer"
ZK_CLIENT_HOSTS="$IP7 $IP8 $IP9"
# Must use IP addresses for CASS_HOSTS, not DNS names.
CASS_HOSTS="$IP7:2,1 $IP8:2,1 $IP9:2,1 $IP1:1,1 $IP2:1,1 $IP3:1,1"
SKIP_SMTP=n
SMTPHOST=smtp.example.com
SMTPUSER=smtp@example.com 
SMTPPASSWORD=smtppwd   
SMTPSSL=n
SMTPPORT=25
SMTPMAILFROM="My Company <myco@company.com>"

Procedimiento para agregar un centro de datos nuevo

En este procedimiento, los centros de datos se nombran de la siguiente manera:

  • dc-1: el centro de datos existente
  • dc-2: el nuevo centro de datos
  1. En dc-1, vuelve a ejecutar setup.sh en los nodos de Cassandra originales con el archivo de configuración de dc-1 nuevo que incluye los nodos de Cassandra de dc-2:
    /opt/apigee/apigee-setup/bin/setup.sh -p ds -f configFile1
  2. En dc-1, vuelve a ejecutar setup.sh en el nodo del servidor de administración:
    >/opt/apigee/apigee-setup/bin/setup.sh -p ms -f configFile1
  3. En dc-2, instala apigee-setup en todos los nodos. Consulta Instala la utilidad apigee-setup de Edge para obtener más información.
  4. En dc-2, instala Cassandra y ZooKeeper en los nodos adecuados:
    /opt/apigee/apigee-setup/bin/setup.sh -p ds -f configFile2
  5. En dc-2, ejecuta el comando de recompilación en todos los nodos de Cassandra y especifica el nombre de la región de dc-1:
    >/opt/apigee/apigee-cassandra/bin/nodetool -h cassIP vuelve a compilar dc-1
  6. En dc-2, instala el servidor de administración en el nodo adecuado:
    >/opt/apigee/apigee-setup/bin/setup.sh -p ms -fconfigFile2
  7. En el nodo de Management Server de dc-2, instala apigee-provision, que instala la utilidad apigee-adminapi.sh:
    > /opt/apigee/apigee-service/bin/apigee-service apigee-provision install
  8. En dc-2, instala las rutas y los procesadores de mensajes en los nodos adecuados:
    >/opt/apigee/apigee-setup/bin/setup.sh -p rmp -f configFile2
  9. En dc-2, instala Qpid en los nodos adecuados:
    >/opt/apigee/apigee-setup/bin/setup.sh -p qs -f configFile2
  10. En dc-2, instala Postgres en el nodo adecuado:
    >/opt/apigee/apigee-setup/bin/setup.sh -p ps -fconfigFile2
  11. Configura la instancia principal o en espera de Postgres para los nodos de Postgres. El nodo de Postgres en dc-1 es la instancia principal y el nodo de Postgres en dc-2 es el servidor en espera.

    Nota: Si dc-1 ya está configurado para tener dos nodos Postgres que se ejecutan en modo principal/en espera, como parte de este procedimiento, usa el nodo Postgres principal existente en dc-1 como el principal y el nodo Postgres en dc-2 como el servidor en espera. Más adelante en este procedimiento, anularás el registro del servidor en espera de Postgres existente en dc-1.
    1. En el nodo principal de dc-1, edita el archivo de configuración para configurar:
      PG_MASTER=IPorDNSofDC1Master
      PG_STANDBY=IPorDNSofDC2Standby
    2. Habilita la replicación en la instancia principal nueva:
      > /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-master -f configFIle
    3. En el nodo en espera de dc-2, edita el archivo de configuración para configurar:
      PG_MASTER=IPorDNSofDC1Master
      PG_STANDBY=IPorDNSofDC2Standby
    4. En el nodo en espera de dc-2, detén el servidor y, luego, borra los datos de Postgres existentes:
      >/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql stop
      > rm -rf /opt/apigee/data/apigee-postgresql/

      Nota: Si es necesario, puedes crear una copia de seguridad de estos datos.
    5. Configura el nodo en espera en dc-2:
      > /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on- Standby -f configFile
  12. En dc-1, actualiza la configuración de estadísticas y configura las organizaciones.
    1. En el nodo del servidor de administración de dc-1, obtén el UUID del nodo de Postgres:
      > apigee-adminapi.sh server list -r dc-1 -p analytics -t postgres-server --admin adminEmail --pwd adminPword --host localhost

      El UUID aparece al final de los datos mostrados. Guarda ese valor.

      Nota: Si dc-1 está configurado para tener dos nodos de Postgres en ejecución en modo principal/en espera, verás dos direcciones IP y UUID en el resultado. Guarda ambos UUID. A partir de las IP, deberías poder determinar qué UUID es para la instancia principal y cuál es para el nodo en espera.
    2. En el nodo del servidor de administración de dc-2, obtén el UUID del nodo de Postgres como se muestra en el paso anterior. Guarda ese valor.
    3. En el nodo del servidor de administración de dc-1, determina el nombre de los grupos de consumidores y de estadísticas. Muchos de los siguientes comandos requieren esa información.
      De forma predeterminada, el nombre del grupo de estadísticas es axgroup-001 y el nombre del grupo de consumidores es consumer-group-001. En el archivo de configuración silencioso de una región, puedes establecer el nombre del grupo de estadísticas con la propiedad AXGROUP.

      Si no estás seguro de los nombres de los grupos de consumidores y de estadísticas, usa el siguiente comando para mostrarlos:
      > apigee-adminapi.sh groups list --admin adminEmail --pwd adminPword --host localhost

      Este comando muestra el nombre del grupo de estadísticas en el campo de nombre y el nombre del grupo de consumidores en el campo de los grupos de consumidores.
    4. En el nodo del servidor de administración de dc-1, quita el servidor de Postgres existente del grupo de estadísticas:
      1. Quita el nodo Postgres UUID de consumer-group:
        > apigee-adminapi.sh analytics groups consumer_groups datastores remove -g axgroup-001 -c consumer-group-001 -u UUID -Y --admin adminEmail --pwd adminPword --host localhost

        Si dc-adminclusters con el modo de adminPword
      2. Quita el nodo Postgres UUID del grupo de estadísticas:
        > apigee-adminapi.sh analytics groups postgres_server remove -g axgroup-001 -u UUID -Y --admin adminEmail --pwd adminPword --host localhost


        Si dc-1 está configurado para tener dos nodos Postgres localhost y en modo de espera
        , quita un nodo de Postgres de localhost/Standby.
    5. En el nodo del servidor de administración de dc-1, agrega los nuevos servidores Postgres principales/en espera al grupo de estadísticas:
      1. Agrega ambos servidores Postgres al grupo de estadísticas:
        > apigee-adminapi.sh grupos de estadísticas postgres_server add -g axgroup-001 -u "UUID_1,UUID_2" --admin adminEmail --pwd adminPword --host localhost

        en el que UUID_1 corresponde al nodo Postgres de Postgres en espera
      2. Agrega los servidores de PG al grupo de consumidores como principal/en espera:
        > apigee-adminapi.sh analytics groups groups consumer_groups datastores add -g axgroup-001 -c consumer-group-001 -u "UUID_1,UUID_2" --admin adminEmail --pwd adminPword -- localhost
    6. Agrega los servidores Qpid de dc-2 al grupo de estadísticas:
      1. En el nodo del servidor de administración de dc-1, obtén los UUID de los nodos de Qpid en dc-2:
        > apigee-adminapi.sh server list -r dc-2 -p central -t qpid-server --admin adminEmail --pwd adminPword --host localhost

        El UUID de datos del localhost Guarda esos valores.
      2. En el nodo del servidor de administración de dc-1, agrega los nodos de Qpid al grupo de estadísticas (ejecuta ambos comandos):
        >apigee-adminapi.sh analytics groups qpid_server add -g axgroup-001 -u "UUID_1 --admin adminEmail --pwd adminPword --host_localhost

      3. En el nodo del servidor de administración de dc-1, agrega los nodos de Qpid UUID0 al grupo de consumidores (ejecuta ambos comandos):
        > apigee-adminapi.sh analytics groups consumer_groups Consumer add -g axgroup-001 -c consumer-group-001 -u “host_localhost" --admin adminEmail --pwd adminPword groups.

    7. Anula el registro del servidor en espera de Postgres anterior de dc-1 y bórralo:
      1. Anula el registro del servidor en espera de Postgres dc-1 existente:
        > apigee-adminapi.sh los servidores anulan el registro -u UUID -r dc-1 -p analytics -t postgres-server -Y --admin adminEmail --pwd adminPword --host localhost

        donde UUID es el nodo Postgres de Postgres anterior.
      2. Borra el servidor en espera Postgres de dc-1 existente:
        Nota: Este comando no desinstala el nodo del servidor de Postgres. Solo lo quita de la lista de nodos de Edge. Más adelante, si es necesario, puedes desinstalar Postgres del nodo.
        > apigee-adminapi.sh los servidores delete -u UUID --admin adminEmail --pwd adminPword --host localhost
  13. Actualizar los espacios de claves de Cassandra con el factor de replicación correcto para los dos centros de datos Solo debes ejecutar este paso una vez en cualquier servidor de Cassandra en cualquiera de los centros de datos:

    Nota: Los siguientes comandos establecen el factor de replicación en “3”, lo que indica tres nodos de Cassandra en el clúster. Modifica este valor según sea necesario para la instalación.
    1. Inicia la utilidad de Cassandra cqlsh:
      >/opt/apigee/apigee-cassandra/bin/cqlsh cassandraIP
    2. Ejecuta los siguientes comandos de CQL en el mensaje “cqlsh>" para configurar los niveles de replicación de los espacios de claves de Cassandra:
      1. cqlsh> ALTERAR KEYSPACE “identityzone” WITH replica = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
      2. cqlsh> ALTER KEYSPACE "system_traces" WITH replica = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
      3. Visualiza los espacios de claves con el comando:
        cqlsh> select * from system.schema_keyspaces;
      4. Sal de cqlsh:
        cqlsh> exit
  14. Ejecuta el siguiente comando nodetool en todos los nodos de Cassandra en dc-1 para liberar memoria:
    >/opt/apigee/apigee-cassandra/bin/nodetool -h cassandraIP limpieza
  15. En cada organización y entorno que desees admitir en los centros de datos, haz lo siguiente:
    1. En el nodo del servidor de administración de dc-1, agrega el MP_POD nuevo a la organización:
      > apigee-adminapi.sh orgs pods add -o orgName -r dc-2 -p gateway-2 --admin adminEmail --pwd adminPword --host localhost

      donde gateway-2 es el nombre de la puerta de enlace de la puerta de enlace de MPD2.
    2. Agrega los nuevos Message Processor a la organización y al entorno:
      1. En el nodo del servidor de administración de dc-2, obtén los UUID de los nodos del procesador de mensajes en dc-2:
        > apigee-adminapi.sh server list -r dc-2 -p gateway-2 -t message-processor --admin adminEmail --pwd adminPword --host localhost

        El UUID de los datos del host local aparece en el nodo del servidor de administración de dc-2. Guarda esos valores.
      2. En el nodo del servidor de administración de dc-1, para cada Message Processor en dc-2, agrega el Message Processor a un entorno de la organización:
        > apigee-adminapi.sh orgs envs servers add -o orgName -e envName -u UUID --admin adminEmail --pwd adminPword --pwd adminPword
    3. En el nodo del servidor de administración de dc-1, verifica la organización:
      > apigee-adminapi.sh orgs apis deployments -o orgName -a apiProxyName --admin adminEmail --pwd adminPword --host localhost

      donde apiProxyName es el nombre de un proxy de API implementado en la organización.