A Bcachefs egy modern, copy-on-write Linux fájlrendszer, amely támogatja a titkosítást, a Snapshotokat, a tömörítést és más fejlett funkciókat, és olyan fájlrendszerekkel versenyez, mint a Btrfs és a ZFS. Most fontos mérföldkőhöz érkezett. Egy blogbejegyzésben Kent Overstreet projektvezető bejelentette, hogy a fájlrendszert már nem tekintik kísérletinek.
A hír a Bcachefs 1.38.6 kiadásával együtt érkezett, amely elsősorban teljesítménybeli fejlesztésekre koncentrál.
„Már nem vagyunk kísérletiek. Levettük a címkét a weboldalról – pár hónapja, azt hiszem, a szokásos „a beérkező hibajelentések lassulnak, kevésbé súlyosak, és könnyebb átrágni magunkat rajtuk, mint korábban” alapon. Tekintsétek ezt a megkésett hivatalos bejelentésnek :)”
Ez azonban nem jelenti azt, hogy a Bcachefs minden éles rendszerre azonnal bevethető. Inkább arról van szó, hogy a projekt szerint a fájlrendszer túljutott a kísérleti fázison. A Bcachefs fejlődését követők számára ez így is fontos változás. Az 1.38.6-os verzió két fő fejlesztési területet emel ki: a Reconcile rendszert és az erasure codingot.
A Reconcile egy eszköz- és adatkezelő rendszer. Nyilvántartja, hol van az adat, hol kellene lennie, és mit kell módosítani, ha a fájlrendszer beállításai vagy az eszközök állapota megváltozik. A gyakorlatban ez lehetővé teszi, hogy a Bcachefs a háttérben mozgassa az adatokat, újramásolja őket, vagy olyan módosításokat hajtson végre, mint az erasure coding bekapcsolása, anélkül hogy a felhasználóknak kézzel kellene mozgatniuk az adatokat.
Az erasure codingot sem tekintik már kísérletinek. A Bcachefs Reed–Solomon kódolást használ, ugyanazt a megközelítést, amelyre a RAID5 és RAID6 is épül. A projekt szerint a választott stratégia elkerüli a szokásos RAID „write hole” problémát. A rendszer nem a meglévő stripe-okat frissíti közvetlenül, hanem az új írásokat először replikálja, majd a háttérben alakítja stripe-okká.
A mostani kiadás számos teljesítménybeli fejlesztést is tartalmaz. Overstreet szerint a benchmarkolás és a profilozás több mint 200 javítócsomagot eredményezett a core btree kódban, a journalban és a fájlrendszer kódjában. A fontosabb változtatások között szerepel a gyorsabb tranzakció-commit útvonal, új módszerek a btree kód számára a lockütközések elkerülésére, valamint egy lockmentes journal flush útvonal.
Egy egyetlen eszközös beállításon Overstreet beszámolója szerint a Bcachefs 1.38.6 16,5 GB/s sebességet ért el dbench tesztekben egy 48 magos AMD EPYC 9454 rendszeren, míg az XFS ugyanebben a tesztben 16 GB/s-ot produkált. A mostani kiadásban még nem szereplő további javítócsomagokkal a Bcachefs állítólag 19 GB/s-ig jutott. Fio 4K random write tesztekben a Bcachefs 700 000 IOPS-ot ért el ugyanazon a hardveren, szemben az XFS 1 millió IOPS-os eredményével.
Folyamatban van a munka a Rust-tal is. A Bcachefs userspace kódját már átírták Rust-ra, és a csapat következő lépésként Rust bindingeket tervez hozzáadni a DKMS modulhoz. Kezdetben a Rust-t unit- és teljesítménytesztekhez használják majd, és opcionális függőségként kezelik, mielőtt nagyobb változtatásokat vezetnének be a kernel oldalon.
Ahogy valószínűleg tudod, Overstreet és Torvalds konfliktusa után a Bcachefs kikerült a kernel-ból, és a Linux 6.18 óta DKMS modul formájában érhető el. A projektoldal szerint Linux 6.16-tól felfelé támogatott, és csomagolási megjegyzéseket adnak Gentoo, Void, NixOS, Arch, Debian, Ubuntu, Fedora és openSUSE számára.
Felmerül a kérdés: stabilnak tekinthető már a Bcachefs? A projekt szerint a kísérleti címke eltűnt. Ha azonban fontos adatokhoz vagy üzletileg kritikus rendszerekhez tervezed használni, továbbra is érdemes óvatosnak lenni. A fájlrendszerek Rust-vel építenek ki valódi tapasztalatot, sokféle terhelés, rendszer és hibaszituáció során.
Mindezek ellenére a Bcachefs 1.38.6 több, mint egy újabb kiadás, és a remények szerint a jövőbeli verziók visszahozzák majd a beépített Bcachefs támogatást a Linux kernel-ba, alapértelmezett módon.

