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