Rechenzentrum hinzufügen

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

Überlegungen vor dem Hinzufügen eines Rechenzentrums

Bevor Sie das Hinzufügen eines Rechenzentrums installieren, müssen Sie wissen, wie OpenLDAP-, ZooKeeper-, Cassandra- und Postgres-Server in den Rechenzentren konfiguriert werden. Außerdem müssen die erforderlichen Ports zwischen den Knoten in den beiden Rechenzentren offen sein.

  • OpenLDAP

    Jedes Rechenzentrum hat einen eigenen OpenLDAP-Server, der mit aktivierter Replikation konfiguriert ist. Wenn Sie das neue Rechenzentrum installieren, müssen Sie OpenLDAP für die Verwendung der Replikation konfigurieren und den OpenLDAP-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 „Voter“ bezeichnet. Ihre Konfiguration muss eine ungerade Anzahl von Abstimmern enthalten.

    Bei dieser Topologie ist der ZooKeeper-Host auf Host 9 der Beobachter:

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

    Geben Sie für die Property ZK_CLIENT_HOSTS für jedes Rechenzentrum die IP-Adressen oder DNS-Namen der ZooKeeper-Knoten im Rechenzentrum in derselben Reihenfolge für alle ZooKeeper-Knoten im Rechenzentrum an.

  • Cassandra

    Achten Sie darauf, dass Sie für CASS_HOSTS für jedes Rechenzentrum alle Cassandra-IP-Adressen (nicht DNS-Namen) für beide Rechenzentren angeben. Für Rechenzentrum 1 listen Sie zuerst die Cassandra-Knoten in diesem Rechenzentrum auf. Für Rechenzentrum 2 listen Sie zuerst die Cassandra-Knoten in diesem Rechenzentrum auf. Listen Sie die Cassandra-Knoten für alle Cassandra-Knoten im Rechenzentrum in derselben Reihenfolge auf.

    Alle Cassandra-Knoten müssen das Suffix „:d,r“ haben. Beispiel: 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.122,160.122.160.122.168.122.168.124.168.124.168.124.168.124.124.124.

    Der erste Knoten in Rack-/Verfügbarkeitszone 1 jedes Rechenzentrums wird als Startserver verwendet. In diesem Bereitstellungsmodell sieht die Cassandra-Einrichtung wie folgt aus:

  • Postgres

    Standardmäßig installiert Edge alle Postgres-Knoten im Mastermodus. Wenn Sie jedoch mehrere Rechenzentren haben, konfigurieren Sie Postgres-Knoten für die Verwendung der Master-Standby-Replikation. Wenn der Master-Knoten ausfällt, kann der Stand-by-Knoten damit weiterhin Server-Traffic weiterleiten. In der Regel konfigurieren Sie den Postgres-Master-Server in einem Rechenzentrum und den Stand-by-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 bei diesem Verfahren die Registrierung des vorhandenen Stand-by-Knotens auf und ersetzen Sie ihn durch einen Standby-Knoten im neuen Rechenzentrum.

    Die folgende Tabelle zeigt den Zustand vor und nach der Postgres-Konfiguration für beide Szenarien:

    Vorher Nachher

    Einzelner Master-Postgres-Knoten in dc-1

    Master-Postgres-Knoten in dc-1

    Postgres-Knoten im Standby-Modus in dc-2

    Master-Postgres-Knoten in dc-1

    Postgres-Knoten im Stand-by-Modus in dc-1

    Master-Postgres-Knoten in dc-1

    Postgres-Knoten im Standby-Modus in dc-2

    Registrierung des alten Standby-Postgres-Knotens in dc-1 aufheben

  • Portanforderungen

    Achten Sie darauf, 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, aber auch 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 sollen, und OpenLDAP für die Verwendung der Replikation neu konfigurieren müssen.

Konfigurationsdateien erstellen

Nachfolgend finden Sie die Konfigurationsdateien im Hintergrund für die beiden Rechenzentren, wobei jedes Rechenzentrum über sechs Knoten verfügt (siehe Installationstopologien). Beachten Sie, dass die Konfigurationsdatei für dc-1 zusätzliche Einstellungen hinzufügt:

  • Konfigurieren Sie OpenLDAP mit Replikation über zwei OpenLDAP-Knoten.
  • Fügen Sie der Konfigurationsdatei für dc-1 die neuen Cassandra- und ZooKeeper-Knoten von dc-2 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

Folgen Sie der Anleitung unten, um ein neues Rechenzentrum zu installieren.

Dabei 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 noch einmal setup.sh auf den ursprünglichen Cassandra-Knoten mit der neuen dc-1-Konfigurationsdatei aus, die die Cassandra-Knoten von dc-2 enthält:
    /opt/apigee/apigee-setup/bin/setup.sh -p ds -f configFile1
  2. Führen Sie auf dc-1 noch einmal „setup.sh“ auf dem Verwaltungsserverknoten aus:
    /opt/apigee/apigee-setup/bin/setup.sh -p ms -f configFile1
  3. Auf dc-2 installieren Sie apigee-setup auf allen Knoten. Weitere Informationen finden Sie unter Edge-Dienstprogramm für Apigee-Einrichtung installieren.
  4. Installieren Sie auf dc-2 Cassandra und ZooKeeper auf den entsprechenden Knoten:
    /opt/apigee/apigee-setup/bin/setup.sh -p ds -f configFile2
  5. Führen Sie auf dc-2 den Befehl zur Neuerstellung auf allen Cassandra-Knoten aus und geben Sie dabei den Regionsnamen von dc-1 an:
    /opt/apigee/apigee-cassandra/bin/nodetool [-u username -pw password] -h cassIP rebuild dc-1

    Sie müssen Ihren Nutzernamen und Ihr Passwort nur weitergeben, 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 auf dem Verwaltungsserver-Knoten in dc-2 apigee-provision, 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 den Postgres-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 so:
      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 so:
      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 auf dc-1 die Analysekonfiguration und konfigurieren Sie die Organisationen.
    1. Rufen Sie auf dem Verwaltungsserver-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 Verwaltungsserver-Knoten von dc-2 die UUID des Postgres-Knotens ab, wie im vorherigen Schritt gezeigt. Speichern Sie diesen Wert.
    3. Bestimmen Sie auf dem Verwaltungsserver-Knoten von dc-1 den Namen der Analyse- und Verbrauchergruppen. Viele der folgenden Befehle erfordern diese Informationen.

      Standardmäßig lautet der Name der Analysegruppe „axgroup-001“ und der Name der Nutzergruppe „consumer-group-001“. In der stillen Konfigurationsdatei für eine Region können Sie den Namen der Analysegruppe mithilfe des Attributs AXGROUP festlegen.

      Wenn Sie sich in Bezug auf die Namen der Analyse- und Nutzergruppen nicht sicher sind, 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 Analysegruppe im Namensfeld und den Namen der Verbrauchergruppe im Feld „Nutzergruppen“ zurück.

    4. Entfernen Sie im Verwaltungsserver-Knoten von dc-1 den vorhandenen Postgres-Server aus der Analysegruppe:
      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 Analysegruppe:
        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 Sie der Analysegruppe auf dem Verwaltungsserver-Knoten von dc-1 die neuen Master-/Standby-Postgres-Server hinzu:
      1. Fügen Sie der Analysegruppe beide Postgres-Server hinzu:
        apigee-adminapi.sh analytics groups postgres_server \
          add -g axgroup-001 -u "UUID_1,UUID_2" --admin adminEmail \
          --pwd adminPword --host localhost

        UUID_1 entspricht dem Master-Postgres-Knoten in dc-1 und UUID_2 dem Stand-by-Postgres-Knoten in dc-2.

      2. Fügen Sie der Nutzergruppe die PG-Server 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
    6. Fügen Sie der Analysegruppe die Qpid-Server von dc-2 hinzu:
      1. Rufen Sie auf dem Verwaltungsserver-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 Verwaltungsserver-Knoten von dc-1 die Qpid-Knoten zur Analysegruppe 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 der Nutzergruppe auf dem Management Server-Knoten von dc-1 die Qpid-Knoten 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
    7. Heben Sie die Registrierung des alten Postgres-Standby-Servers von dc-1 auf und löschen Sie ihn:
      1. Heben Sie die Registrierung des vorhandenen Postgres-Standby-Servers dc-1 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 die UUID der alte Stand-by-Postgres-Knoten in dc-1.

      2. Löschen Sie den vorhandenen dc-1-Postgres-Standby-Server:
        apigee-adminapi.sh servers delete -u UUID \
          --admin adminEmail --pwd adminPword --host localhost
  13. Aktualisieren Sie die Cassandra-Schlüsselbereiche mit dem korrekten Replikationsfaktor für die beiden Rechenzentren. Sie müssen diesen Schritt nur einmal auf einem Cassandra-Server in einem der beiden Rechenzentrum ausführen:
    1. Starten Sie das Cassandra-Dienstprogramm cqlsh:
      /opt/apigee/apigee-cassandra/bin/cqlsh cassandraIP
    2. Führen Sie die folgenden CQL-Befehle in der Eingabeaufforderung "cqlsh>" aus, um die Replikationsebenen für Cassandra-Schlüsselbereiche 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. Mit dem folgenden Befehl können Sie sich die Schlüsselräume ansehen:
        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 Ihren Nutzernamen und Ihr Passwort nur weitergeben, wenn Sie die JMX-Authentifizierung für Cassandra aktiviert haben.

  15. Führen Sie für jede Organisation und für jede Umgebung, die Sie rechenzentrenübergreifend unterstützen möchten, folgende Schritte aus:
    1. Fügen Sie der Organisation auf dem Verwaltungsserver-Knoten von dc-1 den neuen MP_POD 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 in der dc-2-Konfigurationsdatei im Attribut MP_POD definiert ist.

    2. Fügen Sie der Organisation und Umgebung die neuen Message Processors hinzu:
      1. Rufen Sie auf dem Verwaltungsserver-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 Sie auf dem Management Server-Knoten von dc-1 für jeden Message Processor in dc-2 den Message Processor zu 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 Verwaltungsserver-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 wird.