Релиз системы резервного копирования BorgBackup 1.1.0
Состоялся релиз системы резервного копирования BorgBackup 1.1.0, несколько лет назад ответвившейся от проекта Attic. Система поддерживает дедупликацию, шифрование и сжатие данных в хранилище резервных копий. Основной код проекта написан на языке Python 3, но около 9% критичных к производительности частей оформлены на языке Си. Исходные тексты распространяются под лицензией BSD. Сборки подготовлены для FreeBSD, Linux и macOS.
Отличия от системы Attic сводятся к открытому процессу разработки с более простой организацией приёма изменений, устранению нерешённых в Attic проблем, более компактному и потребляющему меньше памяти формату индекса дедуплицированных блоков, более быстрой реализацией кэша синхронизации, поддержке хранения данных в сжатом виде, использованию шифрования по ключам вместо парольной фразы, эффективному хранению файлов с пустотами внутри (например, образов виртуальных машин), системе блокировок на основе вызова mkdir, расширенным сообщениям об ошибках, индикацим прогресса выполнения операций, тестированию в разнообразных ОС.
Возможности и особенности:
- Экономия дискового пространства в хранилище резервных копий за счёт применения дедупликации (как следствие, снижение избыточности и повышение шансов потерять сразу все бэкапы из-за сбоя в усложнённом хранилище или повреждения эталонных блоков). Объединение дублирующихся данных производится на основе выявления идентичных блоков. Файлы разбиваются на блоки, если блок не встречался ранее — он сохраняется в хранилище, если встречался, то записывается ссылка на уже имеющийся в хранилище блок. Применяемый метод дедупликациии не привязан к файлам и директориям, эффективно обрабатывает операции изменения файлов (переписываются только изменившиеся блоки) и смены позиции блоков внутри файла. Дубликаты объединяются в контексте всего репозитория-хранилища и могут охватывать прошлые резервные копии, бэкапы с различных компьютеров, а также идентичные блоки в том же файле.
- Высокая производительность — критичный с точки зрения скорости работы код, такой как обработка блоков, сжатие и шифрование, реализован на языке Си с использованием Cython. В BorgBackup также применяется быстрый алгоритм выявления неизменившихся файлов и локальное кэширование индексов, используемых для связывания файлов и блоков в репозитории.
- Данные хранятся с использованием симметричного шифрования AES c 256-разрядным ключом. Для проверки подлинности зашифрованных данных используется HMAC-SHA256. Данные шифруются на стороне клиента (системы, для которой создаётся резервная копия);
- Данные в хранилище могут храниться в сжатом виде с использованием алгоритмов lz4 (быстро, но посредственный уровень сжатия) или lzma (медленно, но высокая степень сжатия);
- Возможность размещения хранилища резервных копий на любом внешнем сервере, на который имеется доступ по протоколу SSH. Для повышения производительности на хост-хранилище могут быть установлены серверные компоненты Borg;
- Поддержка монтирования резервных копий в форме файловых систем (используется FUSE);
- Простота установки — BorgBackup поставляется в форме единого исполняемого файла, который может быть запущен без предварительной установки.
Ключевые улучшения в выпуске BorgBackup 1.1.0:
- Добавлена экспериментальная команда «borg recreate» для переупаковки файлов в существующем архиве, что позволяет организовать дедупликацию между старыми архивами Attic / Borg 0.xx и новым форматом архивов Borg 1.x;
- Добавлена команда «borg diff» для отображений отличий между двумя архивами;
- В команде «borg mount» реализовано отображение всех имеющихся версий файлов в версионном представлении;
- Добавлены дополнительные опции форматирования для команды «borg list», в том числе возможность генерации хэшей и статистики о разбиении каждого файла;
- В команде «borg create» появилась опция »-C auto, zlib/lz4/…» для включения режима автоматического сжатия, ускорена работа с большим числом файлов, добавлена экспериментальная поддержка масок (--patterns, --patterns-from), реализованы средства управления кэшированием mtime/ctime;
- Добавлена команда «borg export-tar» для экспорта в формат GNU tar;
- Появилась возможность прикрепления комментариев к архивам;
- Добавлены режим шифрования на базе алгоритма BLAKE2b256 и режимы аутентифицированного хранения для гарантирования целостности без шифрования;
- В индексах репозитория и кэше задействованы контрольные суммы для выявления повреждения информации;
- Добавлен API для вывода результата выполнения команд «borg list», «borg info» и «borg create» в формате JSON;
- Реализована возможность ведения лога всех выполненных команд, сохраняемого в формате JSON;
- В команды «borg list», «borg info», «borg mount», «borg check», «borg delete» и «borg prun» добавлена опция »--prefix», дополняющая опции --glob-archives (-a), --sort-by, --last и --first;
- По умолчанию включено сжатие lz4.
© OpenNet