Миграция на конфигурацию 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 осуществляется вручную.