Обложка канала

ServerAdmin.ru

12437 @srv_admin

Авторская информация о системном администрировании.

ServerAdmin.ru

4 года назад
Открыть в
​​Давно не было публикаций на тему инструментов для бэкапа. Одно время я очень много их описал. Практически всё полезное и популярное. Их можно найти по тэгу #backup или почитать подборку на сайте. Правда, там не всё, так как были новые обзоры после выхода статьи. В поле моего зрения попала полезная консольная утилита restic, решил её посмотреть и поделиться информацией с вами, так как она показалась мне заслуживающей внимание. В первую очередь это open source проект и весьма популярный: https://github.com/restic/restic. Для установки достаточно скачать бинарник из репозитория. Он написан на Go. На каких-то системах, например Debian, он есть в базовых репах. Основные возможности: - все данные шифруются AES256, сам ключ шифруется паролем; - нет деления на типы бэкапов: полные, инкрементные, дифференциальные, вместо этого используются снепшоты, соответственно работает дедупликация; - различные хранилища для архивируемых данных: локальная директория, sftp, S3, HTTP REST server, OpenStack Swift, BackBlaze B2, Microsoft Azure Blob Storage, Google Cloud Storage; - помимо прямого подключения к хранилищам, есть поддержка rclone; - встроенная проверка целостности данных. Restic режет данные на блоки настраиваемой длины, блоки собираются в паки. Паки хранят в себе файлы и метаданные, либо ссылки на другие блоки. Всё это выстраивается в деревья. Таким образом работают снепшоты и экономится место под бэкапы. Покажу пример, как с помощью restic делаются бэкапы. Сначала инициализируется локальный репозиторий: restic init -r /mnt/backup В этот момент будет сгенерирован ключ для шифрования и создана структура каталогов репозитория. Пример для инициализации репозитория по sftp: restic init -r sftp:user@host:/mnt/backup Бэкапим: restic -r sftp:user@host:/mnt/backup backup /data Смотрим список внепшотов в репозитории: restic -r sftp:user@host:/mnt/backup snaphots Смотрим список файлов в снепшоте: restic -r sftp:user@host:/mnt/backup ls -l latest Восстанавливаем файлы: restic -r sftp:user@host:/mnt/backup restore latest \ --target=/restore/ Для всех операций поддерживаются списки include или exclude. Есть команды для быстрого сравнения снепшотов. Думаю, вы получили представление, как всё это работает. Утилита консольная и хорошо подойдёт для скриптов. Авторы говорят, что Restic очень быстро работает. Я тестов не проводил. Из неудобств отметил то, что Restic надо ставить на сам хост, где лежат данные. Из документации я не понял, как с одного сервера с Restic забирать данные по ssh с других серверов. Мне Restic сильно напомнил Borg. Подозреваю, что проблемы у него будут те же. Например, как будет выглядеть листинг снепшота, где хранится 500 тысяч файлов? Но в целом выглядит интересно. Основная фишка - снепшоты и дедупликация из коробки и бесплатно. Есть хорошая документация с практическими примерами. Сайт - https://restic.net/ Исходники - https://github.com/restic/restic Документация - https://restic.readthedocs.io/en/latest/ #backup