Kent Overstreet publikoi versionin 1.33.0 të sistemit të skedarëve Bcachefs. Versioni përfshin dy paketa: bcachefs-kernel-dkms me modulin e bërjes së kernelit, i mbledhur me sistemin DKMS (Dynamic Kernel Module Support), dhe bcachefs-tools me utilitarin bcachefs, i cili zbatohet në hapësirën e përdoruesit për të realizuar komandat për krijimin (mkfs), montimin, rikuperimin dhe verifikimin e FS. Paketat janë ndërtuar për Debian, Ubuntu, Fedora, openSUSE, NixOS dhe Arch Linux. Moduli DKMS mbështet punën me kernelat Linux, duke filluar nga 6.16.
Në versionin e ri është shtuar funksionaliteti "reconcile" (rebalance_v2), i cili është shënuar si një nga ndryshimet më të mëdha në FS gjatë dy viteve të fundit. Ndryshe nga moda e mëparshme "rebalance", mekanizmi "reconcile" lejon që të kryhet ribalancimi jo vetëm i të dhënave (p.sh., riplikimi i kopjave të shumta në disqe të ndryshme), por edhe i metadave në FS (p.sh., për të transferuar metadatë pas shtimit të një disku të ri në grup). Për më tepër, reconcile tani është i aplikueshëm për të gjitha opsionet e hyrjes/daljes, dhe jo vetëm për operacionet e kopjimit në sfond dhe kompresimit. Në reconcile gjithashtu automatikisht merren parasysh ndryshimet në opsionet ose konfigurimet e pajisjeve dhe menjëherë riplikohen të dhënat dhe metadatë të degraduara.
Në reconcile angazhohen indekse të veçanta për: operacione me prioritet të lartë; optimizimin e përpunimit të të dhënave në pajisjet e ruajtjes; të dhënat që janë planifikuar për përpunim, por që për momentin nuk mund të realizohen (p.sh., për shkak të mungesës së hapësirës). Shtuar mbështetje për krijimin e një sistemi skedarësh në një pajisje në modalitetin me replikimin e dyfishtë (replicas=2) — në këtë konfigurim, shtimi i pajisjes së dytë do të çojë në replikimin automatik të të dhënave në diskun e shtuar, pa nevojën e ndonjë veprimi nga ana e përdoruesit.
Ndër ndryshimet e tjera:
- Shtuar komandat «reconcile status» dhe «reconcile wait». Shtuar opsionet e montimit «mount_trusts_udev» dhe «writeback_timeout». Komandat «data rereplicate» dhe «data job drop_extra_replicas» janë shpallur të papërdorshme.
- Shtuar modaliteti i rikuperimit «merge_btree_nodes», i cili kryen kontrollin e të gjitha nyjeve në strukturat btree që bien nën operacionet e bashkimit.
- Është bërë përgatitja e kodit për kalimin në përdorimin e gjuhës Rust. Numri i operacioneve goto në kod është reduktuar nga 2500 në 600. Në vend të vektorëve të koduar hapur, është përdorur makrosi DARRAY(), i cili ofron funksionalitet të ngjashëm me array-t dinamikë në C++ dhe Rust. Për trajtimin e gabimeve është përdorur makrosi try(), e marrë nga Rust.
- Në komandën «bcachefs fs usage» është siguruar informacion i saktë për të dhënat e degraduara.
- Është riardhëruar trajtimi i numrave që shfaqen në komandën «bcachefs fs top». Është thjeshtuar shtimi i numrave të rinj dhe është realizuar mundësia e transformimit të pikave të gjurmimit (tracepoint) në buffer-a të daljes (printbufs).
- Është rritur cilësia e mesazheve të gabimeve, të cilat tani përfshijnë informacion mbi llojet e dështimeve (softuerore ose harduerike), veprimet për zgjidhjen e gabimeve (p.sh., nisja e një procesi rikuperimi), dhe kodet e gabimeve të hyrje/daljes nga pajisjet bllok që mungojnë. Gjatë skanimit të strukturave btree, është siguruar output i informacionit mbi mundësinë e rikuperimit të nyjeve problematike.
- Në regjistrimin e logut është shtuar mundësia për të përcaktuar ndarazi kufijtë për intensitetin e shpërndarjes së llojeve të ndryshme të gabimeve. Kufijtë e tillë ndihmojnë në parandalimin e humbjes së mesazheve për probleme të vetme harduerike përballë një numri të madh mesazhesh për gabime softuerike.
- Për të gjitha fazat e rikuperimit janë shtuar tregues progresi.
Projekti Bcachefs zhvillon një sistem skedarësh i orientuar për të kombinuar funksionalitetin e avancuar të Btrfs dhe ZFS me nivelin e performancës, besueshmërisë dhe shkallueshmërisë karakteristik për XFS. Bcachefs mbështet mundësi të tilla si përfshirja në particion disa pajisjesh, organizime të shumëfishta të pajisjeve (niveli i poshtëm me të dhëna të përdorura shpesh mbi SSD të shpejta, dhe niveli i sipërm me të dhëna më pak të kërkuara nga disqet e ngurtë), replikim (RAID 1/10), caching, komprimim transparent të të dhënave (modet LZ4, gzip dhe ZSTD), kopje të gjendjes (snapshot-e), verifikim të integritetit përmes kontrolleve të shumtë, mundësinë e ruajtjes së kodeve të korrigjimit të gabimeve të Reed-Solomon (RAID 5/6), ruajtjen e informacionit në formë të shkruar (përdoren ChaCha20 dhe Poly1305). Në performancë, Bcachefs përparon Btrfs dhe sistemet e tjera të skedarëve të bazuara në mekanizmin Copy-on-Write dhe tregon shpejtësi operimi afër Ext4 dhe XFS.
Burimi: opennet.ru
