Перемещение State Storage

Важно

Данная статья описывает работу с кластерами YDB, использующими конфигурацию V1. Конфигурация V1 является основным способом конфигурирования кластеров под управлением YDB версии ниже v25.1. Начиная с версии v25.1, YDB поддерживает конфигурацию V2, которая является рекомендуемым способом конфигурирования для кластеров YDB версии v25.1 и выше. Для кластеров, использующих конфигурацию V2, данная инструкция не применима.

Если ваш кластер уже обновлён до версии v25.1 или выше, но ещё использует конфигурацию V1, рекомендуется запланировать миграцию на конфигурацию V2, так как поддержка конфигурации V1 будет прекращена в будущих версиях YDB.

Если нужно вывести из эксплуатации хост кластера YDB, на котором располагается часть State Storage, необходимо переместить её на другой хост.

Важно

Неправильная последовательность действий или ошибка в конфигурации могут привести к недоступности кластера YDB.

В качестве примера рассмотрим кластер YDB со следующей конфигурацией State Storage:

...
domains_config:
  ...
  state_storage:
  - ring:
      node: [1, 2, 3, 4, 5, 6, 7, 8, 9]
      nto_select: 9
    ssid: 1
  ...
...

На хосте с node_id:1 сконфигурирован и запущен статический узел кластера, который обслуживает часть State Storage. Предположим, нам нужно вывести из эксплуатации этот хост.

Для замены node_id:1 мы добавили в кластер новый хост с node_id:10 и развернули на нём статический узел.

Чтобы переместить State Storage с хоста node_id:1 на node_id:10:

  1. Остановите статические узлы кластера на хостах с node_id:1 и node_id:10.

    Примечание

    Кластер YDB является отказоустойчивым. Временное выключение узла не приводит к недоступности кластера. Подробнее см. Топология кластера YDB.

  2. В конфигурационном файле config.yaml измените список хостов node, заменив идентификатор удаляемого хоста на идентификатор добавляемого:

    domains_config:
    ...
      state_storage:
      - ring:
          node: [2, 3, 4, 5, 6, 7, 8, 9, 10]
          nto_select: 9
        ssid: 1
    ...
    
  3. Обновите конфигурационные файлы config.yaml для всех узлов кластера, в том числе и динамических.

  4. С помощью процедуры rolling-restart перезапустите все узлы кластера, включая динамические, кроме статических узлов на хостах с node_id:1 и node_id:10. Обратите внимание, что между рестартом хостов необходима задержка как минимум в 15 секунд.

  5. Запустите статические узлы кластера на хостах node_id:1 и node_id:10.