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:
- 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
- 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
- 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. - Na serwerze dc-2 zainstaluj Cassandra i ZooKeeper na odpowiednich węzłach:
/opt/apigee/apigee-setup/bin/setup.sh -p ds -f configFile2
- 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
- Na dc-2 zainstaluj serwer zarządzania na odpowiednim węźle:
/opt/apigee/apigee-setup/bin/setup.sh -p ms -f configFile2
- Na węźle serwera zarządzania w dc-2 zainstaluj
apigee-provision
, który instaluje narzędzieapigee-adminapi.sh
:/opt/apigee/apigee-service/bin/apigee-service apigee-provision install
- 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
- Na hoście dc-2 zainstaluj Qpid na odpowiednich węzłach:
/opt/apigee/apigee-setup/bin/setup.sh -p qs -f configFile2
- Na węźle dc-2 zainstaluj Postgres na odpowiednim węźle:
/opt/apigee/apigee-setup/bin/setup.sh -p ps -f configFile2
- 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.
- Na węźle głównym w dc-1 zmień plik konfiguracji, aby ustawić:
PG_MASTER=IPorDNSofDC1Master PG_STANDBY=IPorDNSofDC2Standby
- Włącz replikację na nowym masterze:
/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-master -f configFIle
- W węźle zapasowym w dc-2 otwórz plik konfiguracji i zmodyfikuj go, aby ustawić:
PG_MASTER=IPorDNSofDC1Master PG_STANDBY=IPorDNSofDC2Standby
- 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/
- Skonfiguruj węzeł zapasowy w dc-2:
/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-standby -f configFile
- Na węźle głównym w dc-1 zmień plik konfiguracji, aby ustawić:
- Na dc-1 zaktualizuj konfigurację Analytics i skonfiguruj organizacje.
- 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ść.
- Na węźle serwera zarządzania w dc-2 uzyskaj identyfikator UUID węzła Postgres, jak pokazano w poprzednim kroku. Zapisz tę wartość.
- 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.
- Na węźle serwera zarządzania w dc-1 usuń istniejący serwer Postgres z grupy analitycznej:
- 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
- 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
- Usuń węzeł Postgres z grupy konsumentów:
- Na węźle serwera zarządzającego w dc-1 dodaj nowe serwery główne i zapasowe Postgres do grupy analitycznej:
- 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.
- 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
- Dodaj oba serwery Postgres do grupy analitycznej:
- Dodaj serwery Qpid z dc-2 do grupy analitycznej:
- 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.
- 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
- 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
- Na węźle serwera zarządzającego w dc-1 pobierz identyfikatory UUID węzłów Qpid w dc-2:
- Wyrejestruj i usuń stary serwer zapasowy Postgres z dc-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.
- Usuń istniejący serwer zapasowy Postgres dc-1:
apigee-adminapi.sh servers delete -u UUID \ --admin adminEmail --pwd adminPword --host localhost
- Wyrejestruj dotychczasowy serwer zapasowy dc-1 Postgres:
- Na węźle serwera zarządzania w dc-1 uzyskaj identyfikator UUID węzła Postgres:
- 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:
- Uruchom narzędzie Cassandra
cqlsh
:/opt/apigee/apigee-cassandra/bin/cqlsh cassandraIP
- Aby ustawić poziomy replikowania w kluczowych przestrzeniach danych Cassandra, uruchom te polecenia CQL w wierszu poleceń „cqlsh>”:
ALTER KEYSPACE "identityzone" WITH replication = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
ALTER KEYSPACE "system_traces" WITH replication = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
- Aby wyświetlić klucze, użyj tego polecenia:
select * from system.schema_keyspaces;
- Wyjście
cqlsh
:exit
- Uruchom narzędzie Cassandra
- 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
- W przypadku każdej organizacji i każdego środowiska, które chcesz obsługiwać w różnych centrach danych:
- 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.
- Dodaj nowe procesory wiadomości do organizacji i środowiska:
- 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.
- 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
- Na węźle serwera zarządzania w dc-2 uzyskaj identyfikatory UUID węzłów przetwarzających wiadomości w dc-2:
- 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.
- Na węźle serwera zarządzającego dc-1 dodaj nowy MP_POD do organizacji: