Edge for Private Cloud w wersji 4.18.01
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 wymagane do komunikacji między węzłami 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 także ponownie skonfigurować serwer OpenLDAP w istniejącym centrum danych, aby używać replikacji. - ZooKeeper
Dla 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ć nieparzy liczbę „głosujących”.
W tej topologii host ZooKeeper na hoście 9 jest obserwatorem:
W przykładowym pliku konfiguracyjnym pokazanym 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 tym 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 parametru CASS_HOSTS dla każdego centrum danych sprawdź, czy są określone wszystkie adresy IP Cassandra (a 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 wymień 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, stojak/strefa dostępności 1 i „<ip>:2,1 = centrum danych 2 i szafka/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 serwerowej 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 Postgres w trybie głównym. Jeśli jednak masz więcej 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 Postgres działały w trybie głównego/zapasowego, w ramach tej procedury zarejestruj istniejący węzeł zapasowy, a następnie zastąp go węzłem zapasowym w nowym centrum danych.
Poniższa tabela przedstawia konfigurację Postgres przed i po zmianie 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 wymagane porty są otwarte między węzłami w 2 centrach danych. Schemat portów znajdziesz w artykule Wymagania dotyczące instalacji.
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 w trybie cichym dla 2 centrów danych, z których każde ma 6 węzłów, jak pokazano w topologii instalacji. Zauważ, że plik konfiguracji 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>" |
Procedura dodawania nowego centrum danych
W tej procedurze centra danych mają nazwy:
- dc-1: istniejące centrum danych,
- dc-2: nowe centrum danych.
- Na serwerze dc-1 ponownie uruchom polecenie 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 hoście serwera zarządzającego:
> /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.
- W przypadku dc-2 zainstaluj Cassandra i ZooKeeper w odpowiednich węzłach:
/opt/apigee/apigee-setup/bin/setup.sh -p ds -f configFile2 - Na serwerze dc-2 uruchom polecenie odbudowy na wszystkich węzłach Cassandra, podając nazwę regionu dc-1:
> /opt/apigee/apigee-cassandra/bin/nodetool -h cassIP rebuild dc-1 - Na serwerze dc-2 zainstaluj serwer zarządzający 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, który instaluje narzędzie apigee-adminapi.sh:
> /opt/apigee/apigee-service/bin/apigee-service apigee-provision install - W przypadku 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 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.
Uwaga: jeśli dc-1 jest już skonfigurowana tak, aby mieć 2 węzły Postgres działające w trybie głównym/awaryjnym, w ramach tej procedury użyj istniejącego głównego węzła Postgres w dc-1 jako głównego i węzła Postgres w dc-2 jako serwera zapasowego. W dalszej części tej procedury zarejestrujesz istniejący serwer zapasowy Postgres w dc-1.- Na węźle głównym w dc-1 otwórz plik konfiguracji i ustaw:
PG_MASTER=IPorDNSofDC1Master
PG_STANDBY=IPorDNSofDC2Standby - Włącz replikację na nowym hoście głównym:
> /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 konfiguracji, 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/
Uwaga: w razie potrzeby możesz utworzyć kopię zapasową tych danych przed ich usunięciem. - 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 otwórz plik konfiguracji i ustaw:
- Na serwerze dc-1 zaktualizuj konfigurację Analytics i skonfiguruj organizacje.
- Na węźle serwera zarządzania w 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ść.
Uwaga: jeśli dc-1 ma 2 węzły Postgres działające w trybie głównego/włączonego w trybie gotowości, w danych wyjściowych zobaczysz 2 adresy IP i 2 identyfikatory UUID. Zapisz oba identyfikatory UUID. Na podstawie adresów IP powinno być możliwe określenie, który identyfikator UUID jest przeznaczony dla mastera, a który dla węzła gotowości. - 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 cichej dla danego regionu możesz ustawić nazwę grupy analitycznej za pomocą właściwości AXGROUP.
Jeśli nie masz pewności co do nazw grup analitycznych i użytkownikó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 analitycznej w polu nazwy oraz nazwę grupy konsumentów w polu Consumer-groups. - 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 dc-1 ma skonfigurowane 2 węzły Postgres działające w trybie głównym/zapasowym, 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 Postgres Postgres z grupy Analytics:
> apigee-adminapi.sh analytics groups postgres_server_server Analytics groups postgres_server_225g axgroup-001 -u UUUUID -Y --admin adminEmail UUUID -Y --admin adminEmail UUUID -Y --admin adminEmail UUUID -Y --admin adminEmail --pwd adminPword --host localhost localhost.
adminPword --host localhost 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
gdzie UUID_1 odpowiada głównemu nośnikowi serwera Postgres w dc-1, a UUID_2 odpowiada zapasowemu nośnikowi serwera Postgres w dc-2. - Dodaj serwery PG do grupy konsumentów jako serwer główny lub zapasowy:
> 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 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 węźle serwera zarządzającego 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ądzania w dc-1 pobierz identyfikatory UUID węzłów Qpid w dc-2:
- Wyrejestruj i usuń stary serwer zapasowy Postgres z dc-1:
- Wyrejestruj istniejący serwer gotowości Postgres dc-1:
> serwery apigee-adminapi.sh wyrejestrują -u UUID -r dc-1 -p analytics -t postgres-server -Y --admin adminEmail --pwd adminPword --host localhost
gdzie UUID to stary host dcgres w trybie gotowości - Usuń istniejący serwer zapasowy Postgres dc-1:
Uwaga: to polecenie nie odinstaluje węzła serwera Postgres. Spowoduje to tylko usunięcie go z listy węzłów Edge. W razie potrzeby możesz odinstalować Postgresa z węzła.
> apigee-adminapi.sh servers delete -u UUID --admin adminEmail --pwd adminPword --host localhost
- Wyrejestruj istniejący serwer gotowości Postgres dc-1:
- Na węźle serwera zarządzania w dc-1 pobierz identyfikator UUID węzła Postgres:
- Zaktualizuj kluczowe przestrzenie Cassandra, stosując prawidłowy współczynnik replikacji dla obu centrów danych. Wystarczy wykonać ten krok tylko raz na dowolnym serwerze Cassandra w dowolnym centrum danych:
Uwaga: podane niżej polecenia powodują ustawienie współczynnika replikacji na „3”, co oznacza, że w klastrze znajdują się 3 węzły Cassandra. W razie potrzeby zmień tę wartość.- 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>”:
- cqlsh> ALTER KEYSPACE "identityzone" WITH replication = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
- cqlsh> ALTER KEYSPACE "system_traces" WITH replikacja = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
- Aby wyświetlić klucze, użyj polecenia:
cqlsh> select * from system.schema_keyspaces; - Zamknij cqlsh:
cqlsh> exit
- Uruchom narzędzie Cassandra cqlsh:
- Aby zwolnić pamięć, uruchom to polecenie nodetool na wszystkich węzłach Cassandra w dc-1:
> /opt/apigee/apigee-cassandra/bin/nodetool -h cassandraIP czyszczenie - W przypadku każdej organizacji i każdego środowiska, które chcesz obsługiwać w centrach danych:
- Na węźle serwera zarządzania w 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 węzła 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 w dc-2 pobierz 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
UUID pojawiają się na końcu zwróconych danych. Zapisz te wartości. - Na węźle serwera zarządzającego w dc-1 dla 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 w dc-2 pobierz UUID węzłów procesora wiadomości w dc-2:
- Na węźle serwera zarządzania w 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.
- Na węźle serwera zarządzania w dc-1 dodaj nowy MP_POD do organizacji: