Cisco prezanton sistemin e skedarëve PuzzleFS për kernelin Linux

Cisco ka propozuar një sistem të ri skedarësh, PuzzleFS, i zbatuar si një modul për kernelin Linux, të shkruar në Rust. Sistemi i skedarëve është krijuar për t'u përdorur për të pritur kontejnerë të izoluar dhe vazhdon të zhvillojë idetë e propozuara në sistemin e skedarëve Atomfs. Zbatimi është ende në fazën e prototipit, mbështet ndërtimin me degën rust-next të kernel Linux dhe është i hapur nën licencat Apache 2.0 dhe MIT.

Projekti synon të anashkalojë kufizimet që lindin gjatë përdorimit të imazheve të kontejnerëve në formatin OCI (Open Container Initiative). PuzzleFS zgjidh probleme të tilla si ruajtja efikase e të dhënave të dyfishta, aftësia e montimit të drejtpërdrejtë, ndërtimi i imazhit të përsëritshëm dhe siguria e memories.

Për të hequr të dhënat që përsëriten në kontejnerë të ndryshëm, përdoret algoritmi FastCDC (Fast Content-Defined Chunking), i cili funksionon duke i ndarë të dhënat në fragmente me madhësi arbitrare dhe duke mbajtur një indeks me hash të fragmenteve të përpunuara. Fragmentet e përsëritura ruhen një herë dhe indeksohen bashkërisht për të gjitha shtresat e sistemit të skedarëve, d.m.th. deduplikimi mund të mbulojë pika të ndryshme montimi (një shtresë e re FS mund të lansohet në bazë të një ekzistuese dhe të përdorë fragmentet e të dhënave të përfshira në të gjatë deduifikimit).

Montimi i përsëritur i imazheve të kontejnerit arrihet duke përcaktuar një paraqitje kanonike të formatit të imazhit të kontejnerit. Montimi i drejtpërdrejtë ju lejon të montoni një imazh të kontejnerit OCI nga një hapësirë ​​ruajtëse e përbashkët globale pa e shpaketuar më parë, duke përdorur një hash të përmbajtjes nga manifesti i kontejnerit si një identifikues. Për të verifikuar integritetin e të dhënave kur përdorni ruajtjen e përbashkët, mund të përdoret mekanizmi fs-verity, i cili, kur hyn në skedarë, kontrollon korrespondencën e hasheve të specifikuara në indeksin binar me përmbajtjen aktuale.

Gjuha Rust u zgjodh pasi kombinon performancën e lartë të kodit që rezulton me aftësitë për punë të sigurt me kujtesën, gjë që zvogëlon rrezikun e dobësive të shkaktuara nga probleme të tilla si qasja në një zonë memorie pasi të jetë çliruar dhe kufijtë e tejmbushur të tamponit. Përdorimi i Rust për modulin e kernelit gjithashtu bëri të mundur ndarjen e kodit midis përbërësve të kernelit dhe hapësirës së përdoruesit për të krijuar një zbatim të vetëm dhe të sigurt.

Qëllimet e tjera të projektit përfshijnë: ndërtimin dhe montimin shumë të shpejtë të imazheve, aftësinë për të përdorur një fazë të ndërmjetme opsionale për kanonikalizimin e imazheve, opsionalitetin e kalimeve të plota të pemës së skedarëve në stilin mtree kur përdorni një strukturë me shumë shtresa, imponim në stilin kasink e ndryshimeve dhe një arkitekturë e lehtë për t'u zbatuar.

Burimi: opennet.ru

Shto një koment