Масштабирование 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';.