DwarFS, un file system progettato per ridurre i dati ridondanti

Marco Holland-Moritz (un ingegnere di software di Facebook) lo ha reso noto attraverso una pubblicazione le prime versioni di DwarFS, un file system di sola lettura progettato per massimizzare la compressione e ridurre i dati ridondanti.

Questo file system utilizza il meccanismo FUSE e viene eseguito nello spazio utente, il codice è scritto in C ++ ed è distribuito sotto licenza GPLv3.

Informazioni su DwarFS

Nani assomiglia a file system come SquashFS, cramfs e CromFS nelle tue attività e può essere utilizzato per creare immagini live e ridurre le dimensioni dei file con un numero elevato di duplicati e dati duplicati (ad esempio, archiviazione di immagini di macchine virtuali o raccolte di diverse versioni di programmi).

In termini di velocità accesso ai dati, DwarFS è più o meno allo stesso livello di SquashFS, ma molte volte in anticipo rispetto a questo FS in termini di efficienza di compressione e velocità di imaging.

Il progetto è stato sviluppato per risolvere il problema dell'ottimizzazione dello storage con diverse versioni di Perl (l'autore di DwarFS partecipa alla manutenzione del file CPAN).

Inizialmente, abbiamo provato a utilizzare Cromfs per la compressione, Ma ci è voluto troppo tempo per costruire l'immagine e la stabilità lasciava molto a desiderare. SquashFS ha funzionato stabilmente e ha reso le immagini notevolmente più veloci, ma il livello di compressione era inaccettabile.

La maggior parte del codice DwarFS è stato scritto nel 2013. Quest'anno, l'autore ha trovato il tempo per portare il codice al pubblico e scrivere la documentazione. DwarFS utilizza le librerie Boost e Folly.

La libreria del ramo Facebook di Thrift congelata viene utilizzata per archiviare i metadati. Altre dipendenze includono FUSE3 e le librerie di compressione lz4, zstd e liblzma.

DwarFS ha superato SquashFS in termini di velocità di compressione di 8 volte, e in termini di velocità di creazione dell'immagine 4 volte quando si crea un'immagine che include 1139 diverse installazioni Perl, di cui ci sono 284 versioni di Perl.

Nani è stato in grado di ridurre il benchmark da 47 GB a 582 MB (1,1% della dimensione originale), mentre la dimensione dell'immagine SquashFS risultante era di 4,7 GB. SquashFS ha impiegato 69 minuti per creare l'immagine, mentre DwarFS ha completato il lavoro in 15 minuti.

Entrambi i file system utilizzavano l'algoritmo ZSTD per la compressione. Utilizzando LZMA, la dimensione dell'immagine DwarFS è stata ridotta di un altro 18% (circa 479 MB), ma la velocità di accesso a quell'immagine è stata notevolmente ridotta.

I test con dati con meno duplicati hanno mostrato un vantaggio non così significativo, ma comunque notevole, da DwarFS. Ad esempio, la dimensione dell'immagine per la radice FS del sistema operativo Paspberry Pi era 298 MB per DwarFS e 364 MB per SquashFS, e il tempo di compilazione era rispettivamente di 1 minuto, 36 secondi e 1 minuto e 54 secondi.

Del caratteristiche principali di DwarFS spiccano i seguenti:

  • La capacità di alimentazione elimina la ridondanza raggruppando dati simili (indipendentemente dai limiti dei file) utilizzando le funzioni hash LSH per identificare oggetti simili.
  • Analisi della segmentazione del blocco del file system per ridurre le dimensioni del file system non compresso e aumentare l'efficienza dell'utilizzo della cache del processore grazie al fatto che entrano più dati richiesti.
  • Implementazione multi-threaded dell'utility di imaging e del modulo FUSE, che può utilizzare tutti i core della CPU disponibili durante l'esecuzione.
  • Supporto sperimentale per la possibilità di connettere controller Lua che possono essere utilizzati per filtrare e ordinare i contenuti.
  • Modalità di riconfezionamento che consente di modificare l'algoritmo di compressione di un'immagine già creata (ad esempio, è possibile riconfezionare utilizzando LZMA o LZ4 invece di ZSTD).
  • Le immagini vengono create utilizzando l'utilità mkdwarfs e montate utilizzando l'utilità nani.

Infine, se vuoi saperne di più su questo file system o sei interessato a poter compilare il suo codice sorgente, puoi consultare le informazioni o ottenere il codice sorgente nel seguente link


Lascia un tuo commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati con *

*

*

  1. Responsabile del trattamento: AB Internet Networks 2008 SL
  2. Scopo dei dati: controllo SPAM, gestione commenti.
  3. Legittimazione: il tuo consenso
  4. Comunicazione dei dati: I dati non saranno oggetto di comunicazione a terzi se non per obbligo di legge.
  5. Archiviazione dati: database ospitato da Occentus Networks (UE)
  6. Diritti: in qualsiasi momento puoi limitare, recuperare ed eliminare le tue informazioni.