Dodawanie centrum danych

Edge for Private Cloud w wersji 4.18.05

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 i dodasz centrum danych, musisz się nauczyć konfigurować serwery OpenLDAP, ZooKeeper, Cassandra i Postgres w różnych centrach danych. Musisz też zadbać o to, aby porty potrzebne do połączenia węzłów w 2 centrach danych były otwarte.

  • OpenLDAP

    Każde centrum danych ma własny serwer OpenLDAP skonfigurowany z włączoną replikacją. Podczas instalacji nowego centrum danych musisz skonfigurować OpenLDAP do korzystania z replikacji, a następnie ponownie skonfigurować serwer OpenLDAP w istniejącym centrum danych, aby używać 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 zaznacz wszystkie węzły za pomocą modyfikatora „:observer”. Węzły bez modyfikatora :observer nazywamy „głosującymi”. W konfiguracji musisz mieć nieparzyzną liczbę „głosujących”.

    W tej topologii host ZooKeeper na hostie 9 jest obserwatorem:

    W przykładowym pliku konfiguracyjnym widocznym 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 przypadku każdego centrum danych podaj adresy IP lub nazwy DNS tylko węzłów ZooKeeper w danym centrum danych, w tej samej kolejności dla wszystkich węzłów ZooKeeper w danym centrum danych.

  • Cassandra

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

    W przypadku CASS_HOSTS w każdym centrum danych upewnij się, że podajesz wszystkie adresy IP Cassandra (nie nazwy DNS) dla obu centrów danych. W przypadku centrum danych 1 najpierw wyświetl listę węzłów Cassandra w tym centrum danych. W przypadku centrum danych 2 najpierw wyświetl listę węzłów Cassandra w tym centrum danych. Wyświetl węzły Cassandra w tym samym porządku 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” to centrum danych 1 i rack/strefa dostępności 1, a „ip:2,1” to centrum danych 2 i rack/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 racku lub 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 Postgresa w trybie głównym. Jeśli jednak masz kilka centr danych, skonfiguruj węzły Postgres do korzystania z replikacji głównej i zapasowej, aby w przypadku awarii węzła głównego węzeł zapasowy mógł nadal przetwarzać ruch. Zwykle serwer główny Postgres jest konfigurowany w jednym centrum danych, a serwer zapasowy w drugim.

    Jeśli istniejące centrum danych jest już skonfigurowane tak, aby 2 węzły Postgresa działały w trybie głównego/zapasowego, w ramach tej procedury zarejestruj ponownie istniejący węzeł zapasowy, a następnie zastąp go węzłem zapasowym w nowym centrum danych.

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

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

    Węzeł zapasowy Postgres w dc-1

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

    Węzeł Postgres w trybie czuwania w dc-2

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

  • Wymagania dotyczące portów

    Musisz się upewnić, że porty potrzebne do komunikacji między węzłami w 2 centrach danych są otwarte. Diagram portów znajdziesz w sekcji Wymagania dotyczące portów.

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. Musisz też ponownie skonfigurować OpenLDAP, aby używać replikacji.

Tworzenie plików konfiguracji

Poniżej znajdują się pliki konfiguracji bez interfejsu dla 2 centrów danych, z których każde ma 6 węzłów, jak pokazano na topologii instalacji. Zauważ, ż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 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

W tej procedurze centra danych mają nazwy:

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

Aby dodać nowe centrum danych:

  1. Na serwerze dc-1 ponownie uruchom skrypt setup.sh na oryginalnych węzłach Cassandra z nowym plikiem konfiguracji dc-1, który zawiera węzły Cassandra z serwera dc-2:
    /opt/apigee/apigee-setup/bin/setup.sh -p ds -f configFile1
  2. Na serwerze dc-1 ponownie uruchom polecenie setup.sh na węźle serwera zarządzania:
    /opt/apigee/apigee-setup/bin/setup.sh -p ms -f configFile1
  3. Na serwerze dc-2 zainstaluj apigee-setup na wszystkich węzłach. Więcej informacji znajdziesz w artykule Instalowanie narzędzia apigee-setup w Edge.
  4. Na serwerze dc-2 zainstaluj Cassandra i ZooKeeper na odpowiednich węzłach:
    /opt/apigee/apigee-setup/bin/setup.sh -p ds -f configFile2
  5. Na serwerze dc-2 uruchom polecenie rebuild na wszystkich węzłach Cassandra, podając nazwę regionu dc-1:
    /opt/apigee/apigee-cassandra/bin/nodetool -h cassIP rebuild dc-1
  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, który instaluje narzędzie apigee-adminapi.sh:
    /opt/apigee/apigee-service/bin/apigee-service apigee-provision install
  8. Na serwerze dc-2 zainstaluj procesory tras i wiadomości na odpowiednich węzłach:
    /opt/apigee/apigee-setup/bin/setup.sh -p rmp -f configFile2
  9. Na hoście dc-2 zainstaluj Qpid na odpowiednich węzłach:
    /opt/apigee/apigee-setup/bin/setup.sh -p qs -f configFile2
  10. Na węźle dc-2 zainstaluj Postgres na odpowiednim węźle:
    /opt/apigee/apigee-setup/bin/setup.sh -p ps -f configFile2
  11. Skonfiguruj serwer główny/zapasowy 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 zapasowym.
    1. Na węźle głównym w dc-1 zmień plik konfiguracji, aby ustawić:
      PG_MASTER=IPorDNSofDC1Master
      PG_STANDBY=IPorDNSofDC2Standby
    2. Włącz replikację na nowym masterze:
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-master -f configFIle
    3. W węźle zapasowym w dc-2 otwórz plik konfiguracji i zmodyfikuj go, aby ustawić:
      PG_MASTER=IPorDNSofDC1Master
      PG_STANDBY=IPorDNSofDC2Standby
    4. Na węźle zapasowym 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/
    5. Skonfiguruj węzeł zapasowy w dc-2:
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-standby -f configFile
  12. Na dc-1 zaktualizuj konfigurację Analytics i skonfiguruj organizacje.
    1. Na węźle serwera zarządzania w dc-1 uzyskaj 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ądzania w dc-2 uzyskaj identyfikator UUID węzła Postgres, jak pokazano w poprzednim kroku. Zapisz tę wartość.
    3. Na węźle serwera zarządzającego w dc-1 określ nazwy grup analitycznych i konsumenckich. Wiele z tych poleceń wymaga podania tych informacji.

      Domyślnie nazwa grupy analitycznej to „axgroup-001”, a nazwa grupy konsumentów to „consumer-group-001”. W pliku konfiguracji uruchamiania w tle dla danego regionu możesz ustawić nazwę grupy analitycznej, używając właściwości AXGROUP.

      Jeśli nie masz pewności, jak nazywają się grupy analityczne i grupy konsumentów, wyświetl je za pomocą tego polecenia:

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

      To polecenie zwraca w polu name nazwę grupy Analytics, a w polu consumer-groups – nazwę grupy konsumentów.

    4. Na węźle serwera zarządzania w 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 instancja dc-1 jest skonfigurowana tak, aby mieć 2 węzły Postgres działające w trybie głównego/zapasowego, 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 2 węzły Postgres działały w trybie głównym/w trybie gotowości, 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 w dc-1 dodaj nowe serwery główne i zapasowe Postgres 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

        Tutaj 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 konsumentów jako serwery główne lub zapasowe:
        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ądzającego 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 pojawiają się na końcu zwróconych danych. Zapisz te wartości.

      2. Na węźle serwera zarządzającego w dc-1 dodaj węzły Qpid do grupy analitycznej (wykonaj 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 serwerze zarządzania w dc-1 dodaj węzły Qpid do grupy konsumentów (wykonaj 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 zapasowy Postgres z dc-1:
      1. Wyrejestruj dotychczasowy serwer zapasowy 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 zapasowy węzeł Postgres w dc-1.

      2. Usuń istniejący serwer zapasowy Postgres dc-1:
        apigee-adminapi.sh servers delete -u UUID \
          --admin adminEmail --pwd adminPword --host localhost
  13. Zaktualizuj kluczowe przestrzenie Cassandra, stosując prawidłowy współczynnik replikacji dla obu centrów danych. Wystarczy, że wykonasz 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. Aby ustawić poziomy replikowania w kluczowych przestrzeniach danych Cassandra, uruchom te polecenia CQL w wierszu poleceń „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. Aby wyświetlić klucze, użyj tego 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 -h cassandraIP cleanup
  15. W przypadku każdej organizacji i każdego środowiska, które chcesz obsługiwać w różnych centrach danych:
    1. Na węźle serwera zarządzającego 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 podgrupy 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 uzyskaj identyfikatory UUID węzłów przetwarzających 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ądzającego w 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ą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 proxy interfejsu API wdrożonego w organizacji.