Kent Overstreet publikoi versionin e sistemës së skedarëve Bcachefs 1.38.6 dhe shpalli zyrtarisht heqjen e etiketës së zhvillimit eksperimental nga projekti. Në kohët e fundit, numri i mesazheve për probleme ka rënë, ndërsa defektet e identifikuara janë bërë më pak serioze dhe komplekse.
Versioni përfshin dy paketa: bcachefs-kernel-dkms me modulin e bërjes së kernelit që ndërttohet me sistemin DKMS (Dynamic Kernel Module Support), dhe bcachefs-tools me utilitarin bcachefs që ekzekutohet në hapësirën e përdoruesit, që realizon komandat për krijimin (mkfs), montimin, rikuperimin dhe verifikimin e FS. Paketa janë ndërtuar për Debian, Ubuntu, Arch Linux dhe priten për Fedora, openSUSE dhe NixOS. Moduli DKMS mbështet punën me kernelat Linux, duke filluar nga 6.16.
Pavarësisht numrit të zakonshëm të versionit, i cili nuk ka ndryshime në formatin e diskut, versioni 1.38.6 përmban një numër optimizimesh të rëndësishme të performancës. Në kodin për punën me struktura në formatin btree, regjistrimin dhe mbështetje për funksionimin e sistemit të skedarëve janë bërë rreth 200 ndryshime që rrisin performancën. Logjika e konfirmimit të transaksioneve është ngjeshur në 4KB kod makinerie, janë shtuar optimizime për të eliminuar paraqitjen e bllokimeve konkurruese ('lock contention') gjatë punës me btree, dhe është eliminuar plotësisht bllokimi i procesit të shlirimit të gjendjes së regjistrit (journal flush).
Në server me CPU AMD 48-bërthamor në Bcachefs arritëm një kapacitet prej 16.5 GB/sec duke ekzekutuar 48 klientë dbench (për krahasim, në XFS u arrit një rezultat prej 16 GB/sec). Patch-et janë përgatitur, por janë shtyrë për versionin tjetër, që rrisin performancën në testet dbench deri në 19 GB/sec (këto patch kërkojnë testim të mëtejshëm ose ndryshime në formatin e diskut). Në testimin me utilitarin fio, performanca e Bcachefs ishte 700 operacione në sekondë gjatë ekzekutimit të operacioneve të shkruarjes së rastësishme me blloqe 4-kilobajtësh (XFS tregon në këtë test një milion operacione në sekondë, ndonëse XFS kufizohet nga rimapimi i blloqeve, ndërsa Bcachefs proceson ciklin e plotë CoW (Copy-on-Write) me verifikimin e kontrolleve të shumave dhe përditësimin e strukturës btree).
Përveç optimizimeve në lëshimin Bcachefs 1.38.6, është implementuar mbështetje për lidhjen e deri në 255 pajisjeve në një sistem skedarësh. Në depozitën apt.bcachefs.org ka filluar formimi i paketave për Ubuntu 26.04. Infrastrukturën e integrimit të vazhdueshëm dhe testimit automatizuar e kemi transferuar në verifikimin e ndërtimeve mbi bazën e DKMS. Në muajt e ardhshëm, planifikohet të përqendrohemi në optimizimin e punës së sistemit skedarësh me disa pajisje ruajtjeje.
PĂ«r mĂ« tepĂ«r, vazhdon puna pĂ«r rishkrimin e kodit nĂ« gjuhĂ«n Rust. ShĂ«nohet se mbĂ«shtetja pĂ«r Rust nĂ« bĂ«rthamĂ« ka arritur njĂ« pikĂ« tĂ« rĂ«ndĂ«sishme â tĂ« gjitha shpĂ«rndarjet e rĂ«ndĂ«sishme, gjatĂ« formimit tĂ« paketave me bĂ«rthamĂ«n 7.0, aktivizuan njĂ«herazi konfigurimin CONFIG_RUST pĂ«r ndĂ«rtimin e bĂ«rthamĂ«s me mbĂ«shtetje pĂ«r Rust. NĂ« projektin Bcachefs kanĂ« pĂ«rfunduar tashmĂ« rishkrimi i njĂ« grupi utilitesh nĂ« Rust.
bcachefs-tools, i cili ekzekutohet në hapësirën e përdoruesit, duke përfshirë implementimin e API-së për punën me struktura btree. Në lëshimin e ardhshëm planifikohet të integrohen mbështetje të përgatitura në Rust në modulin DKMS të bërthamës dhe të fillohet rishkrimi i kodit bazë të Bcachefs. Pritet që përdorimi i Rust të rrisë fleksibilitetin, stabilitetin dhe lehtësinë e punës me kodin, ta bëjë projektin më tërheqës për inxhinierët e rinj dhe të mundësojë në të ardhmen realizimin e verifikimit formal të besueshmërisë.
Projekti Bcachefs po zhvillon një sistem skedarësh, i cili është i orientuar drejt kombinimit të funksionaliteteve të avancuara, të tipit Btrfs dhe ZFS, dhe nivelit të performancës, besueshmërisë dhe shkallëzueshmërisë, karakteristik për XFS. Bcachefs mbështet mundësi të tilla si integrimi në një pjesë të disa pajisjeve, konfigurime me shumë shtresa të ruajtësve (shtresa e poshtme me të dhëna të përdorura shpesh mbi SSD të shpejtë, ndërsa shtresa e sipërme me të dhëna më pak të kërkuara nga disqet e forta), riprodhim (RAID 1/10), memorizim, kompresim transparent të të dhënave (modet LZ4, gzip dhe ZSTD), snapshot-e, verifikimin e integritetit përmes kontrolleve të shumave, kodeve për korrigjimin e gabimeve, ruajtjen e informacionit në formë të koduar (duke përdorur ChaCha20 dhe Poly1305).
Nga risitë e rëndësishme të shtuara në Bcachefs gjatë muajve të fundit, përmenden:
- Mekanizmi «reconcile» (rebalance_v2), që ndryshe nga moda «rebalance» lejon të realizohet rebalance jo vetëm i të dhënave (për shembull, riprodhimi i disa kopjeve në disqe të ndryshme), por edhe i metadata në FS (për shembull, për të transferuar metadata pas shtimit të një disku të ri në pool). Reconcile është i aplicueshëm për të gjitha operacionet e hyrje/dalje, dhe jo vetëm për operacionet e kopjimit në sfond dhe kompresimit. Në reconcile, ndryshimet në konfigurimin e pajisjeve merren automatikisht parasysh dhe të dhënat dhe metadata të degraduara riprodhohen menjëherë.
- Mbështetje për kodet e korrigjimit të gabimeve, të cilat lejojnë rikuperimin e të dhënave të dëmtuara në përputhje me RAID 5/6. Implementimi bazohet në kodimin e Reed-Solomon, i cili është në gjendje të korigjojë deri në N gabime në stripe në prani të N blloqeve të tepërt. Rindërtimi automatik i stripeve të degraduara është i garantuar. Mundësia e aplikimit të kodit të rikuperimit është e aplikueshme në konfigurime me disqe të ndryshme në madhësi.
Burimi: opennet.ru
