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 centrum danych, musisz wiedzieć, jak skonfigurować serwery SymasLDAP, ZooKeeper, Cassandra i Postgres w centrach danych. Musisz też zadbać o to, aby między węzłami w obu centrach danych były otwarte niezbędne porty.
- SymasLDAP
Każde centrum danych ma własny serwer SymasLDAP skonfigurowany z włączoną replikacją. Po zainstalowaniu nowego centrum danych musisz skonfigurować SymasLDAP tak, aby korzystał z replikacji, a także ponownie skonfigurować serwer SymasLDAP w dotychczasowym centrum danych, aby korzystał z 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
nazywane są „głosującymi”. W konfiguracji musisz mieć nieparzystą liczbę „głosujących”.W tej topologii host ZooKeeper na hoście 9 jest obserwatorem:
W przykładowym pliku konfiguracyjnym 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
dla każdego centrum danych podaj adresy IP lub nazwy DNS tylko węzłów ZooKeeper w tym centrum danych w tej samej kolejności dla wszystkich węzłów ZooKeeper w tym centrum danych. - Cassandra
W przypadku
CASS_HOSTS
każdego centrum danych upewnij się, że podajesz wszystkie adresy IP Cassandry (nie nazwy DNS) dla obu centrów danych. W przypadku centrum danych 1 najpierw podaj listę węzłów Cassandra w tym centrum danych. W przypadku centrum danych 2 najpierw podaj listę węzłów 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” oznacza centrum danych 1 i szafę/strefę dostępności 1, a „ip:2,1” oznacza centrum danych 2 i szafę/strefę 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 w każdym 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 wiele centrów danych, skonfiguruj węzły Postgres tak, aby korzystały z replikacji typu master-standby. Dzięki temu w przypadku awarii węzła głównego węzeł rezerwowy będzie mógł nadal obsługiwać ruch. Zwykle konfigurujesz główny serwer Postgres w jednym centrum danych, a serwer rezerwowy w drugim centrum danych.
Jeśli dotychczasowe centrum danych jest już skonfigurowane tak, aby działały w nim 2 węzły Postgres w trybie główny/rezerwowy, 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ę Postgresa przed i po 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
Wyrejestrowanie starego węzła rezerwowego Postgres w dc-1
- Wymagania dotyczące portów
Musisz się upewnić, że między węzłami w obu centrach danych są otwarte niezbędne porty. Schemat portów znajdziesz w sekcji Wymagania dotyczące portów.
Aktualizacja 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 zmiany 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, a także musisz ponownie skonfigurować SymasLDAP, aby używać replikacji.
Tworzenie plików konfiguracji
Poniżej znajdują się pliki konfiguracji cichej 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 konfiguracyjny dc-1 dodaje dodatkowe ustawienia do:
- Skonfiguruj SymasLDAP z replikacją na 2 węzłach SymasLDAP.
- 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 podane niżej czynności.
W procedurze centra danych mają te nazwy:
- dc-1: istniejące centrum danych
- dc-2: nowe centrum danych
Aby dodać nowe centrum danych:
- Na dc-1 ponownie uruchom skrypt setup.sh na 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
- Na dc-1 ponownie uruchom skrypt setup.sh na węźle serwera zarządzającego:
/opt/apigee/apigee-setup/bin/setup.sh -p ms -f configFile1
Jeśli używasz zarabiania, ponownie uruchom polecenie konfiguracji zarabiania:
/opt/apigee/apigee-setup/bin/setup.sh -p mo -f mint_configFile1
- Na dc-2 zainstaluj
apigee-setup
na wszystkich węzłach. Więcej informacji znajdziesz w artykule Instalowanie narzędzia Edge apigee-setup. - Na dc-2 zainstaluj Cassandra i ZooKeeper na odpowiednich węzłach:
/opt/apigee/apigee-setup/bin/setup.sh -p ds -f configFile2
- Na dc-2 uruchom polecenie odbudowy 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 przypadku Cassandry.
- Na serwerze 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ądzającego w dc-2 zainstaluj
apigee-provision
, co spowoduje zainstalowanie narzędziaapigee-adminapi.sh
:/opt/apigee/apigee-service/bin/apigee-service apigee-provision install
- Na dc-2 zainstaluj trasy i procesory wiadomości na odpowiednich węzłach:
/opt/apigee/apigee-setup/bin/setup.sh -p rmp -f configFile2
- Na dc-2 zainstaluj Qpid na odpowiednich węzłach:
/opt/apigee/apigee-setup/bin/setup.sh -p qs -f configFile2
- Na dc-2 zainstaluj Postgres na odpowiednim węźle:
/opt/apigee/apigee-setup/bin/setup.sh -p ps -f configFile2
- Skonfiguruj węzły Postgres jako główny i rezerwowy. Węzeł Postgres w dc-1 jest węzłem głównym, a węzeł Postgres w dc-2 jest serwerem rezerwowym.
- Na węźle głównym w dc-1 edytuj plik konfiguracyjny, aby ustawić:
PG_MASTER=IPorDNSofDC1Master PG_STANDBY=IPorDNSofDC2Standby
- Włącz replikację na nowym serwerze głównym:
/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-master -f configFIle
- Na węźle rezerwowym w dc-2 zmodyfikuj plik konfiguracyjny, aby ustawić:
PG_MASTER=IPorDNSofDC1Master PG_STANDBY=IPorDNSofDC2Standby
- 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 przed ich usunięciem.
- Skonfiguruj węzeł rezerwowy 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 edytuj plik konfiguracyjny, aby ustawić:
- Na serwerze dc-1 zaktualizuj konfigurację Analytics i skonfiguruj organizacje.
- Na węźle serwera zarządzającego 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ść.
- Na węźle serwera zarządzającego dc-2 pobierz identyfikator UUID węzła Postgres, jak pokazano w poprzednim kroku. Zapisz tę wartość.
- Na węźle serwera zarządzania dc-1 określ nazwy grup analitycznych i grup konsumentów. Wiele z poniższych poleceń wymaga tych informacji.
Domyślnie grupa analityczna ma nazwę „axgroup-001”, a grupa konsumencka – „consumer-group-001”. W pliku konfiguracji cichej dla regionu możesz ustawić nazwę grupy analitycznej za pomocą właściwości
AXGROUP
.Jeśli nie znasz 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 konsumenckiej w polu consumer-groups.
- Na węźle serwera zarządzania 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 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 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 mieć 2 węzły Postgres działające w trybie głównym/rezerwowym, 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 dc-1 dodaj nowe serwery Postgres typu master/standby 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
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.
- Dodaj serwery PG do grupy odbiorcó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
- Dodaj oba serwery Postgres do grupy analitycznej:
- Dodaj serwery Qpid z dc-2 do grupy analitycznej:
- Na 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.
- 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
- Na węźle serwera zarządzania dc-1 dodaj węzły Qpid do grupy odbiorcó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 Monetyzacji, dodaj węzły Qpid do grupy MINT w węźle serwera zarządzania 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
- Na węźle serwera zarządzania dc-1 pobierz identyfikatory UUID węzłów Qpid w dc-2:
- Wyrejestruj i usuń stary serwer rezerwowy Postgres z dc-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 dc-1.
- Usuń istniejący serwer rezerwowy Postgres dc-1:
apigee-adminapi.sh servers delete -u UUID \ --admin adminEmail --pwd adminPword --host localhost
- Wyrejestruj istniejący serwer rezerwowy Postgres dc-1:
- Na węźle serwera zarządzającego dc-1 pobierz identyfikator UUID węzła Postgres:
- Zaktualizuj przestrzenie kluczy Cassandra o 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:
- Uruchom narzędzie
cqlsh
Cassandra:/opt/apigee/apigee-cassandra/bin/cqlsh cassandraIP
- Aby ustawić poziomy replikacji dla przestrzeni kluczy Cassandra, w wierszu poleceń „cqlsh>” wykonaj te polecenia CQL:
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' };
- Wyświetl przestrzenie kluczy za pomocą tego polecenia:
SELECT * FROM system_schema.keyspaces;
- Wyjdź z
cqlsh
:exit
- Uruchom narzędzie
- 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 włączysz uwierzytelnianie JMX w przypadku Cassandry.
- W przypadku każdej organizacji i każdego środowiska, które chcesz obsługiwać w centrach danych:
- Na 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.
- Dodaj nowe procesory wiadomości do organizacji i środowiska:
- Na węźle serwera zarządzającego 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 zwróconych danych. Zapisz te wartości.
- Na węźle serwera zarządzania 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ądzającego dc-2 pobierz identyfikatory UUID węzłów procesora wiadomości w dc-2:
- Na węźle serwera zarządzającego 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ądzania dc-1 dodaj nowy MP_POD do organizacji:
Jeśli korzystasz z zarabiania, zainstaluj węzeł Zarabianie w DC2.
Uruchom polecenie konfiguracji MINT na serwerze zarządzającym i węzłach procesora wiadomości w DC2:
/opt/apigee/apigee-setup/bin/setup.sh -p mo -f mint_configFile1