Kent Overstreet har publicerat version 1.38.6 av filsystemet Bcachefs och meddelat att projektets experimentella utvecklingsstatus officiellt har tagits bort. Antalet inrapporterade problem har nyligen minskat, och de fel som har identifierats har blivit mindre allvarliga och komplexa.
Versionen omfattar tvÄ paket: bcachefs-kernel-dkms med en kÀrnmodul som byggs med hjÀlp av DKMS (Dynamic Kernel Module Support), och bcachefs-tools med ett anvÀndarutrymmesverktyg bcachefs, som implementerar kommandon för att skapa (mkfs), montera, ÄterstÀlla och verifiera filsystemet. Paketen Àr byggda för Debian, Ubuntu, Arch Linux och vÀntas för Fedora, openSUSE och NixOS. DKMS-modulen stöder arbete med Linux-kÀrnor frÄn och med version 6.16.
Trots det oanseliga versionsnumret, som beror pÄ bristen pÄ Àndringar i diskformatet, innehÄller version 1.38.6 en rad betydande prestandaoptimeringar. Koden för att ta itu med strukturer i btree-format, journalföring och filsystemets funktion har genomgÄtt cirka 200 Àndringar som ökar prestandan. Logiken för transaktionsbekrÀftelse har komprimerats till 4 kB maskinkod, och optimeringar har lagts till för att förhindra uppkomsten av lÄsningkonkurrens nÀr man arbetar med btree, fullt befriad frÄn lÄsning för journalens tillstÄndsflush.
PÄ servern Med en 48-kÀrnig AMD-CPU lyckades Bcachefs uppnÄ en genomströmning pÄ 16,5 GB/s med 48 dbench-klienter (jÀmfört med resultatet pÄ 16 GB/s för XFS). Patchar som Àr förberedda men uppskjutna till nÀsta version kommer att öka prestandan i dbench-testerna till 19 GB/s (dessa patchar krÀver ytterligare testning eller Àndring av diskformatet). Vid test med verktyget fio uppnÄdde Bcachefs 700 operationer per sekund vid genomförande av slumpmÀssiga skrivarbeten med 4-kilobyte block (XFS visar en miljon operationer per sekund i detta test, trots att XFS begrÀnsas av blockomkoppling, medan Bcachefs hanterar hela CoW-cykeln (Copy-on-Write) med kontrollsummeverifiering och uppdatering av btree-strukturen).
Förutom optimeringar i version 1.38.6 av Bcachefs har stöd för anslutning av upp till 255 enheter till ett filsystem implementerats. Paketering för Ubuntu 26.04 har pÄbörjats i apt.bcachefs.org. Infrastruktur för kontinuerlig integration och automatiserad testning har övergÄtt till att verifiera byggnader baserat pÄ DKMS. Under de kommande mÄnaderna planeras fokus pÄ att optimera filsystemets prestanda med flera lagringsenheter.
Dessutom fortsÀtter arbetet med att skriva om koden i Rust. Det noteras att stödet för Rust i kÀrnan har nÄtt en milstolpe - alla betydande distributioner har aktiverat instÀllningen CONFIG_RUST som standard för byggnation av kÀrnan med stöd för Rust i version 7.0. I projektet Bcachefs har ett set av verktyg redan skrivits om i Rust.
bcachefs-tools som körs i anvÀndarens utrymme, inklusive implementeringen av API för att arbeta med btree-strukturer. I nÀsta version planeras en integration av de förberedda Rust-wrapperna i DKMS-modulen för kÀrnan och en omarbetning av den grundlÀggande koden för Bcachefs. Det förvÀntas att anvÀndningen av Rust kommer att öka flexibiliteten, stabiliteten och anvÀndarvÀnligheten i koden, vilket gör projektet mer attraktivt för unga ingenjörer och möjliggör formell verifiering av tillförlitlighet i framtiden.
Bcachefs-projektet utvecklar ett filsystem som syftar till att kombinera den utökade funktionaliteten hos Btrfs och ZFS med den nivÄ av prestanda, tillförlitlighet och skalbarhet som kÀnnetecknar XFS. Bcachefs stöder funktioner sÄsom inkludering av flera enheter i ett partition, flerlagers lagringslayout (den nedre lagret med ofta anvÀnda data baserat pÄ snabba SSD:er och det översta lagret med mindre begÀrda data frÄn hÄrddiskar), replikering (RAID 1/10), caching, transparent datakomprimering (LZ4, gzip och ZSTD-lÀgen), tillstÄndsklippningar (snapshots), integritetsverifiering med kontrollsummor, felkorrigeringskoder, lagring av information i krypterad form (anvÀnder ChaCha20 och Poly1305).
Bland de viktiga nyheterna som lagts till i Bcachefs under de senaste mÄnaderna nÀmns:
- Mekanismen "reconcile" (rebalance_v2), som till skillnad frĂ„n "rebalance"-lĂ€get gör det möjligt att utföra ombalansering inte bara av data (till exempel replikering av flera kopior pĂ„ olika lagringsenheter) utan ocksĂ„ av metadata i filsystemet (till exempel för att flytta metadata efter att en ny lagringsenhet har lagts till i poolen). Reconcile Ă€r tillĂ€mpligt för alla I/O-operationer, inte bara bakgrundskopiering och komprimering. Ăndringar i enhetsinstĂ€llningarna beaktas automatiskt i reconcile, och degraderade data och metadata replikeras omedelbart.
- Stöd för felkorrektionskoder som möjliggör ÄterstÀllning av skadade data liknande RAID 5/6. Implementeringen Àr baserad pÄ Reed-Solomon-kodning, som kan korrigera upp till N fel i en stripe nÀr N redundanta block finns. Automatisk ÄterstÀllning av degraderade striper sÀkerstÀlls. Möjligheten att anvÀnda ÄterstÀllningskoder Àr tillÀmplig i konfigurationer med lagringsenheter av olika storlekar.
KĂ€lla: opennet.ru
