Dodawanie centrum danych

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

Co należy wziąć pod uwagę przed dodaniem centrum danych

Zanim zainstalujesz centrum danych, musisz wiedzieć, jak skonfigurować serwery OpenLDAP, ZooKeeper, Cassandra i Postgres w centrach danych. Musisz też sprawdzić, czy między węzłami w obu centrach danych są otwarte niezbędne porty.

  • OpenLDAP

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

  • ZooKeeper

    W przypadku właściwości ZK_HOSTS w obu centrach 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łosujących".

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

    W pliku konfiguracji pokazanym 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 w każdym centrum danych podaj adresy IP lub nazwy DNS tylko węzłów ZooKeeper w centrum danych w tej samej kolejności dla wszystkich węzkerów ZooKeeper w centrum danych.

  • Cassandra

    W przypadku CASS_HOSTS w każdym centrum danych upewnij się, że podajesz wszystkie adresy IP Cassandra (nie nazwy DNS) w obu centrach danych. W przypadku centrum danych 1 najpierw podaj węzły Cassandra w tym centrum danych. W przypadku centrum danych 2 najpierw podaj węzły 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”, np. „ip:1,1 = centrum danych 1 i szafa/strefa dostępności 1” oraz „ip:2,1 = centrum danych 2 i szafa/strefa 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 każdego 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 kilka centrów danych, skonfiguruj węzły Postgres tak, aby korzystały z replikacji głównej i rezerwowej. Dzięki temu w przypadku awarii węzła głównego węzeł rezerwowy może nadal obsługiwać ruch. Zwykle konfigurujesz główny serwer Postgres w jednym centrum danych, a serwer rezerwowy w drugim centrum danych.

    Jeśli istniejące centrum danych jest już skonfigurowane tak, aby mieć 2 węzły Postgres działające w trybie głównym i rezerwowym, 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ę Postgres przed i po obu scenariuszach:

    Przed Po

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

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

    Rezerwowy węzeł Postgres w dc-2

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

    Rezerwowy węzeł Postgres w dc-1

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

    Rezerwowy węzeł Postgres w dc-2

    Wyrejestruj stary rezerwowy węzeł Postgres w dc-1

  • Wymagania związane z portami

    Musisz sprawdzić, czy między węzłami w obu centrach danych są otwarte niezbędne porty. Diagram portów znajdziesz w sekcji Wymagania związane z portami.

Aktualizowanie 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 modyfikacje 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, oraz musisz ponownie skonfigurować OpenLDAP, aby korzystał z replikacji.

Tworzenie plików konfiguracji

Poniżej znajdują się ciche pliki konfiguracji 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 konfiguracji dla 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 konfiguracji dla 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.

W tej procedurze centra danych mają te nazwy:

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

Aby dodać nowe centrum danych:

  1. W dc-1 ponownie uruchom setup.sh na oryginalnych węzłach Cassandra z nowym plikiem konfiguracji 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 dc-2 zainstaluj apigee-setup na wszystkich węzłach. Więcej informacji znajdziesz w artykule Instalowanie narzędzia apigee-setup Edge.
  3. W dc-2 zainstaluj Cassandra i ZooKeeper na odpowiednich węzłach:
    /opt/apigee/apigee-setup/bin/setup.sh -p ds -f configFile2
  4. W dc-1 ponownie uruchom setup.sh na węźle serwera zarządzania:
    /opt/apigee/apigee-setup/bin/setup.sh -p ms -f configFile1

    W razie potrzeby ponownie uruchom konfigurację ustawień zarabiania:

    /opt/apigee/apigee-setup/bin/setup.sh -p mo -f mint_configFile1
  5. W dc-2 uruchom polecenie rebuild 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 Cassandra.

  6. W 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ą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 routery i procesory wiadomości na odpowiednich węzłach:
    /opt/apigee/apigee-setup/bin/setup.sh -p rmp -f configFile2
  9. W dc-2 zainstaluj Qpid na odpowiednich węzłach:
    /opt/apigee/apigee-setup/bin/setup.sh -p qs -f configFile2
  10. W dc-2 zainstaluj Postgres na odpowiednim węźle:
    /opt/apigee/apigee-setup/bin/setup.sh -p ps -f configFile2
  11. Skonfiguruj Postgres w trybie głównym i rezerwowym 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 rezerwowym.
    1. Na węźle głównym w dc-1 edytuj plik konfiguracji, aby ustawić:
      PG_MASTER=IPorDNSofDC1Master
      PG_STANDBY=IPorDNSofDC2Standby
    2. Włącz replikację na nowym węźle 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 edytuj plik konfiguracji, aby ustawić:
      PG_MASTER=IPorDNSofDC1Master
      PG_STANDBY=IPorDNSofDC2Standby
    4. Na węźle rezerwowym w dc-2 zatrzymaj serwer, a następnie usuń wszystkie dotychczasowe 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. W dc-1 zaktualizuj konfigurację Analytics i skonfiguruj organizacje.
    1. Na węźle serwera zarządzania w dc-1 pobierz identyfikator UUID węzła Postgres węzła:
      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ądzania w dc-2 pobierz identyfikator UUID węzła Postgres węzła, jak pokazano w poprzednim kroku. Zapisz tę wartość.
    3. Na węźle serwera zarządzania w dc-1 określ nazwę grup Analytics i konsumentów. Wiele poleceń poniżej wymaga tych informacji.

      Domyślnie nazwa grupy Analytics to "axgroup-001", a nazwa grupy konsumentów to "consumer-group-001". W cichym pliku konfiguracji regionu możesz ustawić nazwę grupy Analytics za pomocą właściwości AXGROUP.

      Jeśli nie masz pewności co do nazw grup Analytics i konsumentó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 name i nazwę grupy konsumentów w polu consumer-groups.

    4. Na węźle serwera zarządzania w dc-1 usuń istniejący serwer Postgres z grupy Analytics:
      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 głównym i rezerwowym, 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 dc-1 jest skonfigurowany tak, aby mieć 2 węzły Postgres działające w trybie głównym i 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ądzania w dc-1 dodaj nowe serwery Postgres w trybie głównym i rezerwowym do grupy Analytics:
      1. Dodaj oba serwery Postgres do grupy Analytics:
        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 rezerwowemu węzłowi Postgres w dc-2.

      2. Dodaj serwery PG do grupy konsumentów jako serwery główne i 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 Analytics:
      1. Na węźle serwera zarządzania w 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 znajdują się na końcu zwróconych danych. Zapisz te wartości.

      2. Na węźle serwera zarządzania w dc-1 dodaj węzły Qpid do grupy Analytics (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 w dc-1 dodaj węzły Qpid do grupy konsumentó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 ustawień zarabiania, dodaj węzły Qpid do grupy MINT na węźle serwera zarządzania w 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 w 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 rezerwowy węzeł Postgres w dc-1.

      2. Usuń istniejący serwer rezerwowy Postgres w dc-1:
        apigee-adminapi.sh servers delete -u UUID \
        --admin adminEmail --pwd adminPword --host localhost
  13. Zaktualizuj przestrzenie kluczy Cassandra, aby miały prawidłowy współczynnik replikacji dla 2 centrów danych. Ten krok musisz 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. W wierszu poleceń "cqlsh>" wykonaj te polecenia CQL, aby ustawić poziomy replikacji dla 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. Aby wyświetlić przestrzenie kluczy, użyj tego polecenia:
        SELECT * FROM system_schema.keyspaces;
      4. Zamknij cqlsh:
        exit
  14. Uruchom to polecenie nodetool na 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 włączysz uwierzytelnianie JMX w Cassandra.

  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 w 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ądzania w dc-2 pobierz identyfikatory UUID węzłów 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 zwróconych danych. Zapisz te wartości.

      2. Na węźle serwera zarządzania w dc-1 w przypadku każdego procesora komunikatów 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. Na węźle serwera zarządzania w 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 używasz ustawień zarabiania, zainstaluj węzeł ustawień zarabiania w DC2.

    Uruchom polecenie konfiguracji MINT na serwerze zarządzania i węzłach procesora komunikatów w DC2:

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