hostprofi.ru
Подобрать хостинг
Термин·буква R

Restic

краткое определение

Restic — быстрый инструмент резервного копирования с открытым исходным кодом. Шифрует бэкапы, дедуплицирует данные и поддерживает S3, Backblaze B2, SSH-хосты и локальные диски как бэкенды.

Restic — консольный инструмент резервного копирования на Go. Выделяется среди конкурентов: каждый бэкап шифруется AES-256, данные дедуплицируются на уровне содержимого (content-defined chunking), поддерживается большое число бэкенд-хранилищ. Идеален для offsite-бэкапов VPS.

Как работает

Restic разбивает файлы на переменные по размеру блоки (chunks) — примерно 1 МБ. Каждый чанк хешируется SHA-256. Если чанк уже существует в репозитории (из предыдущего бэкапа), он не загружается снова. Это обеспечивает инкрементальное хранение при полном бэкапе интерфейсе: каждый restic backup создаёт «снапшот» — полную логическую копию, но физически хранит только новые чанки.

Шифрование: restic шифрует данные и метаданные до записи в бэкенд. Ключи производятся из пароля через scrypt. Без пароля — нет доступа к данным даже для владельца бэкенда (S3-провайдер не видит содержимое).

Базовые команды: restic -r s3:s3.amazonaws.com/bucket-name init — создать репозиторий. restic -r s3:... backup /var/www /etc — создать снапшот. restic -r s3:... snapshots — список снапшотов. restic -r s3:... restore latest --target /restore — восстановить. restic -r s3:... forget --keep-daily 7 --keep-weekly 4 --prune — политика хранения.

История

Restic создан Александром Нойманном (Alexander Neumann) в 2014 году. Написан на Go — один из первых широко используемых Go-инструментов для администрирования. Версия 0.9 (2018) добавила поддержку AWS S3. Версия 0.16 (2023) принесла значительные улучшения производительности. BorgBackup (2015) — схожий инструмент с лучшим сжатием, но только для SSH-бэкендов.

Restic: продвинутые сценарии

Restic snapshots позволяют восстановить файловую систему на любой момент времени из истории бэкапов. restic snapshots показывает все снимки с временными метками. restic restore --target /restore/ восстанавливает конкретный снапшот. restic mount /mnt/restic & позволяет работать с бэкапами как с файловой системой (через FUSE).

Дедупликация: Restic разбивает файлы на chunks с переменным размером (content-defined chunking, CDC). Одинаковые chunks между разными файлами и снапшотами хранятся один раз. Типичное сжатие на серверных данных: первый бэкап — 100%, ежедневные инкременты — 1-5% от изменений. Шифрование: AES-256 + Poly1305-AES — все данные в репозитории зашифрованы, включая метаданные. Ключ выводится из пароля через PBKDF2 с 10 000 итераций.

На что обращать внимание

Restic не сжимает данные по умолчанию (только дедуплицирует) — для медиафайлов экономии нет, для текстовых данных лучше использовать --compression max (добавлено в 0.14). Репозиторий Restic нельзя читать без restic CLI — это не просто директория с файлами. Для MySQL/PostgreSQL лучше создавать дамп через mysqldump/pg_dump, а потом бэкапить дамп через Restic — горячий бэкап файлов базы ненадёжен.

Restic в production

Restic — современный инструмент бэкапа на Go: шифрование (AES-256), дедупликация, атомарные операции. Установка на Linux: apt install restic или скачать бинарник. Инициализация: restic init --repo s3:s3.amazonaws.com/bucket-name. Бэкап: restic backup /var/www /etc. Добавьте в crontab: ежедневный бэкап на VPS. Восстановление: restic restore latest --target /tmp/restore. Ротация: restic forget --keep-daily 7 --keep-weekly 4 --prune. Off-site: поддерживает S3, SFTP, rclone, Backblaze B2. Шифрование паролем — пароль не теряйте: без него бэкап расшифровать невозможно.

Другие термины