Bcachefek előmozdítása a Linux kernelben

Kent Overstreet, a Linux kernel részét képező BCache SSD blokkeszközök gyorsítótárazó rendszerének szerzője az LSFMM 2023 konferencián (Linux Storage, Filesystem, Memory Management) tartott beszédében összefoglalta a Bcachefs fájlrendszer népszerűsítésével kapcsolatos munka eredményeit. és BPF Summit). Májusban a Bcachefs FS megvalósításával frissített javításokat javasoltak felülvizsgálatra és a Linux kernel fő összetételébe való beillesztésre. Az FS Bcachefs körülbelül 10 éve fejleszt. 2020 végén jelentették be, hogy készen állnak a Bcachefs megvalósításának felülvizsgálatára a magba való felvétel előtt, és a javítások jelenlegi verziója figyelembe veszi az előző felülvizsgálat során feltárt megjegyzéseket és hiányosságokat.

A Bcachefs fejlesztési célja az XFS-szint elérése a teljesítményben, a megbízhatóságban és a méretezhetőségben, miközben a Btrfs-ben és a ZFS-ben rejlő további szolgáltatásokat nyújt, mint például több eszköz elhelyezése egy partícióban, többrétegű tárolási elrendezés, replikáció (RAID 1/10), gyorsítótár, transzparens adattömörítés (LZ4, gzip és ZSTD módok), állapotszeletek (pillanatképek), integritás-ellenőrzés ellenőrző összegekkel, Reed-Solomon hibajavító kódok tárolásának képessége (RAID 5/6), titkosított információtárolás (ChaCha20 és Poly1305) használt). A teljesítmény tekintetében a Bcachefs megelőzi a Btrfs-t és más, a Copy-on-Write mechanizmuson alapuló fájlrendszereket, és az Ext4-hez és az XFS-hez közeli teljesítményt mutat.

A Bcachefs fejlesztésének legújabb vívmányai közül az íráshoz elérhető pillanatképek megvalósításának stabilizálása figyelhető meg. A Btrfs-hez képest a Bcachefs pillanatképei sokkal jobban méretezhetők, és mentesek a Btrfs-ben rejlő problémáktól. A gyakorlatban a pillanatképek működését tesztelték a MySQL biztonsági mentések szervezésekor. A Bcachefs sokat dolgozott a méretezhetőség javításán is – a fájlrendszer jól teljesített a 100 TB-os tárhelyen végzett tesztelések során, a Bcachefs pedig a közeljövőben várhatóan 1 PB-s tárolóban is megvalósul. Új nocow mód került hozzáadásra a "másolás írásra" (nocow) mechanizmus letiltásához. A nyár folyamán tervezik a hibajavító kódok és a RAIDZ megvalósításának stabil állapotba hozását, valamint a fájlrendszerek fsck segédprogrammal történő visszaállítása és ellenőrzése során felmerülő, nagy memóriafelhasználással járó problémák megoldását.

A jövőre vonatkozó tervek közül megemlítik a Rust nyelv felhasználásának vágyát a Bcachefs fejlesztésében. A Bcachefs szerzője szerint kódolni szeret, nem kódot debugolni, és most őrültség C-ben írni, ha van jobb lehetőség. Rust már részt vesz a Bcachefs-ben néhány felhasználói tér segédprogram megvalósításában. Sőt, az az ötlet is felmerül, hogy a Bcachefeket fokozatosan teljesen átírják a Rust nyelven, mivel ennek a nyelvnek a használata jelentősen megtakarítja a hibakeresési időt.

Ami a Bcachefek áthelyezését a Linux kernel fősodrába illeti, a változtatások nagy mérete (2500 javítás és kb. 90 ezer sornyi kód) miatt az elfogadási folyamat késhet, amit nehéz áttekinteni. Az áttekintés felgyorsítása érdekében egyes fejlesztők azt javasolták, hogy a javítássorozatot kisebb és logikusabban elkülönülő részekre bontsák. A beszélgetés során néhány résztvevő felhívta a figyelmet a projekt egy fejlesztő általi fejlesztésére és annak a veszélyére is, hogy a kód karbantartás nélkül maradhat, ha valami történik a fejlesztővel (két Red Hat alkalmazott érdeklődik a projekt iránt, de munkájuk még tart. korlátozott hibajavítások).

A Bcachefs fejlesztése a Bcache blokk eszköz fejlesztése során már tesztelt technológiák felhasználásával készült, amelyek a gyors SSD-k lassú merevlemezeihez való hozzáférés gyorsítótárazására szolgálnak (a 3.10-es kiadás óta a kernel része). A Bcachefs a Copy-on-Write (COW) mechanizmust használja, amelyben a változtatások nem vezetnek az adatok felülírásához – az új állapot új helyre kerül, ami után az aktuális állapotjelző megváltozik.

A Bcachefs egyik jellemzője a meghajtók többrétegű csatlakoztatásának támogatása, amelyben a tárhely több rétegből áll - a leggyorsabb meghajtók (SSD) az alsó réteghez csatlakoznak, amelyek a gyakran használt adatok gyorsítótárazására szolgálnak, a felső réteg pedig formákat hoz létre. nagyobb kapacitású és olcsóbb lemezek, amelyek kevésbé igényes adatokat tárolnak. A visszaírási gyorsítótár használható a rétegek között. A meghajtók dinamikusan hozzáadhatók és leválaszthatók egy partícióról a fájlrendszer használatának megszakítása nélkül (az adatok automatikusan migrálódnak).

Forrás: opennet.ru

Hozzászólás