PuzzleFS è un file system container di nuova generazione per Linux con creazione rapida di immagini, supporto per montaggio diretto e altre funzionalità ottimizzate per container su cui lavorano gli ingegneri Cisco. Ed è scritto in Rust.

Ariel Miculas di Cisco ha pubblicato oggi una prima serie di patch”request for comments”su questo file system PuzzleFS con il driver del kernel scritto in Rust. Per ora questo driver Rust è considerato una prova di concetto. La serie di patch continua descrivendo PuzzleFS come:

Puzzlefs è un filesystem contenitore progettato per risolvere i limiti del formato OCI esistente. Gli obiettivi principali del progetto sono duplicazione ridotta, build di immagini riproducibili, supporto per il montaggio diretto e garanzie di sicurezza della memoria, alcuni ispirati al documento di progettazione OCIv2.

La duplicazione ridotta si ottiene utilizzando l’algoritmo di suddivisione in blocchi definito dal contenuto FastCDC. Questa implementazione consente di condividere i blocchi tra i livelli. Costruire un nuovo layer partendo da uno esistente permette di riutilizzare la maggior parte dei chunk.

Un altro obiettivo del progetto sono le build di immagini riproducibili, ottenute definendo una rappresentazione canonica del formato dell’immagine.

Il supporto per il montaggio diretto è una caratteristica chiave di puzzlefs e, insieme a fs-verity, fornisce l’integrità dei dati. Attualmente, puzzlefs è implementato come filesystem in spazio utente (FUSE). È in fase di sviluppo un driver del filesystem del kernel di sola lettura.

Infine, la sicurezza della memoria è fondamentale per puzzlefs, il che ha portato alla decisione di implementarla in Rust. Un altro obiettivo è condividere lo stesso codice tra spazio utente e spazio kernel per fornire un’implementazione sicura.

Lavoro interessante e questo sarebbe il primo significativo driver del kernel del file system Rust mai pubblicato per il lavoro in corso sull’introduzione del supporto Rust nel kernel Linux principale.
La serie di patch RFC per il driver PuzzleFS con codice Rust è disponibile su lista di distribuzione del kernel. Il codice PuzzleFS è disponibile anche su GitHub.

Categories: IT Info