![]() |
Маркус Холланд-Мориц (Marcus Holland-Moritz) из компании Facebook опубликовал первые выпуски файловой системы DwarFS, работающей в режиме "только для чтения" и нацеленной на обеспечение максимального уровня сжатия и сокращения избыточных данных. ФС использует механизм FUSE и работает в пространстве пользователя. Код написан на С++ и распространяется под лицензией GPLv3.
По своим задачам DwarFS напоминает такие файловые системы, как SquashFS, cramfs и CromFS, и может применяться для создания Live-образов и сокращения размера архивов с большим числом дубликатов и повторяющихся данных (например, хранилища образов виртуальных машин или коллекции разных версий программ). По скорости обращения к данным DwarFS примерно находится на том же уровне, что и SquashFS, но в разы опережает данную ФС по эффективности сжатия и скорости формирования образа. Проект был разработан для решения задачи оптимизации хранилища с разными версиями Perl (автор DwarFS принимает участие в поддержании архива CPAN). Вначале была предпринята попытка использования Cromfs для сжатия, но на время сборки образа требовалось слишком много времени, а стабильность оставляла желать лучшего. SquashFS работал стабильно и заметно быстрее формировал образы, но уровень сжатия оказался неприемлемым. Большая часть кода DwarFS была написана ещё в 2013 году. В этом году автор нашёл время для доведению кода до публичного релиза и написание документации. В DwarFS используются библиотеки Boost и Folly. Для хранения метаданных применяется библиотека frozen из Facebook-ветки фреймворка Thrift. Из других зависимостей отмечаются FUSE3 и библиотеки сжатия lz4, zstd и liblzma. При создании образа, включающего 1139 различных установок Perl, в которых встречается 284 релизов Perl, DwarFS обогнал SquashFS по уровню сжатия в 8 раз, а по скорости создания образа в 4 раза. DwarFS смог ужать тестируемый набор с 47 ГБ до 582 МБ (1.1% от изначального размера), в то время как результирующий размер образа SquashFS составил 4.7 ГБ. На создание образа в SquashFS было потрачено 69 минут, в то время как DwarFS выполнил работу за 15 минут. В обеих ФС для сжатия использовался алгоритм ZSTD. При применении LZMA размер образа DwarFS удалось уменьшить ещё на 18% (479 МБ), но скорость доступа к подобному образу значительно уменьшилась. Тестирование на данных, в которых встречается меньше дубликатов, показало не столь значительное, но всё же заметное, преимущество DwarFS. Например, размер образа для корневой ФС Paspberry Pi OS составил 298 МБ для DwarFS и 364 МБ для SquashFS, а время создания 1 минута 36 секунд и 1 минута 54 секунды, соответственно. Основные возможности DwarFS:
|
Цитата:
https://i.imgur.com/OyY4ERu.png Интересно, что Arch Linux уже два года назад перевёл свои репозитории на формат zstd [pkg.tar.zst]. |
| Время: 23:16 |