Dodawanie centrum danych

Z tego dokumentu dowiesz się, jak dodać centrum danych (nazywane też regionem) do istniejącego centrum danych.

Uwagi do rozważenia przed dodaniem centrum danych

Zanim zainstalujesz centrum danych, musisz wiedzieć, jak skonfigurować serwery SymasLDAP, ZooKeeper, Cassandra i Postgres w centrach danych. Musisz też zadbać o to, aby między węzłami w obu centrach danych były otwarte niezbędne porty.

  • SymasLDAP

    Każde centrum danych ma własny serwer SymasLDAP skonfigurowany z włączoną replikacją. Po zainstalowaniu nowego centrum danych musisz skonfigurować SymasLDAP tak, aby korzystał z replikacji, a także ponownie skonfigurować serwer SymasLDAP w dotychczasowym centrum danych, aby korzystał z replikacji.

  • ZooKeeper

    W przypadku właściwości ZK_HOSTS dla obu centrów danych podaj adresy IP lub nazwy DNS wszystkich węzłów ZooKeeper z obu centrów danych w tej samej kolejności i oznacz wszystkie węzły modyfikatorem „:observer”. Węzły bez modyfikatora :observer nazywane są „głosującymi”. W konfiguracji musisz mieć nieparzystą liczbę „głosujących”.

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

    W przykładowym pliku konfiguracyjnym poniżej węzeł 9 jest oznaczony modyfikatorem :observer, dzięki czemu masz 5 głosujących: węzły 1, 2, 3, 7 i 8.

    W przypadku właściwości ZK_CLIENT_HOSTS dla każdego centrum danych podaj adresy IP lub nazwy DNS tylko węzłów ZooKeeper w tym centrum danych w tej samej kolejności dla wszystkich węzłów ZooKeeper w tym centrum danych.

  • Cassandra

    W przypadku CASS_HOSTS każdego centrum danych upewnij się, że podajesz wszystkie adresy IP Cassandry (nie nazwy DNS) dla obu centrów danych. W przypadku centrum danych 1 najpierw podaj listę węzłów Cassandra w tym centrum danych. W przypadku centrum danych 2 najpierw podaj listę węzłów Cassandra w tym centrum danych. Wymień węzły Cassandra w tej samej kolejności 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” oznacza centrum danych 1 i szafę/strefę dostępności 1, a „ip:2,1” oznacza centrum danych 2 i szafę/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 szafie/strefie dostępności 1 w każdym centrum danych będzie używany jako serwer początkowy. 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 centrów danych, skonfiguruj węzły Postgres tak, aby korzystały z replikacji typu master-standby. Dzięki temu w przypadku awarii węzła głównego węzeł rezerwowy będzie mógł nadal obsługiwać ruch. Zwykle konfigurujesz główny serwer Postgres w jednym centrum danych, a serwer rezerwowy w drugim centrum danych.

    Jeśli dotychczasowe centrum danych jest już skonfigurowane tak, aby działały w nim 2 węzły Postgres w trybie główny/rezerwowy, w ramach tej procedury wyrejestruj istniejący węzeł rezerwowy i zastąp go węzłem rezerwowym w nowym centrum danych.

    W tabeli poniżej przedstawiono konfigurację Postgresa przed i po obu scenariuszach:

    Przed Po

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

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

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

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

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

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

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

    Wyrejestrowanie starego węzła rezerwowego Postgres w dc-1

  • Wymagania dotyczące portów

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

Aktualizacja istniejącego centrum danych

Dodanie centrum danych wymaga wykonania czynności związanych z instalacją i konfiguracją nowych węzłów centrum danych, ale także z aktualizacją węzłów w pierwotnym centrum danych. Te zmiany są konieczne, ponieważ w nowym centrum danych dodajesz nowe węzły Cassandra i ZooKeeper, które muszą być dostępne dla istniejącego centrum danych, a także musisz ponownie skonfigurować SymasLDAP, aby używać replikacji.

Tworzenie plików konfiguracji

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

  • Skonfiguruj SymasLDAP z replikacją na 2 węzłach SymasLDAP.
  • 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>"

Dodawanie nowego centrum danych

Aby zainstalować nowe centrum danych, wykonaj podane niżej czynności.

W procedurze centra danych mają te nazwy:

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

Aby dodać nowe centrum danych:

  1. Na dc-1 ponownie uruchom skrypt setup.sh na oryginalnych węzłach Cassandra z nowym plikiem konfiguracyjnym dc-1, który zawiera węzły Cassandra z dc-2:
    /opt/apigee/apigee-setup/bin/setup.sh -p ds -f configFile1
  2. Na dc-1 ponownie uruchom skrypt setup.sh na węźle serwera zarządzającego:
    /opt/apigee/apigee-setup/bin/setup.sh -p ms -f configFile1

    Jeśli używasz zarabiania, ponownie uruchom polecenie konfiguracji zarabiania:

    /opt/apigee/apigee-setup/bin/setup.sh -p mo -f mint_configFile1

  3. Na dc-2 zainstaluj apigee-setup na wszystkich węzłach. Więcej informacji znajdziesz w artykule Instalowanie narzędzia Edge apigee-setup.
  4. Na dc-2 zainstaluj Cassandra i ZooKeeper na odpowiednich węzłach:
    /opt/apigee/apigee-setup/bin/setup.sh -p ds -f configFile2
  5. Na dc-2 uruchom polecenie odbudowy na wszystkich węzłach Cassandra, podając nazwę regionu dc-1:
    /opt/apigee/apigee-cassandra/bin/nodetool [-u username -pw password] -h cassIP rebuild dc-1

    Nazwę użytkownika i hasło musisz podać tylko wtedy, gdy włączysz uwierzytelnianie JMX w przypadku Cassandry.

  6. Na serwerze dc-2 zainstaluj serwer zarządzania na odpowiednim węźle:
    /opt/apigee/apigee-setup/bin/setup.sh -p ms -f configFile2
  7. Na węźle serwera zarządzającego w dc-2 zainstaluj apigee-provision, co spowoduje zainstalowanie narzędzia apigee-adminapi.sh:
    /opt/apigee/apigee-service/bin/apigee-service apigee-provision install
  8. Na dc-2 zainstaluj trasy i procesory wiadomości na odpowiednich węzłach:
    /opt/apigee/apigee-setup/bin/setup.sh -p rmp -f configFile2
  9. Na dc-2 zainstaluj Qpid na odpowiednich węzłach:
    /opt/apigee/apigee-setup/bin/setup.sh -p qs -f configFile2
  10. Na dc-2 zainstaluj Postgres na odpowiednim węźle:
    /opt/apigee/apigee-setup/bin/setup.sh -p ps -f configFile2
  11. Skonfiguruj węzły Postgres jako główny i rezerwowy. Węzeł Postgres w dc-1 jest węzłem głównym, a węzeł Postgres w dc-2 jest serwerem rezerwowym.
    1. Na węźle głównym w dc-1 edytuj plik konfiguracyjny, aby ustawić:
      PG_MASTER=IPorDNSofDC1Master
      PG_STANDBY=IPorDNSofDC2Standby
    2. Włącz replikację na nowym serwerze głównym:
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-master -f configFIle
    3. Na węźle rezerwowym w dc-2 zmodyfikuj plik konfiguracyjny, aby ustawić:
      PG_MASTER=IPorDNSofDC1Master
      PG_STANDBY=IPorDNSofDC2Standby
    4. Na węźle rezerwowym w dc-2 zatrzymaj serwer, a następnie usuń wszystkie 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 utworzyć kopię zapasową tych danych przed ich usunięciem.

    5. Skonfiguruj węzeł rezerwowy w dc-2:
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-standby -f configFile
  12. Na serwerze dc-1 zaktualizuj konfigurację Analytics i skonfiguruj organizacje.
    1. Na węźle serwera zarządzającego dc-1 pobierz identyfikator UUID węzła Postgres:
      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 zwróconych danych. Zapisz tę wartość.

    2. Na węźle serwera zarządzającego dc-2 pobierz identyfikator UUID węzła Postgres, jak pokazano w poprzednim kroku. Zapisz tę wartość.
    3. Na węźle serwera zarządzania dc-1 określ nazwy grup analitycznych i grup konsumentów. Wiele z poniższych poleceń wymaga tych informacji.

      Domyślnie grupa analityczna ma nazwę „axgroup-001”, a grupa konsumencka – „consumer-group-001”. W pliku konfiguracji cichej dla regionu możesz ustawić nazwę grupy analitycznej za pomocą właściwości AXGROUP.

      Jeśli nie znasz nazw grup analitycznych i konsumenckich, użyj tego polecenia, aby je wyświetlić:

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

      To polecenie zwraca nazwę grupy analitycznej w polu name i nazwę grupy konsumenckiej w polu consumer-groups.

    4. Na węźle serwera zarządzania dc-1 usuń istniejący serwer Postgres z grupy analitycznej:
      1. Usuń węzeł Postgres z grupy konsumentó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 dc-1 jest skonfigurowany tak, aby mieć 2 węzły Postgres działające w trybie master/standby, 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 analitycznej:
        apigee-adminapi.sh analytics groups postgres_server remove \
          -g axgroup-001 -u UUID -Y --admin adminEmail \
          --pwd adminPword --host localhost

        Jeśli dc-1 jest skonfigurowany tak, aby mieć 2 węzły Postgres działające w trybie głównym/rezerwowym, usuń oba:

        apigee-adminapi.sh analytics groups postgres_server \
          remove -g axgroup-001 -u UUID1,UUID2 -Y --admin adminEmail \
          --pwd adminPword --host localhost
    5. Na węźle serwera zarządzającego dc-1 dodaj nowe serwery Postgres typu master/standby do grupy analitycznej:
      1. Dodaj oba serwery Postgres do grupy analitycznej:
        apigee-adminapi.sh analytics groups postgres_server \
          add -g axgroup-001 -u "UUID_1,UUID_2" --admin adminEmail \
          --pwd adminPword --host localhost

        gdzie UUID_1 odpowiada głównemu węzłowi Postgres w dc-1, a UUID_2 odpowiada zapasowemu węzłowi Postgres w dc-2.

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

        Identyfikatory UUID pojawiają się na końcu zwróconych danych. Zapisz te wartości.

      2. Na węźle serwera zarządzania dc-1 dodaj węzły Qpid do grupy analitycznej (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. Na węźle serwera zarządzania dc-1 dodaj węzły Qpid do grupy odbiorcó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

        Jeśli używasz Monetyzacji, dodaj węzły Qpid do grupy MINT w węźle serwera zarządzania 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
    7. Wyrejestruj i usuń stary serwer rezerwowy Postgres z dc-1:
      1. Wyrejestruj istniejący serwer rezerwowy 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ł Postgres w dc-1.

      2. Usuń istniejący serwer rezerwowy Postgres dc-1:
        apigee-adminapi.sh servers delete -u UUID \
        --admin adminEmail --pwd adminPword --host localhost
  13. Zaktualizuj przestrzenie kluczy Cassandra o prawidłowy współczynnik replikacji dla 2 centrów danych. Ten krok musisz wykonać tylko raz na dowolnym serwerze Cassandra w jednym z centrów danych:
    1. Uruchom narzędzie cqlsh Cassandra:
      /opt/apigee/apigee-cassandra/bin/cqlsh cassandraIP
    2. Aby ustawić poziomy replikacji dla przestrzeni kluczy Cassandra, w wierszu poleceń „cqlsh>” wykonaj te polecenia CQL:
      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 kluczy za pomocą tego polecenia:
        SELECT * FROM system_schema.keyspaces;
      4. Wyjdź z cqlsh:
        exit
  14. Aby zwolnić pamięć, uruchom to polecenie nodetool na wszystkich węzłach Cassandra w dc-1:
    /opt/apigee/apigee-cassandra/bin/nodetool [-u username -pw password] -h cassandraIP cleanup

    Nazwę użytkownika i hasło musisz podać tylko wtedy, gdy włączysz uwierzytelnianie JMX w przypadku Cassandry.

  15. W przypadku każdej organizacji i każdego środowiska, które chcesz obsługiwać w centrach danych:
    1. Na węźle serwera zarządzania dc-1 dodaj nowy MP_POD do organizacji:
      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 konfiguracji dc-2.

    2. Dodaj nowe procesory wiadomości do organizacji i środowiska:
      1. Na węźle serwera zarządzającego dc-2 pobierz identyfikatory UUID węzłów procesora wiadomości 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 pojawiają się na końcu zwróconych danych. Zapisz te wartości.

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

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

  16. Jeśli korzystasz z zarabiania, zainstaluj węzeł Zarabianie w DC2.

    Uruchom polecenie konfiguracji MINT na serwerze zarządzającym i węzłach procesora wiadomości w DC2:

    /opt/apigee/apigee-setup/bin/setup.sh -p mo -f mint_configFile1