Napredek Bcachefs v jedro Linuxa

Kent Overstreet, avtor vkhodyashchey v sostav yadra Linux sistemy keshirovaniya blokovykh ustroystv na SSD-nakopitelyakh BCache, v svoem vystuplenii na konferentsii LSFMM 2023 (Linux Storage, Filesystem, Memory Management & BPF Summit) obobshchil rezul'taty raboty po prodvizheniyu faylovoy sistemy Bcachefs v osnovnoy sostav yadra Linux i rasskazal o planakh po dal'neyshemu razvitiyu danei FS. V maye dlya retsenzirovaniya i vklyucheniya v osnovnoy sostav yadra Linux byl predlozhen obnovlennyy nabor patchей s realizatsiyey FS Bcachefs. FS Bcachefs razvivaetsya uzhe okolo 10 let. O gotovnosti retsenzirovaniya realizatsii Bcachefs pered vklyucheniem v sostav yadra bylo ob'yavleno yeshche v kontse 2020 goda i v tekushchem variantе patchey uchtyony vyявlennye pri proshlom retsenzirovanii zamechaniya i nedorabotki.

Tseley razrabotki Bcachefs yavyalaye dostiizhenie urovnya XFS v proizvoditel'nosti, nadyozhnosti i masshtabiruemosti, predostavlyaya pri etom dopolnitel'nye vozmozhnosti, svyazannye s Btrfs i ZFS, takiye kak vklyucheniye v razdel neskol'kikh ustroystv, mnogosloynye raskladki nakopiteley, replikatsiya (RAID 1/10), keshirovaniye, prozrachnoye szhatije dannykh (rezhimy LZ4, gzip i ZSTD), srezы sostoyaniya (snapshots), verifikatsiya tseletal'nosti po kontrol'nym summam, vozmozhnost' khraneniya kodov korrektsii oshibok Rida—Solomona (RAID 5/6), khraneniye informatsii v zashchishchennom vide (ispol'zuyutsya ChaCha20 i Poly1305). Po proizvoditel'nosti Bcachefs operezhayet Btrfs i drugie FS na baze mekhanizma Copy-on-Write, i demonstruyeet skorost' raboty, blizkuyu k Ext4 i XFS.

Med zadnjimi dosežki v razvoju Bcachefs je opaziti stabilizacijo implementacije posnetkov, ki so na voljo za zapis. V primerjavi z Btrfs se posnetki v Bcachefs zdaj bistveno bolje prilagajajo in so brez težav, značilnih za Btrfs. V praksi so bili posnetki preizkušeni pri organizaciji varnostnega kopiranja MySQL. V Bcachefs je bila tudi opravljena obsežna dela za izboljšanje skalabilnosti - datotečni sistem se je dobro izkazal pri testiranju v shrambah velikosti 100 TB, v bližnji prihodnosti pa pričakujemo uvedbo Bcachefs v shrambo velikosti 1 PB. Dodan je nov način nocow za izklop mehanizma „copy-on-write“ (nocow). Tečejo načrti, da bi poleti dosegli stabilno stanje implementacije kod za popravilo napak in RAIDZ ter rešili težave z visokim zvišanjem porabe pomnilnika pri obnovi in preverjanju datotečnega sistema s pomočjo orodja fsck.

Glede načrtov za prihodnost se omenja želja, da bi pri razvoju Bcachefs uporabljali programski jezik Rust. Po mnenju avtorja Bcachefs rad programira in ne odpravlja napak v kodi, zato se zdi smešno pisati kodo v jeziku C, ko obstaja boljša različica. Rust je že vključen v Bcachefs v implementaciji nekaterih orodij, ki delujejo v uporabniškem prostoru. Poleg tega se vedno bolj razvija ideja, da bi postopoma popolnoma prepisali Bcachefs v Rust, ker uporaba tega jezika bistveno prihrani čas pri odpravljanju napak.

Kar zadeva promocijo Bcachefs v glavni del jedra Linux, se lahko proces sprejetja zavleče zaradi dovolj velikega obsega sprememb (2500 popravil in približno 90.000 vrstic kode), ki jih je težko pregledati. Za pospešitev pregleda so nekateri razvijalci predlagali razdelitev serije popravil na manjše in logično ločene dele. Med razpravo so nekateri udeleženci tudi opozorili na razvoj projekta s strani enega razvijalca in nevarnost, da bi koda ostala brez podpore, če bi se z njegovim razvijalcem kaj zgodilo (projekta se zanimata dva zaposlenika Red Hat, vendar je njihovo delo zaenkrat omejeno na odpravljanje napak).

Bcachefs se razvija s tehnologijami, že preizkušenimi pri razvoju bloka naprave Bcache, namenjene za predpomnjenje dostopa do počasnih trdih diskov na hitrih SSD pomnilnikih (vključeno v jedro od izdaje 3.10). V Bcachefs se uporablja mehanizem Copy-on-Write (COW), pri katerem spremembe ne povzročijo prepisovanja podatkov - novo stanje se zapiše na novo mesto, po čemer se spremeni kazalec na aktualno stanje.

Posebnost Bcachefs je podpora za večplastno povezovanje pomnilnikov, pri katerem je shranjevanje sestavljeno iz več plasti - na spodnjo plast se povežejo najhitrejši pomnilniki (SSD), ki se uporabljajo za predpomnjenje pogosto uporabljenih podatkov, zgornjo plast pa tvorijo prostorni in cenejši diski, ki zagotavljajo shranjevanje manj iskane podatkov. Med plastmi se lahko uporablja predpomnjenje v načinu zamudnega zapisa (writeback). Pomnilnike je mogoče dinamično dodajati in odklapljati od particije brez prekinitev uporabe datotečnega sistema (podatki se avtomatsko selijo).

Izvor: opennet.ru

Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki 🔥 Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki | ProHoster