В этом документе описывается, как добавить центр обработки данных (также называемый регионом) к существующему центру обработки данных.
Что следует учитывать перед добавлением центра обработки данных
Перед установкой и добавлением центра обработки данных необходимо знать, как настроить серверы SymasLDAP, ZooKeeper, Cassandra и Postgres в этих центрах. Также необходимо убедиться, что между узлами в двух центрах обработки данных открыты необходимые порты.
- SymasLDAP
В каждом центре обработки данных имеется собственный сервер SymasLDAP, настроенный с включенной репликацией. При установке нового центра обработки данных необходимо настроить SymasLDAP для использования репликации, а также перенастроить сервер SymasLDAP в существующем центре обработки данных для использования репликации.
- ZooKeeper
Для свойства
ZK_HOSTS
для обоих центров обработки данных укажите IP-адреса или DNS-имена всех узлов ZooKeeper в обоих центрах обработки данных в одинаковом порядке и отметьте все узлы модификатором «:observer». Узлы без модификатора:observer
» называются «избирателями». В вашей конфигурации должно быть нечётное количество «избирателей».В этой топологии хост ZooKeeper на хосте 9 является наблюдателем:
В примере файла конфигурации, показанном ниже, узел 9 помечен модификатором
:observer
поэтому у вас есть пять избирателей: узлы 1, 2, 3, 7 и 8.Для свойства
ZK_CLIENT_HOSTS
для каждого центра обработки данных укажите IP-адреса или DNS-имена только узлов ZooKeeper в центре обработки данных, в том же порядке, что и для всех узлов ZooKeeper в центре обработки данных. - Кассандра
Для
CASS_HOSTS
для каждого центра обработки данных убедитесь, что вы указали все IP-адреса Cassandra (не DNS-имена) для обоих центров. Для центра обработки данных 1 сначала укажите узлы Cassandra в этом центре. Для центра обработки данных 2 сначала укажите узлы Cassandra в этом центре. Укажите узлы Cassandra в том же порядке для всех узлов Cassandra в центре обработки данных.Все узлы Cassandra должны иметь суффикс ': d , r '; например, ' ip :1,1 = центр обработки данных 1 и зона стойки/доступности 1 и ' ip :2,1 = центр обработки данных 2 и зона стойки/доступности 1.
Например, "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"
Первый узел в стойке/зоне доступности 1 каждого центра обработки данных будет использоваться в качестве начального сервера. В этой модели развертывания конфигурация Cassandra будет выглядеть следующим образом:
- Постгрес
По умолчанию Edge устанавливает все узлы Postgres в режиме master. Однако при наличии нескольких центров обработки данных узлы Postgres настраиваются на репликацию master-standby, чтобы в случае выхода из строя master-узла резервный узел мог продолжить обработку трафика. Как правило, master-сервер Postgres настраивается в одном центре обработки данных, а stand-by — во втором.
Если существующий центр обработки данных уже настроен на работу двух узлов Postgres в режиме «главный/резервный», то в рамках этой процедуры отмените регистрацию существующего резервного узла и замените его резервным узлом в новом центре обработки данных.
В следующей таблице показана конфигурация Postgres до и после для обоих сценариев:
До После Один главный узел Postgres в DC-1
Главный узел Postgres в DC-1
Резервный узел Postgres в DC-2
Главный узел Postgres в DC-1
Резервный узел Postgres в DC-1
Главный узел Postgres в DC-1
Резервный узел Postgres в DC-2
Отменить регистрацию старого резервного узла Postgres в DC-1
- Требования к порту
Необходимо убедиться, что между узлами в двух центрах обработки данных открыты необходимые порты. Схему портов см. в разделе « Требования к портам» .
Обновление существующего центра обработки данных
Добавление центра обработки данных требует выполнения действий по установке и настройке новых узлов, а также обновления узлов в исходном центре обработки данных. Эти изменения необходимы, поскольку в новом центре обработки данных добавляются новые узлы Cassandra и ZooKeeper, которые должны быть доступны из существующего центра обработки данных, а также необходимо перенастроить SymasLDAP для использования репликации.
Создание файлов конфигурации
Ниже представлены файлы конфигурации для двух центров обработки данных, каждый из которых содержит 6 узлов, как показано в разделе «Топологии установки» . Обратите внимание, что файл конфигурации для DC-1 добавляет дополнительные настройки:
- Настройте SymasLDAP с репликацией на двух узлах SymasLDAP.
- Добавьте новые узлы Cassandra и ZooKeeper из dc-2 в файл конфигурации для 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>" |
Добавить новый центр обработки данных
Для установки нового центра обработки данных используйте следующую процедуру.
В процедуре центры обработки данных имеют следующие названия:
- dc-1 : существующий центр обработки данных
- dc-2 : новый центр обработки данных
Чтобы добавить новый центр обработки данных:
- На dc-1 повторно запустите setup.sh на исходных узлах Cassandra с новым файлом конфигурации dc-1, который включает узлы Cassandra из dc-2:
/opt/apigee/apigee-setup/bin/setup.sh -p ds -f configFile1
- На dc-1 повторно запустите setup.sh на узле сервера управления:
/opt/apigee/apigee-setup/bin/setup.sh -p ms -f configFile1
Если вы используете монетизацию , повторно выполните команду настройки монетизации:
/opt/apigee/apigee-setup/bin/setup.sh -p mo -f mint_configFile1
- На DC-2 установите
apigee-setup
на все узлы. Подробнее см. в разделе Установка утилиты Edge apigee-setup . - На dc-2 установите Cassandra и ZooKeeper на соответствующие узлы:
/opt/apigee/apigee-setup/bin/setup.sh -p ds -f configFile2
- На dc-2 выполните команду rebuild на всех узлах Cassandra, указав имя региона dc-1:
/opt/apigee/apigee-cassandra/bin/nodetool [-u username -pw password] -h cassIP rebuild dc-1
Вам нужно будет указать свое имя пользователя и пароль только в том случае, если вы включили аутентификацию JMX для Cassandra .
- На dc-2 установите сервер управления на соответствующий узел:
/opt/apigee/apigee-setup/bin/setup.sh -p ms -f configFile2
- На узле сервера управления в dc-2 установите
apigee-provision
, который устанавливает утилитуapigee-adminapi.sh
:/opt/apigee/apigee-service/bin/apigee-service apigee-provision install
- На dc-2 установите маршруты и процессоры сообщений на соответствующих узлах:
/opt/apigee/apigee-setup/bin/setup.sh -p rmp -f configFile2
- На dc-2 установите Qpid на соответствующие узлы:
/opt/apigee/apigee-setup/bin/setup.sh -p qs -f configFile2
- На dc-2 установите Postgres на соответствующий узел:
/opt/apigee/apigee-setup/bin/setup.sh -p ps -f configFile2
- Настройте Postgres в режиме «главный/резервный» для узлов Postgres. Узел Postgres в DC-1 является главным, а узел Postgres в DC-2 — резервным сервером.
- На главном узле в dc-1 отредактируйте файл конфигурации, чтобы задать:
PG_MASTER=IPorDNSofDC1Master PG_STANDBY=IPorDNSofDC2Standby
- Включите репликацию на новом мастере:
/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-master -f configFIle
- На резервном узле в DC-2 отредактируйте файл конфигурации, чтобы задать:
PG_MASTER=IPorDNSofDC1Master PG_STANDBY=IPorDNSofDC2Standby
- На резервном узле в dc-2 остановите сервер, а затем удалите все существующие данные Postgres:
/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql stop
rm -rf /opt/apigee/data/apigee-postgresql/
При необходимости вы можете создать резервную копию этих данных перед их удалением.
- Настройте резервный узел в DC-2 :
/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-standby -f configFile
- На главном узле в dc-1 отредактируйте файл конфигурации, чтобы задать:
- На dc-1 обновите конфигурацию аналитики и настройте организации.
- На узле сервера управления dc-1 получите UUID узла Postgres:
apigee-adminapi.sh servers list -r dc-1 -p analytics -t postgres-server \ --admin adminEmail --pwd adminPword --host localhost
UUID отображается в конце возвращаемых данных. Сохраните это значение.
- На узле сервера управления dc-2 получите UUID узла Postgres, как показано на предыдущем шаге. Сохраните это значение.
- На узле сервера управления DC-1 определите имена групп аналитики и потребителей. Многие из приведенных ниже команд требуют этой информации.
По умолчанию имя группы аналитики — "axgroup-001", а имя группы потребителей — "consumer-group-001". В файле конфигурации для региона можно задать имя группы аналитики с помощью свойства
AXGROUP
.Если вы не уверены в названиях аналитических и потребительских групп, используйте следующую команду для их отображения:
apigee-adminapi.sh analytics groups list \ --admin adminEmail --pwd adminPword --host localhost
Эта команда возвращает имя аналитической группы в поле имени и имя группы потребителей в поле групп потребителей.
- На узле сервера управления dc-1 удалите существующий сервер Postgres из группы аналитики:
- Удалить узел Postgres из группы потребителей:
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
Если dc-1 настроен на работу двух узлов Postgres в режиме «главный/резервный», удалите оба:
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
- Удалите узел Postgres из группы аналитики:
apigee-adminapi.sh analytics groups postgres_server remove \ -g axgroup-001 -u UUID -Y --admin adminEmail \ --pwd adminPword --host localhost
Если dc-1 настроен на работу двух узлов Postgres в режиме «главный/резервный», удалите оба:
apigee-adminapi.sh analytics groups postgres_server \ remove -g axgroup-001 -u UUID1,UUID2 -Y --admin adminEmail \ --pwd adminPword --host localhost
- Удалить узел Postgres из группы потребителей:
- На узле сервера управления dc-1 добавьте новые главные/резервные серверы Postgres в группу аналитики:
- Добавьте оба сервера Postgres в группу аналитики:
apigee-adminapi.sh analytics groups postgres_server \ add -g axgroup-001 -u "UUID_1,UUID_2" --admin adminEmail \ --pwd adminPword --host localhost
Здесь UUID_1 соответствует главному узлу Postgres в dc-1 , а UUID_2 соответствует резервному узлу Postgres в dc-2 .
- Добавьте серверы PG в группу потребителей в качестве основных/резервных:
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
- Добавьте оба сервера Postgres в группу аналитики:
- Добавьте серверы Qpid из dc-2 в группу аналитики:
- На узле сервера управления dc-1 получите UUID узлов Qpid в dc-2 :
apigee-adminapi.sh servers list -r dc-2 -p central -t qpid-server \ --admin adminEmail --pwd adminPword --host localhost
Идентификаторы UUID отображаются в конце возвращаемых данных. Сохраните эти значения.
- На узле сервера управления dc-1 добавьте узлы Qpid в группу аналитики (выполните обе команды):
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
- На узле сервера управления dc-1 добавьте узлы Qpid в группу потребителей (выполните обе команды):
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
Если вы используете монетизацию , добавьте узлы Qpid в группу MINT на узле сервера управления 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
- На узле сервера управления dc-1 получите UUID узлов Qpid в dc-2 :
- Отмените регистрацию и удалите старый резервный сервер Postgres из dc-1:
- Отмените регистрацию существующего резервного сервера 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
Где UUID — старый резервный узел Postgres в dc-1.
- Удалить существующий резервный сервер Postgres dc-1:
apigee-adminapi.sh servers delete -u UUID \ --admin adminEmail --pwd adminPword --host localhost
- Отмените регистрацию существующего резервного сервера Postgres dc-1 :
- На узле сервера управления dc-1 получите UUID узла Postgres:
- Обновите ключевые пространства Cassandra, указав правильный коэффициент репликации для двух центров обработки данных. Этот шаг необходимо выполнить только один раз на любом сервере Cassandra в любом центре обработки данных:
- Запустите утилиту Cassandra
cqlsh
:/opt/apigee/apigee-cassandra/bin/cqlsh cassandraIP
- Выполните следующие команды CQL в командной строке «cqlsh>», чтобы задать уровни репликации для пространств ключей 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' };
- Просмотрите ключевые пространства с помощью команды:
SELECT * FROM system_schema.keyspaces;
- Выход из
cqlsh
:exit
- Запустите утилиту Cassandra
- Выполните следующую команду
nodetool
на всех узлах Cassandra в dc-1, чтобы освободить память:/opt/apigee/apigee-cassandra/bin/nodetool [-u username -pw password] -h cassandraIP cleanup
Вам нужно будет указать свое имя пользователя и пароль только в том случае, если вы включили аутентификацию JMX для Cassandra .
- Для каждой организации и каждой среды, которую вы хотите поддерживать в центрах обработки данных:
- На узле сервера управления dc-1 добавьте новый MP_POD в организацию:
apigee-adminapi.sh orgs pods add -o orgName -r dc-2 -p gateway-2 \ --admin adminEmail --pwd adminPword --host localhost
Где gateway-2 — имя модуля шлюза, определенное свойством MP_POD в файле конфигурации dc-2.
- Добавьте новые обработчики сообщений в организацию и среду:
- На узле сервера управления dc-2 получите UUID узлов процессора сообщений в dc-2:
apigee-adminapi.sh servers list -r dc-2 -p gateway-2 \ -t message-processor --admin adminEmail --pwd adminPword --host localhost
Идентификаторы UUID отображаются в конце возвращаемых данных. Сохраните эти значения.
- На узле сервера управления dc-1 для каждого обработчика сообщений в dc-2 добавьте обработчик сообщений в среду для организации:
apigee-adminapi.sh orgs envs servers add -o orgName -e envName \ -u UUID --admin adminEmail --pwd adminPword --host localhost
- На узле сервера управления dc-2 получите UUID узлов процессора сообщений в dc-2:
- На узле сервера управления dc-1 проверьте организацию:
apigee-adminapi.sh orgs apis deployments -o orgName -a apiProxyName \ --admin adminEmail --pwd adminPword --host localhost
Где apiProxyName — имя прокси-сервера API, развернутого в организации.
- На узле сервера управления dc-1 добавьте новый MP_POD в организацию:
Если вы используете монетизацию , установите узел монетизации в DC2.
Выполните команду настройки MINT на узлах сервера управления и процессора сообщений в DC2:
/opt/apigee/apigee-setup/bin/setup.sh -p mo -f mint_configFile1