В этом разделе приведены общие рекомендации по масштабированию операций Cassandra путем обеспечения поддержки стоек Cassandra в Apigee Edge для частного облака.
Дополнительную информацию о том, почему важно, чтобы кольцо Cassandra учитывало стойки, можно найти в следующих ресурсах:
- Репликация (документация Cassandra)
- Cassandra Architecture & Replication Factor Strategy
Что такое стойка?
Стойка Cassandra – это логическая группа узлов Cassandra в кольце. Cassandra использует стойки, чтобы реплики распределялись по разным логическим группам. В результате операции отправляются не только на один узел, а на несколько узлов, каждый из которых находится на отдельной стойке, что обеспечивает большую отказоустойчивость и доступность.
В примерах в этом разделе используются три стойки Cassandra, то есть количество стоек, которые поддерживаются Apigee в производственных топологиях.
При установке Cassandra по умолчанию в Apigee Edge для частного облака предполагается наличие одной логической стойки и размещение в ней всех узлов центра обработки данных. Хотя такую конфигурацию просто установить и настроить, она может быть уязвима к сбоям, если операция не удастся на одном из узлов.
На следующем изображении показана конфигурация по умолчанию кольца Cassandra:
В более надежной конфигурации каждый узел будет назначен отдельной стойке, а операции также будут выполняться на репликах в каждой из этих стоек.
На изображении ниже показано кольцо с тремя узлами. На этом изображении показан порядок, в котором операции реплицируются по кольцу (по часовой стрелке), и подчеркивается тот факт, что никакие два узла не находятся в одной стойке:
В этой конфигурации операции отправляются на узел, а также на реплики этого узла в других стойках (по часовой стрелке).
Добавить учет стойки (с 3 узлами)
Все рабочие топологии установки Apigee Edge для Private Cloud имеют как минимум три узла Cassandra, которые в этом разделе называются IP1, IP2 и IP3. По умолчанию каждый из этих узлов находится в одной стойке, "ra-1".
В этом разделе описывается, как назначить узлы Cassandra отдельным стойкам, чтобы все операции отправлялись на узлы реплик в отдельных логических группах в кольце.
Чтобы назначить узлы Cassandra разным стойкам во время установки:
- Перед запуском установщика войдите в узел Cassandra и откройте для редактирования следующий файл конфигурации для автоматической установки:
/opt/silent.conf
Если файла нет, создайте его и назначьте владельцем пользователя apigee.
- Измените свойство
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"
- Измените назначения стоек так, чтобы узел 2 был назначен стойке 2, а узел 3 – стойке 3, как показано в следующем примере:
CASS_HOSTS="IP1:1,1 IP2:1,2 IP3:1,3"
Изменив назначения стоек, вы указываете Cassandra создать две дополнительные логические группы (стойки), которые затем предоставляют реплики, получающие все операции, полученные первым узлом.
Дополнительную информацию об использовании свойства конфигурации
CASS_HOSTSможно найти в справочнике по файлу конфигурации Edge. - Сохраните изменения в файле конфигурации и выполните следующую команду, чтобы установить 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
- Повторите эту процедуру для каждого узла Cassandra в кольце в том порядке, в котором узлы назначены в свойстве
CASS_HOSTS. В этом случае Cassandra необходимо устанавливать в следующем порядке:- Узел 1 (IP1)
- Узел 2 (IP2)
- Узел 3 (IP3)
После установки проверьте конфигурацию Cassandra.
Проверьте конфигурацию Cassandra
После установки конфигурации Cassandra с поддержкой стоек вы можете проверить, назначены ли узлы разным стойкам, с помощью команды nodetool status, как показано в следующем примере:
/opt/apigee/apigee-cassandra/bin/nodetool status
(Вы выполняете эту команду на одном из узлов Cassandra.)
Результаты должны выглядеть примерно так, как показано ниже. В столбце Rack указаны идентификаторы стоек для каждого узла.
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).
На изображении ниже показан порядок, в котором операции реплицируются по кольцу (по часовой стрелке). Также на нем видно, что во время репликации никакие два соседних узла не находятся в одной стойке.
В этой конфигурации у каждого узла есть ещё две реплики – по одной в каждой из двух других стоек. Например, у узла 1 в стойке 1 есть реплика в стойке 2 и стойке 3. Операции, отправленные на узел 1, также отправляются на реплики в других стойках по часовой стрелке.
Чтобы расширить кольцо 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 (IP1)
- Узел 4 (IP4)*
- Узел 2 (IP2)
- Узел 5 (IP5)
- Узел 3 (IP3)
- Node 6 (IP6)
* Внесите изменения в файл конфигурации для автоматической установки перед запуском утилиты настройки на четвертом узле (втором компьютере в порядке установки Cassandra).
Развернуть до 12 узлов
Чтобы ещё больше повысить отказоустойчивость и доступность, вы можете увеличить количество узлов Cassandra в кольце с 6 до 12. Для этой конфигурации требуется ещё шесть узлов (IP7–IP12).
На изображении ниже показан порядок, в котором операции реплицируются по кольцу (по часовой стрелке). Также на нем видно, что во время репликации никакие два соседних узла не находятся в одной стойке.
Процедура установки кольца из 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 (IP1)
- Node 7 (IP7)*
- Узел 4 (IP4)
- Узел 8 (IP8)
- Узел 2 (IP2)
- Node 9 (IP9)
- Узел 5 (IP5)
- Node 10 (IP10)
- Узел 3 (IP3)
- Node 11 (IP11)
- Node 6 (IP6)
- Node 12 (IP12)
* Эти изменения необходимо внести до установки Apigee Edge для частного облака на седьмом узле (втором компьютере в порядке установки Cassandra).