Új fájlattribútum-kezelő rendszerhívások a Linux 6.17 kernelben: nagyobb rugalmasság a speciális fájlokhoz

Korábban már beszámoltunk arról, hogy a Linux 6.17 kernel egyik fontos VFS-fejlesztése a többeszközös fájlrendszerek kiesés utáni működését teszi majd lehetővé. Ezt a képességet most további, mélyebb rétegeket érintő változtatások követik a virtuális fájlrendszer alrendszerében. A jelenlegi ciklusban megvalósuló fejlesztések célja, hogy még szorosabb integrációt biztosítsanak a felhasználói tér és a kernel között, új rendszerhívásokkal bővítve az attribútumkezelés lehetőségeit, valamint olyan interfészekkel, amelyek pontosabb betekintést adnak a tárolóeszközök adatvédelmi jellemzőibe. Emellett a belső működés is átláthatóbbá és hatékonyabbá válik, különösen az I/O-műveletek és a fájlalapú memóriahasználat szempontjából, ami a modern fájlrendszerek és tárolási architektúrák számára hosszú távon is előnyt jelent.

Új fájlattribútum-kezelő rendszerhívások a Linux 6.17 kernelben: nagyobb rugalmasság a speciális fájlokhoz

Új rendszerhívások a fájlattribútumok bővíthető kezeléséhez

A kernel fájlrendszeri fejlesztései közé tartozik a file_getattr() és file_setattr() rendszerhívások bevezetése , amelyek a régi FS_IOC_FSGETXATTR és FS_IOC_FSSETXATTR ioctl-ok utódai. Ezeket az új rendszerhívásokat hosszú egyeztetési folyamat előzte meg, céljuk pedig az volt, hogy korszerű, bővíthető alternatívát nyújtsanak a fájlok inode attribútumainak kezeléséhez. Kiemelt hasznuk van például az XFS fájlrendszerben alkalmazott kvótaprojektek esetében, ahol eddig nem volt lehetőség a speciális fájlokra, például FIFO vagy BLK típusú objektumokra kvótaazonosítót beállítani. Az új megközelítéssel már ezek is kezelhetők, így egységes kvótaelszámolás valósulhat meg. A kernel rendszerhívások a későbbiekben újabb attribútumtípusokat is támogathatnak, amelyek a régi ioctl keretrendszerbe nem illeszthetők be.

Metaadatvédelmi információk lekérdezése új ioctl-lel

A VFS egy új ioctl-t is kapott, FS_IOC_GETLBMD_CAP néven, amellyel lekérdezhető egy blokkeszköz metaadat-kezelési és védelmi képessége. Ez különösen fontos lehet azoknál az alkalmazásoknál, amelyeknek tudniuk kell, hogy egy adott eszköz vagy fájl támogat-e végponttól végpontig tartó adatvédelmet, és ennek megfelelően szeretnék konfigurálni a ki- és beolvasási műveleteket. Jelenleg ez az ioctl csak blokkeszközökön működik, de a kialakítása lehetővé teszi, hogy a jövőben fájlokra is kiterjesszék, különösen akkor, ha a fájlrendszerek PI-tudatos (Protection Information) elrendezéseket kezdenek támogatni.

Iomap fejlesztések és FUSE optimalizálás

A VFS réteg iomap alrendszere szintén jelentős változáson ment keresztül. A kód refaktorálása során különválasztották az általános visszaírási logikát és az I/O-specifikus, ioend-alapú réteget, ezzel modulárisabbá és könnyebben karbantarthatóvá téve a működést. Ezzel egy időben a FUSE fájlrendszer is megkapta az iomap támogatást a pufferelt írásokhoz és a „dirty foliók” visszaírásához. A nagy foliókat használó rendszereknél ez lehetővé teszi, hogy ne az egész memóriablokkot kelljen kiolvasni vagy visszaírni, hanem csak az érintett részeket, ami jelentősen javíthatja a teljesítményt és a memóriakezelés hatékonyságát.