Sistemul de fișiere Bcachefs a încetat oficial să mai fie experimental

Kent Overstreet a publicat versiunea sistemului de fișiere Bcachefs 1.38.6 și a anunțat oficial eliminarea etichetei de dezvoltare experimentală de pe proiect. În ultima vreme, numărul mesajelor primite referitoare la probleme s-a redus, iar erorile identificate au devenit mai puțin grave și complexe.

Lansarea acoperă două pachete: bcachefs-kernel-dkms cu modulul nucleului compilat folosind sistemul DKMS (Dynamic Kernel Module Support) și bcachefs-tools cu utilitarul bcachefs care rulează în spațiul utilizatorului, implementând comenzi pentru crearea (mkfs), montarea, restaurarea și verificarea FS. Pachetele sunt compilate pentru Debian, Ubuntu, Arch Linux și se așteaptă pentru Fedora, openSUSE și NixOS. Modul DKMS suportă lucrul cu nuclei Linux începând cu 6.16.

În ciuda numărului de versiune nesemnificativ, datorită absenței modificărilor în formatul de disc, versiunea 1.38.6 include o serie de optimizări semnificative ale performanței. În codul pentru lucrul cu structurile în format btree, jurnalizare și asigurarea funcționării sistemului de fișiere au fost implementate aproximativ 200 de modificări care îmbunătățesc performanța. Logica de confirmare a tranzacțiilor a fost compactată la 4KB de cod mașină, adăugând optimizări pentru a preveni apariția blocajelor concurente („lock contention”) în timpul lucrului cu btree, iar procesul de curățare a jurnalului (journal flush) este complet eliminat de blocaje.

Pe server Cu un CPU AMD cu 48 de nuclee, Bcachefs a reușit să obțină o lățime de bandă de 16.5 GB/sec la rularea a 48 de clienți dbench (pentru comparație, XFS a obținut un rezultat de 16 GB/sec). Patch-uri pregătite, dar amânate până la următoarea lansare, îmbunătățesc performanța în testele dbench până la 19 GB/sec (aceste patch-uri necesită teste suplimentare sau modificări ale formatului de disc). În timpul testării cu utilitarul fio, performanța Bcachefs a fost de 700 de operații pe secundă la efectuarea operațiunilor de scriere aleatorie cu blocuri de 4 kilobyte (XFS demonstrează în acest test un milion de operații pe secundă, în timp ce XFS este limitat de remaparea blocurilor, iar Bcachefs gestionează întreg ciclul CoW (Copy-on-Write) cu verificarea sumelor de control și actualizarea structurii btree).

În plus față de optimizările din versiunea Bcachefs 1.38.6, a fost implementat suportul pentru conectarea a până la 255 de dispozitive la un singur FS. În depozitul apt.bcachefs.org au început să fie formate pachete pentru Ubuntu 26.04. Infrastructura de integrare continuă și testare automatizată a fost transferată pentru verificarea construcțiilor bazate pe DKMS. În următoarele câteva luni, se va pune accent pe optimizarea funcționării sistemului de fișiere cu mai multe dispozitive de stocare.

De asemenea, se continuă lucrările de rescriere a codului în limbajul Rust. Se observă că suportul pentru Rust în kernel a atins un moment semnificativ — toate distribuțiile importante, în timpul formării pachetelor cu kernel 7.0, au activat în mod implicit setarea CONFIG_RUST pentru compilarea kernel-ului cu suport pentru Rust. În proiectul Bcachefs, un set de utilitare a fost deja rescris în Rust.
bcachefs-tools, care rulează în spațiul utilizatorului, inclusiv implementarea API-ului pentru lucrul cu structuri btree. În următoarea versiune, se intenționează integrarea legăturilor pregătite în Rust în modulul DKMS din kernel și începerea rescrierii codului de bază Bcachefs. Se presupune că utilizarea Rust va spori flexibilitatea, stabilitatea și ușurința în lucrul cu codul, făcând proiectul mai atractiv pentru inginerii tineri și va permite în viitor realizarea verificării formale a fiabilității.

Proiectul Bcachefs dezvoltă un sistem de fișiere destinat combinării funcționalităților avansate caracteristice Btrfs și ZFS cu nivelul de performanță, fiabilitate și scalabilitate specific XFS. Bcachefs susține funcționalități precum includerea mai multor dispozitive în partajare, aranjamente de stocare stratificate (stratul inferior cu datele utilizate frecvent pe SSD-uri rapide, iar stratul superior cu datele mai puțin solicitate de pe hard disk-uri), replicare (RAID 1/10), caching, compresie transparentă a datelor (moduri LZ4, gzip și ZSTD), instantanee (snapshots), verificare a integrității prin sume de control, coduri de corecție a erorilor, stocarea informațiilor în formă criptată (folosind ChaCha20 și Poly1305).

Printre inovațiile semnificative adăugate în Bcachefs în ultimele luni se numără:

  • Mecanismul „reconcile” (rebalance_v2), care, spre deosebire de modul „rebalance”, permite realizarea reechilibrării nu doar a datelor (de exemplu, replicarea mai multor copii pe diferite unități de stocare), ci și a metadatelor în FS (de exemplu, pentru transferul metadatelor după adăugarea unei unități suplimentare în pool). Reconcile este aplicabil pentru toate operațiunile de intrare/ieșire, nu doar pentru operațiunile de copiere de fond și compresie. În reconcile, modificările setărilor dispozitivelor sunt luate automat în considerare și datele și metadatele degradate sunt imediat replicat.
  • Suport pentru coduri de corecție a erorilor, care permit recuperarea datelor deteriorate, în mod similar cu RAID 5/6. Implementarea se bazează pe codificarea Reed-Solomon, capabilă să corecteze până la N erori într-un stripe, în prezența N blocuri redundante. Este asigurată recuperarea automată a striților degradați. Posibilitatea utilizării codurilor de recuperare este aplicabilă în configurații cu unități de stocare de dimensiuni diferite.

Sursa: opennet.ro

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster