In diesem Dokument wird beschrieben, wie Sie einem vorhandenen Rechenzentrum ein weiteres Rechenzentrum (auch Region genannt) hinzufügen.
Überlegungen vor dem Hinzufügen eines Rechenzentrums
Bevor Sie ein Rechenzentrum hinzufügen, müssen Sie wissen, wie Sie SymasLDAP-, ZooKeeper-, Cassandra- und Postgres-Server in den Rechenzentren konfigurieren. Außerdem müssen Sie dafür sorgen, dass die erforderlichen Ports zwischen den Knoten in den beiden Rechenzentren geöffnet sind.
- SymasLDAP
Jedes Rechenzentrum hat einen eigenen SymasLDAP-Server, auf dem die Replikation aktiviert ist. Wenn Sie das neue Rechenzentrum installieren, müssen Sie SymasLDAP für die Verwendung der Replikation konfigurieren und den SymasLDAP-Server im vorhandenen Rechenzentrum für die Verwendung der Replikation neu konfigurieren.
- ZooKeeper
Geben Sie für die Property
ZK_HOSTS
für beide Rechenzentren die IP-Adressen oder DNS-Namen aller ZooKeeper-Knoten aus beiden Rechenzentren in derselben Reihenfolge an und kennzeichnen Sie alle Knoten mit dem Modifikator „:observer“. Knoten ohne den:observer
-Modifikator werden als „Voters“ (Wähler) bezeichnet. Sie müssen eine ungerade Anzahl von „Abstimmenden“ in Ihrer Konfiguration haben.In dieser Topologie ist der ZooKeeper-Host auf Host 9 der Beobachter:
In der unten gezeigten Beispielkonfigurationsdatei ist Knoten 9 mit dem Modifikator
:observer
gekennzeichnet, sodass Sie fünf Wähler haben: Knoten 1, 2, 3, 7 und 8.Geben Sie für die
ZK_CLIENT_HOSTS
-Property für jedes Rechenzentrum die IP-Adressen oder DNS-Namen nur der ZooKeeper-Knoten im Rechenzentrum in derselben Reihenfolge für alle ZooKeeper-Knoten im Rechenzentrum an. - Cassandra
Geben Sie für
CASS_HOSTS
für jedes Rechenzentrum alle Cassandra-IP-Adressen (nicht DNS-Namen) für beide Rechenzentren an. Listen Sie für Rechenzentrum 1 zuerst die Cassandra-Knoten in diesem Rechenzentrum auf. Listen Sie für Rechenzentrum 2 zuerst die Cassandra-Knoten in diesem Rechenzentrum auf. Listen Sie die Cassandra-Knoten in derselben Reihenfolge für alle Cassandra-Knoten im Rechenzentrum auf.Alle Cassandra-Knoten müssen das Suffix „:d,r“ haben, z. B. „ip:1,1“ für Rechenzentrum 1 und Rack/Verfügbarkeitszone 1 und „ip:2,1“ für Rechenzentrum 2 und Rack/Verfügbarkeitszone 1.
Beispiel: „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“
Der erste Knoten in Rack/Verfügbarkeitszone 1 jedes Rechenzentrums wird als Seed-Server verwendet. In diesem Bereitstellungsmodell sieht die Cassandra-Einrichtung so aus:
-
Postgres
Standardmäßig installiert Edge alle Postgres-Knoten im Mastermodus. Wenn Sie jedoch mehrere Rechenzentren haben, konfigurieren Sie Postgres-Knoten so, dass sie die Master-Standby-Replikation verwenden. Wenn der Masterknoten ausfällt, kann der Standby-Knoten den Traffic weiter verarbeiten. Normalerweise konfigurieren Sie den primären Postgres-Server in einem Rechenzentrum und den Standby-Server im zweiten Rechenzentrum.
Wenn das vorhandene Rechenzentrum bereits für den Betrieb von zwei Postgres-Knoten im Master-/Standby-Modus konfiguriert ist, heben Sie im Rahmen dieses Verfahrens die Registrierung des vorhandenen Standby-Knotens auf und ersetzen Sie ihn durch einen Standby-Knoten im neuen Rechenzentrum.
In der folgenden Tabelle sehen Sie die Postgres-Konfiguration vor und nach der Migration für beide Szenarien:
Vorher Nach Einzelner Master-Postgres-Knoten in dc-1
Master-Postgres-Knoten in dc-1
Standby-Postgres-Knoten in dc-2
Master-Postgres-Knoten in dc-1
Standby-Postgres-Knoten in dc-1
Master-Postgres-Knoten in dc-1
Standby-Postgres-Knoten in dc-2
Registrierung des alten Standby-Postgres-Knotens in dc-1 aufheben
- Portanforderungen
Sie müssen dafür sorgen, dass die erforderlichen Ports zwischen den Knoten in den beiden Rechenzentren geöffnet sind. Ein Portdiagramm finden Sie unter Portanforderungen.
Vorhandenes Rechenzentrum aktualisieren
Wenn Sie ein Rechenzentrum hinzufügen, müssen Sie die Schritte zum Installieren und Konfigurieren der neuen Rechenzentrumsknoten ausführen. Außerdem müssen Sie Knoten im ursprünglichen Rechenzentrum aktualisieren. Diese Änderungen sind erforderlich, da Sie im neuen Rechenzentrum neue Cassandra- und ZooKeeper-Knoten hinzufügen, die für das vorhandene Rechenzentrum zugänglich sein müssen, und Sie SymasLDAP für die Verwendung der Replikation neu konfigurieren müssen.
Konfigurationsdateien erstellen
Unten sehen Sie die Dateien für die automatische Konfiguration für die beiden Rechenzentren, wobei jedes Rechenzentrum 6 Knoten hat, wie unter Installationstopologien beschrieben. Beachten Sie, dass der Konfigurationsdatei für dc-1 zusätzliche Einstellungen hinzugefügt werden:
- Konfigurieren Sie SymasLDAP mit Replikation über zwei SymasLDAP-Knoten hinweg.
- Fügen Sie die neuen Cassandra- und ZooKeeper-Knoten aus dc-2 der Konfigurationsdatei für dc-1 hinzu.
# 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>" |
Neues Rechenzentrum hinzufügen
Gehen Sie so vor, um ein neues Rechenzentrum zu installieren.
In der Anleitung haben die Rechenzentren die folgenden Namen:
- dc-1: das vorhandene Rechenzentrum
- dc-2: das neue Rechenzentrum
So fügen Sie ein neues Rechenzentrum hinzu:
- Auf dc-1: Führen Sie setup.sh auf den ursprünglichen Cassandra-Knoten mit der neuen dc-1-Konfigurationsdatei aus, die die Cassandra-Knoten aus dc-2 enthält:
/opt/apigee/apigee-setup/bin/setup.sh -p ds -f configFile1
- Auf dc-1: Führen Sie „setup.sh“ noch einmal auf dem Management Server-Knoten aus:
/opt/apigee/apigee-setup/bin/setup.sh -p ms -f configFile1
Wenn Sie Monetarisierung verwenden, führen Sie den Befehl zur Einrichtung der Monetarisierung noch einmal aus:
/opt/apigee/apigee-setup/bin/setup.sh -p mo -f mint_configFile1
- Installieren Sie
apigee-setup
auf allen Knoten auf dc-2. Weitere Informationen finden Sie unter Edge-Dienstprogramm „apigee-setup“ installieren. - Auf dc-2: Installieren Sie Cassandra und ZooKeeper auf den entsprechenden Knoten:
/opt/apigee/apigee-setup/bin/setup.sh -p ds -f configFile2
- Führen Sie auf dc-2 den Befehl „rebuild“ auf allen Cassandra-Knoten aus und geben Sie den Regionsnamen von dc-1 an:
/opt/apigee/apigee-cassandra/bin/nodetool [-u username -pw password] -h cassIP rebuild dc-1
Sie müssen nur Ihren Nutzernamen und Ihr Passwort angeben, wenn Sie die JMX-Authentifizierung für Cassandra aktiviert haben.
- Installieren Sie auf dc-2 den Management Server auf dem entsprechenden Knoten:
/opt/apigee/apigee-setup/bin/setup.sh -p ms -f configFile2
- Installieren Sie
apigee-provision
auf dem Management Server-Knoten in dc-2. Dadurch wird dasapigee-adminapi.sh
-Dienstprogramm installiert:/opt/apigee/apigee-service/bin/apigee-service apigee-provision install
- Auf dc-2: Installieren Sie die Routen und Nachrichtenverarbeiter auf den entsprechenden Knoten:
/opt/apigee/apigee-setup/bin/setup.sh -p rmp -f configFile2
- Installieren Sie auf dc-2 Qpid auf den entsprechenden Knoten:
/opt/apigee/apigee-setup/bin/setup.sh -p qs -f configFile2
- Auf dc-2: Installieren Sie Postgres auf dem entsprechenden Knoten:
/opt/apigee/apigee-setup/bin/setup.sh -p ps -f configFile2
- Richten Sie die Postgres-Master-/Standby-Konfiguration für die Postgres-Knoten ein. Der Postgres-Knoten in dc-1 ist der Master und der Postgres-Knoten in dc-2 ist der Standby-Server.
- Bearbeiten Sie auf dem Masterknoten in dc-1 die Konfigurationsdatei, um Folgendes festzulegen:
PG_MASTER=IPorDNSofDC1Master PG_STANDBY=IPorDNSofDC2Standby
- Aktivieren Sie die Replikation auf dem neuen Master:
/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-master -f configFIle
- Bearbeiten Sie auf dem Standby-Knoten in dc-2 die Konfigurationsdatei, um Folgendes festzulegen:
PG_MASTER=IPorDNSofDC1Master PG_STANDBY=IPorDNSofDC2Standby
- Stoppen Sie auf dem Standby-Knoten in dc-2 den Server und löschen Sie dann alle vorhandenen Postgres-Daten:
/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql stop
rm -rf /opt/apigee/data/apigee-postgresql/
Bei Bedarf können Sie diese Daten sichern, bevor Sie sie löschen.
- Konfigurieren Sie den Standby-Knoten in dc-2:
/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-standby -f configFile
- Bearbeiten Sie auf dem Masterknoten in dc-1 die Konfigurationsdatei, um Folgendes festzulegen:
- Aktualisieren Sie auf dc-1 die Analytics-Konfiguration und konfigurieren Sie die Organisationen.
- Rufen Sie auf dem Management Server-Knoten von dc-1 die UUID des Postgres-Knotens ab:
apigee-adminapi.sh servers list -r dc-1 -p analytics -t postgres-server \ --admin adminEmail --pwd adminPword --host localhost
Die UUID wird am Ende der zurückgegebenen Daten angezeigt. Speichern Sie diesen Wert.
- Rufen Sie auf dem Management Server-Knoten von dc-2 die UUID des Postgres-Knotens ab, wie im vorherigen Schritt gezeigt. Speichern Sie diesen Wert.
- Ermitteln Sie auf dem Management Server-Knoten von dc-1 den Namen der Analyse- und Verbrauchergruppen. Für viele der unten aufgeführten Befehle sind diese Informationen erforderlich.
Standardmäßig lautet der Name der Analysegruppe „axgroup-001“ und der Name der Verbrauchergruppe „consumer-group-001“. In der Konfigurationsdatei für eine Region können Sie den Namen der Analysegruppe mit dem Attribut
AXGROUP
festlegen.Wenn Sie sich nicht sicher sind, wie die Analyse- und Verbrauchergruppen heißen, können Sie sie mit dem folgenden Befehl anzeigen lassen:
apigee-adminapi.sh analytics groups list \ --admin adminEmail --pwd adminPword --host localhost
Dieser Befehl gibt den Namen der Analysegruppe im Feld „name“ und den Namen der Nutzergruppe im Feld „consumer-groups“ zurück.
- Entfernen Sie auf dem Verwaltungsserverknoten von dc-1 den vorhandenen Postgres-Server aus der Analytics-Gruppe:
- Entfernen Sie den Postgres-Knoten aus der Nutzergruppe:
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
Wenn dc-1 so konfiguriert ist, dass zwei Postgres-Knoten im Master-/Standby-Modus ausgeführt werden, entfernen Sie beide:
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
- Entfernen Sie den Postgres-Knoten aus der Analytics-Gruppe:
apigee-adminapi.sh analytics groups postgres_server remove \ -g axgroup-001 -u UUID -Y --admin adminEmail \ --pwd adminPword --host localhost
Wenn für dc-1 zwei Postgres-Knoten im Master-/Standby-Modus konfiguriert sind, entfernen Sie beide:
apigee-adminapi.sh analytics groups postgres_server \ remove -g axgroup-001 -u UUID1,UUID2 -Y --admin adminEmail \ --pwd adminPword --host localhost
- Entfernen Sie den Postgres-Knoten aus der Nutzergruppe:
- Fügen Sie dem Management Server-Knoten von dc-1 die neuen Master-/Standby-Postgres-Server der Analytics-Gruppe hinzu:
- Fügen Sie beide Postgres-Server der Analytics-Gruppe hinzu:
apigee-adminapi.sh analytics groups postgres_server \ add -g axgroup-001 -u "UUID_1,UUID_2" --admin adminEmail \ --pwd adminPword --host localhost
Dabei entspricht UUID_1 dem Master-Postgres-Knoten in dc-1 und UUID_2 dem Standby-Postgres-Knoten in dc-2.
- Fügen Sie die PG-Server der Consumer-Gruppe als Master/Standby hinzu:
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
- Fügen Sie beide Postgres-Server der Analytics-Gruppe hinzu:
- Fügen Sie der Analysegruppe die Qpid-Server aus dc-2 hinzu:
- Rufen Sie auf dem Management Server-Knoten von dc-1 die UUIDs der Qpid-Knoten in dc-2 ab:
apigee-adminapi.sh servers list -r dc-2 -p central -t qpid-server \ --admin adminEmail --pwd adminPword --host localhost
Die UUIDs werden am Ende der zurückgegebenen Daten angezeigt. Speichern Sie diese Werte.
- Fügen Sie auf dem Management Server-Knoten von dc-1 die Qpid-Knoten der Analytics-Gruppe hinzu (führen Sie beide Befehle aus):
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
- Fügen Sie auf dem Management Server-Knoten von dc-1 die Qpid-Knoten der Consumer-Gruppe hinzu (führen Sie beide Befehle aus):
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
Wenn Sie Monetization verwenden, fügen Sie die Qpid-Knoten auf dem Management Server-Knoten von dc-1 der MINT-Gruppe hinzu:
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
- Rufen Sie auf dem Management Server-Knoten von dc-1 die UUIDs der Qpid-Knoten in dc-2 ab:
- Heben Sie die Registrierung des alten Postgres-Standby-Servers in dc-1 auf und löschen Sie ihn:
- Heben Sie die Registrierung des vorhandenen dc-1-Postgres-Standby-Servers auf:
apigee-adminapi.sh servers deregister -u UUID -r dc-1 \ -p analytics -t postgres-server -Y --admin adminEmail \ --pwd adminPword --host localhost
Dabei ist UUID der alte Standby-Postgres-Knoten in dc-1.
- Löschen Sie den vorhandenen Postgres-Standby-Server „dc-1“:
apigee-adminapi.sh servers delete -u UUID \ --admin adminEmail --pwd adminPword --host localhost
- Heben Sie die Registrierung des vorhandenen dc-1-Postgres-Standby-Servers auf:
- Rufen Sie auf dem Management Server-Knoten von dc-1 die UUID des Postgres-Knotens ab:
- Aktualisieren Sie die Cassandra-Keyspaces mit dem korrekten Replikationsfaktor für die beiden Rechenzentren. Sie müssen diesen Schritt nur einmal auf einem beliebigen Cassandra-Server in einem der beiden Rechenzentren ausführen:
- Starten Sie das Cassandra-Dienstprogramm
cqlsh
:/opt/apigee/apigee-cassandra/bin/cqlsh cassandraIP
- Führen Sie die folgenden CQL-Befehle an der Eingabeaufforderung „cqlsh>“ aus, um die Replikationsebenen für Cassandra-Schlüsselbereiche festzulegen:
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' };
- Rufen Sie die Keyspaces mit dem folgenden Befehl auf:
SELECT * FROM system_schema.keyspaces;
- Beenden Sie
cqlsh
:exit
- Starten Sie das Cassandra-Dienstprogramm
- Führen Sie den folgenden
nodetool
-Befehl auf allen Cassandra-Knoten in dc-1 aus, um Speicher freizugeben:/opt/apigee/apigee-cassandra/bin/nodetool [-u username -pw password] -h cassandraIP cleanup
Sie müssen nur Ihren Nutzernamen und Ihr Passwort angeben, wenn Sie die JMX-Authentifizierung für Cassandra aktiviert haben.
- Für jede Organisation und jede Umgebung, die Sie in mehreren Rechenzentren unterstützen möchten:
- Fügen Sie auf dem Management Server-Knoten von dc-1 den neuen MP_POD der Organisation hinzu:
apigee-adminapi.sh orgs pods add -o orgName -r dc-2 -p gateway-2 \ --admin adminEmail --pwd adminPword --host localhost
Dabei ist gateway-2 der Name des Gateway-Pods, wie er durch das Attribut MP_POD in der dc-2-Konfigurationsdatei definiert ist.
- Fügen Sie der Organisation und Umgebung die neuen Nachrichtenprozessoren hinzu:
- Rufen Sie auf dem Management Server-Knoten von dc-2 die UUIDs der Message Processor-Knoten in dc-2 ab:
apigee-adminapi.sh servers list -r dc-2 -p gateway-2 \ -t message-processor --admin adminEmail --pwd adminPword --host localhost
Die UUIDs werden am Ende der zurückgegebenen Daten angezeigt. Speichern Sie diese Werte.
- Fügen Sie auf dem Management Server-Knoten von dc-1 für jeden Nachrichtenprozessor in dc-2 den Nachrichtenprozessor einer Umgebung für die Organisation hinzu:
apigee-adminapi.sh orgs envs servers add -o orgName -e envName \ -u UUID --admin adminEmail --pwd adminPword --host localhost
- Rufen Sie auf dem Management Server-Knoten von dc-2 die UUIDs der Message Processor-Knoten in dc-2 ab:
- Prüfen Sie die Organisation auf dem Management Server-Knoten von dc-1:
apigee-adminapi.sh orgs apis deployments -o orgName -a apiProxyName \ --admin adminEmail --pwd adminPword --host localhost
Dabei ist apiProxyName der Name eines in der Organisation bereitgestellten API-Proxys.
- Fügen Sie auf dem Management Server-Knoten von dc-1 den neuen MP_POD der Organisation hinzu:
Wenn Sie Monetarisierung verwenden, installieren Sie den Monetarisierungs-Knoten in DC2.
Führen Sie den MINT-Einrichtungsbefehl auf den Management Server- und Message Processor-Knoten in DC2 aus:
/opt/apigee/apigee-setup/bin/setup.sh -p mo -f mint_configFile1