Миграция на конфигурацию V1
Данный документ содержит инструкцию по миграции с конфигурации V2 на конфигурацию V1.
Примечание
Данная инструкция предназначена для аварийных ситуаций, когда после перехода на конфигурацию V2 возникли непредвиденные проблемы и требуется откат на конфигурацию V1, например, для последующего отката на версию YDB ниже v25-1. В штатном режиме работы эта процедура не требуется.
Исходное состояние
Миграция на конфигурацию V1 возможна только в том случае, если в кластере используется конфигурация V2. Это может быть достигнуто:
- в результате миграции на конфигурацию V2;
- при первоначальном развёртывании кластера.
Узнать текущую версию конфигурации на узлах можно несколькими способами, описанными в статье Проверка версии конфигурации. Перед началом миграции убедитесь, что кластер работает на конфигурации V2.
Инструкция по миграции на конфигурацию V1
Для того чтобы перевести кластер YDB на конфигурацию V1, необходимо проделать следующие шаги:
-
Получить текущую конфигурацию кластера с помощью команды ydb admin cluster config fetch:
ydb -e grpc://<node.ydb.tech>:2135 admin cluster config fetch --for-v1-migration > config.yamlПодробнее
Аргумент
--for-v1-migrationуказывает, что будет получена полная конфигурация кластера, включая параметры настройки State Storage и статической группы. -
Изменить конфигурационный файл
config.yaml, поменяв значение параметраself_management_config.enabledсtrueнаfalse:self_management_config: enabled: falseПодробнее
Данная секция отвечает за управление механизмом распределённой конфигурации. Установка значения
enabled: falseотключает этот механизм. Далее управление конфигурацией State Storage и статической группы будет осуществляться вручную через секцииdomains_configиblob_storage_configсоответственно в конфигурационном файле (эти секции были получены на предыдущем шаге при использовании флага--full). -
Загрузить обновлённый конфигурационный файл в кластер с помощью ydb admin cluster config replace:
ydb -e grpc://<node.ydb.tech>:2135 admin cluster config replace -f config.yaml -
Перезапустить все узлы кластера с помощью процедуры rolling-restart.
Подробнее
После перезапуска узлов кластер будет переведён в режим ручного управления State Storage и статической группой, но всё ещё будет использовать единый конфигурационный файл, доставляемый через таблетку BSController. Конфигурация узлов при запуске всё ещё будет читаться из директории, указанной в опции
ydbd --config-dir, и там же сохраняться. -
Получить текущую конфигурацию кластера с помощью
ydb admin cluster config fetch:ydb -e grpc://<node.ydb.tech>:2135 admin cluster config fetch > config.yamlПодробнее
В полученной конфигурации будут отсутствовать секции
domains_configиblob_storage_config, так как они управляются вручную и не должны быть частью динамической конфигурации. -
Разместить полученный файл
config.yaml(это будет ваша статическая конфигурация V1) в файловую систему каждого узла кластера. -
Перезапустить все узлы кластера с помощью процедуры rolling-restart, указав путь к статическому конфигурационному файлу через опцию
ydbd --yaml-configи убрав опциюydbd --config-dir:ВручнуюС использованием systemdПри ручном запуске добавьте опцию
--yaml-configк командеydbd server, не указывая опцию--config-dir:ydbd server --yaml-config /opt/ydb/cfg/config.yamlПри использовании systemd добавьте опцию
--yaml-configк командеydbd serverв конфигурационный файл systemd, а также удалите опцию--config-dir:ExecStart=/opt/ydb/bin/ydbd server --yaml-config /opt/ydb/config/config.yamlПосле обновления файла systemd выполните следующую команду, чтобы применить изменения:
sudo systemctl daemon-reload
Убедиться в успешном завершении миграции можно, проверив версию конфигурации на узлах кластера одним из способов, описанных в статье Проверка версии конфигурации. На всех узлах кластера должна использоваться конфигурация v1.
Результат
В результате проделанных действий кластер будет переведён в режим конфигурации V1. Конфигурация состоит из двух частей: статической и динамической, управление статической группой и State Storage осуществляется вручную.