annalium.e1.4gain.pro (10.19.1.13), /mnt/storage/firefly-backup/<service>/. Это хранилка direct-attached storage (22 TB raw, 13 TB free).10.19.1.13:22), не через mesh — annalium и firefly в одной локальной сети, ~7ms latency, выше пропуск, не нагружает mirkwood.find -mtime +30 -delete); локально на firefly зависит от сервиса.pigz -1 (multi-thread), иначе gzip -1.... > target.partial && mv target.partial target — чтобы недогруженный файл не выглядел как валидный backup.| Сервис | Playbook | Schedule | Restore-runbook |
|---|---|---|---|
service-mail-backup.yml |
daily 03:00 MSK | backup-restore-mail | |
| gitlab | service-gitlab-backup.yml |
weekly Sun 04:00 MSK | backup-restore-gitlab |
См. подробные runbook'и для backup-процедуры (manual run, проверка) и restore-сценариев (полный, partial, на новый хост).
# Запустить backup сразу после раскатки:
-e sm2c_backup_<service>_run_now=true
# Disable + stop timer (но script остаётся):
-e sm2c_backup_<service>_disable=true
/mnt/storage/firefly-backup/
├── mail/
│ ├── mail-2026-05-01-0300.tar.gz
│ ├── mail-2026-05-02-0300.tar.gz
│ └── ...
└── gitlab/
├── 1714543200_2026_05_03_14.2.7-ee_gitlab_backup.tar
├── 1714543200_2026_05_03_14.2.7-ee_config.tar.gz ← gitlab.rb + gitlab-secrets.json
└── ...
Сделать новый service-<name>-backup.yml по образцу service-mail-backup.yml:
tar | ssh 'cat > tmp && mv tmp final' если data большой и /var/tmp не помещает.gitlab-backup create): docker exec.tar.gz важных файлов (config, secrets, encryption keys)./root/.ssh/id_rsa на firefly даёт доступ root@10.19.1.13. BatchMode=yes в скриптах — не интерактивно, fail-fast если ключ не подходит.
/dev/mapper/cs-root 70G/69G/1.8G). Нельзя использовать /var/tmp для tar-архивов >100MB. Для mail ~5GB streaming обязателен.Changelog