В этом разделе приведены общие рекомендации по масштабированию операций Cassandra, чтобы Cassandra в Apigee Edge для частного облака учитывала стойки.
Дополнительную информацию о том, почему важно, чтобы Cassandra учитывала стойки, вы найдете в следующих ресурсах:
- Репликация (документация по Cassandra)
- Cassandra Архитектура и стратегия коэффициента репликации
Что такое стойка?
Стойка Cassandra – это логическая группа узлов Cassandra в кольце. Cassandra использует стойки, чтобы реплики распределялись по разным логическим группам. В результате операции отправляются не на один узел, а на несколько узлов, каждый из которых находится в отдельной стойке, что обеспечивает более высокую отказоустойчивость и доступность.
В примерах из этого раздела используются три стойки Cassandra – именно столько стоек поддерживает Apigee в рабочих топологиях.
При установке Cassandra в Apigee Edge для частного облака по умолчанию предполагается наличие одной логической стойки, в которую помещаются все узлы центра обработки данных. Хотя эту конфигурацию легко установить и использовать, она может выйти из строя, если на одном из узлов произойдет сбой.
На изображении ниже показана конфигурация кольца Cassandra по умолчанию.
В более надежной конфигурации каждый узел будет назначен отдельной стойке, а операции будут выполняться на репликах в каждой из этих стоек.
На изображении ниже показано кольцо из трех узлов. На этом изображении показан порядок репликации операций в кольце (по часовой стрелке) и подчеркнуто, что два узла не могут находиться в одной стойке:
В этой конфигурации операции отправляются на узел, а также на реплики этого узла на других стойках (по часовой стрелке).
Добавление информации о стойке (с тремя узлами)
Все топологии установки Apigee Edge для частного облака, предназначенные для использования в рабочей среде, имеют не менее трех узлов 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)
- Node 5 (IP5)
- Узел 3 (IP3)
- Node 6 (IP6)
* Внесите изменения в файл конфигурации в фоновом режиме до запуска утилиты установки на четвертом узле (втором компьютере в порядке установки Cassandra).
Развернуть до 12 узлов
Чтобы повысить отказоустойчивость и доступность, можно увеличить количество узлов Cassandra в кольце с шести до 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)
- Node 8 (IP8)
- Узел 2 (IP2)
- Node 9 (IP9)
- Node 5 (IP5)
- Node 10 (IP10)
- Узел 3 (IP3)
- Узел 11 (IP11)
- Node 6 (IP6)
- Узел 12 (IP12)
* Эти изменения необходимо внести до установки Apigee Edge для частного облака на седьмом узле (втором компьютере в порядке установки Cassandra).