Dodawanie centrum danych

Ten dokument opisuje sposób dodawania centrum danych (nazywanego też regionem) do istniejących danych pomocy.

Uwagi do rozważenia przed dodaniem centrum danych

Zanim zainstalujesz centrum danych, musisz dowiedzieć się, jak skonfigurować OpenLDAP. Serwery ZooKeeper, Cassandra i Postgres w centrach danych. Dopilnuj także, aby linki między węzłami w dwóch centrach danych są otwarte niezbędne porty.

  • OpenLDAP

    Każde centrum danych ma własny serwer OpenLDAP skonfigurowany z włączoną replikacją. Gdy zainstaluj nowe centrum danych, musisz skonfigurować OpenLDAP tak, aby używał replikacji, a także ponownie skonfigurować serwer OpenLDAP w istniejącym centrum danych, aby korzystał z replikacji.

  • ZooKeeper

    W przypadku usługi ZK_HOSTS dla obu centrów danych, podaj adresy IP lub nazwy DNS wszystkich węzłów ZooKeeper z obu danych w tej samej kolejności i oznaczyć wszystkie węzły modyfikatorem „:observer”. Węzły bez modyfikatora :observer są nazywane „wyborcami”. Musisz mieć parametr liczba „wyborców” w ustawieniach konfiguracji.

    W tej topologii host ZooKeeper na hoście 9 jest obserwatorem:

    W przykładowym pliku konfiguracji widocznym poniżej węzeł 9 jest oznaczony tagiem :observer, tak aby było 5 głosujących: węzły 1, 2, 3, 7 i 8.

    Dla: ZK_CLIENT_HOSTS dla każdego centrum danych, określ adresy IP lub nazwy DNS tylko dla węzłów w centrum danych, w tej samej kolejności dla wszystkich węzłów ZooKeeper w danych. pomocy.

  • Cassandra

    W przypadku CASS_HOSTS dla każdego centrum danych określ wszystkie adresy IP Cassandra. adresów (nie nazw DNS) obu danych w naszych centrach danych. W przypadku centrum danych 1 najpierw wymień węzły Cassandra znajdujące się w tym centrum danych. Do centrum danych 2, wymień najpierw węzły Cassandra w tym centrum danych. Wymień węzły Cassandra w tym samym dla wszystkich węzłów Cassandra w centrum danych.

    Wszystkie węzły Cassandra muszą mieć sufiks „:d,r”; na przykład 'ip:1,1 = centrum danych 1, stojak/strefa dostępności 1 i 'ip:2,1 = centrum danych 2 oraz stojak/strefę dostępności 1.

    Na przykład „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"

    Pierwszy węzeł w 1 strefie stojaka/dostępności 1 każdego centrum danych będzie używany jako materiał wyjściowy serwera. W tym modelu wdrożenia konfiguracja Cassandra będzie wyglądać tak:

  • Postgres

    Domyślnie Edge instaluje wszystkie węzły Postgres w trybie głównym. Jeśli jednak masz wiele możesz skonfigurować węzły Postgres tak, aby wykorzystywały replikację w trybie gotowości do mastera, dzięki czemu, jeśli węzeł nadrzędny ulegnie awarii, węzeł zapasowy może nadal przekazywać ruch z serwera. Zazwyczaj główny serwer Postgres w jednym centrum danych, a serwer gotowości w drugim pomocy.

    Jeśli w istniejącym centrum danych są już uruchomione 2 węzły Postgres w trybie mastera/gotowania, w ramach tej procedury wyrejestruj istniejący węzeł gotowości zastąpić ją węzłem rezerwowym w nowym centrum danych.

    W tabeli poniżej znajdziesz konfigurację Postgres przed i po scenariusze:

    Przed Po

    Pojedynczy główny węzeł Postgres w dc-1

    Główny węzeł Postgres w dc-1

    Węzeł Postgres w stanie gotowości w dc-2

    Główny węzeł Postgres w dc-1

    Węzeł Postgres w stanie gotowości w dc-1

    Główny węzeł Postgres w dc-1

    Węzeł Postgres w stanie gotowości w dc-2

    Wyrejestruj stary węzeł gotowości Postgres w dc-1

  • Wymagania dotyczące portów

    Musisz upewnić się, że między węzłami w 2 centrach danych są otwarte niezbędne porty. Schemat portów znajdziesz w artykule Wymagania dotyczące portów.

Aktualizacja istniejącego centrum danych

Dodawanie centrum danych wymaga wykonania kroków instalacji i konfiguracji nowych danych węzłów, ale wymaga też aktualizacji węzłów w pierwotnym centrum danych. Te konieczne jest wprowadzenie modyfikacji, ponieważ dodajesz nowe węzły Cassandra i ZooKeeper w nowym z centrum danych, które muszą być dostępne dla istniejącego centrum danych. Konieczne będzie ponowne skonfigurowanie OpenLDAP, aby użyć replikacji.

Tworzenie plików konfiguracji

Poniżej znajdują się dyskretne pliki konfiguracji dla dwóch centrów danych, z których każde centrum ma 6 węzłów, jak pokazano na stronie Topologie instalacji. Zwróć uwagę, że plik konfiguracyjny dc-1 dodaje dodatkowe ustawienia:

  • Skonfiguruj OpenLDAP z replikacją w 2 węzłach OpenLDAP.
  • Dodaj nowe węzły Cassandra i ZooKeeper z dc-2 do pliku konfiguracyjnego 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>"

Dodaj nowe centrum danych

Aby zainstalować nowe centrum danych, wykonaj poniższą procedurę.

Centra danych w ramach procedury mają takie nazwy:

  • dc-1: istniejące centrum danych.
  • dc-2: nowe centrum danych.

Aby dodać nowe centrum danych:

  1. W przypadku dc-1 uruchom jeszcze raz plik setup.sh w pierwotnych węzłach Cassandra z nowym plikiem dc-1 , który zawiera węzły Cassandra z dc-2:
    /opt/apigee/apigee-setup/bin/setup.sh -p ds -f configFile1
  2. W przypadku polecenia dc-1 uruchom ponownie plik setup.sh w węźle serwera zarządzania:
    /opt/apigee/apigee-setup/bin/setup.sh -p ms -f configFile1
  3. W przypadku dc-2 zainstaluj apigee-setup we wszystkich węzłach. Więcej informacji znajdziesz w artykule Instalowanie narzędzia Edge apigee-setup informacje.
  4. W dc-2 zainstaluj Cassandra i ZooKeeper w odpowiednich węzłach:
    /opt/apigee/apigee-setup/bin/setup.sh -p ds -f configFile2
  5. W przypadku dc-2 uruchom polecenie rebuild we wszystkich węzłach Cassandra, podając wartość nazwa regionu dc-1:
    /opt/apigee/apigee-cassandra/bin/nodetool [-u username -pw password] -h cassIP rebuild dc-1

    Nazwa użytkownika i hasło musisz podać tylko wtedy, gdy włączono uwierzytelnianie JMX dla Cassandra.

  6. W przypadku dc-2 zainstaluj serwer zarządzania w odpowiednim węźle:
    /opt/apigee/apigee-setup/bin/setup.sh -p ms -f configFile2
  7. W węźle serwera zarządzania w dc-2 zainstaluj apigee-provision, który instaluje narzędzie apigee-adminapi.sh:
    /opt/apigee/apigee-service/bin/apigee-service apigee-provision install
  8. W dc-2 zainstaluj trasy i procesory wiadomości w odpowiednich węzłach:
    /opt/apigee/apigee-setup/bin/setup.sh -p rmp -f configFile2
  9. W dc-2 zainstaluj Qpid w odpowiednich węzłach:
    /opt/apigee/apigee-setup/bin/setup.sh -p qs -f configFile2
  10. W dc-2 zainstaluj Postgres w odpowiednim węźle:
    /opt/apigee/apigee-setup/bin/setup.sh -p ps -f configFile2
  11. Skonfiguruj mastera/tryb gotowości Postgres dla węzłów Postgres. Węzeł Postgres w dc-1 jest głównym, a węzeł Postgres w dc-2 jest serwerem gotowości.
    1. W węźle głównym dc-1 edytuj plik konfiguracyjny, podając:
      PG_MASTER=IPorDNSofDC1Master
      PG_STANDBY=IPorDNSofDC2Standby
    2. Włącz replikację w nowym masterze:
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-master -f configFIle
    3. W węźle gotowości w dc-2 edytuj plik konfiguracyjny, aby ustawić te wartości:
      PG_MASTER=IPorDNSofDC1Master
      PG_STANDBY=IPorDNSofDC2Standby
    4. W węźle gotowości w dc-2 zatrzymaj serwer, a następnie usuń istniejące dane Postgres:
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql stop
      rm -rf /opt/apigee/data/apigee-postgresql/

      W razie potrzeby możesz zrobić kopię zapasową tych danych przed ich usunięciem.

    5. Skonfiguruj węzeł gotowości w dc-2:
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-standby -f configFile
  12. W dc-1 zaktualizuj konfigurację analityki i skonfiguruj organizacje.
    1. W węźle serwera zarządzania dc-1 pobierz identyfikator UUID Postgres. węzeł:
      apigee-adminapi.sh servers list -r dc-1 -p analytics -t postgres-server \
        --admin adminEmail --pwd adminPword --host localhost

      Identyfikator UUID znajduje się na końcu zwracanych danych. Zapisz tę wartość.

    2. W węźle serwera zarządzania dc-2 pobierz identyfikator UUID Postgres. tak jak w poprzednim kroku. Zapisz tę wartość.
    3. W węźle serwera zarządzania dc-1 określ nazwę analiz i grup konsumentów. Wiele poniższych poleceń wymaga tych informacji.

      Domyślnie nazwa grupy w Analytics to „axgroup-001”, a nazwa konsumenta to „consumer-group-001”. W pliku konfiguracji cichej dla regionu możesz ustawić nazwę grupy Analytics za pomocą właściwości AXGROUP.

      Jeśli nie masz pewności co do nazw grup analitycznych i użytkowników, użyj następującego aby je wyświetlić:

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

      To polecenie zwraca nazwę grupy analitycznej w polu nazwy, a w polu nazwy grupę konsumentów w polu Consumer-groups.

    4. W węźle serwera zarządzania dc-1 usuń istniejący Postgres. z grupy Analytics:
      1. Usuń węzeł Postgres z grupy klientów:
        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

        Jeśli w konfiguracji dc-1 są skonfigurowane 2 węzły Postgres trybu głównego/gotowego, usuń oba:

        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. Usuń węzeł Postgres z grupy Analytics:
        apigee-adminapi.sh analytics groups postgres_server remove \
          -g axgroup-001 -u UUID -Y --admin adminEmail \
          --pwd adminPword --host localhost

        Jeśli w konfiguracji dc-1 są 2 węzły Postgres działające w trybie mastera/gotowania, usuń oba:

        apigee-adminapi.sh analytics groups postgres_server \
          remove -g axgroup-001 -u UUID1,UUID2 -Y --admin adminEmail \
          --pwd adminPword --host localhost
    5. W węźle serwera zarządzania dc-1 dodaj nową instancję główną/gotową Serwery Postgres do grupy analitycznej:
      1. Dodaj do grupy analitycznej oba serwery Postgres:
        apigee-adminapi.sh analytics groups postgres_server \
          add -g axgroup-001 -u "UUID_1,UUID_2" --admin adminEmail \
          --pwd adminPword --host localhost

        Tutaj UUID_1 odpowiada głównemu węzłowi Postgres w dc-1, a UUID_2 odpowiada Postgres w trybie gotowości w węźle dc-2.

      2. Dodaj serwery PG do grupy klientów jako główne/gotowe:
        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. Dodaj serwery Qpid z dc-2 do grupy Analytics:
      1. W węźle serwera zarządzania dc-1 pobierz identyfikatory UUID Qpid węzłów w dc-2:
        apigee-adminapi.sh servers list -r dc-2 -p central -t qpid-server \
          --admin adminEmail --pwd adminPword --host localhost

        Identyfikatory UUID znajdują się na końcu zwracanych danych. Zapisz te wartości.

      2. W węźle serwera zarządzania dc-1 dodaj węzły Qpid do Analytics group (uruchom oba polecenia):
        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. W węźle serwera zarządzania dc-1 dodaj węzły Qpid do grupa klientów (uruchom oba polecenia):
        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. Wyrejestruj i usuń stary serwer gotowości Postgres z dc-1:
      1. Wyrejestruj istniejący serwer gotowości Postgres dc-1:
        apigee-adminapi.sh servers deregister -u UUID -r dc-1 \
          -p analytics -t postgres-server -Y --admin adminEmail \
          --pwd adminPword --host localhost

        Gdzie UUID to stary węzeł gotowości Postgres w dc-1.

      2. Usuń istniejący serwer gotowości Postgres dc-1:
        apigee-adminapi.sh servers delete -u UUID \
          --admin adminEmail --pwd adminPword --host localhost
  13. Zaktualizuj przestrzenie kluczy Cassandra, podając prawidłowy współczynnik replikacji dla 2 centrów danych. Ty wystarczy wykonać ten krok tylko raz na dowolnym serwerze Cassandra w dowolnym centrum danych:
    1. Uruchom narzędzie Cassandra cqlsh:
      /opt/apigee/apigee-cassandra/bin/cqlsh cassandraIP
    2. Wykonaj następujące polecenia CQL w „cqlsh>” prośba o ustawienie replikacji poziomy w przestrzeniach kluczy Cassandra:
      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. Wyświetl przestrzenie klawiszy za pomocą tego polecenia:
        select * from system.schema_keyspaces;
      4. Wyjdź z cqlsh:
        exit
  14. Uruchom poniższe polecenie nodetool na wszystkich węzłach Cassandra w dc-1, aby je zwolnić pamięć:
    /opt/apigee/apigee-cassandra/bin/nodetool [-u username -pw password] -h cassandraIP cleanup

    Nazwa użytkownika i hasło musisz podać tylko wtedy, gdy włączono uwierzytelnianie JMX dla Cassandra.

  15. Dla każdej organizacji i środowiska, które chcesz obsługiwać w centrach danych:
    1. W węźle serwera zarządzania dc-1 dodaj nowy MP_POD do pola Organizacja:
      apigee-adminapi.sh orgs pods add -o orgName -r dc-2 -p gateway-2 \
        --admin adminEmail --pwd adminPword --host localhost

      Gdzie gateway-2 to nazwa poda bramy zdefiniowana przez Właściwość MP_POD w pliku konfiguracyjnym dc-2.

    2. Dodaj nowe procesory wiadomości do organizacji i środowiska:
      1. W węźle serwera zarządzania dc-2 pobierz identyfikatory UUID instancji Węzły procesora komunikatów w dc-2:
        apigee-adminapi.sh servers list -r dc-2 -p gateway-2 \
          -t message-processor --admin adminEmail --pwd adminPword --host localhost

        Identyfikatory UUID znajdują się na końcu zwracanych danych. Zapisz te wartości.

      2. W węźle serwera zarządzania dc-1 dla każdego procesora wiadomości w dc-2 dodaj procesor komunikatów do środowiska organizacji:
        apigee-adminapi.sh orgs envs servers add -o orgName -e envName \
          -u UUID --admin adminEmail --pwd adminPword --host localhost
    3. W węźle serwera zarządzania dc-1 sprawdź organizację:
      apigee-adminapi.sh orgs apis deployments -o orgName -a apiProxyName \
        --admin adminEmail --pwd adminPword --host localhost

      Gdzie apiProxyName to nazwa serwera proxy interfejsu API wdrożonego w organizacji.