Dodawanie centrum danych

W tym dokumencie opisano, jak dodać centrum danych (nazywane też regionem) do istniejącego centrum danych.

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

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

  • OpenLDAP

    Każde centrum danych ma własny serwer OpenLDAP skonfigurowany z włączoną replikacją. Podczas instalowania nowego centrum danych musisz skonfigurować OpenLDAP tak, aby używał replikacji, oraz ponownie skonfigurować serwer OpenLDAP w istniejącym centrum danych, aby używał 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 są nazywane „głosującymi”. W konfiguracji musi być nieparzysta liczba „głosujących”.

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

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

    We właściwości ZK_CLIENT_HOSTS dla 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

    Wszystkie centra danych muszą mieć taką samą liczbę węzłów Cassandra.

    W przypadku CASS_HOSTS dla każdego centrum danych upewnij się, że podajesz wszystkie adresy IP Cassandra (nie nazwy DNS) dla 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 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”, na przykład „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 źródłowy. W tym modelu wdrażania 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 używały replikacji master-standby. Dzięki temu, jeśli węzeł główny ulegnie awarii, węzeł rezerwowy będzie mógł nadal obsługiwać ruch. Zwykle główny serwer Postgres konfiguruje się w jednym centrum danych, a serwer rezerwowy w drugim.

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

    Tabela poniżej przedstawia konfigurację Postgres przed i po w 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

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

  • Wymagania związane z portami

    Musisz się upewnić, że niezbędne porty są otwarte między węzłami w obu centrach danych. Schemat portów znajdziesz w artykule 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 wymaga też zaktualizowania węzłów w pierwotnym centrum danych. Te modyfikacje są konieczne, ponieważ dodajesz nowe węzły Cassandra i ZooKeeper w nowym centrum danych, które muszą być dostępne dla istniejącego centrum danych, i musisz ponownie skonfigurować OpenLDAP, aby używać replikacji.

Tworzenie plików konfiguracji

Poniżej przedstawiono pliki konfiguracji instalacji dyskretnej 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 dc-1 dodaje dodatkowe ustawienia do:

  • Skonfiguruj OpenLDAP z replikacją na 2 węzłach OpenLDAP.
  • Dodaj nowe węzły Cassandra i ZooKeeper z dc-2 do pliku konfiguracji 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 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 w pierwotnych 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-1 ponownie uruchom setup.sh w węźle serwera zarządzania:
    /opt/apigee/apigee-setup/bin/setup.sh -p ms -f configFile1
  3. W dc-2 zainstaluj apigee-setup we wszystkich węzłach. Więcej informacji znajdziesz w artykule Instalowanie narzędzia apigee-setup w Edge.
  4. W dc-2 zainstaluj Cassandrę i ZooKeepera w odpowiednich węzłach:
    /opt/apigee/apigee-setup/bin/setup.sh -p ds -f configFile2
  5. W dc-2 uruchom polecenie przebudowy 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 uwierzytelnianie JMX jest włączone w przypadku Cassandry.

  6. Na 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, co spowoduje zainstalowanie narzędzia apigee-adminapi.sh:
    /opt/apigee/apigee-service/bin/apigee-service apigee-provision install
  8. W dc-2 zainstaluj routery i procesory komunikatów 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 węzły Postgres w trybie master/standby. Węzeł Postgres w dc-1 jest węzłem głównym, a węzeł Postgres w dc-2 jest serwerem rezerwowym.
    1. W węźle głównym w dc-1 zmodyfikuj plik konfiguracji, aby ustawić:
      PG_MASTER=IPorDNSofDC1Master
      PG_STANDBY=IPorDNSofDC2Standby
    2. Włącz replikację w nowej instancji głównej:
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-master -f configFIle
    3. W węźle rezerwowym w dc-2 zmodyfikuj 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 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, zanim je usuniesz.

    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ę statystyk 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 pojawi się na końcu zwróconych danych. Zapisz tę wartość.

    2. Na 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 określ nazwę grup Analytics i konsumentów. Wiele z poniższych poleceń wymaga tych informacji.

      Domyślnie nazwa grupy analitycznej to „axgroup-001”, a nazwa grupy konsumentów to „consumer-group-001”. W pliku konfiguracji instalacji dyskretnej 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 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 konsumentów w polu consumer-groups.

    4. W węźle serwera zarządzania 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/czuwania, 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 master/standby, 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 nowe serwery Postgres (główny i rezerwowy) 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 zapasowemu węzłowi Postgres w dc-2.

      2. Dodaj serwery PG do grupy klientó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. 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 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. W węźle serwera zarządzania 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
    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 trybie gotowości 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, podając 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 Cassandra cqlsh:
      /opt/apigee/apigee-cassandra/bin/cqlsh cassandraIP
    2. Aby ustawić poziomy replikacji dla przestrzeni kluczy Cassandra, uruchom te polecenia CQL po znaku zachęty „cqlsh>”:
      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. 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 uwierzytelnianie JMX jest włączone w przypadku Cassandry.

  15. W przypadku każdej organizacji i każdego środowiska, które chcesz obsługiwać w 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 przez właściwość MP_POD w pliku konfiguracji dc-2.

    2. Dodaj nowe procesory komunikatów do organizacji i środowiska:
      1. Na węźle serwera zarządzania 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 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 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. 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.