Ten dokument opisuje, 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 dowiedzieć się, jak skonfigurować serwery OpenLDAP, ZooKeeper, Cassandra i Postgres w centrach danych. Musisz też upewnić się, że między węzłami w tych 2 centrach danych są otwarte niezbędne porty.
- OpenLDAP
Każde centrum danych ma własny serwer OpenLDAP skonfigurowany z włączoną replikacją. Po zainstalowaniu nowego centrum danych musisz skonfigurować OpenLDAP do korzystania z replikacji i ponownie skonfigurować serwer OpenLDAP w istniejącym centrum danych, aby użyć replikacji.
- ZooKeeper
Dla właściwości
ZK_HOSTS
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 musisz mieć nieparzystą liczbę „głosów”.W tej topologii host ZooKeeper na hoście 9 jest obserwatorem:
W przykładowym pliku konfiguracji pokazanym poniżej węzeł 9 jest oznaczony modyfikatorem
:observer
, aby mieć 5 głosów: węzły 1, 2, 3, 7 i 8.Dla właściwości
ZK_CLIENT_HOSTS
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
W polu
CASS_HOSTS
dla każdego centrum danych podaj wszystkie adresy IP Cassandra (a nie nazwy DNS) 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 wymień w nim węzły Cassandra. Wyświetl 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, strefa stojaka/dostępności 1 oraz ip:2,1 = centrum danych 2 i strefa stojaka/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.126.2.192.168.12.2.2.
Jako serwer wyjściowy będzie używany pierwszy węzeł w strefie stojaka/dostępności 1 każdego centrum danych. 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, możesz skonfigurować węzły Postgres tak, aby używały replikacji gotowości mastera. Dzięki temu w przypadku awarii węzła głównego będzie on mógł kontynuować ruch na serwerze. Zwykle główny serwer Postgres konfiguruje się w jednym centrum danych, a serwer gotowości w drugim centrum danych.
Jeśli istniejące centrum danych jest już skonfigurowane tak, aby dwa węzły Postgres działały w trybie głównym/gotowym, w ramach tej procedury wyrejestruj istniejący węzeł gotowości i zastąp go węzłem gotowości w nowym centrum danych.
W tabeli poniżej znajdziesz konfigurację Postgres przed i po:
Przed Po Pojedynczy główny węzeł Postgres w dc-1
Węzeł główny Postgres w dc-1
Węzeł gotowości Postgres w dc-2
Węzeł główny Postgres w dc-1
Węzeł gotowości Postgres w dc-1
Węzeł główny Postgres w dc-1
Węzeł gotowości Postgres w dc-2
Wyrejestruj stary węzeł gotowości Postgres w dc-1
- Wymagania dotyczące portu
Musisz upewnić się, że między węzłami w obu centrach danych są otwarte niezbędne porty. Diagram portów znajdziesz w sekcji Wymagania dotyczące portu.
Aktualizowanie istniejącego centrum danych
Dodanie centrum danych wymaga wykonania czynności niezbędnych do zainstalowania i skonfigurowania nowych węzłów centrum danych, ale także aktualizacji węzłów w pierwotnym centrum danych. Te modyfikacje są konieczne, ponieważ dodajesz w nowym centrum danych nowe węzły Cassandra i ZooKeeper, które muszą być dostępne dla istniejącego centrum danych, i musisz ponownie skonfigurować OpenLDAP, aby użyć replikacji.
Tworzenie plików konfiguracji
Poniżej przedstawiono dyskretne pliki konfiguracji 2 centrów danych, gdzie każde z nich ma 6 węzłów, jak pokazano w topologii instalacji. Zwróć uwagę, że plik konfiguracyjny dc-1 dodaje dodatkowe ustawienia do:
- Skonfiguruj OpenLDAP z replikacją w 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
Aby zainstalować nowe centrum danych, wykonaj czynności opisane poniżej.
Centra danych w procedurze mają następujące nazwy:
- dc-1: istniejące centrum danych
- dc-2: nowe centrum danych
Aby dodać nowe centrum danych:
- W przypadku dc-1 uruchom ponownie plik setup.sh w 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
- W przypadku dc-1 uruchom ponownie plik setup.sh w węźle serwera zarządzania:
/opt/apigee/apigee-setup/bin/setup.sh -p ms -f configFile1
- Na dc-2 zainstaluj
apigee-setup
we wszystkich węzłach. Więcej informacji znajdziesz w artykule na temat instalowania narzędzia Edge apigee-setup. - Na dc-2 zainstaluj Cassandra i ZooKeeper w odpowiednich węzłach:
/opt/apigee/apigee-setup/bin/setup.sh -p ds -f configFile2
- W dc-2 uruchom polecenie odbudowywania 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 masz włączone uwierzytelnianie JMX w systemie Cassandra.
- W przypadku dc-2 zainstaluj serwer zarządzania w odpowiednim węźle:
/opt/apigee/apigee-setup/bin/setup.sh -p ms -f configFile2
- W węźle serwera zarządzania w dc-2 zainstaluj aplikację
apigee-provision
, która instaluje narzędzieapigee-adminapi.sh
:/opt/apigee/apigee-service/bin/apigee-service apigee-provision install
- W dc-2 zainstaluj trasy i procesory wiadomości w odpowiednich węzłach:
/opt/apigee/apigee-setup/bin/setup.sh -p rmp -f configFile2
- W przypadku dc-2 zainstaluj Qpid w odpowiednich węzłach:
/opt/apigee/apigee-setup/bin/setup.sh -p qs -f configFile2
- W przypadku dc-2 zainstaluj Postgres w odpowiednim węźle:
/opt/apigee/apigee-setup/bin/setup.sh -p ps -f configFile2
- Skonfiguruj mastera/stan gotowości 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 gotowości.
- W węźle głównym w dc-1 edytuj plik konfiguracyjny, aby ustawić:
PG_MASTER=IPorDNSofDC1Master PG_STANDBY=IPorDNSofDC2Standby
- Włącz replikację w nowym masterze:
/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-master -f configFIle
- W węźle gotowości w dc-2 edytuj plik konfiguracyjny, aby ustawić:
PG_MASTER=IPorDNSofDC1Master PG_STANDBY=IPorDNSofDC2Standby
- W węźle gotowości 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 przed usunięciem danych możesz utworzyć ich kopię zapasową.
- Skonfiguruj węzeł gotowości 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 edytuj plik konfiguracyjny, aby ustawić:
- W dc-1 zaktualizuj konfigurację Analytics 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 znajduje się na końcu zwróconych danych. Zapisz tę wartość.
- W 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 ustal nazwę grup analitycznych i grup klientów. Wiele z poniższych poleceń wymaga tych informacji.
Domyślnie nazwa grupy Analytics to „axgroup-001”, a nazwa grupy klientów to „consumer-group-001”. W cichym pliku konfiguracyjnym dla regionu możesz ustawić nazwę grupy analityki przy użyciu właściwości
AXGROUP
.Jeśli nie masz pewności co do nazw grup statystyk i grup klientów, 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 Analytics w polu nazwy, a nazwę grupy klientów w polu grup klientów.
- W węźle zarządzania serwerem dc-1 usuń z grupy analitycznej istniejący serwer Postgres:
- Usuń węzeł Postgres z grupy klientó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 2 węzły Postgres działały w trybie głównym/gotowym, usuń oba węzły:
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 analityki:
apigee-adminapi.sh analytics groups postgres_server remove \ -g axgroup-001 -u UUID -Y --admin adminEmail \ --pwd adminPword --host localhost
Jeśli w konfiguracji dc-1 skonfigurowano 2 węzły Postgres w trybie mastera/gotowości, usuń oba węzły:
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 klientów:
- W węźle serwera zarządzania dc-1 dodaj nowe serwery główne/gotowe Postgres do grupy analityki:
- Dodaj oba serwery Postgres do grupy analityki:
apigee-adminapi.sh analytics groups postgres_server \ add -g axgroup-001 -u "UUID_1,UUID_2" --admin adminEmail \ --pwd adminPword --host localhost
Ehere UUID_1 odpowiada głównemu węzłowi Postgres w dc-1, a UUID_2 odpowiada węzełowi zapasowemu Postgres w dc-2.
- Dodaj serwery PG do grupy klientów jako główne/gotowe:
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 analityki:
- Dodaj serwery Qpid z dc-2 do grupy w YouTube Analytics:
- 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 zwracanych danych. Zapisz te wartości.
- W 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 klientó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 gotowości Postgres z dc-1:
- Wyrejestruj istniejący serwer gotowości 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 węzeł gotowości Postgres w dc-1.
- Usuń istniejący serwer gotowości dc-1 Postgres:
apigee-adminapi.sh servers delete -u UUID \ --admin adminEmail --pwd adminPword --host localhost
- Wyrejestruj istniejący serwer gotowości dc-1 Postgres:
- 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. Tę czynność wystarczy wykonać tylko raz na dowolnym serwerze Cassandra w dowolnym centrum danych:
- Uruchom narzędzie Cassandra
cqlsh
:/opt/apigee/apigee-cassandra/bin/cqlsh cassandraIP
- Wykonaj następujące polecenia CQL w wierszu „cqlsh>”, aby ustawić poziomy replikacji przestrzeni kluczy Cassandra:
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
- Uruchom to polecenie
nodetool
we wszystkich węzłach Cassandra w dc-1, aby zwolnić pamięć:/opt/apigee/apigee-cassandra/bin/nodetool [-u username -pw password] -h cassandraIP cleanup
Nazwę użytkownika i hasło musisz podać tylko wtedy, gdy masz włączone uwierzytelnianie JMX w systemie Cassandra.
- W przypadku każdej organizacji i każdego środowiska, które chcesz obsługiwać w różnych 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 we właściwości MP_POD w pliku konfiguracyjnym dc-2.
- Dodaj nowe procesory wiadomości do organizacji i środowiska:
- W węźle serwera zarządzania 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 zwracanych danych. Zapisz te wartości.
- W węźle serwera zarządzania dc-1 dla każdego podmiotu przetwarzającego wiadomości w dc-2 dodaj ten procesor do środowiska danej organizacji:
apigee-adminapi.sh orgs envs servers add -o orgName -e envName \ -u UUID --admin adminEmail --pwd adminPword --host localhost
- W węźle serwera zarządzania dc-2 pobierz identyfikatory UUID węzłów procesora wiadomości 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: