Понижение роли или отключение исходного первичного кластера
После повышения роли кластер B выполняет роль основного. Процедура повышения роли приведена в статье Повышение роли вторичного кластера DR до первичного.
Если кроме повышенного кластера остался другой вторичный кластер, он по-прежнему указывает на кластер A. Сначала назначьте ему основным кластер B. Порядок приведен в разделе Смена назначенного основного кластера.
Если исходный кластер A снова начинает принимать запросы, на нем роль по-прежнему основная. Работают два независимых первичных кластера, и наборы данных расходятся. Описание расхождения приведено в статье Общие сведения.
Выберите один из двух вариантов:
-
понизьте роль кластера A и подключите его как вторичный к кластеру B
-
отключите на кластере A репликацию DR
|
Оба кластера должны работать на одной версии StarVault. Если во время аварии вы обновили кластер B, сначала обновите кластер A до той же версии. Иначе репликация на кластер A не выполняется. |
1. Смена назначенного основного кластера
Выполните этот раздел, если после повышения роли кластера B остался другой вторичный кластер и он все еще указывает на кластер A. Назначьте ему основным кластер B.
|
К основному кластеру можно подключить только один вторичный кластер. Если другого вторичного кластера нет, пропустите этот раздел и переходите к вариантам ниже. |
Для смены основного на обновляемом вторичном кластере нужен токен операций DR. Если пакетный токен не выпускали, сгенерируйте токен по частям ключа распечатывания. Порядок приведен в статье Генерация токена операций DR.
|
Смена назначенного основного очищает пользовательские данные в локальном хранилище Raft на обновляемом вторичном кластере. Затем начинается синхронизация с кластером B. |
1.1. Токен активации на кластере B
На новом основном кластере B сформируйте токен активации вторичного кластера. Сохраните его: он понадобится на обновляемом вторичном кластере.
С помощью веб-интерфейса
-
Запустите пользовательский интерфейс кластера B.
-
Перейдите в раздел Репликация и нажмите на панель Аварийное восстановление.
-
В разделе вторичных кластеров нажмите Добавить secondary.
-
В поле ID Secondary введите идентификатор обновляемого вторичного кластера, нажмите Сгенерировать токен и скопируйте токен.
С помощью CLI
starvault write sys/replication/dr/primary/secondary-token id="dr-secondary"
Key Value
--- -----
wrapping_token: eyJhbGciOiJFUzUxMiIsInR5cCI6IkpXVCJ9...
wrapping_accessor: uZ2ODJ0zBXZDMgXs34a1AXT1
wrapping_token_ttl: 30m
wrapping_token_creation_time: 2026-08-14 17:26:20.651075 +0300 MSK
wrapping_token_creation_path: sys/replication/dr/primary/secondary-token
Сохраните значение wrapping_token.
С помощью API
Вызовите конечную точку /sys/replication/dr/primary/secondary-token.
curl \
--header "X-Vault-Token: ..." \
--request POST \
--data '{"id": "dr-secondary"}' \
http://127.0.0.1:8200/v1/sys/replication/dr/primary/secondary-token
Сохраните значение wrap_info.token. Описание запроса см. в разделе Генерация токена активации вторичного кластера.
1.2. Назначение кластера B основным
Выполните шаги на вторичном кластере, который нужно обновить. Передайте токен операций DR и токен активации с кластера B.
С помощью веб-интерфейса
|
Если в конфигурации кластера не задан |
-
Запустите пользовательский интерфейс обновляемого вторичного кластера.
-
Перейдите в раздел Репликация и нажмите на панель Аварийное восстановление.
-
Нажмите Обновить primary.
-
В поле токена операций DR введите токен операций DR. Вставьте токен активации, скопированный с кластера B, и нажмите Обновить.
С помощью CLI
starvault write sys/replication/dr/secondary/update-primary \
dr_operation_token="<dr-operation-token>" \
token="<wrapping-token>"
WARNING! The following warnings were returned from Vault:
* Vault has successfully found secondary information; it may take a while to
perform setup tasks. Vault will be unavailable until these tasks and initial
sync complete.
С помощью API
|
Если в конфигурации кластера не задан |
curl \
--header "X-Vault-Token: ..." \
--request POST \
--data '{"dr_operation_token": "<dr-operation-token>", "token": "<wrapping-token>"}' \
http://127.0.0.1:8200/v1/sys/replication/dr/secondary/update-primary
Описание запроса см. в разделе Обновление основного кластера для вторичного.
Вторичный кластер на короткое время будет недоступен. Обслуживание возобновится после начальной синхронизации с кластером B.
2. Вариант 1. Понижение роли кластера A
Если исходный кластер A снова работает после повышения роли кластера B, его можно понизить до вторичного. В паре репликации DR только один основной кластер. Данные на кластере A устарели за время простоя. После понижения роли и подключения к кластеру B данные придут с текущего основного кластера.
Кластер A по-прежнему считает себя основным. Войдите в него корневым токеном.
После понижения роли кластер A не подключается к основному сам. Идентификатор кластера сохраняется, поэтому кластер может вернуться в ту же пару репликации без очистки локального хранилища. Очистка происходит на шаге смены назначенного основного.
|
Смена назначенного основного полностью очищает пользовательские данные в локальном хранилище Raft на кластере A. Затем начинается синхронизация с кластером B. |
2.1. Понижение роли
Выполните шаги на кластере A. После понижения кластер не пытается подключиться к основному, но сохраняет идентификатор кластера.
С помощью веб-интерфейса
-
Запустите пользовательский интерфейс кластера A.
-
Перейдите в раздел Репликация и нажмите на панель Аварийное восстановление.
-
Нажмите Понизить primary.
-
В окне подтверждения введите ключевое слово и нажмите Подтвердить.
Кластер A не пытается подключиться к основному серверу, но сохраняет информацию о своем идентификаторе кластера и может повторно подключиться к тому же набору репликации DR без очистки локального хранилища. Продолжите выполнение операции обновления основного сервера.
С помощью CLI
starvault write -f sys/replication/dr/primary/demote
WARNING! The following warnings were returned from StarVault:
* This cluster is being demoted to a replication secondary. Vault will be
unavailable for a brief period and will resume service shortly.
С помощью API
Вызовите конечную точку /sys/replication/dr/primary/demote.
curl \
--header "X-Vault-Token: ..." \
--request POST \
http://127.0.0.1:8200/v1/sys/replication/dr/primary/demote
Пример ответа
{
"request_id": "",
"lease_id": "",
"renewable": false,
"lease_duration": 0,
"data": null,
"wrap_info": null,
"warnings": [
"This cluster is being demoted to a replication secondary. Vault will be unavailable for a brief period and will resume service shortly."
],
"auth": null
}
+ Описание запроса см. в разделе Понижение роли основного кластера.
Кластер A не пытается подключиться к основному, но сохраняет идентификатор кластера. Дальше выпустите токен активации на кластере B, токен операций DR на кластере A и смените назначенный основной кластер.
2.2. Генерация токена операций DR на кластере A
Если пакетного токена нет, выпустите токен операций DR на кластере A. Процедура та же, что при повышении роли. Ключи — части ключа распечатывания исходного основного кластера. При автоматическом распечатывании используйте ключи восстановления. Каждую часть передает держатель соответствующего ключа.
С помощью веб-интерфейса
-
На кластере A откройте раздел Репликация и нажмите на панель Аварийное восстановление.
-
В блоке генерации токена операций нажмите Создать DR operation token.
-
В окне можно зашифровать токен ключом PGP. Выберите Сгенерировать токен операции.
-
Нажмите значок копирования и сохраните одноразовый пароль (OTP). Он понадобится, чтобы расшифровать токен.
-
Введите части ключа распечатывания. Каждую часть передает держатель соответствующего ключа.
-
После достижения порога отобразится закодированный токен. Если OTP еще на экране, он будет в выходных данных. Если OTP нет, возьмите значение из предыдущего шага. Нажмите значок Копировать, чтобы скопировать команду токена.
-
Выполните скопированную команду в терминале. Подставьте OTP.
starvault operator generate-root -dr-token \ -decode="Gx4fYAMjOGM0aXcgOiFFHHQaDBZkDwwgFws" \ -otp="h0wSwoA6vP6tnN4f9JEPUFJWzy"Пример вывода:s.h3tLyUB9ATToqzMPIF1IFwmrСохраните токен. Он понадобится, чтобы назначить кластер B основным.
С помощью CLI
-
На кластере A запустите генерацию токена.
starvault operator generate-root -dr-token -initПример вывода:A One-Time-Password has been generated for you and is shown in the OTP field. You will need this value to decode the resulting root token, so keep it safe. Nonce 829b8057-a486-cd02-6ce0-0a2c5d5ab0ce Started true Progress 0/3 Complete false OTP WEaATFbgIi01meg1AUGNNySFle OTP Length 24Сохраните OTP. Передайте
nonceкаждому держателю ключа распечатывания. -
Каждый держатель ключа передает свою часть.
starvault operator generate-root -dr-token \ -nonce=829b8057-a486-cd02-6ce0-0a2c5d5ab0ce \ <unseal-key> -
Когда передан порог частей, расшифруйте закодированный токен.
starvault operator generate-root -dr-token \ -decode="JGsAeTApUAQsIGJTAxAIYgobcRo9TCY3IwA" \ -otp="WEaATFbgIi01meg1AUGNNySFle"Пример вывода:s.a8do2ceIRbnuoSKN6Ts5uqOe
С помощью API
-
На кластере A запустите генерацию.
curl \ --header "X-Vault-Token: ..." \ --request POST \ http://127.0.0.1:8200/v1/sys/replication/dr/secondary/generate-operation-token/attemptСохраните
nonceиotp. -
Передавайте части ключа распечатывания, пока
completeне станетtrue. В каждом вызове указывайте один и тот жеnonce.curl \ --header "X-Vault-Token: ..." \ --request POST \ --data '{"key": "<unseal-key>", "nonce": "<nonce>"}' \ http://127.0.0.1:8200/v1/sys/replication/dr/secondary/generate-operation-token/update -
Расшифруйте
encoded_token.starvault operator generate-root -dr-token \ -decode="<encoded-token>" \ -otp="<otp>"Описание запросов см. в разделе Генерация токена операций DR.
2.3. Назначение кластера B основным
Выполните шаги на кластере A. Передайте токен операций DR и токен активации с кластера B.
С помощью веб-интерфейса
|
Если в конфигурации кластера не задан |
-
На кластере A откройте раздел Репликация и нажмите на панель Аварийное восстановление.
-
Нажмите Обновить primary.
-
Введите токен операций DR и токен активации вторичного кластера, затем нажмите Обновить.
С помощью CLI
starvault write sys/replication/dr/secondary/update-primary \
dr_operation_token="<dr-operation-token>" \
token="<wrapping-token>"
WARNING! The following warnings were returned from Vault:
* Vault has successfully found secondary information; it may take a while to
perform setup tasks. Vault will be unavailable until these tasks and initial
sync complete.
С помощью API
|
Если в конфигурации кластера не задан |
-
Создайте полезную нагрузку.
$ tee payload.json <<EOF { "dr_operation_token": "<dr-operation-token>", "token": "<wrapping-token>" } EOF -
Вызовите конечную точку
/sys/replication/dr/secondary/update-primary.curl \ --header "X-Vault-Token: ..." \ --request POST \ --data @payload.json \ http://127.0.0.1:8200/v1/sys/replication/dr/secondary/update-primaryОписание запроса см. в разделе Обновление основного кластера для вторичного.
Значение token — это wrapping_token, скопированный с кластера B.
Кластер A очищает локальное хранилище и подключается к кластеру B как вторичный. Кластер B реплицирует данные на кластер A.
Проверьте статус репликации. Описание запроса см. в разделе Проверка статуса DR.
Если нужно вернуть кластеру A роль основного, переходите к статье Возврат к исходной топологии.
3. Вариант 2. Отключение кластера A от DR
Когда кластер B стал новым основным, репликацию DR на исходном кластере A можно отключить, если кластер A снова принимает запросы.
В паре репликации DR только один основной кластер. Данные на кластере A устарели за время простоя.
В этом варианте кластер A полностью выходит из пары репликации DR. Возврат к исходной топологии для этого варианта не выполняется: кластер A больше не является вторичным.
|
Повторное включение репликации DR в роли основного меняет идентификатор кластера. Вторичные кластеры, которые подключались раньше, потребуют очистки хранилища, даже если подключались к этому кластеру прежде. При повторном включении в роли вторичного хранилище очищается в момент подключения к основному. |
Выполните шаги на кластере A.
С помощью веб-интерфейса
-
Запустите пользовательский интерфейс кластера A.
-
Выберите раздел Репликация и нажмите на панель Аварийное восстановление.
-
Нажмите Отключить DR репликацию.
-
В окне подтверждения введите
Disaster Recoveryи подтвердите отключение.
С помощью CLI
starvault write -f sys/replication/dr/primary/disable
WARNING! The following warnings were returned from StarVault:
* This cluster is having replication disabled. Vault will be unavailable for
a brief period and will resume service shortly.
С помощью API
Вызовите конечную точку /sys/replication/dr/primary/disable.
curl \
--header "X-Vault-Token: ..." \
--request POST \
http://127.0.0.1:8200/v1/sys/replication/dr/primary/disable
Пример ответа
{
"request_id": "92a5f57a-2f7b-11be-b9dd-0f028396fba8",
"lease_id": "",
"renewable": false,
"lease_duration": 0,
"data": null,
"wrap_info": null,
"warnings": [
"This cluster is having replication disabled. Vault will be unavailable for a brief period and will resume service shortly."
],
"auth": null
}
+ Описание запроса см. в разделе Отключение репликации DR на основном кластере.
Кластер A покидает пару репликации DR. Вторичный кластер больше не сможет к нему подключиться.