Расширение кластера
Вы можете расширить кластер YDB, добавив новые узлы в конфигурацию кластера. Ниже приведены необходимые действия по расширению кластера YDB, установленного вручную на виртуальные машины или физические сервера. Расширение кластера в среде Kubernetes осуществляется путём корректировки настроек контроллера YDB для Kubernetes.
Расширение кластера YDB не требует приостановки доступа пользователей к базам данных. При расширении кластера выполняется перезапуск его компонент для применения изменений в конфигурации, что, в свою очередь, может привести к необходимости повтора выполняемых на кластере транзакций. Повторы транзакций выполняются автоматически за счет использования приложениями возможностей SDK YDB по контролю ошибок и повтору операций.
Подготовка новых серверов
В случае размещения новых статических или динамических узлов кластера на новых серверах, не входивших ранее в состав расширяемого кластера YDB, на каждом новом сервере необходимо выполнить установку программного обеспечения YDB в соответствии с процедурами, описанными в инструкции по развертыванию кластеров. В частности, необходимо:
- создать учетную запись и группу в операционной системе для работы сервиса YDB;
- установить программное обеспечение YDB;
- подготовить и разместить на сервере соответствующий ему ключ и сертификат TLS;
- скопировать на сервер актуальный конфигурационный файл кластера YDB.
Используемые на новых серверах сертификаты TLS должны соответствовать требованиям к заполнению полей, и быть подписаны доверенным центром регистрации, используемым на уже существующих серверах расширяемого кластера YDB.
Добавление динамических узлов
Добавление динамических узлов позволяет увеличить доступные вычислительные ресурсы (процессорные ядра и оперативную память) для выполнения пользовательских запросов кластером YDB.
Для добавления динамического узла в кластер достаточно запустить процесс, обслуживающий этот узел, передав ему в параметрах командной строки путь к конфигурационному файлу кластера, имя обслуживаемой базы данных и адреса любых трех статических узлов кластера кластера YDB, как показано в инструкции по развертыванию кластеров.
После успешного добавления динамического узла в кластер информация о нем будет доступна на странице мониторинга кластера в YDB UI.
Для вывода динамического узла из кластера достаточно выполнить остановку процесса динамического узла.
Добавление статических узлов
Добавление статических узлов позволяет увеличить пропускную способность при выполнении операций ввода-вывода и увеличить доступную ёмкость для хранения данных в кластере YDB.
Для добавления статических узлов в кластер необходимо выполнить следующую последовательность действий:
-
Отформатировать диски, которые будут использоваться для хранения данных YDB, с использованием процедуры, описанной для этапа развертывания кластера.
-
Скорректировать конфигурационный файл кластера, лежащий на нодах:
- включить в конфигурацию описание добавляемых узлов (в секции
hosts) и используемых на них дисков (в секцииhost_configs); - установить номер изменения конфигурации в виде параметра
storage_config_generation: Kна верхнем уровне, гдеK- целое число, номер изменения (при первоначальной установке значениеK=0или не указано, при первом расширении кластераK=1, при второмK=2, и так далее).
- включить в конфигурацию описание добавляемых узлов (в секции
-
Скопировать доработанный конфигурационный файл кластера на все существующие и на все добавляемые сервера кластера, заместив им старую версию конфигурационного файла.
-
Выполнить последовательный перезапуск всех существующих статических узлов кластера, с ожиданием инициализации и восстановления работы каждого перезапускаемого узла.
-
Выполнить последовательный перезапуск всех существующих динамических узлов кластера.
-
Запустить процессы, обслуживающие новые статические узлы кластера, на соответствующих серверах.
-
Убедиться в том, что новые статические узлы отображаются на странице мониторинга кластера в YDB UI.
-
Получить токен аутентификации для выполнения административных команд с помощью 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 использовать диски на новых статических узлах для хранения данных, выполнив следующую команду на любом из узлов кластера:
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 blobstorage config init --yaml-file /opt/ydb/cfg/config.yaml echo $?В примере команды выше используются следующие параметры:
ydbd-token-file- имя файла ранее полученного токена аутентификации;2135- номер порта grpcs сервиса статических узлов;ca.crt- имя файла с сертификатом центра регистрации.
Если при выполнении приведённой выше команды возвращается ошибка сверки номера конфигурации, это означает, что при корректировке конфигурационного файла кластера было неверно установлено поле
storage_config_generation. Текст ошибки содержит ожидаемое значение номера конфигурации, которое можно использовать для корректировки файла настроек кластера. Пример сообщения об ошибке сверки номера конфигурации:ErrorDescription: "ItemConfigGeneration mismatch ItemConfigGenerationProvided# 0 ItemConfigGenerationExpected# 1" -
Добавить дополнительные группы хранения в одну или несколько баз данных, выполнив команды следующего вида на любом из узлов кластера:
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 производится в соответствии с документированной процедурой декомиссии.
В случае повреждения и невозможности ремонта сервера, на котором работает статический узел кластера, необходимо разместить недоступный статический узел на новом сервере, содержащем аналогичное или большее количество и объем дисков.