Доступна система резервного копирования restic 0.15

Опубликован выпуск системы резервного копирования restic 0.15, обеспечивающей хранение резервных копий в зашифрованном виде в версионированном репозитории. Система изначально рассчитана на то, что резервные копии сохраняются в окружениях не заслуживающих доверия, и попадание резервной копии в чужие руки не должно скомпрометировать систему. Возможно определение гибких правил для включения и исключения файлов и каталогов при создании резервной копии (формат правил напоминает rsync или gitignore). Поддерживается работа в Linux, macOS, Windows, FreeBSD и OpenBSD. Код проекта написан на языке Go и распространяется под лицензией BSD.

Резервные копии могут храниться в локальной ФС, на внешнем сервере с доступом по SFTP/SSH или HTTP REST, в облаках Amazon S3, OpenStack Swift, BackBlaze B2, Microsoft Azure Blob Storage и Google Cloud Storage, а также в любых хранилищах для которых имеются бэкенды rclone. Для организации хранения также может быть использован специальный rest server, обеспечивающий более высокую производительность по сравнению с другими бэкендами и способный работать в режиме только для дополнения, который не позволит удалить или изменить резервные копии в случае компрометации исходного сервера и доступа к ключам шифрования.

Поддерживаются снапшоты, отражающие состояние определённого каталога со всеми файлами и вложенными каталогами в определённый момент времени. При каждом создании новой резервной копии создаётся ассоциированный с ней снапшот, позволяющий восстановить состояние в данный момент. Возможно копирование снапшотов между разными репозиториями. Для экономии трафика в процессе создания резервных копий копируются только изменившиеся данные. Для наглядной оценки содержимого репозитория и упрощения восстановления, снапшот с резервной копией может быть примонтирован в форме виртуального раздела (монтирование осуществляется при помощи FUSE). Также предоставляются команды для анализа изменений и выборочного извлечения файлов.

Система манипулирует не целыми файлами, а блоками плавающего размера, выбираемыми с использованием подписи Рабина. Информация хранится в привязке к содержимому, а не именам файлов (связанные с данными имена и объекты определяются на уровне метаданных блока). На основании SHA-256 хэша от содержимого выполняется дедупликация и исключение лишнего копирования данных. На внешних серверах информация сохраняется в зашифрованном виде (для контрольных сумм используется SHA-256, для шифрования AES-256-CTR, а для гарантирования целостности — коды аутентификации на основе Poly1305-AES). Предусмотрена возможность верификации резервной копии по контрольным суммам и кодам аутентификации для подтверждения, что целостность файлов не нарушена.

В новой версии:

  • Реализована новая команда rewrite, позволяющая удалить лишние данные из снапшота, когда в резервную копию по недосмотру попали файлы, изначально не предназначенные для резервного копирования (например, файлы с конфиденциальной информацией или не представляющие ценности очень крупные логи).
  • В команду backup добавлена опция «—read-concurrency» для задания уровня распараллеливания при чтении файлов, позволяющая ускорить копирование на быстрых накопителях, таких как NVMe.
  • В команду backup добавлена опция «—no-scan» для отключения стадии сканирования дерева файлов.
  • В команде prune значительно (до 30%) сокращено потребление памяти.
  • В команду restore добавлена опция «—sparse» для эффективного восстановления файлов с большими пустыми областями.
  • Для платформы Windows реализована поддержка восстановления символических ссылок.
  • В macOS добавлена возможность монтирования репозитория с резервными копиями при помощи macFUSE.

Источник: opennet.ru

Добавить комментарий