Найти в Дзене

Vykar: бэкап быстрее Borg и Restic - с GUI из коробки

Rust-инструмент от команды BorgBase. Шифрование, дедупликация и планировщик без cron.
Если вы уже настроили Borg или Restic и всё работает - Vykar не повод всё бросить и мигрировать. Во-первых, он несовместим с существующими репозиториями: ни Borg-, ни Restic-архивы он не читает, формат собственный. Во-вторых, разработчики сами предупреждают: не использовать для основных бэкапов пока. Это честно
Оглавление

Быстрый бэкап
Быстрый бэкап

Rust-инструмент от команды BorgBase. Шифрование, дедупликация и планировщик без cron.

Кому это нужно - и кому пока нет

Если вы уже настроили Borg или Restic и всё работает - Vykar не повод всё бросить и мигрировать. Во-первых, он несовместим с существующими репозиториями: ни Borg-, ни Restic-архивы он не читает, формат собственный. Во-вторых, разработчики сами предупреждают: не использовать для основных бэкапов пока. Это честно и это важно.

Vykar интересен тем, кто только выстраивает систему резервного копирования, хочет попробовать что-то быстрее текущего решения, или устал настраивать Borg + Vorta как два отдельных проекта с разными циклами обновлений. Ещё один сценарий - параллельное тестирование рядом с основным инструментом, благо установка занимает одну команду.

Что внутри

Vykar написан на Rust командой BorgBase - той самой, что почти десять лет хостит репозитории Borg и Restic. Лицензия GPL-3.0, исходники открыты.

Конфигурация вся живёт в одном vykar.yaml. Там задаются репозитории, исходные каталоги, параметры шифрования и политика хранения снимков. Никаких флагов в командной строке на каждый запуск - один файл, который можно положить в git и версионировать.

Шифрование выбирается автоматически: AES-256-GCM или ChaCha20-Poly1305 в зависимости от железа. Ключ выводится через Argon2id. Дедупликация работает через FastCDC - алгоритм разбивает файлы на куски переменного размера, что даёт лучшее переиспользование блоков при изменении файлов. Сжатие - LZ4 или Zstandard на выбор.

Планировщик встроен: vykar daemon запускает бэкапы по расписанию без cron. Интервал, джиттер, поведение при старте системы - всё в том же YAML.

Поддерживаемые хранилища: локальная файловая система, S3-совместимые провайдеры (любые), SFTP и собственный REST-сервер. Несколько машин могут одновременно писать в один репозиторий - сериализуется только финальная фаза коммита.

GUI как часть проекта, а не как костыль

Это, пожалуй, самое нетривиальное решение в Vykar. Borg существует без официального графического интерфейса - Vorta написан сообществом и живёт отдельно. У Restic есть Backrest, тоже сторонний. Оба хороши, но синхронизация версий между основным инструментом и GUI-обёрткой - отдельная головная боль.

vykar-gui - это компонент самого проекта, написанный на Slint. Он читает vykar.yaml напрямую, использует ту же библиотеку vykar-core, что и CLI, и не вызывает внешние процессы. Запускать бэкап по требованию, листать снимки, восстанавливать файлы, сидеть в системном трее и делать бэкапы в фоне - всё это без командной строки.

Дополнительно есть встроенный WebDAV-сервер: монтируешь снимок как сетевую папку и копируешь нужные файлы. Удобно для разового восстановления без разворачивания всего архива.

Производительность: цифры с оговоркой

Команда Vykar опубликовала бенчмарки на наборе данных 49 ГиБ / 367 000 файлов. Тестовый стенд - Intel i7-6700 @ 3.40 ГГц, два NVMe Samsung PM981.

Время резервного копирования: Vykar - 61 секунда, Kopia - 85, Restic - 138, Borg - 268, Rustic - 313. Время восстановления: Vykar - 69 секунд, Rustic - 82, Restic - 130, Kopia - 132, Borg - 225.

Сразу скажем очевидное: бенчмарки делала та же команда, что пишет Vykar. Независимой проверки нет. Методология открыта - скрипты лежат в репозитории, воспроизвести можно самостоятельно. Но принимать цифры как истину в последней инстанции не стоит.

Размеры репозиториев у всех пяти инструментов получились от 19,7 до 19,9 ГБ при одинаковых настройках Zstandard - дедупликация работает примерно одинаково эффективно.

Раздражающий минус: память

Vykar потребляет 623 МБ оперативной памяти во время бэкапа. Borg при тех же условиях - 236 МБ, Restic - 327 МБ. Это не баг, это архитектурное решение: многоуровневый индекс дедупликации и сборка пакетов через mmap дают скорость за счёт памяти.

На современном десктопе или сервере с 16+ ГБ это незаметно. На Raspberry Pi, старом NAS или машине с 4 ГБ RAM - уже вопрос. Если железо ограничено по памяти, Borg выглядит разумнее.

Установка и первые шаги

Установка одной командой:

curl -fsSL https://vykar.borgbase.com/install.sh | sh

Эта строка скачивает и запускает установочный скрипт с сайта разработчика. Если хочется проверить содержимое перед запуском - бинарники для Linux (x86_64 и aarch64, glibc и musl), macOS (Apple Silicon) и Windows доступны отдельно на странице релизов GitHub.

После установки три команды, чтобы сделать первый бэкап:

vykar config - генерирует стартовый vykar.yaml, который нужно отредактировать под свои пути и хранилище.

vykar init - инициализирует репозиторий по заданным параметрам.

vykar backup - запускает первое резервное копирование.

vykar list - показывает список снимков.

Полная документация с описанием бэкендов хранения, восстановления и обслуживания репозитория - на сайте проекта.

Стоит ли смотреть прямо сейчас

Vykar - не замена Borg или Restic для тех, кто уже на них сидит. Несовместимость форматов делает миграцию болезненной, а статус «не для продакшна» - честное предупреждение, а не маркетинговая скромность.

Но как инструмент для параллельного тестирования или для тех, кто только строит систему бэкапов - интересно. Скорость по бенчмаркам убедительная, встроенный GUI решает реальную проблему, YAML-конфигурация чище, чем флаги в командной строке. Команда BorgBase знает, что делает - за ними почти десять лет в этой нише.

За проектом стоит следить. Через год-два, когда уберут предупреждение про продакшн, разговор будет другим.

А пока вопрос к тем, кто пользуется Borg или Restic: что в них раздражает больше всего - сложность первоначальной настройки, отсутствие нормального GUI или что-то ещё?

Источник: Vykar на GitHub

🔔 Если интересны такие разборы - подписывайтесь на КликХак. Здесь не пересказывают пресс-релизы, а разбирают инструменты, которые реально стоит знать.