Marcus Holland Moritz (Facebook szoftvermérnök) tudtára adta kiadvány útján a DwarFS első verziói, csak olvasható fájlrendszer, amelynek célja a tömörítés maximalizálása és a redundáns adatok csökkentése.
Ez a fájlrendszer a FUSE mechanizmust használja és a felhasználói térben fut, a kódot C ++ nyelven írják, és a GPLv3 licenc alatt terjesztik.
A DwarFS-ről
Törpe olyan fájlrendszerekre hasonlít, mint a SquashFS, a cramfs és a CromFS a feladatok során, és felhasználható élő képek létrehozására és a fájlok méretének csökkentésére nagyszámú ismétlődő és ismétlődő adat felhasználásával (például virtuális gépek képeinek tárolására vagy a programok különböző verzióinak gyűjteményeire).
A sebesség szempontjából adatokhoz való hozzáférés, A DwarFS nagyjából ugyanazon a szinten van, mint a SquashFS, de a tömörítés hatékonyságát és a képalkotási sebességet tekintve többször is megelőzi ezt az FS-t.
A projektet a tárolás optimalizálásának problémájának megoldására fejlesztették ki a Perl különböző verzióival (a DwarFS szerzője részt vesz a CPAN fájl karbantartásában).
Kezdetben a Cromfs-t próbáltuk használni a tömörítéshez, De a kép elkészítése túl sokáig tartott, a stabilitás pedig sok kívánnivalót hagyott maga után. A SquashFS stabilan működött és észrevehetően gyorsabbá tette a képeket, de a tömörítés szintje elfogadhatatlan volt.
A DwarFS kód nagy része 2013-ban íródott. Ebben az évben a szerző talált időt arra, hogy a kódot nyilvánosság elé terjessze és dokumentációt írjon. A DwarFS a Boost és a Folly könyvtárakat használja.
A lefagyott Thrift Facebook fiókkönyvtár a metaadatok tárolására szolgál. További függőségek a FUSE3, valamint az lz4, zstd és liblzma tömörítési könyvtárak.
A DwarFS nyolcszoros teljesítményt nyújtott a SquashFS-ben a tömörítési arány szempontjából, és a kép létrehozásának sebességét tekintve négyszer, amikor 4 különböző Perl-telepítést tartalmazó képet készítenek, amelyből a Perl 1139 változata létezik.
Törpe 47 GB-ról 582 MB-ra tudta csökkenteni a referenciaértéket (Az eredeti méret 1,1% -a), míg a kapott SquashFS képméret 4,7 GB volt. A SquashFS 69 percet vett igénybe a kép elkészítéséhez, míg DwarFS 15 perc alatt elvégezte a munkát.
Mindkét fájlrendszer a ZSTD algoritmust használta a tömörítéshez. Az LZMA használatával a DwarFS kép mérete további 18% -kal (kb. 479 MB) csökkent, de az adott kép elérési sebessége jelentősen csökkent.
A kevesebb ismétléssel rendelkező adatokkal végzett tesztek előnyt mutattak nem olyan jelentős, de mégis figyelemre méltó a DwarFS-től. Például a Paspberry Pi OS root FS képmérete a DwarFS esetében 298 MB, a SquashFS esetében pedig 364 MB volt, a felépítési idő pedig 1 perc 36 másodperc, illetve 1 perc 54 másodperc volt.
A a DwarFS főbb jellemzői a következők emelkednek ki:
- Az energiaellátási képesség kiküszöböli a redundanciát azáltal, hogy hasonló adatokat csoportosít (a fájlhatároktól függetlenül) LSH hash függvényekkel hasonló objektumok azonosítására.
- A fájlrendszer blokkolásának elemzése a tömörítetlen fájlrendszer méretének csökkentése és a processzor gyorsítótár-használatának hatékonyságának növelése miatt, mivel több szükséges adat kerül be.
- A képalkotó segédprogram és a FUSE modul többszálas megvalósítása, amely az összes rendelkezésre álló CPU-magot fel tudja használni futás közben.
- Kísérleti támogatás a tartalom szűrésére és rendezésére használható Lua vezérlők csatlakoztatásának képességéhez.
- Újracsomagolási mód, amely lehetővé teszi egy már létrehozott kép tömörítési algoritmusának megváltoztatását (például újracsomagolhat a ZSTD helyett az LZMA vagy az LZ4 használatával).
- A képeket az mkdwarfs segédprogram segítségével hozzák létre, és a törpék segédprogrammal szerelik fel.
Végül, ha többet szeretne megtudni erről a fájlrendszerről, vagy érdekli, hogy össze tudja-e állítani a forráskódját, megtekintheti az információkat, vagy beszerezheti a forráskódot A következő linken.