Bcachefs je sistem datoteka za kopiranje na upisivanje za operativne sisteme zasnovane na Linuxu.
Prije nekoliko dana, Kent Overstreet je najavio izlazak Bcachefs 1.33.0 , nove verzije datotečnog sistema koja uvodi duboke strukturne promjene u upravljanju podacima i arhitekturi njegovog izvornog koda.
Ovo ažuriranje se obeležava kao jedno od najznačajnijih u poslednje dve godine, fokusirajući se na integritet metapodataka i modernizaciju C kodne baze.
"Usklađivanje": Nova era za integritet podataka
Najznačajnija nova funkcija, opisana kao najznačajnija promjena u posljednje dvije godine, jeste uvođenje funkcije usklađivanja (rebalance_v2) . Ovaj novi mehanizam zamjenjuje stari sistem "rebalansiranja" i rješava jedno od njegovih glavnih ograničenja: sistem sada može upravljati i premještati ne samo korisničke podatke već i metapodatke datotečnog sistema.
Rebalance_v2 djeluje proaktivno i automatski. Ako se u niz doda novi disk ili se promijene opcije redundancije, Bcachefs će odmah početi replicirati i ispravljati sve oštećene podatke ili metapodatke, koristeći odvojene indekse za određivanje prioriteta kritičnih operacija. Ovo osigurava održavanje integriteta sistema čak i tokom intenzivnih operacija održavanja.
Čišćenje koda i priprema za zaštitu od hrđe
Ispod haube, verzija 1.33.0 donosi masovno restrukturiranje C koda kako bi ga učinila sigurnijim i kompatibilnijim s budućom implementacijom u... rđaProgramer je izvršio dubinsko čišćenje, smanjujući broj izjava. goto sa 2.500 na samo 600, što znatno pojednostavljuje logički tok programa.
Osim toga, uvedeni su i novi makroi, kao što su DARRAY() y try()Ovo je dizajnirano da oponaša dinamičko ponašanje vektora i rukovanje greškama Rusta i C++-a. Ovo ne samo da modernizuje trenutni kod, već će i olakšati prenosivost i smanjiti površinu memorijskih grešaka u budućnosti.
Poboljšana dijagnostika i fleksibilnost skladištenja
Imajući u vidu administraciju sistema, ova verzija drastično poboljšava jasnoću poruka o greškama . Bcachefs sada može razlikovati i komunicirati da li je kvar uzrokovan softverskom greškom ili fizičkim hardverskim problemom, čak i predlažući potrebne korake za oporavak. Ovo je ključno kako bi se izbjegle pogrešne dijagnoze gdje se datotečni sistem okrivljuje za kvar diska.
Ova transparentnost se proteže na nekoliko nivoa:
- Detaljne I/O greške: Kada blokovski sloj prijavi grešku, Bcachefs sada prenosi specifični kod (kao što je
BLK_STS_IOERR), što pomaže u utvrđivanju da li je fizički disk krivac. - Greške pri montaži: Ako nedostaju uređaji za sastavljanje volumena, sistem sada tačno pokazuje koja jedinica nedostaje, prikazujući njeno ime i model na osnovu posljednjeg puta kada je viđena.
- Ograničenja stope grešaka: Granice za "meke" (softverske) i "hardverske" (hardverske) greške su odvojene, što osigurava da poplava manjih grešaka ne maskira kritični kvar diska.
Osim toga, naredba bcachefs fs top Poboljšano je. Interni brojači sada prikazuju brzine prijenosa podataka umjesto samo statičnih brojeva, što znatno olakšava povezivanje događaja (kao što su data_update_fail) sa padom performansi u realnom vremenu.
Optimizacije u B-trees-u i nove opcije montiranja
Ispod haube, performanse pri velikim opterećenjima su poboljšane zahvaljujući promjenama u upravljanju B-stablom. Spajanje praznih čvorova sada se odvija asinhrono, eliminirajući uska grla u baferu za pisanje. Osim toga, dodat je opcioni prolaz za oporavak. merge_btree_nodes, za ručnu optimizaciju strukture stabla ako je potrebno.
Još jedna vrlo praktična dodatna funkcija je mogućnost pokretanja datotečnog sistema s konfiguracijom replicas=2 na jednom diskuOvo omogućava korisnicima da počnu s jednim diskom znajući da sistem "mora" imati redundanciju; čim se poveže drugi disk, Bcachefs automatski replicira podatke bez potrebe za složenom ručnom intervencijom.
Konačno, vrijedi spomenuti da nova verzija, koja je već dostupna za distribucije poput Debiana, Fedore, Arch Linuxa i NixOS-a, zahtijeva Linux kernel 6.16 ili noviji i distribuira se u dva osnovna paketa: kernel modul (bcachefs-kernel-dkms) i korisnički alati (bcachefs-tools).