Dodawanie centrum danych

Ten dokument opisuje, 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 dowiedzieć się, jak skonfigurować serwery OpenLDAP, ZooKeeper, Cassandra i Postgres w centrach danych. Musisz też upewnić się, że między węzłami w tych 2 centrach danych są otwarte niezbędne porty.

  • OpenLDAP

    Każde centrum danych ma własny serwer OpenLDAP skonfigurowany z włączoną replikacją. Po zainstalowaniu nowego centrum danych musisz skonfigurować OpenLDAP do korzystania z replikacji i ponownie skonfigurować serwer OpenLDAP w istniejącym centrum danych, aby użyć replikacji.

  • ZooKeeper

    Dla właściwości ZK_HOSTS 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 są nazywane „głosującymi”. W konfiguracji musisz mieć nieparzystą liczbę „głosów”.

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

    W przykładowym pliku konfiguracji pokazanym poniżej węzeł 9 jest oznaczony modyfikatorem :observer, aby mieć 5 głosów: węzły 1, 2, 3, 7 i 8.

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

  • Cassandra

    W polu CASS_HOSTS dla każdego centrum danych podaj wszystkie adresy IP Cassandra (a nie nazwy DNS) obu centrów danych. W przypadku centrum danych 1 najpierw wymień węzły Cassandra w tym centrum danych. W przypadku centrum danych 2 najpierw wymień w nim węzły Cassandra. Wyświetl 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 = centrum danych 1, strefa stojaka/dostępności 1 oraz ip:2,1 = centrum danych 2 i strefa stojaka/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.126.2.192.168.12.2.2.

    Jako serwer wyjściowy będzie używany pierwszy węzeł w strefie stojaka/dostępności 1 każdego centrum danych. 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, możesz skonfigurować węzły Postgres tak, aby używały replikacji gotowości mastera. Dzięki temu w przypadku awarii węzła głównego będzie on mógł kontynuować ruch na serwerze. Zwykle główny serwer Postgres konfiguruje się w jednym centrum danych, a serwer gotowości w drugim centrum danych.

    Jeśli istniejące centrum danych jest już skonfigurowane tak, aby dwa węzły Postgres działały w trybie głównym/gotowym, w ramach tej procedury wyrejestruj istniejący węzeł gotowości i zastąp go węzłem gotowości w nowym centrum danych.

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

    Przed Po

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

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

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

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

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

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

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

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

  • Wymagania dotyczące portu

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

Aktualizowanie istniejącego centrum danych

Dodanie centrum danych wymaga wykonania czynności niezbędnych do zainstalowania i skonfigurowania nowych węzłów centrum danych, ale także aktualizacji węzłów w pierwotnym centrum danych. Te modyfikacje są konieczne, ponieważ dodajesz w nowym centrum danych nowe węzły Cassandra i ZooKeeper, które muszą być dostępne dla istniejącego centrum danych, i musisz ponownie skonfigurować OpenLDAP, aby użyć replikacji.

Tworzenie plików konfiguracji

Poniżej przedstawiono dyskretne pliki konfiguracji 2 centrów danych, gdzie każde z nich ma 6 węzłów, jak pokazano w topologii instalacji. Zwróć uwagę, że plik konfiguracyjny dc-1 dodaje dodatkowe ustawienia do:

  • 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>"

Dodawanie nowego centrum danych

Aby zainstalować nowe centrum danych, wykonaj czynności opisane poniżej.

Centra danych w procedurze mają następujące nazwy:

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

Aby dodać nowe centrum danych:

  1. W przypadku dc-1 uruchom ponownie plik setup.sh w 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. W przypadku 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. Na dc-2 zainstaluj apigee-setup we wszystkich węzłach. Więcej informacji znajdziesz w artykule na temat instalowania narzędzia Edge apigee-setup.
  4. Na dc-2 zainstaluj Cassandra i ZooKeeper w odpowiednich węzłach:
    /opt/apigee/apigee-setup/bin/setup.sh -p ds -f configFile2
  5. W dc-2 uruchom polecenie odbudowywania 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 masz włączone uwierzytelnianie JMX w systemie 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 aplikację apigee-provision, która 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 przypadku dc-2 zainstaluj Qpid w odpowiednich węzłach:
    /opt/apigee/apigee-setup/bin/setup.sh -p qs -f configFile2
  10. W przypadku dc-2 zainstaluj Postgres w odpowiednim węźle:
    /opt/apigee/apigee-setup/bin/setup.sh -p ps -f configFile2
  11. Skonfiguruj mastera/stan gotowości Postgres dla węzłów Postgres. Węzeł Postgres w dc-1 jest węzłem głównym, a węzeł Postgres w dc-2 jest serwerem gotowości.
    1. W węźle głównym w dc-1 edytuj plik konfiguracyjny, aby ustawić:
      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ć:
      PG_MASTER=IPorDNSofDC1Master
      PG_STANDBY=IPorDNSofDC2Standby
    4. W węźle gotowości 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 przed usunięciem danych możesz utworzyć ich kopię zapasową.

    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ę Analytics i skonfiguruj organizacje.
    1. W węźle serwera zarządzania 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. W węźle serwera zarządzania dc-2 pobierz identyfikator UUID węzła Postgres, jak pokazano w poprzednim kroku. Zapisz tę wartość.
    3. W węźle serwera zarządzania dc-1 ustal nazwę grup analitycznych i grup klientów. Wiele z poniższych poleceń wymaga tych informacji.

      Domyślnie nazwa grupy Analytics to „axgroup-001”, a nazwa grupy klientów to „consumer-group-001”. W cichym pliku konfiguracyjnym dla regionu możesz ustawić nazwę grupy analityki przy użyciu właściwości AXGROUP.

      Jeśli nie masz pewności co do nazw grup statystyk i grup klientów, 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 Analytics w polu nazwy, a nazwę grupy klientów w polu grup klientów.

    4. W węźle zarządzania serwerem dc-1 usuń z grupy analitycznej istniejący serwer Postgres:
      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 dc-1 jest skonfigurowany tak, aby 2 węzły Postgres działały w trybie głównym/gotowym, usuń oba węzły:

        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 analityki:
        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 skonfigurowano 2 węzły Postgres w trybie mastera/gotowości, usuń oba węzły:

        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 nowe serwery główne/gotowe Postgres do grupy analityki:
      1. Dodaj oba serwery Postgres do grupy analityki:
        apigee-adminapi.sh analytics groups postgres_server \
          add -g axgroup-001 -u "UUID_1,UUID_2" --admin adminEmail \
          --pwd adminPword --host localhost

        Ehere UUID_1 odpowiada głównemu węzłowi Postgres w dc-1, a UUID_2 odpowiada węzełowi zapasowemu Postgres w 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 w YouTube Analytics:
      1. W 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 zwracanych danych. Zapisz te wartości.

      2. W 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. W węźle serwera zarządzania dc-1 dodaj węzły Qpid do grupy 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 dc-1 Postgres:
        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 dc-1 Postgres:
        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. Tę czynność wystarczy wykonać 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 wierszu „cqlsh>”, aby ustawić poziomy replikacji przestrzeni 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 kluczy za pomocą polecenia:
        select * from system.schema_keyspaces;
      4. Wyjście cqlsh:
        exit
  14. Uruchom to polecenie nodetool we wszystkich węzłach Cassandra w dc-1, aby zwolnić pamięć:
    /opt/apigee/apigee-cassandra/bin/nodetool [-u username -pw password] -h cassandraIP cleanup

    Nazwę użytkownika i hasło musisz podać tylko wtedy, gdy masz włączone uwierzytelnianie JMX w systemie Cassandra.

  15. W przypadku każdej organizacji i każdego środowiska, które chcesz obsługiwać w różnych centrach danych:
    1. W 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 we właściwości 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 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 zwracanych danych. Zapisz te wartości.

      2. W węźle serwera zarządzania dc-1 dla każdego podmiotu przetwarzającego wiadomości w dc-2 dodaj ten procesor do środowiska danej 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.