Kent Overstreet zveřejnil vydání souborového systému Bcachefs 1.38.6 a oznámil oficiální ukončení projektu s označením experimentálního vývoje. V poslední době se počet příchozích zpráv o problémech snížil a zjištěné chyby se staly méně závažnými a složitými.
Vydání zahrnuje dva balíčky: bcachefs-kernel-dkms s jádrovým modulem, který se sestavuje pomocí systému DKMS (Dynamic Kernel Module Support), a bcachefs-tools s uživatelsky spustitelným nástrojem bcachefs, který implementuje příkazy pro vytváření (mkfs), připojování, obnovu a kontrolu FS. Balíčky jsou sestaveny pro Debian, Ubuntu, Arch Linux a očekávají se pro Fedora, openSUSE a NixOS. Modul DKMS podporuje jádra Linuxu počínaje verzí 6.16.
I přes nezajímavé číslo verze, způsobené absencí změn ve formátu disku, vydání 1.38.6 zahrnuje řadu významných optimalizací výkonu. Do kódu pro práci se strukturami ve formátu btree, žurnálování a zajištění funkčnosti souborového systému bylo provedeno přibližně 200 změn, které zvyšují výkon. Logika potvrzování transakcí byla zúžena na 4KB strojového kódu, přidány optimalizace pro vyloučení vzniku konkurenčních zámků („lock contention“) při práci s btree, proces vymazání stavu žurnálu (journal flush) byl zcela osvobozen od zámků.
Na serveru S 48jádrovým CPU AMD v Bcachefs se podařilo dosáhnout propustnosti 16,5 GB/s při spuštění 48 klientů dbench (pro srovnání, XFS dosáhl výsledku 16 GB/s). Byly připraveny, ale odloženy na další vydání, patche zvyšující výkon v testech dbench až na 19 GB/s (tyto patche vyžadují dodatečné testování nebo změnu formátu disku). Při testování pomocí utilitiy fio byl výkon Bcachefs 700 operací za sekundu při provádění náhodných zápisových operací 4kilobajtovými bloky (XFS při tomto testu vykazuje milion operací za sekundu, přičemž XFS se omezuje na remapování bloků, zatímco Bcachefs zpracovává celý cyklus CoW (Copy-on-Write) s kontrolou kontrolních součtů a aktualizací struktury btree).
Kromě optimalizací ve verzi Bcachefs 1.38.6 byla implementována podpora připojení až 255 zařízení k jednomu souborovému systému. V repozitáři apt.bcachefs.org začalo vytváření balíčků pro Ubuntu 26.04. Infrastruktura kontinuální integrace a automatizovaného testování byla převedena na kontrolu sestavení založenou na DKMS. V následujících několika měsících se plánuje soustředit na optimalizaci práce souborového systému s několika úložnými zařízeními.
Kromě toho pokračuje práce na přepsání kódu v jazyce Rust. Bylo zaznamenáno, že podpora Rustu v jádře dosáhla významného milníku – všechny hlavní distribuce při vytváření balíčků s jádrem 7.0 standardně aktivovaly nastavení CONFIG_RUST pro sestavení jádra s podporou Rustu. V projektu Bcachefs byl v Rustu již přepsán soubor utilit
bcachefs-tools, spuštěný v uživatelském prostoru, včetně implementace API pro práci se strukturami btree. V příštím vydání se plánuje integrace připravených obalů na Rust do DKMS modulu jádra a zahájení přepisování základního kódu Bcachefs. Předpokládá se, že použití Rustu zvýší flexibilitu, stabilitu a snadnost práce s kódem, učiní projekt zajímavějším pro mladé inženýry a umožní v budoucnu provést formální verifikaci spolehlivosti.
Projekt Bcachefs vyvíjí souborový systém, který cílí na kombinaci rozšířené funkčnosti charakteristické pro Btrfs a ZFS a úrovně výkonu, spolehlivosti a škálovatelnosti typické pro XFS. Bcachefs podporuje takové možnosti, jako je zahrnutí několika zařízení do oddílu, vícestupňové rozložení úložišť (spodní vrstva s často používanými daty na rychlých SSD a horní vrstva s méně žádanými daty z pevných disků), replikace (RAID 1/10), cachování, transparentní kompresi dat (módy LZ4, gzip a ZSTD), snímky stavu (snapshots), ověřování integrity pomocí kontrolních součtů, kódy pro opravu chyb, uchovávání informací v zašifrované podobě (využívají se ChaCha20 a Poly1305).
Mezi významné novinky, které byly do Bcachefs přidány v posledních měsících, patří:
- Mechanismus „reconcile“ (rebalance_v2), který na rozdíl od režimu „rebalance“ umožňuje provádět rebalance nejen dat (například replikaci několika kopií na různé úložné zařízení), ale i metadat v souborovém systému (například pro přesun metadat po přidání dalšího úložného zařízení do skladu). Reconcile se uplatňuje pro všechny operace vstupu/výstupu, nejen pro operace na pozadí kopírování a komprese. V reconcile se automaticky zohledňují změny nastavení zařízení a okamžitě se zreplikují degradovaná data a metadata.
- Podpora chybových korekčních kódů, které umožňují obnovit poškozená data podobně jako RAID 5/6. Implementace je založena na Reed-Solomon kódování, které může opravit až N chyb ve stripe při přítomnosti N nadbytečných bloků. Zajištěna je automatická obnova degradovaných stripe. Možnost použití obnovovacích kódů je aplikovatelná v konfiguracích s úložišti různých velikostí.
Zdroj: opennet.ru
