A Cisco bemutatja a PuzzleFS fájlrendszert a Linux kernelhez

A Cisco új fájlrendszert javasolt, a PuzzleFS-t, amelyet a Linux kernel moduljaként valósítanak meg, Rust nyelven. A fájlrendszert elkülönített konténerek tárolására tervezték, és folytatja az Atomfs fájlrendszerben javasolt ötletek fejlesztését. A megvalósítás még a prototípus stádiumában van, támogatja a rust-next Linux kernel ággal való építést, és az Apache 2.0 és MIT licenc alatt van nyitva.

A projekt célja, hogy megkerülje azokat a korlátokat, amelyek az OCI (Open Container Initiative) formátumú konténerképek használatakor merülnek fel. A PuzzleFS olyan problémákat old meg, mint a duplikált adatok hatékony tárolása, a közvetlen csatlakoztatási lehetőség, az ismételhető képalkotás és a memóriabiztonság.

A különböző tárolókban ismétlődő adatok duplikálására a FastCDC (Fast Content-Defined Chunking) algoritmust használjuk, amely úgy működik, hogy az adatokat tetszőleges méretű töredékekre osztja, és fenntart egy indexet a feldolgozott töredékek kivonataival. Az ismétlődő töredékeket a rendszer egyszer tárolja és közösen indexeli a fájlrendszer összes rétegéhez, azaz. a deduplikáció különböző csatolási pontokat fedhet le (egy meglévő alapján indítható új FS réteg, és a deduplikáció során felhasználhatjuk a benne található adattöredékeket).

A tárolóképek ismétlődő összeállítása a tárolóképformátum kanonikus ábrázolásának meghatározásával érhető el. A közvetlen csatlakoztatás lehetővé teszi egy OCI-tárolókép csatlakoztatását egy globális megosztott tárhelyről anélkül, hogy először ki kellene csomagolni, a tárolójegyzék tartalmának kivonatát használva azonosítóként. Az adatok integritásának ellenőrzésére megosztott tárhely használatakor az fs-verity mechanizmus használható, amely a fájlok elérésekor ellenőrzi a bináris indexben megadott hash-ek és a tényleges tartalom megfelelését.

A Rust nyelvet azért választották, mert ötvözi a kapott kód nagy teljesítményét a memóriával való biztonságos munkavégzés képességeivel, ami csökkenti az olyan problémák által okozott sebezhetőségek kockázatát, mint például a memóriaterület felszabadítása utáni hozzáférés és a pufferhatárok túlcsordulása. A Rust használata a kernelmodulhoz lehetővé tette a kód megosztását a kernel és a felhasználói terület összetevői között, hogy egyetlen, biztonságos megvalósítást hozzon létre.

A projekt további céljai a következők: nagyon gyors képek összeállítása és beillesztése, opcionális köztes szakasz használatának lehetősége a képek kanonizálásához, a teljes mtree stílusú fájlfa átadások opcionális lehetősége többrétegű struktúra használatakor, casync-stílusú beillesztés változásokat, és egy könnyen megvalósítható architektúrát.

Forrás: opennet.ru

Hozzászólás