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_HOSTSdla 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:observersą 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_HOSTSdla 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_HOSTSdla 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 dodać nowe centrum danych, wykonaj te 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:
- 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
- W dc-1 ponownie uruchom setup.sh w węźle serwera zarządzania:
/opt/apigee/apigee-setup/bin/setup.sh -p ms -f configFile1
- W dc-2 zainstaluj
apigee-setupwe wszystkich węzłach. Więcej informacji znajdziesz w artykule Instalowanie narzędzia apigee-setup w Edge. - W dc-2 zainstaluj Cassandrę i ZooKeepera w odpowiednich węzłach:
/opt/apigee/apigee-setup/bin/setup.sh -p ds -f configFile2
- 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.
- 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, co spowoduje zainstalowanie narzędziaapigee-adminapi.sh:/opt/apigee/apigee-service/bin/apigee-service apigee-provision install
- 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
- W dc-2 zainstaluj Qpid w odpowiednich węzłach:
/opt/apigee/apigee-setup/bin/setup.sh -p qs -f configFile2
- W dc-2 zainstaluj Postgres w odpowiednim węźle:
/opt/apigee/apigee-setup/bin/setup.sh -p ps -f configFile2
- 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.
- W węźle głównym w dc-1 zmodyfikuj plik konfiguracji, aby ustawić:
PG_MASTER=IPorDNSofDC1Master PG_STANDBY=IPorDNSofDC2Standby
- Włącz replikację w nowej instancji głównej:
/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-master -f configFIle
- W węźle rezerwowym w dc-2 zmodyfikuj plik konfiguracji, 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, zanim je usuniesz.
- Skonfiguruj węzeł rezerwowy w dc-2:
/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-standby -f configFile
- W węźle głównym w dc-1 zmodyfikuj plik konfiguracji, aby ustawić:
- W dc-1 zaktualizuj konfigurację statystyk i skonfiguruj organizacje.
- 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ść.
- Na węźle serwera zarządzania dc-2 pobierz identyfikator UUID węzła Postgres, jak pokazano w poprzednim kroku. Zapisz tę wartość.
- 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.
- W węźle serwera zarządzania dc-1 usuń istniejący serwer Postgres z grupy Analytics:
- 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
- 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
- Usuń węzeł Postgres z grupy konsumentów:
- W węźle serwera zarządzania dc-1 dodaj nowe serwery Postgres (główny i rezerwowy) do grupy Analytics:
- 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.
- 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
- Dodaj oba serwery Postgres do grupy Analytics:
- Dodaj serwery Qpid z dc-2 do grupy analitycznej:
- 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.
- 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 - 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
- W 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 trybie gotowości 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:
- W węźle serwera zarządzania dc-1 pobierz identyfikator UUID węzła Postgres:
- 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:
- Uruchom narzędzie Cassandra
cqlsh:/opt/apigee/apigee-cassandra/bin/cqlsh cassandraIP
- Aby ustawić poziomy replikacji dla przestrzeni kluczy Cassandra, uruchom te polecenia CQL po znaku zachęty „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' };- Wyświetl przestrzenie kluczy za pomocą polecenia:
select * from system.schema_keyspaces;
- Wyjście
cqlsh:exit
- Uruchom narzędzie Cassandra
- Aby zwolnić pamięć, uruchom to polecenie
nodetoolna 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.
- W przypadku każdej organizacji i każdego środowiska, które chcesz obsługiwać w centrach danych:
- 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.
- Dodaj nowe procesory komunikatów do organizacji i środowiska:
- 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.
- 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
- Na węźle serwera zarządzania dc-2 pobierz identyfikatory UUID węzłów procesora komunikatów w dc-2:
- 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.
- W węźle serwera zarządzania dc-1 dodaj nowy MP_POD do organizacji: