Восстановление из снимка используется, когда нужно вернуть состояние Stronghold из ранее сохранённой резервной копии.
Перед началом
- Верните кластер в рабочее состояние после инцидента: подготовьте новое хранилище и получите временный root-токен после инициализации.
- Убедитесь, что восстанавливаемый кластер использует интегрированное Raft-хранилище как основной storage backend.
- Скопируйте файл снимка на узел, с которого будет выполняться восстановление.
- Убедитесь, что у вас есть исходные unseal- или recovery-ключи. После восстановления понадобятся именно они, а не только новые ключи, выданные при реинициализации.
Восстановление из снимка доступно только для снимков интегрированного Raft-хранилища. Если Stronghold работает поверх etcd, postgresql или другого внешнего backend, нужно использовать процедуру восстановления самого хранилища.
Восстановление через CLI
Для восстановления снимка используйте команду с флагом -force:
d8 stronghold operator raft snapshot restore -force /tmp/snapshots/backup.snapФлаг -force нужен потому, что текущее состояние кластера и данные снимка относятся к разным состояниям хранилища.
Восстановление через API
Для восстановления через API используйте endpoint POST /sys/storage/raft/snapshot-force:
curl \
--request POST \
--header "X-Vault-Token: ${VAULT_TOKEN}" \
--data-binary @/tmp/snapshots/backup.snap \
"${VAULT_ADDR}/v1/sys/storage/raft/snapshot-force"После восстановления
После загрузки снимка необходимо выполнить процедуру распечатывания Stronghold с использованием исходных ключей:
d8 stronghold operator unsealПрактические рекомендации
- Проверяйте процесс восстановления на тестовом контуре, а не только создание снимка.
- Зафиксируйте, где хранятся резервные копии и кто отвечает за доступ к ключам.
- Если у вас несколько контуров или схем репликации, продумайте порядок восстановления для каждого из них отдельно.