ru
Restic backup в офшорном S3 хранилище
Restic - современный open-source инструмент для бэкапов на Go с шифрованием AES-256 на стороне клиента, дедупликацией на уровне content-defined chunks, snapshots для point-in-time recovery, и поддержкой backends - S3, B2, GCS, Azure, SFTP, REST server, локальный диск. На офшорном VPS Anubiz Host вы поднимаете MinIO как S3 endpoint и пишете туда инкрементальные бэкапы с любого числа источников.
Need this done for your project?
We implement, you ship. Async, documented, done in days.
Как работает Restic под капотом
Restic делит файлы на chunks через rolling hash CDC алгоритм, хеширует каждый chunk через SHA-256, сохраняет уникальные chunks один раз. Изменения в файле создают только новые chunks для изменённых участков - остальное переиспользуется. Это даёт огромную экономию места при ежедневных бэкапах больших баз данных или mailbox - реальный delta обычно 1-3% при изменении 10-20% контента. Все chunks шифруются ключом, который генерируется при инициализации репозитория. Ключ выводится из вашего пароля через scrypt KDF. Без пароля данные нечитаемы даже если злоумышленник получил доступ к S3 хранилищу. Snapshots - это метаданные, описывающие состояние файловой системы в момент времени. Восстановление - чтение nужных chunks по snapshot tree.
Бэкап с production серверов на офшор
Сценарий - в России production сервер с базой PostgreSQL и WordPress uploads. На офшорном VPS Anubiz Host развёрнут MinIO S3 endpoint с 500 GB диска. С production сервера через cron каждую ночь запускается restic backup с шифрованием через свой пароль. Полный первоначальный бэкап 50 GB занимает 3-4 часа через 100 Mbps канал. Последующие incremental по 200-500 MB занимают 5-10 минут. Через 30 дней в S3 примерно 80 GB сжатых дедуплицированных данных, представляющих 30 snapshots. Восстановление одной таблицы PostgreSQL занимает минуты - restic restore читает только нужные chunks. Disaster recovery полный - 50 GB - 2-3 часа на чистый сервер.
Сценарии и автоматизация
Типичная автоматизация Restic - systemd timer или cron, который вызывает restic backup с списком директорий, потом restic forget с retention policy типа keep-daily 7 keep-weekly 4 keep-monthly 12. Для PostgreSQL правильная цепочка - pg_dump в pipe в restic backup --stdin-filename, чтобы получить транзакционно-консистентный снапшот. Для mailbox - rsync в tmp, потом restic backup на tmp. Логи отправлять в healthchecks.io или в свой Uptime Kuma, чтобы получать алерты если бэкап не отработал. На офшорном VPS дополнительно поднимаем restic-server в REST режиме для прямого доступа без MinIO overhead, или продолжаем использовать MinIO как универсальный S3 endpoint для интеграции с другими инструментами.
Related Services
Why Anubiz Host
100% async — no calls, no meetings
Delivered in days, not weeks
Full documentation included
Production-grade from day one
Security-first approach
Post-delivery support included
Ready to get started?
Skip the research. Tell us what you need, and we'll scope it, implement it, and hand it back — fully documented and production-ready.