Добавить поддержку стойки Cassandra

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

Дополнительную информацию о том, почему важно информировать о стойке для колец Cassandra, см. в следующих ресурсах:

Что такое стойка?

Стойка Cassandra — это логическая группа узлов Cassandra внутри кольца. Cassandra использует стойки, чтобы обеспечить распределение реплик по различным логическим группам. В результате операции передаются не на один, а на несколько узлов, каждый в отдельной стойке, что обеспечивает большую отказоустойчивость и доступность.

В примерах в этом разделе используются три стойки Cassandra — количество стоек, поддерживаемых Apigee в производственных топологиях.

Установка Cassandra по умолчанию в Apigee Edge для частного облака предполагает использование одной логической стойки и размещение в ней всех узлов центра обработки данных. Хотя эта конфигурация проста в установке и управлении, она может привести к сбою в случае сбоя операции на одном из этих узлов.

На следующем изображении показана конфигурация кольца Cassandra по умолчанию:

1 стойка с 3 узлами
(Рис. 1) Конфигурация по умолчанию: все узлы в одной стойке.

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

На следующем изображении показано кольцо из 3 узлов. На этом изображении показан порядок репликации операций по кольцу (по часовой стрелке) и подчеркивается тот факт, что никакие два узла не находятся в одной стойке:

3 стойки, по 1 узлу в каждой стойке
(Рис. 2) Конфигурация с учетом стойки: три узла, по одному в каждой стойке.

В этой конфигурации операции отправляются не только на узел, но и на реплики этого узла на других стойках (по часовой стрелке).

Добавить информацию о стойке (с 3 узлами)

Все топологии производственной установки Apigee Edge для частного облака имеют как минимум три узла Cassandra, которые в этом разделе называются «IP1», «IP2» и «IP3». По умолчанию каждый из этих узлов находится в одной стойке «ра-1».

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

Чтобы назначить узлы Cassandra различным стойкам во время установки:

  1. Прежде чем запускать установщик, войдите в узел Cassandra и откройте для редактирования следующий файл автоматической конфигурации :
    /opt/silent.conf

    Создайте файл, если он не существует, и обязательно назначьте его владельцем пользователя «apigee».

  2. Отредактируйте свойство CASS_HOSTS — список IP-адресов, разделенных пробелами (не записи DNS или имен хостов), который использует следующий синтаксис:
    CASS_HOSTS="IP_address:data_center_number,rack_number [...]"

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

    CASS_HOSTS="IP1:1,1 IP2:1,1 IP3:1,1"
  3. Измените назначения стоек так, чтобы узел 2 был назначен стойке 2, а узел 3 — стойке 3, как показано в следующем примере:
    CASS_HOSTS="IP1:1,1 IP2:1,2 IP3:1,3"

    Изменяя назначения стоек, вы даете Cassandra указание создать две дополнительные логические группы (стойки), которые затем предоставляют реплики, получающие все операции, полученные первым узлом.

    Дополнительные сведения об использовании свойства конфигурации CASS_HOSTS . в разделе Справочник по файлам конфигурации Edge .

  4. Сохраните изменения в файле конфигурации и выполните следующую команду, чтобы установить Cassandra с обновленной конфигурацией:
    /opt/apigee/apigee-setup/bin/setup.sh -p c -f path/to/silent/config

    Например:

    /opt/apigee/apigee-setup/bin/setup.sh -p c -f /opt/silent.conf
  5. Повторите эту процедуру для каждого узла Cassandra в кольце в том порядке, в котором узлы назначены в свойстве CASS_HOSTS . В этом случае необходимо установить Cassandra в следующем порядке:
    1. Узел 1 (IP1)
    2. Узел 2 (IP2)
    3. Узел 3 (IP3)

После установки вам следует проверить конфигурацию Cassandra .

Проверьте конфигурацию Кассандры

После установки конфигурации Cassandra с поддержкой стойки вы можете проверить, что узлы назначены разным стойкам, используя команду nodetool status , как показано в следующем примере:

/opt/apigee/apigee-cassandra/bin/nodetool status

(Вы выполняете эту команду на одном из узлов Cassandra.)

Результаты должны выглядеть примерно так, как показано ниже, где в столбце Стойка показаны разные идентификаторы стойки для каждого узла:

Datacenter: dc-1
========================
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
--  Address         Load       Tokens  Owns    Host ID                             Rack
UN  IP1   737 MB  256     ?     554d4498-e683-4a53-b0a5-e37a9731bc5c     ra-1
UN  IP2   744 MB  256     ?     cf8b7abf-5c5c-4361-9c2f-59e988d52da3     ra-2
UN  IP3   723 MB  256     ?     48e0384d-738f-4589-aa3a-08dc5bd5a736     ra-3

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

Установите шестиузловое кольцо

Для дополнительной избыточности вы можете расширить кольцо Cassandra до шести узлов. В этом случае вы назначаете по два узла каждой из трех стоек. Для этой конфигурации требуются дополнительные три узла: узел 4 (IP4), узел 5 (IP5) и узел 6 (IP6).

На следующем изображении показан порядок, в котором операции реплицируются по кольцу (по часовой стрелке), и подчеркивается тот факт, что во время репликации никакие два соседних узла не находятся в одной стойке:

3 стойки, по 2 узла в каждой стойке
(Рис. 3) Кольцо Cassandra с 6 узлами: по два узла на каждой из трех стоек.

В этой конфигурации каждый узел имеет еще две реплики: по одной в каждой из двух других стоек. Например, узел 1 в стойке 1 имеет реплики в стойках 2 и 3. Операции, отправленные на узел 1, также передаются репликам в других стойках по часовой стрелке.

Чтобы расширить кольцо Cassandra с тремя узлами до кольца Cassandra с шестью узлами, настройте узлы в файле автоматической конфигурации следующим образом:

CASS_HOSTS="IP1:1,1 IP4:1,3 IP2:1,2 IP5:1,1 IP3:1,3 IP6:1,2"

Как и в случае с кольцом из трех узлов, вы должны установить Cassandra в том же порядке, в котором узлы указаны в свойстве CASS_HOSTS :

  1. Узел 1 (IP1)
  2. Узел 4 (IP4)*
  3. Узел 2 (IP2)
  4. Узел 5 (IP5)
  5. Узел 3 (IP3)
  6. Узел 6 (IP6)

* Внесите изменения в файл автоматической конфигурации перед запуском утилиты настройки на четвертом узле (второй компьютер в порядке установки Cassandra).

Расширить до 12 узлов

Чтобы еще больше повысить отказоустойчивость и доступность, вы можете увеличить количество узлов Cassandra в кольце с шести до 12. Для этой конфигурации требуются дополнительные шесть узлов (от IP7 до IP12).

На следующем изображении показан порядок, в котором операции реплицируются по кольцу (по часовой стрелке), и подчеркивается тот факт, что во время репликации никакие два соседних узла не находятся в одной стойке:

3 стойки, по 4 узла в каждой стойке
(Рис. 4) Кольцо Cassandra с 12 узлами: четыре узла на каждой из трех стоек.

Процедура установки кольца из 12 узлов аналогична установке кольца из трех или шести узлов: установите для CASS_HOSTS заданные значения и запустите программу установки в указанном порядке.

Чтобы расширить кольцо Cassandra до 12 узлов, настройте узлы в файле автоматической конфигурации следующим образом:

CASS_HOSTS="IP1:1,1 IP7:1,2 IP4:1,3 IP8:1,1 IP2:1,2 IP9:1,3 IP5:1,1 IP10:1,2 IP3:1,3 IP11:1,1 IP6:1,2 IP12:1,3"

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

  1. Узел 1 (IP1)
  2. Узел 7 (IP7)*
  3. Узел 4 (IP4)
  4. Узел 8 (IP8)
  5. Узел 2 (IP2)
  6. Узел 9 (IP9)
  7. Узел 5 (IP5)
  8. Узел 10 (IP10)
  9. Узел 3 (IP3)
  10. Узел 11 (IP11)
  11. Узел 6 (IP6)
  12. Узел 12 (IP12)

* Вы должны внести эти изменения перед установкой Apigee Edge для частного облака на 7-м узле (второй компьютер в порядке установки Cassandra).