Edge for Private Cloud v. 4.17.01
Questo documento descrive come aggiungere un data center (chiamato anche regione) a un data center esistente.
Considerazioni prima di aggiungere un data center
Prima di installare un data center, devi capire 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 in modo che utilizzi la replica e devi riconfigurare il server OpenLDAP nel data center esistente in modo che utilizzi 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 i nodi con il modificatore ":observer". I nodi senza il modificatore ":observer" sono chiamati "voter". La configurazione deve avere un numero dispari di "votanti".
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 votanti: i 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 solo dei 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 data center, assicurati di specificare tutti gli indirizzi IP di Cassandra (non i nomi DNS) per entrambi i data center. Per il data center 1, elenca prima i nodi Cassandra in quel data center. Per il data center 2, elenca prima i nodi Cassandra in quel data center. 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 rack/zona di disponibilità 1 e "<ip>:2,1 = data center 2 e rack/zona di disponibilità 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 nel rack/zona di disponibilità 1 di ogni data center verrà utilizzato come server seed. In questo modello di deployment, la configurazione di Cassandra sarà simile alla seguente:

-
Postgres
Per impostazione predefinita, Edge installa tutti i nodi Postgres in modalità master. Tuttavia, se hai più data center, configuri i nodi Postgres in modo che utilizzino la replica master-standby in modo che, se il nodo master non funziona, il nodo in standby possa continuare a gestire il traffico. In genere, configuri il server Postgres master in un data center e il server in 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 sostituiscilo 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 in standby in dc-2
Nodo Postgres master in dc-1
Nodo Postgres in standby in dc-1
Nodo Postgres master in dc-1
Nodo Postgres in standby in dc-2
Annulla la registrazione del vecchio nodo Postgres in 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 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é stai aggiungendo 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 silenziosa per i due data center, ciascuno dei quali 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 su 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 BIND_ON_ALL_INTERFACES=y 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 |
# 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 BIND_ON_ALL_INTERFACES=y 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 |
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
- Su dc-1, esegui nuovamente 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 - Su dc-1, esegui nuovamente setup.sh sul nodo del server di gestione:
> /opt/apigee/apigee-setup/bin/setup.sh -p ms -f configFile1 - Su dc-2, installa apigee-setup su tutti i nodi. Per saperne di più, consulta Installa l'utilità apigee-setup di Edge.
- Su dc-2, installa Cassandra e ZooKeeper sui nodi appropriati:
/opt/apigee/apigee-setup/bin/setup.sh -p ds -f configFile2 - Su dc-2, esegui il comando di ricostruzione su tutti i nodi Cassandra, specificando il nome della regione di dc-1:
> /opt/apigee/apigee-cassandra/bin/nodetool -h cassIP rebuild dc-1 - Su dc-2, installa il server di gestione sul nodo appropriato:
> /opt/apigee/apigee-setup/bin/setup.sh -p ms -f configFile2 - Su dc-2, installa i router e i processori di messaggi sui nodi appropriati:
> /opt/apigee/apigee-setup/bin/setup.sh -p rmp -f configFile2 - Su dc-2, installa Qpid sui nodi appropriati:
> /opt/apigee/apigee-setup/bin/setup.sh -p qs -f configFile2 - In dc-2, installa Postgres sul nodo appropriato:
> /opt/apigee/apigee-setup/bin/setup.sh -p ps -f configFile2 - 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 in standby.
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 in standby. Più avanti in questa procedura, annullerai la registrazione del server di standby Postgres esistente in dc-1.- Sul nodo master in dc-1, modifica il file di configurazione per impostare:
PG_MASTER=IPorDNSofDC1Master
PG_STANDBY=IPorDNSofDC2Standby - Abilita la replica sul nuovo master:
> /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-master -f configFIle - Sul nodo in standby in dc-2, modifica il file di configurazione per impostare:
PG_MASTER=IPorDNSofDC1Master
PG_STANDBY=IPorDNSofDC2Standby - Sul nodo in standby in dc-2, arresta il server, quindi elimina 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. - Configura il nodo di standby in dc-2:
> /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-standby -f configFile
- Sul nodo master in dc-1, modifica il file di configurazione per impostare:
- Su dc-1, aggiorna la configurazione di Analytics e configura le organizzazioni.
- Sul nodo del server di gestione di dc-1, recupera l'UUID del nodo Postgres:
> apigee-adminapi.sh servers 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 UUID. Salva entrambi gli UUID. Dagli IP, dovresti essere in grado di determinare quale UUID è per il nodo master e quale per il nodo in standby. - Sul nodo del server di gestione di dc-2, recupera l'UUID del nodo Postgres come mostrato nel passaggio precedente. Salva il valore.
- Sul nodo del server di gestione di dc-1, determina il nome dei gruppi di analisi e consumer. 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 consumer è consumer-group-001. Nel file di configurazione silenziosa per una regione, puoi impostare il nome del gruppo di analisi utilizzando la proprietà AXGROUP.
Se non conosci i nomi dei gruppi di analisi e consumer, 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 consumer nel campo consumer-groups. - Sul nodo del server di gestione di dc-1, rimuovi il server Postgres esistente dal gruppo di analisi:
- Rimuovi il nodo Postgres dal gruppo di consumer:
> 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à standby master/standby, rimuovili 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 - 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à standby master/standby, rimuovili entrambi:
> apigee-adminapi.sh analytics groups postgres_server remove -g axgroup-001 -u UUID1,UUID2 -Y --admin adminEmail --pwd adminPword --host localhost
- Rimuovi il nodo Postgres dal gruppo di consumer:
-
Sul nodo del server di gestione di dc-1, aggiungi i nuovi server Postgres master/standby al gruppo di analisi:
- 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 in standby in dc-2. - Aggiungi i server PG al gruppo di consumer 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
- Aggiungi entrambi i server Postgres al gruppo di analisi:
- Aggiungi i server Qpid da dc-2 al gruppo di analisi:
- Sul nodo del server di gestione di dc-1, recupera 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 i valori. - Sul nodo del server di gestione di dc-1, aggiungi i nodi Qpid al gruppo di analisi:
>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 - Sul nodo del server di gestione di dc-1, aggiungi i nodi Qpid al gruppo di consumer:
> apigee-adminapi.sh analytics groups consumer_groups consumers add -g axgroup-001 -c consumer-group-001 -u "UUID_1,UUID_2" --admin adminEmail --pwd adminPword --host localhost
- Sul nodo del server di gestione di dc-1, recupera gli UUID dei nodi Qpid in dc-2:
- Annulla la registrazione ed elimina il vecchio server di standby Postgres da dc-1:
- Annulla la registrazione del server di standby Postgres 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 nodo Postgres di standby precedente in dc-1. - Elimina il server di standby Postgres dc-1 esistente:
Nota: questo comando non disinstalla il nodo del server Postgres. Viene rimosso solo dall'elenco dei nodi perimetrali. Se necessario, puoi disinstallare Postgres dal nodo in un secondo momento.
> apigee-adminapi.sh servers delete -u UUID --admin adminEmail --pwd adminPword --host localhost
- Annulla la registrazione del server di standby Postgres dc-1 esistente:
- Sul nodo del server di gestione di dc-1, recupera l'UUID del nodo Postgres:
- Aggiorna i keyspace di Cassandra con il fattore di replica corretto per i due data center. Devi eseguire questo passaggio una sola volta su qualsiasi server Cassandra in uno dei due data center:
Nota: i comandi riportati di seguito impostano tutti il fattore di replica su "3", indicando tre nodi Cassandra nel cluster. Modifica questo valore in base alle esigenze della tua installazione.- Avvia l'utilità cqlsh di Cassandra:
> /opt/apigee/apigee-cassandra/bin/cqlsh cassandraIP - Esegui i seguenti comandi CQL al prompt "cqlsh>" per impostare i livelli di replica per gli spazi delle chiavi Cassandra:
- cqlsh> ALTER KEYSPACE "identityzone" WITH replication = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
- cqlsh> ALTER KEYSPACE "system_traces" WITH replication = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
- Visualizza i keyspace utilizzando il comando:
cqlsh> select * from system.schema_keyspaces; - Esci da cqlsh:
cqlsh> exit
- Avvia l'utilità cqlsh di Cassandra:
- Esegui questo comando nodetool su tutti i nodi Cassandra in dc-1 per liberare memoria:
> /opt/apigee/apigee-cassandra/bin/nodetool -h cassandraIP cleanup - Per ogni organizzazione e per ogni ambiente che vuoi supportare nei data center:
- Sul nodo del server di gestione di dc-1, aggiungere 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 gateway-2 è il nome del pod gateway come definito dalla proprietà MP_POD nel file di configurazione di dc-2. - Aggiungi i nuovi processori di messaggi all'organizzazione e all'ambiente:
- Sul nodo del server di gestione di dc-2, recupera gli UUID dei nodi del processore di messaggi in dc-2:
> apigee-adminapi.sh servers list -r dc-2 -p gateway-2 -t message-processor --admin adminEmail --pwd adminPword --host localhost
Gli UUID vengono visualizzati alla fine dei dati restituiti. Salva i valori. - Sul nodo del server di gestione di dc-1, per ogni processore di messaggi in dc-2, aggiungi il processore di messaggi a un ambiente per l'organizzazione:
> apigee-adminapi.sh orgs envs servers add -o orgName -e envName -u UUID --admin adminEmail --pwd adminPword --host localhost
- Sul nodo del server di gestione di dc-2, recupera gli UUID dei nodi del processore di messaggi in dc-2:
- Sul nodo del server di gestione di dc-1, controlla l'organizzazione:
> apigee-adminapi.sh orgs apis deployments -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.
- Sul nodo del server di gestione di dc-1, aggiungere il nuovo MP_POD all'organizzazione: