Kent Overstreet publikoval vydanie súborového systému Bcachefs 1.33.0. Vydanie pokrýva dva balíky: bcachefs-kernel-dkms s modulom jadra, ktorý sa zostavuje pomocou systému DKMS (Dynamic Kernel Module Support), a bcachefs-tools s nástrojom bcachefs, ktorý implementuje príkazy na vytváranie (mkfs), montovanie, obnovu a kontrolu FS. Balíky sú zostavené pre Debian, Ubuntu, Fedora, openSUSE, NixOS a Arch Linux. DKMS modul podporuje prácu s jadrami Linuxu od verzie 6.16.
V novej verzii bola pridaná funkcia „reconcile“ (rebalance_v2), ktorá je označovaná ako najvýznamnejšia zmena za posledné dva roky v FS. Na rozdiel od predtým dostupného režimu „rebalance“ umožňuje mechanizmus „reconcile“ vykonať rebalance nielen dát (napríklad replikácia niekoľkých kópií na rôzne úložiská), ale aj metadát v FS (napríklad na prenos metadát po pridaní dodatočného úložiska do pulu). Okrem toho je reconcile teraz aplikovateľný na všetky možnosti vstupu/výstupu, a nie len na operácie na pozadí a kompresiu. V reconcile sú tiež automaticky zohľadnené zmeny možností alebo nastavení zariadení a okamžite sú replikované degradované dáta a metadata.
V reconcile sú zapojené osobitné indexy pre: vysoko prioritné operácie; optimalizáciu spracovania dát na diskových úložiskách; dáta, ktoré sú naplánované na spracovanie, ktoré zatiaľ nie je možné vykonať (napríklad kvôli nedostatku miesta). Pridaná podpora pre vytvorenie súborového systému na jednom úložisku v režime s dvojitou replikáciou (replicas=2) — v takej konfigurácii pridanie druhého úložiska povedie k automatickej replikácii dát na pridaný disk, bez potreby vykonávať akékoľvek akcie používateľom.
Medzi ďalšími zmenami sú:
- Pridané príkazy „reconcile status“ a „reconcile wait“. Pridané možnosti montovania „mount_trusts_udev“ a „writeback_timeout“. Príkazy „data rereplicate“, „data job drop_extra_replicas“ boli presunuté medzi zastarané.
- Pridaný režim obnovy „merge_btree_nodes“, ktorý vykonáva kontrolu všetkých uzlov v btree-štruktúrach podliehajúcich operáciám zlúčenia.
- Pripravili sme kód na prechod na jazyk Rust. Počet použitých príkazov goto sa znížil z 2500 na 600. Namiesto otvorene zakódovaných vektorov bol použitý makro DARRAY(), ktorý poskytuje funkčnosť podobnú dynamickým poľom C++ a Rust. Na spracovanie chýb bol implementovaný makro try(), prevzaté z Rust.
- V tíme „bcachefs fs usage“ bolo zabezpečené správne informovanie o degradovaných dátach.
- Prepracované spracovanie čítačov zobrazených príkazom „bcachefs fs top“. Zjednodušené pridávanie nových čítačov a bola realizovaná možnosť konverzie stopovacích bodov (tracepoint) na výstupné buffre (printbufs).
- Zvýšila sa kvalita chybových hlásení, ktoré teraz obsahujú informácie o typoch zlyhaní (softvérové alebo hardvérové), akcie na odstránenie chyby (napríklad spustenie procesu obnovenia), získané kódy chýb vstupu/výstupu od blokových zariadení, a chýbajúcich zariadeniach. Pri skenovaní štruktúr btree zabezpečený výstup informácií o možnosti obnovenia problémových uzlov.
- Pri zapisovaní do logu bola pridaná možnosť osobitného stanovenia limitov na intenzitu výstupu rôznych typov chýb. Takéto limity umožňujú predchádzať strate hlásení o ojedinelých hardvérových problémoch na pozadí veľkého počtu hlásení o softvérových chybách.
- Pre všetky fázy obnovy boli pridané indikátory pokroku.
Projekt Bcachefs vyvíja súborový systém, ktorý sa zameriava na kombináciu pokročilých funkcií typických pre Btrfs a ZFS, a úrovne výkonu, spoľahlivosti a škálovateľnosti, charakteristickej pre XFS. Bcachefs podporuje možnosti, ako sú zaradenie viacerých zariadení do zväzku, viacúrovňové rozloženie úložiska (dolná vrstva s často používanými údajmi na rýchlych SSD a horná vrstva s menej vyžadovanými údajmi z pevných diskov), replikácia (RAID 1/10), caching, transparentné kompresie dát (režimy LZ4, gzip a ZSTD), snímky stavu (snapshoty), overovanie integrity pomocou kontrolných súčtov, možnosť uchovávania kódov opravy chýb Reed-Solomon (RAID 5/6) a uchovávanie údajov v zašifrovanej forme (využívajú sa ChaCha20 a Poly1305). Pokiaľ ide o výkon, Bcachefs prekonáva Btrfs a ďalšie FS založené na mechanizme Copy-on-Write, a vykazuje rýchlosť porovnateľnú s Ext4 a XFS.
Zdroj: opennet.ru
