Состоялся (https://www.borgbackup.org/releases/borg-1.1.html) релиз системы резервного копирования BorgBackup 1.1.0 (https://borgbackup.github.io/), несколько лет назад ответвившейся от проекта Attic (https://attic-backup.org/). Система поддерживает дедупликацию, шифрование и сжатие данных в хранилище резервных копий. Основной код проекта написан на языке Python 3, но около 9% критичных к производительности частей оформлены на языке Си. Исходные тексты распространяются (https://github.com/borgbackup/borg) под лицензией BSD. Сборки подготовлены (https://github.com/borgbackup/borg/releases/tag/1.1.0) для 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.
URL: https://mail.python.org/pipermail/borgbackup/2017q4/000824.html
Новость: http://www.opennet.dev/opennews/art.shtml?num=47361