Перейти к основному содержимому
Версия: 2.0.x

Масштабирование cluster

В этом разделе описывается, как масштабировать узлы Selena.

Масштабирование FE

Selena имеет два типа узлов FE: Follower и Observer. Follower-узлы участвуют в выборах и записи. Observer-узлы используются только для синхронизации журналов и расширения производительности чтения.

  • Количество FE-узлов типа Follower (включая leader) должно быть нечётным, и рекомендуется развёртывать 3 из них для формирования режима высокой доступности (HA).
  • Когда FE развёрнут в режиме высокой доступности (1 leader, 2 follower), рекомендуется добавить Observer FE для лучшей производительности чтения.

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

После развёртывания узла FE и запуска сервиса выполните следующую команду для добавления FE.

alter system add follower "fe_host:edit_log_port";
alter system add observer "fe_host:edit_log_port";

Удаление узлов FE

Удаление FE аналогично добавлению. Выполните следующую команду для удаления FE.

alter system drop follower "fe_host:edit_log_port";
alter system drop observer "fe_host:edit_log_port";

После расширения и сокращения вы можете просмотреть информацию об узлах, выполнив show proc '/frontends';.

Масштабирование BE

Selena автоматически выполняет балансировку нагрузки после масштабирования BE без влияния на общую производительность.

При добавлении нового узла BE планировщик tablet системы обнаружит новый узел и его низкую нагрузку. Затем он начнёт перемещать tablet с узлов BE с высокой нагрузкой на новый узел BE с низкой нагрузкой, чтобы обеспечить равномерное распределение данных и нагрузки по всему cluster.

Процесс балансировки основан на показателе loadScore, рассчитываемом для каждого BE, который учитывает как использование диска, так и количество replica. Система стремится перемещать tablet с узлов с более высоким loadScore на узлы с более низким loadScore.

Вы можете проверить параметр конфигурации FE tablet_sched_disable_balance, чтобы убедиться, что автоматическая балансировка не отключена (параметр по умолчанию false, что означает, что балансировка tablet включена по умолчанию). Подробнее см. в документации по управлению replica.

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

Выполните следующую команду для добавления BE.

alter system add backend 'be_host:be_heartbeat_service_port';

Выполните следующую команду для проверки статуса BE.

show proc '/backends';

Удаление узлов BE

Существует два способа удаления узла BE — DROP и DECOMMISSION.

DROP немедленно удаляет узел BE, а потерянные дубликаты будут восполнены посредством планирования FE. DECOMMISSION сначала убеждается, что дубликаты восполнены, и только затем удаляет узел BE. DECOMMISSION более безопасен и рекомендуется для масштабирования BE.

Команды обоих методов похожи:

  • alter system decommission backend "be_host:be_heartbeat_service_port";
  • alter system drop backend "be_host:be_heartbeat_service_port";

Удаление backend — это опасная операция, поэтому перед выполнением необходимо подтвердить её дважды.

  • alter system drop backend "be_host:be_heartbeat_service_port";

Масштабирование CN

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

Выполните следующую команду для добавления CN.

ALTER SYSTEM ADD COMPUTE NODE "cn_host:cn_heartbeat_service_port";

Выполните следующую команду для проверки статуса CN.

SHOW PROC '/compute_nodes';

Удаление узлов CN

Удаление CN аналогично добавлению. Выполните следующую команду для удаления CN.

ALTER SYSTEM DROP COMPUTE NODE "cn_host:cn_heartbeat_service_port";

Вы можете просмотреть информацию об узлах, выполнив SHOW PROC '/compute_nodes';.