Cisco presenta el sistema de fitxers PuzzleFS per al nucli Linux

Cisco ha proposat un nou sistema de fitxers, PuzzleFS, implementat com a mòdul per al nucli Linux, escrit en Rust. El sistema de fitxers està dissenyat per ser utilitzat per allotjar contenidors aïllats i continua desenvolupant les idees proposades al sistema de fitxers Atomfs. La implementació encara es troba en l'etapa de prototip, admet la construcció amb la branca rust-next del nucli Linux i està oberta sota les llicències Apache 2.0 i MIT.

El projecte pretén evitar les limitacions que es plantegen quan s'utilitzen imatges de contenidors en format OCI (Open Container Initiative). PuzzleFS resol problemes com ara l'emmagatzematge eficient de dades duplicades, la capacitat de muntatge directe, la creació d'imatges repetibles i la seguretat de la memòria.

Per desduplicar dades que es repeteixen en diferents contenidors, s'utilitza l'algoritme FastCDC (Fast Content-Defined Chunking), que funciona dividint les dades en fragments de mida arbitrària i mantenint un índex amb hash dels fragments processats. Els fragments que es repeteixen s'emmagatzemen una vegada i s'indexen conjuntament per a totes les capes del sistema de fitxers, és a dir. la deduplicació pot cobrir diferents punts de muntatge (es pot llançar una nova capa FS basada en una d'existent i utilitzar els fragments de dades que hi conté durant la deduplicació).

El muntatge repetitiu d'imatges del contenidor s'aconsegueix mitjançant la definició d'una representació canònica del format d'imatge del contenidor. El muntatge directe us permet muntar una imatge de contenidor OCI des d'un emmagatzematge compartit global sense desempaquetar-lo primer, utilitzant un hash del contingut del manifest del contenidor com a identificador. Per verificar la integritat de les dades quan s'utilitza l'emmagatzematge compartit, es pot utilitzar el mecanisme fs-verity, que, en accedir als fitxers, verifica la correspondència dels hash especificats a l'índex binari amb el contingut real.

S'ha escollit el llenguatge Rust perquè combina un alt rendiment del codi resultant amb capacitats per treballar de manera segura amb la memòria, la qual cosa redueix el risc de vulnerabilitats causades per problemes com ara accedir a una àrea de memòria després d'haver estat alliberada i desbordar els límits de la memòria intermèdia. L'ús de Rust per al mòdul del nucli també va permetre compartir codi entre el nucli i els components de l'espai d'usuari per crear una implementació única i segura.

Altres objectius del projecte inclouen: construcció i muntatge molt ràpids d'imatges, la capacitat d'utilitzar una etapa intermèdia opcional per a la canonització d'imatges, l'opcionalitat de passades completes d'arbre de fitxers d'estil mtree quan s'utilitza una estructura multicapa, imposició d'estil casync. de canvis, i una arquitectura fàcil d'implementar.

Font: opennet.ru

Afegeix comentari