Ipinakilala ng Cisco ang PuzzleFS file system para sa Linux kernel

Ang Cisco ay nagmungkahi ng isang bagong file system, PuzzleFS, na ipinatupad bilang isang module para sa Linux kernel, na nakasulat sa Rust. Ang file system ay idinisenyo upang magamit upang mag-host ng mga nakahiwalay na lalagyan at patuloy na bumuo ng mga ideya na iminungkahi sa Atomfs file system. Ang pagpapatupad ay nasa prototype stage pa rin, sumusuporta sa pagbuo gamit ang rust-next Linux kernel branch at bukas sa ilalim ng Apache 2.0 at MIT na mga lisensya.

Nilalayon ng proyekto na lampasan ang mga limitasyong lalabas kapag gumagamit ng mga larawan ng lalagyan sa format na OCI (Open Container Initiative). Malulutas ng PuzzleFS ang mga problema tulad ng mahusay na pag-iimbak ng duplicate na data, direktang kakayahan sa pag-mount, paulit-ulit na pagbuo ng imahe, at seguridad ng memorya.

Upang i-deduplicate ang data na paulit-ulit sa iba't ibang container, ginagamit ang FastCDC (Fast Content-Defined Chunking) algorithm, na gumagana sa pamamagitan ng paghahati ng data sa mga fragment ng arbitrary na laki at pagpapanatili ng index na may mga hash ng mga naprosesong fragment. Ang paulit-ulit na mga fragment ay iniimbak nang isang beses at magkasamang na-index para sa lahat ng mga layer ng file system, i.e. Maaaring masakop ng deduplication ang iba't ibang mount point (maaaring ilunsad ang isang bagong layer ng FS batay sa isang umiiral na at gamitin ang mga fragment ng data na nakapaloob dito sa panahon ng deduplication).

Ang paulit-ulit na pagpupulong ng mga larawan ng lalagyan ay nakakamit sa pamamagitan ng pagtukoy ng isang canonical na representasyon ng format ng larawan ng lalagyan. Binibigyang-daan ka ng Direct-mount na mag-mount ng isang OCI container na imahe mula sa isang pandaigdigang shared storage nang hindi muna ito ina-unpack, gamit ang isang hash ng mga content mula sa container manifest bilang isang identifier. Upang i-verify ang integridad ng data kapag gumagamit ng nakabahaging storage, maaaring gamitin ang mekanismo ng fs-verity, na, kapag nag-a-access ng mga file, sinusuri ang mga sulat ng mga hash na tinukoy sa binary index kasama ang aktwal na nilalaman.

Pinili ang Rust na wika dahil pinagsasama nito ang mataas na pagganap ng resultang code na may mga kakayahan para sa ligtas na pagtatrabaho sa memorya, na binabawasan ang panganib ng mga kahinaan na dulot ng mga problema tulad ng pag-access sa isang lugar ng memorya pagkatapos itong mapalaya at umaapaw sa mga hangganan ng buffer. Ang paggamit ng Rust para sa kernel module ay naging posible din na magbahagi ng code sa pagitan ng mga bahagi ng kernel at user-space upang lumikha ng isang solong, secure na pagpapatupad.

Kasama sa iba pang mga layunin ng proyekto ang: napakabilis na pagbuo at pag-mount ng mga imahe, ang kakayahang gumamit ng opsyonal na intermediate na yugto para sa canonicalization ng mga imahe, ang opsyonalidad ng buong mtree-style na file tree pass kapag gumagamit ng multi-layer na istraktura, casync-style na pagpapataw ng mga pagbabago, at isang madaling ipatupad na arkitektura.

Pinagmulan: opennet.ru

Magdagdag ng komento