Расширение кластера
Вы можете расширить кластер YDB, добавив новые узлы в конфигурацию кластера. Ниже приведены необходимые действия по расширению кластера YDB, установленного вручную на виртуальные машины или физические серверы. Расширение кластера в среде Kubernetes осуществляется путём корректировки настроек контроллера YDB для Kubernetes.
Расширение кластера YDB не требует приостановки доступа пользователей к базам данных. При расширении кластера выполняется перезапуск его компонентов для применения изменений в конфигурации, что, в свою очередь, может привести к необходимости повтора выполняемых на кластере транзакций. Повторы транзакций выполняются автоматически за счёт использования приложениями возможностей SDK YDB по контролю ошибок и повтору операций.
Подготовка новых серверов
В случае размещения новых статических или динамических узлов кластера на новых серверах, не входивших ранее в состав расширяемого кластера YDB, на каждом новом сервере необходимо выполнить установку программного обеспечения YDB в соответствии с процедурами, описанными в инструкции по развёртыванию кластеров. В частности, необходимо:
- создать учётную запись и группу в операционной системе для работы сервиса YDB;
- установить программное обеспечение YDB;
- подготовить и разместить на сервере соответствующий ему ключ и сертификат TLS;
- скопировать на сервер актуальный конфигурационный файл кластера YDB.
Используемые на новых серверах сертификаты TLS должны соответствовать требованиям к заполнению полей и быть подписаны доверенным центром регистрации, используемым на уже существующих серверах расширяемого кластера YDB.
Добавление динамических узлов
Добавление динамических узлов позволяет увеличить доступные вычислительные ресурсы (процессорные ядра и оперативную память) для выполнения пользовательских запросов кластером YDB.
Для добавления динамического узла в кластер достаточно запустить процесс, обслуживающий этот узел, передав ему в параметрах командной строки путь к конфигурационной директории кластера, имя обслуживаемой базы данных и адреса любых трёх статических узлов кластера YDB, как показано в инструкции по развёртыванию кластеров.
После успешного добавления динамического узла в кластер информация о нём будет доступна на странице мониторинга кластера в YDB UI.
Для вывода динамического узла из кластера достаточно выполнить остановку процесса динамического узла.
Добавление статических узлов
Добавление статических узлов позволяет увеличить пропускную способность при выполнении операций ввода-вывода и увеличить доступную ёмкость для хранения данных в кластере YDB.
Для добавления статических узлов в кластер необходимо выполнить следующую последовательность действий:
-
Очистить диски, которые будут использоваться для хранения данных YDB, с использованием процедуры, описанной для этапа развёртывания кластера.
-
Получить токен аутентификации для выполнения административных команд с помощью YDB CLI, например:
ydb -e grpcs://<node1.ydb.tech>:2135 -d /Root --ca-file ca.crt \ --user root auth get-token --force > token-fileВ примере команды выше используются следующие параметры:
node1.ydb.tech— FQDN любого из серверов, на которых уже размещены статические узлы кластера;2135— номер порта gRPCs сервиса статических узлов;ca.crt— имя файла с сертификатом центра регистрации;root— логин пользователя с административными правами;token-file— имя файла, в который сохраняется токен аутентификации для последующего использования.
При выполнении приведённой выше команды YDB CLI запросит пароль для аутентификации указанного пользователя.
-
Получить текущую конфигурацию кластера, выполнив команду следующего вида на любом из узлов кластера:
ydb --token-file token-file --ca-file ca.crt -e grpcs://<node1.ydb.tech>:2135 \ admin storage fetch > config.yaml -
Скорректировать конфигурационный файл кластера, включив в конфигурацию описание добавляемых узлов (в секции
hosts) и используемых на них дисков (в секцииhost_configs); -
Разрешить кластеру YDB использовать диски на новых статических узлах для хранения данных, выполнив следующую команду на любом из узлов кластера:
export LD_LIBRARY_PATH=/opt/ydb/lib ydb --token-file ydbd-token-file --ca-file ca.crt -e grpcs://<node1.ydb.tech>:2135 \ admin cluster config replace -f config.yaml echo $?В примере команды выше используются следующие параметры:
ydbd-token-file— имя файла ранее полученного токена аутентификации;2135— номер порта gRPCs сервиса статических узлов;ca.crt— имя файла с сертификатом центра регистрации.
Если при выполнении приведённой выше команды возвращается ошибка сверки версии конфигурации, это означает, что версия текущего конфига устарела, и необходимо получить новый из кластера, повторив шаг 3. Пример сообщения об ошибке сверки версии конфигурации:
ErrorDescription: "ConfigVersion mismatch ConfigVersionProvided# 0 ConfigVersionExpected# 1" -
Создать на каждой новой машине пустую директорию
/opt/ydb/cfgдля работы кластера с конфигурацией. Если на одной машине запускается несколько узлов, использовать одну и ту же директорию. Выполнив специальную команду на каждой новой машине, инициализировать эту директорию с использованием произвольного статического узла кластера в качестве источника конфигурации.sudo mkdir -p /opt/ydb/cfg sudo chown -R ydb:ydb /opt/ydb/cfg ydb admin node config init --config-dir /opt/ydb/cfg --seed-node <node.ydb.tech:2135> -
Запустить процессы, обслуживающие новые статические узлы кластера, на соответствующих серверах.
-
Убедиться в том, что новые статические узлы отображаются на странице мониторинга кластера в YDB UI.
-
Добавить дополнительные группы хранения в одну или несколько баз данных, выполнив команды следующего вида на любом из узлов кластера:
export LD_LIBRARY_PATH=/opt/ydb/lib /opt/ydb/bin/ydbd -f ydbd-token-file --ca-file ca.crt -s grpcs://`hostname -f`:2135 \ admin database /Root/testdb pools add ssd:1 echo $?В примере команды выше используются следующие параметры:
ydbd-token-file- имя файла ранее полученного токена аутентификации;2135- номер порта grpcs сервиса статических узлов;ca.crt- имя файла с сертификатом центра регистрации;/Root/testdb- полный путь к базе данных;ssd:1- имя пула хранения и количество выделяемых групп хранения.
-
Убедиться, что добавленные группы хранения отображаются на странице мониторинга кластера в YDB UI.
Вывод статических узлов из кластера YDB производится в соответствии с документированной процедурой декомиссии.
В случае повреждения и невозможности ремонта сервера, на котором работает статический узел кластера, необходимо разместить недоступный статический узел на новом сервере, содержащем аналогичное или большее количество и объем дисков.