Добавление узлов Cassandra

При добавлении узлов Cassandra в кластер важно учитывать следующие два ключевых момента:

  • Существующие позиции узлов в кольце Cassandra не должны меняться, чтобы минимизировать потоковую передачу и сохранить сбалансированное кольцо.
  • Количество узлов во всех центрах обработки данных должно оставаться постоянным.

Для достижения первой цели крайне важно удваивать количество узлов в кластере Cassandra каждый раз, когда вы добавляете новые узлы.

Например, если вы начнете со стандартной топологии установки кластера из 12 узлов , распределенной по двум центрам обработки данных, всего у вас будет шесть узлов Cassandra — по три в каждом центре обработки данных. Чтобы расширить этот кластер, вам следует добавить по три узла в каждый центр обработки данных, увеличив общее количество узлов до 12 (шесть узлов в каждом центре обработки данных). Если требуется дальнейшее расширение, вам следует добавить шесть дополнительных узлов в каждый центр обработки данных, в результате чего общее количество узлов составит 24 (12 узлов в каждом центре обработки данных).

В этом документе представлены инструкции по добавлению трех новых узлов Cassandra к существующей установке Edge for Private Cloud. Те же шаги можно выполнить для добавления дополнительных узлов. Всегда следите за тем, чтобы при расширении кластера вы удваивали количество узлов.

Список системных требований для узла Cassandra см. в разделе «Требования к установке» .

Существующая конфигурация Edge

Все поддерживаемые топологии Edge для производственной системы предусматривают использование трех узлов Cassandra. Три узла указаны для свойства CASS_HOSTS в файле конфигурации, как показано ниже:

IP1=10.10.0.1
IP2=10.10.0.2
IP3=10.10.0.3
HOSTIP=$(hostname -i)
ADMIN_EMAIL=opdk@google.com
APIGEE_ADMINPW=Secret123
LICENSE_FILE=/tmp/license.txt
MSIP=$IP1 
USE_LDAP_REMOTE_HOST=n
LDAP_TYPE=1
APIGEE_LDAPPW=secret
MP_POD=gateway
REGION=dc-1
ZK_HOSTS="$IP1 $IP2 $IP3"
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" 
SKIP_SMTP=n
SMTPHOST=smtp.example.com
SMTPUSER=smtp@example.com
SMTPPASSWORD=smtppwd

Обратите внимание, что свойство REGION указывает имя региона как «dc-1». Эта информация понадобится вам при добавлении новых узлов Cassandra.

Изменение файла конфигурации для добавления трех новых узлов Cassandra.

В этом примере три новых узла Cassandra находятся по следующим IP-адресам:

  • 10.10.0.14
  • 10.10.0.15
  • 10.10.0.16

Сначала необходимо обновить файл конфигурации Edge, чтобы добавить новые узлы:

IP1=10.10.0.1
IP2=10.10.0.2
IP3=10.10.0.3
# Add the new node IP addresses.
IP14=10.10.0.14
IP15=10.10.0.15
IP16=10.10.0.16
HOSTIP=$(hostname -i)
ADMIN_EMAIL=opdk@google.com
...
# Update CASS_HOSTS to add each new node after an existing nodes. 
# Must use IP addresses for CASS_HOSTS, not DNS names.
CASS_HOSTS="$IP1:1,1 $IP14:1,1 $IP2:1,1 $IP15:1,1 $IP3:1,1 $IP16:1,1" 

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

Настроить Edge

После редактирования файла конфигурации необходимо:

  • Переконфигурируйте существующие узлы Cassandra.
  • Установите Cassandra на новые узлы.
  • Перенастройте сервер управления

Переконфигурируйте существующие узлы Cassandra.

На существующих узлах Cassandra:

  1. Перезапустите setup.sh с профилем «-pc» и новым файлом конфигурации:
    /opt/apigee/apigee-setup/bin/setup.sh -p c -f updatedConfigFile

Установите Cassandra на новые узлы.

Используйте описанную ниже процедуру, чтобы установить Cassandra на новые узлы.

На каждом новом узле Cassandra:

  1. Установите Cassandra на три узла:
    1. Установите apigee-setup на первый узел, как описано в разделе Установка утилиты Edge apigee-setup .
    2. Установите Cassandra на первый узел, используя обновленный файл конфигурации:
      /opt/apigee/apigee-setup/bin/setup.sh -p c -f updatedConfigFile
    3. Повторите эти два шага для остальных новых узлов Cassandra.
  2. Перестройте три новых узла Cassandra, указав в качестве имени региона центр обработки данных, в который вы добавляете узел ( dc-1 , dc-2 и т. д.). В этом примере это dc-1 :
    1. На первом узле запустите:
      /opt/apigee/apigee-cassandra/bin/nodetool [-u username -pw password] -h nodeIP rebuild dc-1

      Где nodeIP — IP-адрес узла Cassandra.

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

    2. Повторите этот шаг на остальных новых узлах Cassandra.

Перенастройте сервер управления

На узле Management-Server

  1. Перезапустите файл setup.sh, чтобы обновить Сервер управления для вновь добавленных узлов Cassandra:
    /opt/apigee/apigee-setup/bin/setup.sh -p ms -f updatedConfigFile

Перезапустите все маршрутизаторы и процессоры сообщений.

  1. На всех маршрутизаторах:
    /opt/apigee/apigee-service/bin/apigee-service edge-router restart
  2. На всех процессорах сообщений:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart

Свободное дисковое пространство на существующих узлах Cassandra

После добавления нового узла вы можете использовать команду nodetool cleanup на уже существующих узлах, чтобы освободить дисковое пространство. Эта команда очищает токены конфигурации, которые больше не принадлежат ранее существовавшему узлу Cassandra.

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

/opt/apigee/apigee-cassandra/bin/nodetool [-u username -pw password] -h cassandraIP cleanup

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

Проверка восстановления

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

nodetool [-u username -pw password] -h nodeIP netstats

Эта команда должна указывать MODE: Normal когда узел запущен и индексы построены.

nodetool [-u username -pw password] -h nodeIP statusthrift

Должно указывать на то, что бережливый сервер работает, что позволяет Cassandra принимать запросы новых клиентов.

nodetool [-u username -pw password] -h nodeIP statusbinary

Должно указывать на то, что собственный транспорт (или двоичный протокол ) работает.

nodetool [-u username -pw password] -h nodeIP describecluster

Должно показывать, что новые узлы используют ту же версию схемы, что и старые узлы.

Дополнительную информацию об использовании nodetool см. в документации по использованию nodetool .