Rechenzentrum hinzufügen

In diesem Dokument wird beschrieben, wie Sie einem vorhandenen Rechenzentrum ein weiteres Rechenzentrum (auch als Region bezeichnet) hinzufügen.

Überlegungen vor dem Hinzufügen eines Rechenzentrums

Bevor Sie ein Rechenzentrum hinzufügen, müssen Sie wissen, wie Sie OpenLDAP, 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.

  • OpenLDAP

    Jedes Rechenzentrum hat einen eigenen OpenLDAP-Server, auf dem die Replikation aktiviert ist. Wenn Sie das neue Rechenzentrum installieren, müssen Sie OpenLDAP für die Replikation konfigurieren und den OpenLDAP-Server im vorhandenen Rechenzentrum neu konfigurieren, um die Replikation zu verwenden.

  • ZooKeeper

    Geben Sie für die ZK_HOSTS Eigenschaft 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 Modifikator :observer werden als „Voters“ bezeichnet. Ihre Konfiguration muss eine ungerade Anzahl von "Voters" enthalten.

    In dieser Topologie ist der ZooKeeper-Host auf Host 9 der Observer:

    In der unten gezeigten Beispielkonfigurationsdatei ist Knoten 9 mit dem :observer Modifikator gekennzeichnet, sodass Sie fünf Voters haben: Knoten 1, 2, 3, 7 und 8.

    Geben Sie für die ZK_CLIENT_HOSTS Eigenschaft 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 Rechen zentrum an.

  • Cassandra

    Geben Sie für CASS_HOSTS für jedes Rechenzentrum alle Cassandra-IP Adressen (nicht DNS-Namen) für beide Rechen zentren 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 = Rechenzentrum 1 und Rack/Verfügbarkeitszone 1“ und „ip:2,1 = 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 die Master-Standby-Replikation verwendet wird. Wenn der Masterknoten ausfällt, kann der Standby-Knoten den Traffic weiter verarbeiten. In der Regel konfigurieren Sie den Master-Postgres-Server in einem Rechenzentrum und den Standby-Server im zweiten Rechenzentrum.

    Wenn das vorhandene Rechenzentrum bereits so konfiguriert ist, dass zwei Postgres-Knoten im Master-Standby-Modus ausgeführt werden, heben Sie im Rahmen dieser Prozedur 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 beiden Szenarien:

    Vorher Nachher

    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 Daten zentrumsknoten 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, auf die das vorhandene Rechenzentrum zugreifen muss. Außerdem müssen Sie OpenLDAP neu konfigurieren , um die Replikation zu verwenden.

Konfigurationsdateien erstellen

Unten sehen Sie die Konfigurationsdateien für die unbeaufsichtigte Installation für die beiden Rechenzentren. Jedes Rechen zentrum hat 6 Knoten, wie unter Installationstopologien beschrieben. Beachten Sie, dass die Konfigurationsdatei für dc-1 zusätzliche Einstellungen für Folgendes hinzufügt:

  • OpenLDAP mit Replikation auf zwei OpenLDAP-Knoten konfigurieren.
  • Die neuen Cassandra- und ZooKeeper-Knoten aus dc-2 zur Konfigurationsdatei für dc-1 hinzufügen.
# 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

Führen Sie die folgenden Schritte aus, um ein neues Rechenzentrum zu installieren.

In der Prozedur haben die Rechenzentren die folgenden Namen:

  • dc-1: das vorhandene Rechenzentrum
  • dc-2: das neue Rechenzentrum

So fügen Sie ein neues Rechenzentrum hinzu:

  1. Führen Sie auf dc-1 „setup.sh“ auf den ursprünglichen Cassandra-Knoten mit der neuen Konfigurationsdatei für dc-1 aus, die die Cassandra-Knoten aus dc-2 enthält:
    /opt/apigee/apigee-setup/bin/setup.sh -p ds -f configFile1
  2. Installieren Sie auf dc-2 „apigee-setup“ auf allen Knoten. Weitere Informationen finden Sie unter Das Edge-Dienstprogramm „apigee-setup“ installieren.
  3. Installieren Sie auf dc-2 Cassandra und ZooKeeper auf den entsprechenden Knoten:
    /opt/apigee/apigee-setup/bin/setup.sh -p ds -f configFile2
  4. Führen Sie auf dc-1 „setup.sh“ auf dem Management Server-Knoten aus:
    /opt/apigee/apigee-setup/bin/setup.sh -p ms -f configFile1

    Führen Sie gegebenenfalls die Einrichtung der Monetarisierung noch einmal aus:

    /opt/apigee/apigee-setup/bin/setup.sh -p mo -f mint_configFile1
  5. 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.

  6. Installieren Sie auf dc-2 den Management Server auf dem entsprechenden Knoten:
    /opt/apigee/apigee-setup/bin/setup.sh -p ms -f configFile2
  7. Installieren Sie apigee-provision auf dem Management Server-Knoten in dc-2 , wodurch das Dienstprogramm apigee-adminapi.sh installiert wird:
    /opt/apigee/apigee-service/bin/apigee-service apigee-provision install
  8. Installieren Sie auf dc-2 die Routen und Nachrichtenprozessoren auf den entsprechenden Knoten:
    /opt/apigee/apigee-setup/bin/setup.sh -p rmp -f configFile2
  9. Installieren Sie auf dc-2 Qpid auf den entsprechenden Knoten:
    /opt/apigee/apigee-setup/bin/setup.sh -p qs -f configFile2
  10. Installieren Sie auf dc-2 Postgres auf dem entsprechenden Knoten:
    /opt/apigee/apigee-setup/bin/setup.sh -p ps -f configFile2
  11. Richten Sie Master/Standby 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.
    1. Bearbeiten Sie auf dem Masterknoten in dc-1 die Konfigurationsdatei, um Folgendes festzulegen:
      PG_MASTER=IPorDNSofDC1Master
      PG_STANDBY=IPorDNSofDC2Standby
    2. Aktivieren Sie die Replikation auf dem neuen Master:
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-master -f configFIle
    3. Bearbeiten Sie auf dem Standby-Knoten in dc-2 die Konfigurationsdatei, um Folgendes festzulegen:
      PG_MASTER=IPorDNSofDC1Master
      PG_STANDBY=IPorDNSofDC2Standby
    4. Beenden 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.

    5. Konfigurieren Sie den Standby-Knoten in dc-2:
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-standby -f configFile
  12. Aktualisieren Sie in dc-1 die Analytics-Konfiguration und konfigurieren Sie die Organisationen.
    1. 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.

    2. Rufen Sie auf dem Management Server-Knoten von dc-2 die UUID des Postgres Knotens ab, wie im vorherigen Schritt beschrieben. Speichern Sie diesen Wert.
    3. Bestimmen Sie auf dem Management Server-Knoten von dc-1 den Namen der Analytics- und Nutzergruppen. Viele der folgenden Befehle erfordern diese Informationen.

      Standardmäßig ist der Name der Analytics-Gruppe „axgroup-001“ und der Name der Nutzer gruppe ist „consumer-group-001“. In der Konfigurationsdatei für die unbeaufsichtigte Installation für eine Region können Sie den Namen der Analytics-Gruppe mit der AXGROUP Eigenschaft festlegen.

      Wenn Sie sich nicht sicher sind, wie die Analytics- und Nutzergruppen heißen, verwenden Sie den folgenden Befehl, um sie anzuzeigen:

      apigee-adminapi.sh analytics groups list \
        --admin adminEmail --pwd adminPword --host localhost

      Dieser Befehl gibt den Namen der Analytics-Gruppe im Feld „name“ und den Namen der Nutzergruppe im Feld „consumer-groups“ zurück.

    4. Entfernen Sie auf dem Management Server-Knoten von dc-1 den vorhandenen Postgres Server aus der Analytics-Gruppe:
      1. 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
      2. 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 dc-1 so konfiguriert ist, dass zwei Postgres-Knoten im Master-Standby-Modus ausgeführt werden, entfernen Sie beide:

        apigee-adminapi.sh analytics groups postgres_server \
          remove -g axgroup-001 -u UUID1,UUID2 -Y --admin adminEmail \
          --pwd adminPword --host localhost
    5. Fügen Sieauf dem Management Server-Knoten von dc-1 die neuen Master-Standby Postgres-Server der Analytics-Gruppe hinzu:
      1. 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.

      2. Fügen Sie die PG-Server als Master/Standby der Nutzergruppe 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
    6. Fügen Sie die Qpid-Server aus dc-2 der Analytics-Gruppe hinzu:
      1. 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.

      2. 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
      3. Fügen Sie auf dem Management Server-Knoten von dc-1 die Qpid-Knoten der Nutzergruppe 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 Monetarisierung verwenden, fügen Sie die Qpid-Knoten der MINT-Gruppe auf dem Management Server-Knoten von dc-1 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
    7. Heben Sie die Registrierung des alten Postgres-Standby-Servers auf und löschen Sie ihn aus dc-1:
      1. 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.

      2. Löschen Sie den vorhandenen Postgres-Standby-Server in dc-1:
        apigee-adminapi.sh servers delete -u UUID \
        --admin adminEmail --pwd adminPword --host localhost
  13. 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:
    1. Starten Sie das Cassandra-Dienstprogramm cqlsh:
      /opt/apigee/apigee-cassandra/bin/cqlsh cassandraIP
    2. Führen Sie an der Eingabeaufforderung „cqlsh>“ die folgenden CQL-Befehle aus, um die Replikation sebenen für Cassandra-Keyspaces festzulegen:
      1. ALTER KEYSPACE "identityzone" WITH replication = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' }; 
      2. ALTER KEYSPACE "system_traces" WITH replication = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
      3. Rufen Sie die Keyspaces mit dem folgenden Befehl auf:
        SELECT * FROM system_schema.keyspaces;
      4. Beenden Sie cqlsh:
        exit
  14. Führen Sie den folgenden nodetool-Befehl auf allen Cassandra-Knoten in dc-1 aus, um Arbeitsspeicher 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.

  15. Für jede Organisation und für jede Umgebung, die Sie in mehreren Rechenzentren unterstützen möchten:
    1. 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 durch die Eigenschaft MP_POD in der Konfigurationsdatei für dc-2 definiert.

    2. Fügen Sie die neuen Nachrichtenprozessoren der Organisation und Umgebung hinzu:
      1. 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.

      2. Fügen Sieauf dem Management Server-Knoten von dc-1 für jeden Message Processor in dc-2 den Message Processor 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
    3. Prüfen Sie auf dem Management Server-Knoten von dc-1 die Organisation:
      apigee-adminapi.sh orgs apis deployments -o orgName -a apiProxyName \
        --admin adminEmail --pwd adminPword --host localhost

      Dabei ist „apiProxyName“ der Name eines API-Proxys, der in der Organisation bereitgestellt wurde.

  16. Wenn Sie Monetarisierung verwenden, installieren Sie den Monetarisierungsknoten 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