Questo documento descrive come aggiungere un data center (chiamato anche regione) a un data center esistente.
Considerazioni preliminari all'aggiunta di un data center
Prima di installare un data center, devi capire come configurare i server SymasLDAP, ZooKeeper, Cassandra e Postgres nei data center. Devi anche assicurarti che le porte necessarie siano aperte tra i nodi nei due data center.
- SymasLDAP
Ogni data center ha il proprio server SymasLDAP configurato con la replica abilitata. Quando installi il nuovo data center, devi configurare SymasLDAP in modo che utilizzi la replica e devi riconfigurare il server SymasLDAP 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 "votanti". Devi avere un numero dispari di "votanti" 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 è taggato con il modificatore
:observer
, in modo da avere cinque votanti: i nodi 1, 2, 3, 7 e 8.Per la proprietà
ZK_CLIENT_HOSTS
per 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
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 il 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 avrà il seguente aspetto:
-
PostgreSQL
Per impostazione predefinita, Edge installa tutti i nodi Postgres in modalità master. Tuttavia, quando 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 di standby possa continuare a gestire il traffico del server. In genere, configuri il server Postgres master in un data center e il server di standby nel secondo data center.
Se il data center esistente è già configurato per l'esecuzione di due nodi Postgres in modalità master/standby, nell'ambito di questa procedura annulla la registrazione del nodo di standby esistente e sostituiscilo con un nodo di 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 master Postgres in dc-1
Nodo Postgres di standby in dc-2
Nodo master Postgres in dc-1
Nodo Postgres di standby in dc-1
Nodo master Postgres in dc-1
Nodo Postgres di standby in dc-2
Annulla la registrazione del vecchio nodo Postgres di standby in dc-1
- Requisiti relativi alle porte
Devi assicurarti che le porte necessarie siano aperte tra i nodi nei due data center. Per un diagramma delle porte, vedi Requisiti per le porte.
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 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 SymasLDAP per utilizzare la replica.
Creazione dei file di configurazione
Di seguito sono riportati i file di configurazione invisibile per i due data center, dove ciascun 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 SymasLDAP con la replica su due nodi SymasLDAP.
- 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>" |
Aggiungere un nuovo data center
Utilizza la procedura riportata di seguito per installare un nuovo data center.
Nella procedura, i data center hanno i seguenti nomi:
- dc-1: il data center esistente
- dc-2: il nuovo data center
Per aggiungere un nuovo data center:
- 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
- Su dc-1, esegui di nuovo setup.sh sul nodo del server di gestione:
/opt/apigee/apigee-setup/bin/setup.sh -p ms -f configFile1
Se utilizzi Monetizzazione, esegui nuovamente il comando di configurazione della monetizzazione:
/opt/apigee/apigee-setup/bin/setup.sh -p mo -f mint_configFile1
- Su dc-2, installa
apigee-setup
su tutti i nodi. Per ulteriori informazioni, consulta Installare 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 ricompilazione su tutti i nodi Cassandra, specificando il
nome della regione di dc-1:
/opt/apigee/apigee-cassandra/bin/nodetool [-u username -pw password] -h cassIP rebuild dc-1
Devi trasmettere il nome utente e la password solo se hai attivato l'autenticazione JMX per Cassandra.
- Su dc-2, installa il server di gestione sul nodo appropriato:
/opt/apigee/apigee-setup/bin/setup.sh -p ms -f configFile2
- Sul 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
- Su dc-2, installa Routes e Message Processors 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
- Su 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 di standby.
- 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 di standby in dc-2, modifica il file di configurazione per impostare:
PG_MASTER=IPorDNSofDC1Master PG_STANDBY=IPorDNSofDC2Standby
- Sul nodo di standby in dc-2, arresta il server ed elimina tutti i dati Postgres esistenti:
/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql stop
rm -rf /opt/apigee/data/apigee-postgresql/
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.
- 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 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 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 dei 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 Analytics nel campo name e il nome del gruppo di consumatori nel campo consumer-groups.
- Nel 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 l'esecuzione di due nodi Postgres in modalità 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à 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:
- Nel 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
UUID_1 corrisponde al nodo Postgres master in dc-1 e UUID_2 corrisponde al nodo Postgres di standby in dc-2.
- Aggiungi i server PG al gruppo di consumatori 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 questi valori.
- Sul 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
- Sul nodo del server di gestione di dc-1, aggiungi i nodi Qpid al
gruppo di consumer (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
Se utilizzi Monetizzazione, aggiungi i nodi Qpid al gruppo MINT sul nodo del server di gestione di dc-1:
apigee-adminapi.sh analytics groups qpid_server \ add -g mxgroup001 -u UUID_1 --admin adminEmail \ --pwd adminPword --host localhost
apigee-adminapi.sh analytics groups qpid_server \ add -g mxgroup001 -u 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 vecchio nodo Postgres di standby in dc-1.
- Elimina il server di standby Postgres dc-1 esistente:
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 gli spazi delle chiavi 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 data center:
- Avvia l'utilità Cassandra
cqlsh
:/opt/apigee/apigee-cassandra/bin/cqlsh cassandraIP
- Esegui i seguenti comandi CQL al prompt "cqlsh>" per impostare i livelli di replica per gli spazi chiave Cassandra:
ALTER KEYSPACE "identityzone" WITH replication = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
ALTER KEYSPACE "system_traces" WITH replication = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
- Visualizza gli spazi chiave utilizzando il comando:
SELECT * FROM system_schema.keyspaces;
- Esci da
cqlsh
:exit
- Avvia l'utilità Cassandra
- Esegui questo comando
nodetool
su tutti i nodi Cassandra in dc-1 per liberare memoria:/opt/apigee/apigee-cassandra/bin/nodetool [-u username -pw password] -h cassandraIP cleanup
Devi trasmettere il nome utente e la password solo se hai attivato l'autenticazione JMX per Cassandra.
- Per ogni organizzazione e per ogni ambiente che vuoi supportare nei data center:
- Nel nodo Management Server di dc-1, aggiungi il nuovo MP_POD a
Organization:
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 definito dalla proprietà MP_POD nel file di configurazione 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 questi 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.
- Nel nodo Management Server di dc-1, aggiungi il nuovo MP_POD a
Organization:
Se utilizzi Monetizzazione, installa il nodo Monetizzazione in DC2.
Esegui il comando di configurazione MINT nei nodi del server di gestione e del processore di messaggi in DC2:
/opt/apigee/apigee-setup/bin/setup.sh -p mo -f mint_configFile1