datotečni sustav Bcachefs službeno je prestao biti eksperimentalan.

Kent Overstreet objavio je izdanje datotečnog sustava Bcachefs 1.38.6 i službeno povukao oznaku eksperimentalnog razvoja s projekta. U posljednje vrijeme broj prijava problema se smanjio, a otkriveni bugovi su postali manje ozbiljni i složeni.

Izdanje pokriva dva paketa: bcachefs-kernel-dkms s kernel modulom koji se sastavlja pomoću sustava DKMS (Dynamic Kernel Module Support), i bcachefs-tools s korisničkom aplikacijom bcachefs koja implementira naredbe za kreiranje (mkfs), montiranje, oporavak i provjeru FS-a. Paketi su sastavljeni za Debian, Ubuntu, Arch Linux i očekuju se za Fedora, openSUSE i NixOS. DKMS modul podržava rad s Linux kernelima od verzije 6.16.

Unatoč neupadljivom broju verzije, uzrokovanom nedostatkom promjena u disketnom formatu, izdanje 1.38.6 uključuje niz značajnih optimizacija performansi. U kod za rad sa strukturama u btree formatu, vođenjem svakodnevnog unosa i osiguravanjem rada datotečnog sustava uneseno je oko 200 promjena koje poboljšavaju performanse. Logika potvrde transakcija smanjena je na 4KB strojno koda, dodane su optimizacije kako bi se isključila konkurencija za zaključavanje tijekom rada s btree, a proces ispuštanja stanja dnevnika je potpuno oslobođen od zaključavanja.

Na serveru Sa 48-jezgrenom CPU AMD-om, Bcachefs je postigao propusnost od 16.5 GB/s pokrećući 48 klijenata dbench (za usporedbu, XFS je postigao rezultat od 16 GB/s). Pripremljeni su, ali odgođeni do sljedećeg izdanja, patchevi koji podižu performanse u dbench testovima do 19 GB/s (ti patchevi zahtijevaju dodatno testiranje ili promjenu formata diska). Tijekom testiranja s alatkom fio, performanse Bcachefs-a su bile 700 operacija u sekundi pri izvođenju slučajnoga pisanja 4-kilobajtnim blokovima (XFS pokazuje milijun operacija u sekundi u tom testu, dok XFS ograničava remapiranje blokova, a Bcachefs obrađuje cijeli ciklus CoW (Copy-on-Write) s provjerom kontrolnih zbrojeva i ažuriranjem strukture btree).

Osim optimizacija u izdanju Bcachefs 1.38.6, implementirana je podrška za povezivanje do 255 uređaja na jedan FS. U repozitoriju apt.bcachefs.org započelo je formiranje paketa za Ubuntu 26.04. Infrastruktura kontinuirane integracije i automatiziranog testiranja prebačena je na provjeru gradnji na bazi DKMS. U sljedećim mjesecima planiramo fokusirati se na optimizaciju rada datotečnog sustava s više uređaja za pohranu.

Također, nastavlja se rad na prepisivanju koda na jeziku Rust. Ističe se da je podrška za Rust u kernelu dostigla značajnu prekretnicu — svi značajni distribucije pri formiranju paketa s kernelom 7.0 po defaultu aktivirali su postavku CONFIG_RUST za izgradnju kernela s podrškom za Rust. U projektu Bcachefs na Rust već je prepisan set alata
bcachefs-tools, koji se pokreće u user prostoru, uključujući implementaciju API-a za rad sa btree strukturama. U sljedećem izdanju planira se integracija pripremljenih omota na Rust u DKMS-modul kernela i započeti prepisivanje osnovnog koda Bcachefs. Pretpostavlja se da će korištenje Rust-a povećati fleksibilnost, stabilnost i jednostavnost rada s kodom, učiniti projekt zanimljivijim za mlade inženjere i u budućnosti omogućiti formalnu verifikaciju pouzdanosti.

Projektom Bcachefs razvija se datotečni sustav koji ciljano kombinira proširenu funkcionalnost karakterističnu za Btrfs i ZFS s razinom performansi, pouzdanosti i skalabilnosti koja je karakteristična za XFS. Bcachefs podržava mogućnosti kao što su uključivanje više uređaja u jedan dio, višeslojni raspored spremnika (donji sloj s često korištenim podacima na brzim SSD-ovima dok je gornji sloj s manje traženim podacima s tvrdih diskova), replikacija (RAID 1/10), keširanje, prozirno komprimiranje podataka (modovi LZ4, gzip i ZSTD), snimci stanja (snapshots), verifikacija integriteta putem kontrolnih zbrojeva, kodovi za ispravak grešaka, pohrana informacija u šifriranom obliku (korišteni su ChaCha20 i Poly1305).

Među značajnim novinama koje su dodane u Bcachefs tijekom posljednjih mjeseci spominju se:

  • Mehanizam „reconcile” (rebalance_v2), koji, za razliku od načina „rebalance”, omogućava izvršavanje rebalansiranja ne samo podataka (na primjer, repliciranje više kopija na različite pohrane), već i metapodataka u FS-u (na primjer, za prijenos metapodataka nakon dodavanja dodatnog uređaja u bazen). Reconcile se primjenjuje za sve ulazno/izlazne operacije, a ne samo za operacije pozadinskog kopiranja i kompresije. U reconcile-u automatski se uzimaju u obzir promjene postavki uređaja i odmah se ponovo repliciraju degradirani podaci i metapodaci.
  • Podrška za kodove za ispravke grešaka koji omogućuju oporavak oštećenih podataka prema RAID 5/6. Implementacija se temelji na Reed-Solomon kodiranju, koje može ispraviti do N grešaka u stripe-u uz prisustvo N redundantnih blokova. Osigurana je automatska obnova degradiranih stripe-a. Mogućnost korištenja kodova za oporavak primjenjuje se u konfiguracijama s uređajima različitih veličina.

Izvor: opennet.ru

Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere 🔥 Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere | ProHoster