Aggiungere un data center

Edge for Private Cloud v4.18.01

Questo documento descrive come aggiungere un data center (detto anche regione) a un data center esistente.

Considerazioni da fare prima di aggiungere un data center

Prima di installare l'aggiunta di un data center, devi comprendere come configurare i server OpenLDAP, ZooKeeper, Cassandra e Postgres nei data center. Devi inoltre assicurarti che le porte necessarie siano aperte tra i nodi nei due data center.

  • OpenLDAP
    Ogni data center ha il proprio server OpenLDAP configurato con la replica abilitata. Quando installi il nuovo data center, devi configurare OpenLDAP per utilizzare la replica e riconfigurare il server OpenLDAP nel data center esistente per utilizzare la replica.
  • ZooKeeper
    Per la proprietà ZK_HOSTS per entrambi i data center, specifica gli indirizzi IP o i nomi DNS di tutti i nodi ZooKeeper di entrambi i data center nello stesso ordine e contrassegna tutti i nodi con il tasto di modifica ":observer". I nodi senza il modificatore ":observer" sono chiamati "elettori". Devi avere un numero dispari di "elettori" nella configurazione.

    In questa topologia, l'host ZooKeeper sull'host 9 è l'osservatore:



    Nel file di configurazione di esempio mostrato di seguito, il nodo 9 è contrassegnato con il modificatore ":observer" in modo da avere cinque elettori: nodi 1, 2, 3, 7 e 8.

    Per la proprietà ZK_CLIENT_HOSTS di ogni data center, specifica gli indirizzi IP o i nomi DNS dei soli nodi ZooKeeper nel data center, nello stesso ordine, per tutti i nodi ZooKeeper nel data center.
  • Cassandra
    Tutti i data center devono avere lo stesso numero di nodi Cassandra.

    Per CASS_HOSTS per ogni centro di dati, assicurati di specificare tutti gli indirizzi IP di Cassandra (non i nomi DNS) per entrambi i centri di dati. Per il data center 1, elenca prima i nodi Cassandra in quel data center. Per il data center 2, elenca per prima cosa i nodi Cassandra nel data center in questione. Elenca i nodi Cassandra nello stesso ordine per tutti i nodi Cassandra nel data center.

    Tutti i nodi Cassandra devono avere un suffisso ":<d>,<r>", ad esempio "<ip>:1,1 = data center 1 e zona di disponibilità/rack 1 e "<ip>:2,1 = data center 2 e zona di disponibilità rack 1".
    Ad esempio, "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.205:2,1 192.168.124.206:2,1"

    Il primo nodo nella zona rack/di disponibilità 1 di ogni data center verrà utilizzato come server di seed. In questo modello di deployment, la configurazione di Cassandra sarà la seguente:


  • Postgres
    Per impostazione predefinita, Edge installa tutti i nodi Postgres in modalità master. Tuttavia, se hai più data center, configura i nodi Postgres in modo che utilizzino la replica master-standby in modo che, se il nodo master non funziona, il nodo standby possa continuare a gestire il traffico del server. In genere, configuri il server Postgres master in un data center e il server standby nel secondo data center.

    Se il data center esistente è già configurato per avere due nodi Postgres in esecuzione in modalità master/standby, nell'ambito di questa procedura, annulla la registrazione del nodo standby esistente e sostituitelo con un nodo standby nel nuovo data center.

    La tabella seguente mostra la configurazione di Postgres prima e dopo per entrambi gli scenari:

    Prima

    Dopo

    Nodo Postgres master singolo in dc-1

    Nodo Postgres master in dc-1

    Nodo Postgres di standby in dc-2

    Nodo Postgres master in dc-1

    Nodo Postgres di riserva in dc-1

    Nodo Postgres master in dc-1

    Nodo Postgres di standby in dc-2

    Annullare la registrazione del vecchio nodo Postgres di standby in dc-1

  • Requisiti delle porte
    Devi assicurarti che le porte necessarie siano aperte tra i nodi dei due data center. Per un diagramma delle porte, consulta la sezione Requisiti di installazione.

Aggiornamento del data center esistente

L'aggiunta di un data center richiede l'esecuzione dei passaggi per installare e configurare i nuovi nodi del data center, ma richiede anche l'aggiornamento dei nodi nel data center originale. Queste modifiche sono necessarie perché aggiungi nuovi nodi Cassandra e ZooKeeper nel nuovo data center che devono essere accessibili al data center esistente e devi riconfigurare OpenLDAP per utilizzare la replica.

Creazione dei file di configurazione

Di seguito sono riportati i file di configurazione silenziosi per i due data center, in cui ogni data center ha 6 nodi, come mostrato in Topologie di installazione. Tieni presente che il file di configurazione per dc-1 aggiunge impostazioni aggiuntive a:

  • Configura OpenLDAP con la replica tra due nodi OpenLDAP.
  • Aggiungi i nuovi nodi Cassandra e ZooKeeper da dc-2 al file di configurazione per 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>"

Procedura per aggiungere un nuovo data center

In questa procedura, i data center sono denominati:

  • dc-1: il data center esistente
  • dc-2: il nuovo data center
  1. Su dc-1, esegui di nuovo setup.sh sui nodi Cassandra originali con il nuovo file di configurazione dc-1 che include i nodi Cassandra di dc-2:
    /opt/apigee/apigee-setup/bin/setup.sh -p ds -f configFile1
  2. In dc-1, esegui nuovamente setup.sh sul nodo del server di gestione:
    > /opt/apigee/apigee-setup/bin/setup.sh -p ms -f configFile1
  3. Su dc-2, installa apigee-setup su tutti i nodi. Per ulteriori informazioni, consulta Installare l'utilità apigee-setup di Edge.
  4. Su dc-2, installa Cassandra e ZooKeeper sui nodi appropriati:
    /opt/apigee/apigee-setup/bin/setup.sh -p ds -f configFile2
  5. Su dc-2, esegui il comando rebuild su tutti i nodi Cassandra, specificando il nome della regione di dc-1:
    > /opt/apigee/apigee-cassandra/bin/nodetool -h cassIP rebuild dc-1
  6. Su dc-2, installa il server di gestione sul nodo appropriato:
    > /opt/apigee/apigee-setup/bin/setup.sh -p ms -f configFile2
  7. Nel nodo del server di gestione in dc-2, installa apigee-provision, che installa l'utilità apigee-adminapi.sh:
    > /opt/apigee/apigee-service/bin/apigee-service apigee-provision install
  8. Su dc-2, installa i processori di route e messaggi sui nodi appropriati:
    > /opt/apigee/apigee-setup/bin/setup.sh -p rmp -f configFile2
  9. Su dc-2, installa Qpid sui nodi appropriati:
    > /opt/apigee/apigee-setup/bin/setup.sh -p qs -f configFile2
  10. Su dc-2, installa Postgres sul nodo appropriato:
    > /opt/apigee/apigee-setup/bin/setup.sh -p ps -f configFile2
  11. Configura il master/standby Postgres per i nodi Postgres. Il nodo Postgres in dc-1 è il master e il nodo Postgres in dc-2 è il server di riserva.

    Nota: se dc-1 è già configurato per avere due nodi Postgres in esecuzione in modalità master/standby, nell'ambito di questa procedura utilizza il nodo Postgres master esistente in dc-1 come master e il nodo Postgres in dc-2 come server di standby. Più avanti in questa procedura, annullerai la registrazione del server in standby Postgres esistente in dc-1.
    1. Sul nodo master in dc-1, modifica il file di configurazione impostandolo:
      PG_MASTER=IPorDNSofDC1Master
      PG_STANDBY=IPorDNSofDC2Standby
    2. Attiva la replica sul nuovo master:
      > /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-master -f configFIle
    3. Sul nodo di standby in dc-2, modifica il file di configurazione per impostare:
      PG_MASTER=IPorDNSofDC1Master
      PG_STANDBY=IPorDNSofDC2Standby
    4. Sul nodo in standby in dc-2, arresta il server, quindi elimina tutti i dati Postgres esistenti:
      > /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql stop
      > rm -rf /opt/apigee/data/apigee-postgresql/

      Nota: se necessario, puoi eseguire il backup di questi dati prima di eliminarli.
    5. Configura il nodo di standby in dc-2:
      > /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-standby -f configFile
  12. Su dc-1, aggiorna la configurazione di Analytics e configura le organizzazioni.
    1. Nel nodo del server di gestione di dc-1, ottieni l'UUID del nodo Postgres:
      > apigee-adminapi.sh server list -r dc-1 -p analytics -t postgres-server --admin adminEmail --pwd adminPword --host localhost

      L'UUID viene visualizzato alla fine dei dati restituiti. Salva il valore.

      Nota: se dc-1 è configurato per avere due nodi Postgres in esecuzione in modalità master/standby, nell'output vengono visualizzati due indirizzi IP e due UUID. Salva entrambi gli UUID. Dagli IP, dovresti essere in grado di determinare quale UUID è per il master e quale per il node standby.
    2. Nel nodo del server di gestione di dc-2, recupera l'UUID del nodo Postgres come mostrato nel passaggio precedente. Salva il valore.
    3. Nel nodo del server di gestione di dc-1, determina il nome dei gruppi di analisi e dei gruppi di consumatori. Molti dei comandi riportati di seguito richiedono queste informazioni.
      Per impostazione predefinita, il nome del gruppo di analisi è axgroup-001 e il nome del gruppo di consumatori è consumer-group-001. Nel file di configurazione silenzioso di una regione, puoi impostare il nome del gruppo di analisi utilizzando la proprietà AXGROUP.

      Se hai dubbi sui nomi dei gruppi di analisi e dei gruppi di consumatori, utilizza il seguente comando per visualizzarli:
      > apigee-adminapi.sh analytics groups list --admin adminEmail --pwd adminPword --host localhost

      Questo comando restituisce il nome del gruppo di analisi nel campo name e il nome del gruppo di consumatori nel campo consumer-groups.
    4. Sul nodo del server di gestione di dc-1, rimuovi il server Postgres esistente dal gruppo di analisi:
      1. Rimuovi il nodo Postgres dal gruppo di consumo:
        > 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

        Se dc-1 è configurato per avere due nodi Postgres in esecuzione in modalità master/standby, rimuovi entrambi:
        > apigee-adminapi.sh analytics groups consumer_groups datastores remove -g axgroup-001 -c consumer-group-001 -u "UUID_1,UUID_2" -Y --admin adminEmail --pwd adminPword --host localhost
      2. Rimuovi il nodo Postgres dal gruppo di analisi:
        > apigee-adminapi.sh analytics groups postgres_server remove -g axgroup-001 -u UUID -Y --admin adminEmail --pwd adminPword --host localhost

        Se dc-1 è configurato per avere due nodi Postgres in esecuzione in modalità master/standby, rimuovi entrambi:
        > apigee-adminapi.sh analytics groups postgres_server remove -g axgroup-001 -u UUID1,UUID2 -Y --admin adminEmail --pwd adminPword --host localhost
    5. Nel nodo del server di gestione di dc-1, aggiungi i nuovi server Postgres master/standby al gruppo di analisi:
      1. Aggiungi entrambi i server Postgres al gruppo di analisi:
        > apigee-adminapi.sh analytics groups postgres_server add -g axgroup-001 -u "UUID_1,UUID_2" --admin adminEmail --pwd adminPword --host localhost

        dove UUID_1 corrisponde al nodo Postgres principale in dc-1 e UUID_2 corrisponde al nodo Postgres standby in dc-2.
      2. Aggiungi i server PG al consumer-group come master/standby:
        > apigee-adminapi.sh analytics groups consumer_groups datastores add -g axgroup-001 -c consumer-group-001 -u "UUID_1,UUID_2" --admin adminEmail --pwd adminPword --host localhost
    6. Aggiungi i server Qpid da dc-2 al gruppo di analisi:
      1. Nel nodo del server di gestione di dc-1, ottieni gli UUID dei nodi Qpid in dc-2:
        > apigee-adminapi.sh servers list -r dc-2 -p central -t qpid-server --admin adminEmail --pwd adminPword --host localhost

        Gli UUID vengono visualizzati alla fine dei dati restituiti. Salva questi valori.
      2. Nel nodo del server di gestione di dc-1, aggiungi i nodi Qpid al gruppo di analisi (esegui entrambi i comandi):
        >apigee-adminapi.sh analytics groups qpid_server add -g axgroup-001 -u "UUID_1 --admin adminEmail --pwd adminPword --host localhost

        >apigee-adminapi.sh analytics groups qpid_server add -g axgroup-001 -u "UUID_2" --admin adminEmail --pwd adminPword --host localhost
      3. Sul nodo del server di gestione di dc-1, aggiungi i nodi Qpid al gruppo di consumatori (esegui entrambi i comandi):
        > apigee-adminapi.sh analytics groups consumer_groups consumers add -g axgroup-001 -c consumer-group-001 -u "UUID_1" --admin adminEmail --pwd adminPword --host localhost

        > apigee-adminapi.sh analytics groups consumer_groups consumers add -g axgroup-001 -c consumer-group-001 -u "UUID_2" --admin adminEmail --pwd adminPword --host localhost
    7. Registra e poi elimina il vecchio server standby Postgres da dc-1:
      1. Hai bisogno di eseguire la registrazione del server Postgres di standby dc-1 esistente:
        > apigee-adminapi.sh servers deregister -u UUID -r dc-1 -p analytics -t postgres-server -Y --admin adminEmail --pwd adminPword --host localhost

        dove UUID è il vecchio node Postgres di standby in dc-1.
      2. Elimina il server Postgres di standby dc-1 esistente:
        Nota: questo comando non disinstalla il nodo del server Postgres. Viene rimosso solo dall'elenco dei nodi Edge. Se necessario, puoi disinstallare Postgres dal nodo in un secondo momento.
        > apigee-adminapi.sh servers delete -u UUID --admin adminEmail --pwd adminPword --host localhost
  13. Aggiorna gli spazi chiavi Cassandra con il fattore di replica corretto per i due data center. Devi eseguire questo passaggio solo una volta su qualsiasi server Cassandra in entrambi i data center:

    Nota: tutti i comandi riportati di seguito impostano il fattore di replica su "3", indicando tre nodi Cassandra nel cluster. Modifica questo valore in base alle esigenze dell'installazione.
    1. Avvia l'utilità cqlsh Cassandra:
      > /opt/apigee/apigee-cassandra/bin/cqlsh cassandraIP
    2. Esegui i seguenti comandi CQL al prompt "cqlsh>" per impostare i livelli di replica per gli spazi chiavi Cassandra:
      1. cqlsh> ALTER KEYSPACE "identityzone" WITH replication = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
      2. cqlsh> ALTER KEYSPACE "system_traces" WITH replication = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
      3. Visualizza gli spazi delle chiavi utilizzando il comando:
        cqlsh> select * from system.schema_keyspaces;
      4. Esci da cqlsh:
        cqlsh> exit
  14. Esegui il seguente comando nodetool su tutti i nodi Cassandra in dc-1 per liberare memoria:
    > /opt/apigee/apigee-cassandra/bin/nodetool -h cassandraIP cleanup
  15. Per ogni organizzazione e per ogni ambiente da supportare nei data center:
    1. Nel nodo Server di gestione di dc-1, aggiungi il nuovo MP_POD all'organizzazione:
      > apigee-adminapi.sh orgs pods add -o orgName -r dc-2 -p gateway-2 --admin adminEmail --pwd adminPword --host localhost

      dove il gateway-2 del pod è definito dalla proprietà POdc2
    2. Aggiungi i nuovi elaboratori di messaggi all'organizzazione e all'ambiente:
      1. Nel nodo di Management Server di dc-2, ottieni gli UUID dei nodi del processore di messaggi in dc-2:
        > apigee-adminapi.sh server list -r dc-2 -p gateway-2 -t message-processor --admin adminEmail --pwd adminPword --host localhost

        Gli UUID vengono visualizzati nella fine degli UUID. Salva questi valori.
      2. Nel nodo del server di gestione di dc-1, per ogni processore di messaggi in dc-2, aggiungi il processore di messaggi a un ambiente dell'organizzazione:
        > apigee-adminapi.sh orgs envs server add -o orgName -e envName -u UUID --admin adminEmail --pwd localadminPword --
    3. Nel nodo del server di gestione di dc-1, controlla l'organizzazione:
      > apigee-adminapi.sh orgs apis deployment -o orgName -a apiProxyName --admin adminEmail --pwd adminPword --host localhost

      dove apiProxyName è il nome di un proxy API di cui è stato eseguito il deployment nell'organizzazione.