Cisco predlaže datotečni sustav PuzzleFS za Linux kernel

Cisco je predložio novi datotečni sustav, PuzzleFS, implementiran kao modul za Linux kernel, napisan u Rustu. Datotečni sustav dizajniran je za korištenje za smještaj izoliranih spremnika i nastavlja razvijati ideje predložene u Atomfs datotečnom sustavu. Implementacija je još uvijek u fazi prototipa, podržava izgradnju s granom rust-next Linux kernela i otvorena je pod licencama Apache 2.0 i MIT.

Projekt ima za cilj zaobići ograničenja koja se javljaju prilikom korištenja slika spremnika u OCI (Open Container Initiative) formatu. PuzzleFS rješava probleme poput učinkovite pohrane dupliciranih podataka, mogućnosti izravnog montiranja, ponovljive izgradnje slike i sigurnosti memorije.

Za dedupliciranje podataka koji se ponavljaju u različitim spremnicima koristi se algoritam FastCDC (Fast Content-Defined Chunking) koji funkcionira tako da podatke dijeli na fragmente proizvoljne veličine i održava indeks s hashovima obrađenih fragmenata. Fragmenti koji se ponavljaju pohranjuju se jednom i zajedno indeksiraju za sve slojeve datotečnog sustava, tj. deduplikacija može pokriti različite točke montiranja (novi FS sloj može se pokrenuti na temelju postojećeg i koristiti fragmente podataka sadržane u njemu tijekom deduplikacije).

Ponavljajuće sklapanje slika spremnika postiže se definiranjem kanonskog prikaza formata slike spremnika. Izravno montiranje vam omogućuje montiranje slike OCI spremnika iz globalne zajedničke pohrane bez prethodnog raspakiranja, koristeći hash sadržaja iz manifesta spremnika kao identifikator. Za provjeru integriteta podataka pri korištenju zajedničke pohrane može se koristiti mehanizam fs-verity, koji prilikom pristupa datotekama provjerava podudarnost hashova navedenih u binarnom indeksu sa stvarnim sadržajem.

Jezik Rust odabran je jer kombinira visoke performanse rezultirajućeg koda s mogućnostima za siguran rad s memorijom, što smanjuje rizik od ranjivosti uzrokovanih problemima kao što je pristup memorijskom području nakon što je ono oslobođeno i prekoračenje granica međuspremnika. Korištenje Rusta za modul kernela također je omogućilo dijeljenje koda između komponenti kernela i korisničkog prostora kako bi se stvorila jedinstvena, sigurna implementacija.

Ostali ciljevi projekta uključuju: vrlo brzu izradu i montiranje slika, mogućnost korištenja neobavezne međufaze za kanoniziranje slika, mogućnost potpunih prolaza stabla datoteka u stilu mtree kada se koristi višeslojna struktura, nametanje u stilu casync promjena i arhitekturu koju je lako implementirati.

Izvor: opennet.ru

Dodajte komentar