VK WorkSpace On-Premise logo
Помощь
Обновлена 29 октября 2026 г. в 21:31

Резервное копирование и восстановление конфигурации

Назначение документа

В документе описаны механизмы резервного копирования и восстановления конфигурации Почты VK WorkSpace:

  • файлы установщика (.yaml для конфигурирования установки);
  • секреты Vault;
  • кластеры mailetcd и infraetcd.

Файлы установщика

В установщике есть механизм сохранения и восстановления ряда .yaml-файлов, задающих конфигурацию установки. Управление механизмом выполняется на странице Обслуживание → Бэкап (Восстановление системы).

Страница «Обслуживание → Бэкап (Восстановление системы)»

Пошаговая инструкция по работе с механизмом приведена в разделе Как восстановить систему через установщик.

Как устроен механизм сохранения

Механизм сохранения состоит из следующих ключевых компонентов:

  1. Слот сохранения — отдельная директория, в которую сохраняется архив из выбранных файлов.
  2. Файлы, доступные для сохранения — перечень таких файлов задается кодом установщика.

При сохранении выбранные файлы архивируются в выбранный слот.

Алгоритм бэкапа

  1. Создайте слот: Сохранить текущее состояние → Выберите слот. Откроется список доступных слотов; новый слот можно добавить здесь же.

    Выбор слота
  2. Выберите желаемый слот для сохранения.

  3. Выберите файлы, которые хотите сохранить в этот слот.

    Выбор файлов
  4. Нажмите кнопку Сохранить. Ход сохранения отображается в прогресс-баре.

    Сохранение
  5. После успешного сохранения слот появится в таблице. В ней указаны дата создания, название слота, количество файлов в бэкапе и его размер.

    Таблица слотов

  6. При наведении курсора на кнопку просмотра отображается подробная информация о сохраненном архиве.

    Подробная информация о слоте

Восстановление

Чтобы восстановить конфигурацию, нажмите кнопку загрузки — запустится процесс замены старых файлов на новые.

Кнопка восстановления

При каждой загрузке с такого восстановления делается полный бэкап файлов (тот же список, что и можно сохранить) с суффиксом autosave.

Уведомление о восстановлении

При успешном восстановлении будет уведомление, а также информация о том, что нужно перезапустить установщик для применения данных: большинство .yaml не подхватываются автоматически.

Vault

Vault — хранилище секретов, в котором с релиза 26.3 хранятся секреты из main.yaml. В разделе приведены команды для сохранения полного снимка хранилища и для выгрузки паролей и секретов.

Создание полного бэкапа

  1. Получите root-токен:

    cat /home/deployer/main.yaml | grep rootToken | awk '{print $2}' | base64 -d
  2. С полученным root-токеном войдите в Vault:

    vault login "rootToken"
  3. Сделайте бэкап ключей и значений:

    vault operator raft snapshot save <file_name_to_backup>
  4. Проверьте состояние бэкапа:

    vault operator raft snapshot inspect <file_name_to_backup>
  5. Восстановите:

    vault operator raft snapshot restore -force <file_name_to_backup>
  6. Если команда vault status возвращает Sealed: true, Vault нужно снять с пломбы (unseal) старыми ключами (если сохранены в установщике, то лежат в /home/deployer/.secStoreKeys.yaml):

    vault operator unseal <unseal_key>

Создание бэкапа паролей и секретов

Повторите шаги 1–2 из предыдущего раздела. Установите jq на сервер, с которого будет выполняться команда.

  1. Получите дамп всех значений. Команда выгружает все записанные секреты по пути deployer/secret/data/deployer/secret:

    docker exec -i vault1 vault kv get -format=json deployer/secret/data/deployer/secret | jq '.data.data' > <file_name_to_keys_backup>.json
  2. Скопируйте полученный дамп в контейнер Vault:

    docker cp <file_name_to_keys_backup>.json vault{i}:/<path_to_save>.json
  3. Примените дамп ключей в хранилище:

    docker exec -i vault1 vault kv put deployer/secret/data/deployer/secret @<path_to_save>.json

mailetcd и infraetcd

В разделе приведены команды для создания снимков кластеров mailetcd и infraetcd и восстановления из этих снимков.

Бэкап

  1. Создайте бэкап mailetcd2:

    docker exec mailetcd2 etcdctl snapshot save /dumps/mailetcd2-$(date +%Y%m%d-%H%M%S).db \  --endpoints=http://mailetcd2.qdit:2379 \  --command-timeout=30s
  2. Создайте бэкап infraetcd2:

    docker exec infraetcd2 etcdctl snapshot save /dumps/infraetcd2-$(date +%Y%m%d-%H%M%S).db \  --endpoints=http://100.70.178.96:2379 \  --command-timeout=30s
  3. По каждому снапшоту проверьте консистентность:

    docker exec infraetcd2 etcdctl snapshot status /dumps/infraetcd2-*.db \  --write-out=table
    docker exec mailetcd2 etcdctl snapshot status /dumps/mailetcd2-*.db \  --write-out=table

Восстановление

  1. Остановите сервис:

    systemctl stop onpremise-container-infraetcd2
  2. Переместите старые данные:

    mv /opt/mailOnPremise/dockerVolumes/infraetcd2/data/member /opt/mailOnPremise/dockerVolumes/infraetcd2.bak/data/member
  3. Восстановите из снапшота:

    docker run --rm \  -v /opt/mailOnPremise/dockerVolumes/infraetcd2/dumps:/dumps \  -v /opt/mailOnPremise/dockerVolumes/infraetcd2/data:/etcd-data \  harbor.vkwm.ru/library/mntonpremise/onpremise-docker/mailetcd:v3.5.22 \  etcdctl snapshot restore /dumps/infraetcd2-20260820-121638.db \  --data-dir=/etcd-data \  --name=infraetcd2 \  --initial-cluster=infraetcd1=http://100.70.178.206:2380,infraetcd2=http://100.70.178.96:2380,infraetcd3=http://100.70.176.223:2380 \  --initial-advertise-peer-urls=http://100.70.178.96:2380
  4. Запустите сервис:

    systemctl start onpremise-container-infraetcd2
  5. Проверьте состояние:

    docker exec infraetcd2 etcdctl endpoint health --cluster=true -w table
    docker exec infraetcd2 etcdctl member list --cluster=true -w table
    docker exec infraetcd2 etcdctl endpoint status --cluster=true -w table
Была ли статья полезна?