DwarFS, файлова система, предназначена да намали излишните данни

Маркус Холанд-Мориц (софтуерен инженер във Facebook) го направи известен чрез публикация първите версии на DwarFS, файлова система само за четене, предназначена да максимизира компресията и да намали излишните данни.

Тази файлова система използва механизма FUSE и работи в потребителско пространство, кодът е написан на C ++ и се разпространява под лиценза GPLv3.

Относно DwarFS

Джуджета прилича на файлови системи като SquashFS, cramfs и CromFS във вашите задачи и може да се използва за създаване на живи изображения и намаляване на размера на файлове с голям брой дубликати и дублирани данни (например съхранение на изображения на виртуални машини или колекции от различни версии на програми).

По отношение на скоростта достъп до данни, DwarFS е приблизително на същото ниво като SquashFS, но няколко пъти по-напред от този FS по отношение на ефективността на компресия и скоростта на изображения.

Проектът е разработен за решаване на проблема с оптимизирането на съхранението с различни версии на Perl (авторът на DwarFS участва в поддръжката на файла CPAN).

Първоначално се опитахме да използваме Cromfs за компресия, Но изграждането на изображението отне твърде дълго и стабилността остави много да се желае. SquashFS работи стабилно и изобразяваше изображения значително по-бързо, но нивото на компресия беше неприемливо.

Повечето от кода на DwarFS е написана през 2013г. Тази година авторът намери време да представи кода на обществеността и да напише документация. DwarFS използва библиотеките Boost и Folly.

Замразената библиотека на клонове на Thrift Facebook се използва за съхраняване на метаданни. Други зависимости включват FUSE3 и библиотеките за компресиране lz4, zstd и liblzma.

DwarFS превъзхожда SquashFS по отношение на степента на компресия 8 пъти, и по отношение на скоростта на създаване на изображение 4 пъти при създаване на изображение, което включва 1139 различни инсталации на Perl, от които има 284 версии на Perl.

Джуджета успя да свие бенчмарка от 47GB на 582MB (1,1% от първоначалния размер), докато полученият размер на изображението на SquashFS е 4,7 GB. SquashFS отне 69 минути, за да създаде изображението, докато DwarFS завърши работата за 15 минути.

И двете файлови системи използваха алгоритъма ZSTD за компресиране. Използвайки LZMA, размерът на изображението на DwarFS беше намален с още 18% (приблизително 479MB), но скоростта на достъп до това изображение беше значително намалена.

Тестовете с данни с по-малко дубликати показаха предимство не толкова значим, но все пак забележителен от DwarFS. Например, размерът на изображението за основния FS на Paspberry Pi OS е 298MB за DwarFS и 364MB за SquashFS, а времето за изграждане е съответно 1 минута 36 секунди и 1 минута 54 секунди.

От ключови характеристики на DwarFS открояват се следните:

  • Способността на захранването елиминира излишъка чрез групиране на подобни данни (независимо от границите на файловете) с помощта на хеш функции LSH за идентифициране на подобни обекти.
  • Файловата система блокира анализа на сегментацията, за да намали размера на некомпресираната файлова система и да увеличи ефективността на използването на кеша на процесора поради факта, че влизат повече необходими данни.
  • Многонишкова реализация на помощната програма за изображения и модула FUSE, която може да използва всички налични ядра на процесора, когато работи.
  • Експериментална поддръжка за възможността за свързване на контролери на Lua, които могат да се използват за филтриране и сортиране на съдържание.
  • Режим на преопаковане, който ви позволява да промените алгоритъма за компресиране на вече създадено изображение (например, можете да препакетирате, като използвате LZMA или LZ4 вместо ZSTD).
  • Изображенията се създават с помощта на помощната програма mkdwarfs и се монтират с помощта на помощната програма dwarfs.

И накрая, ако искате да научите повече за тази файлова система или се интересувате от възможността да компилирате нейния изходен код, можете да прегледате информацията или да получите изходния код В следващия линк.


Оставете вашия коментар

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани с *

*

*

  1. Отговорник за данните: AB Internet Networks 2008 SL
  2. Предназначение на данните: Контрол на СПАМ, управление на коментари.
  3. Легитимация: Вашето съгласие
  4. Съобщаване на данните: Данните няма да бъдат съобщени на трети страни, освен по законово задължение.
  5. Съхранение на данни: База данни, хоствана от Occentus Networks (ЕС)
  6. Права: По всяко време можете да ограничите, възстановите и изтриете информацията си.