Cisco predlaže PuzzleFS sistem datoteka za Linux kernel

Cisco je predložio novi sistem datoteka, PuzzleFS, implementiran kao modul za Linux kernel, napisan u Rustu. Sistem datoteka je dizajniran da se koristi za hostovanje izolovanih kontejnera i nastavlja da razvija ideje predložene u sistemu datoteka Atomfs. Implementacija je još u fazi prototipa, podržava izgradnju sa rust-next Linux kernel granom i otvorena je pod licencama Apache 2.0 i MIT.

Projekat ima za cilj da zaobiđe ograničenja koja nastaju kada se koriste slike kontejnera u OCI (Open Container Initiative) formatu. PuzzleFS rješava probleme poput efikasnog skladištenja duplih podataka, mogućnosti direktnog montiranja, ponovljive izgradnje slike i sigurnosti memorije.

Za uklanjanje duplikata podataka koji se ponavljaju u različitim kontejnerima, koristi se algoritam FastCDC (Fast Content-Defined Chunking), koji radi tako što dijeli podatke na fragmente proizvoljne veličine i održava indeks s hashovima obrađenih fragmenata. Fragmenti koji se ponavljaju se pohranjuju jednom i zajednički indeksiraju za sve slojeve sistema datoteka, tj. deduplikacija može pokriti različite tačke montiranja (novi FS sloj se može pokrenuti na osnovu postojećeg i koristiti fragmente podataka koji se nalaze u njemu tokom deduplikacije).

Ponavljano sklapanje slika kontejnera postiže se definisanjem kanonskog prikaza formata slike kontejnera. Direktno montiranje vam omogućava da montirate sliku OCI kontejnera iz globalne dijeljene memorije bez prethodnog raspakivanja, koristeći hash sadržaja iz manifesta kontejnera kao identifikator. Za provjeru integriteta podataka prilikom korištenja dijeljene memorije može se koristiti mehanizam fs-verity, koji prilikom pristupa datotekama provjerava korespondenciju hashova navedenih u binarnom indeksu sa stvarnim sadržajem.

Rust jezik je odabran jer kombinuje visoke performanse rezultujućeg koda sa mogućnostima za siguran rad sa memorijom, što smanjuje rizik od ranjivosti uzrokovanih problemima kao što je pristup memorijskoj oblasti nakon što je ona oslobođena i prekoračenje granica bafera. 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 jedna, sigurna implementacija.

Ostali ciljevi projekta uključuju: vrlo brzu izgradnju i montiranje slika, mogućnost korištenja opcione međufaze za kanonilizaciju slika, opcionalnost punih prolaza stabla datoteka u stilu mtree kada se koristi višeslojna struktura, nametanje u casync stilu promjena i arhitektura laka za implementaciju.

izvor: opennet.ru

Dodajte komentar