Добавление центра обработки данных

В этом документе описывается, как добавить центр обработки данных (также называемый регионом) к существующему центру обработки данных.

Что следует учесть перед добавлением центра обработки данных

Перед установкой и добавлением центра обработки данных необходимо понять, как настроить серверы OpenLDAP, ZooKeeper, Cassandra и Postgres в обоих центрах обработки данных. Также необходимо убедиться, что необходимые порты открыты между узлами в двух центрах обработки данных.

  • OpenLDAP

    В каждом центре обработки данных настроен собственный сервер OpenLDAP с включенной репликацией. При установке нового центра обработки данных необходимо настроить OpenLDAP для использования репликации, а также перенастроить сервер OpenLDAP в существующем центре обработки данных для использования репликации.

  • Смотритель зоопарка

    Для свойства 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 будет выглядеть следующим образом:

  • PostgreSQL

    По умолчанию Edge устанавливает все узлы Postgres в режиме мастера. Однако, если у вас несколько центров обработки данных, вы настраиваете узлы Postgres на использование репликации «мастер-резервный узел», чтобы в случае отказа главного узла резервный узел мог продолжать обрабатывать трафик. Обычно главный сервер Postgres настраивается в одном центре обработки данных, а резервный — во втором.

    Если существующий центр обработки данных уже настроен на работу двух узлов Postgres в режиме master/standby, то в рамках этой процедуры отмените регистрацию существующего резервного узла и замените его резервным узлом в новом центре обработки данных.

    В таблице ниже показаны настройки PostgreSQL до и после внесения изменений для обоих сценариев:

    До После

    Один главный узел PostgreSQL в DC-1

    Главный узел PostgreSQL в DC-1

    Резервный узел PostgreSQL в DC-2

    Главный узел PostgreSQL в DC-1

    Резервный узел PostgreSQL в DC-1

    Главный узел PostgreSQL в DC-1

    Резервный узел PostgreSQL в DC-2

    Отмените регистрацию старого резервного узла Postgres в DC-1.

  • Требования к порту

    Необходимо убедиться, что между узлами в двух центрах обработки данных открыты необходимые порты. Схему расположения портов см. в разделе « Требования к портам» .

Обновление существующего центра обработки данных

Добавление центра обработки данных требует выполнения шагов по установке и настройке новых узлов центра обработки данных, а также обновления узлов в исходном центре обработки данных. Эти изменения необходимы, поскольку вы добавляете новые узлы Cassandra и ZooKeeper в новый центр обработки данных, которые должны быть доступны из существующего центра обработки данных, и вам необходимо перенастроить OpenLDAP для использования репликации.

Создание конфигурационных файлов

Ниже представлены файлы конфигурации для двух центров обработки данных, каждый из которых имеет 6 узлов, как показано в разделе «Топологии установки» . Обратите внимание, что файл конфигурации для dc-1 добавляет дополнительные параметры к:

  • Настройте OpenLDAP с репликацией между двумя узлами OpenLDAP.
  • Добавьте новые узлы 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 : новый центр обработки данных

Чтобы добавить новый центр обработки данных:

  1. На DC-1 повторно запустите setup.sh на исходных узлах Cassandra, используя новый конфигурационный файл DC-1, включающий узлы Cassandra с DC-2:
    /opt/apigee/apigee-setup/bin/setup.sh -p ds -f configFile1
  2. На dc-2 установите apigee-setup на всех узлах. Дополнительную информацию см. в разделе «Установка утилиты apigee-setup для Edge» .
  3. На сервере DC-2 установите Cassandra и ZooKeeper на соответствующих узлах:
    /opt/apigee/apigee-setup/bin/setup.sh -p ds -f configFile2
  4. На узле 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
  5. На dc-2 выполните команду перестроения на всех узлах Cassandra, указав имя региона dc-1:
    /opt/apigee/apigee-cassandra/bin/nodetool [-u username -pw password] -h cassIP rebuild dc-1

    Вам нужно будет ввести имя пользователя и пароль только в том случае, если вы включили аутентификацию JMX для Cassandra .

  6. На контроллере домена DC-2 установите сервер управления на соответствующем узле:
    /opt/apigee/apigee-setup/bin/setup.sh -p ms -f configFile2
  7. На узле сервера управления в DC-2 установите apigee-provision , который установит утилиту apigee-adminapi.sh :
    /opt/apigee/apigee-service/bin/apigee-service apigee-provision install
  8. На узле dc-2 установите маршруты и обработчики сообщений на соответствующих узлах:
    /opt/apigee/apigee-setup/bin/setup.sh -p rmp -f configFile2
  9. На dc-2 установите Qpid на соответствующих узлах:
    /opt/apigee/apigee-setup/bin/setup.sh -p qs -f configFile2
  10. На узле dc-2 установите PostgreSQL на соответствующем узле:
    /opt/apigee/apigee-setup/bin/setup.sh -p ps -f configFile2
  11. Настройте главный/резервный сервер PostgreSQL для узлов PostgreSQL. Узел PostgreSQL в DC-1 является главным сервером, а узел PostgreSQL в DC-2 — резервным сервером.
    1. На главном узле в DC-1 отредактируйте конфигурационный файл, чтобы установить следующие параметры:
      PG_MASTER=IPorDNSofDC1Master
      PG_STANDBY=IPorDNSofDC2Standby
    2. Включите репликацию на новом главном сервере:
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-master -f configFIle
    3. На резервном узле в DC-2 отредактируйте конфигурационный файл, чтобы установить следующие параметры:
      PG_MASTER=IPorDNSofDC1Master
      PG_STANDBY=IPorDNSofDC2Standby
    4. На резервном узле в DC-2 остановите сервер, а затем удалите все существующие данные PostgreSQL:
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql stop
      rm -rf /opt/apigee/data/apigee-postgresql/

      При необходимости вы можете создать резервную копию этих данных перед их удалением.

    5. Настройте резервный узел в DC-2 :
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-standby -f configFile
  12. На DC-1 обновите конфигурацию аналитики и настройте организации.
    1. На узле сервера управления DC-1 получите UUID узла PostgreSQL:
      apigee-adminapi.sh servers list -r dc-1 -p analytics -t postgres-server \
        --admin adminEmail --pwd adminPword --host localhost

      UUID отображается в конце возвращаемых данных. Сохраните это значение.

    2. На узле сервера управления DC-2 получите UUID узла Postgres, как показано на предыдущем шаге. Сохраните это значение.
    3. На узле сервера управления dc-1 определите имена групп аналитики и потребителей. Для многих из приведенных ниже команд требуется эта информация.

      По умолчанию имя аналитической группы — "axgroup-001", а имя потребительской группы — "consumer-group-001". В файле конфигурации для региона можно задать имя аналитической группы с помощью свойства AXGROUP .

      Если вы не уверены в названиях аналитических и потребительских групп, используйте следующую команду для их отображения:

      apigee-adminapi.sh analytics groups list \
        --admin adminEmail --pwd adminPword --host localhost

      Эта команда возвращает имя аналитической группы в поле name и имя потребительской группы в поле consumer-groups.

    4. На узле сервера управления DC-1 удалите существующий сервер Postgres из группы аналитики:
      1. Удалите узел 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 в режиме master/standby, удалите оба:

        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
      2. Удалите узел Postgres из группы аналитики:
        apigee-adminapi.sh analytics groups postgres_server remove \
          -g axgroup-001 -u UUID -Y --admin adminEmail \
          --pwd adminPword --host localhost

        Если на dc-1 настроено использование двух узлов Postgres в режиме master/standby, удалите оба:

        apigee-adminapi.sh analytics groups postgres_server \
          remove -g axgroup-001 -u UUID1,UUID2 -Y --admin adminEmail \
          --pwd adminPword --host localhost
    5. На узле сервера управления DC-1 добавьте новые серверы Postgres master/standby в группу аналитики:
      1. Добавьте оба сервера PostgreSQL в группу аналитики:
        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 .

      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
    6. Добавьте серверы Qpid с DC-2 в группу аналитики:
      1. На узле сервера управления 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-идентификаторы отображаются в конце возвращаемых данных. Сохраните эти значения.

      2. На узле сервера управления 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
      3. На узле сервера управления 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
    7. Отмените регистрацию и удалите старый резервный сервер Postgres с контроллера домена DC-1:
      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.

      2. Удалите существующий резервный сервер Postgres dc-1:
        apigee-adminapi.sh servers delete -u UUID \
        --admin adminEmail --pwd adminPword --host localhost
  13. Обновите пространства ключей Cassandra, указав правильный коэффициент репликации для двух центров обработки данных. Этот шаг необходимо выполнить только один раз на любом сервере Cassandra в любом из центров обработки данных:
    1. Запустите утилиту cqlsh для Cassandra:
      /opt/apigee/apigee-cassandra/bin/cqlsh cassandraIP
    2. Выполните следующие команды CQL в командной строке "cqlsh>", чтобы установить уровни репликации для пространств ключей Cassandra:
      1. ALTER KEYSPACE "identityzone" WITH replication = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' }; 
      2. ALTER KEYSPACE "system_traces" WITH replication = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
      3. Просмотреть пространства ключей можно с помощью команды:
        SELECT * FROM system_schema.keyspaces;
      4. Выход из cqlsh :
        exit
  14. Выполните следующую команду nodetool на всех узлах Cassandra в dc-1, чтобы освободить память:
    /opt/apigee/apigee-cassandra/bin/nodetool [-u username -pw password] -h cassandraIP cleanup

    Вам нужно будет ввести имя пользователя и пароль только в том случае, если вы включили аутентификацию JMX для Cassandra .

  15. Для каждой организации и для каждой среды, которую вы хотите поддерживать в центрах обработки данных:
    1. На узле сервера управления 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.

    2. Добавьте новые обработчики сообщений в организацию и среду:
      1. На узле сервера управления 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-идентификаторы отображаются в конце возвращаемых данных. Сохраните эти значения.

      2. На узле сервера управления dc-1 для каждого обработчика сообщений в dc-2 добавьте обработчик сообщений в среду для организации:
        apigee-adminapi.sh orgs envs servers add -o orgName -e envName \
          -u UUID --admin adminEmail --pwd adminPword --host localhost
    3. На узле сервера управления DC-1 проверьте организацию:
      apigee-adminapi.sh orgs apis deployments -o orgName -a apiProxyName \
        --admin adminEmail --pwd adminPword --host localhost

      Где apiProxyName — это имя прокси-сервера API, развернутого в организации.

  16. Если вы используете монетизацию , установите узел монетизации в DC2.

    Выполните команду настройки MINT на сервере управления и узлах обработки сообщений в DC2:

    /opt/apigee/apigee-setup/bin/setup.sh -p mo -f mint_configFile1