Kent Overstreet avaldas Bcachefs 1.33.0 failisüsteemi väljalaske. Väljalase hõlmab kahte paketti: bcachefs-kernel-dkms, mis sisaldab tuumamoodulit, mis koostatakse DKMS (Dynamic Kernel Module Support) süsteemi abil, ja bcachefs-tools, mis sisaldab kasutajaruumi utiliiti bcachefs, mis rakendab käsklusi failisüsteemi loomiseks (mkfs), monteerimiseks, taastamiseks ja kontrollimiseks. Pakette on koostatud Debian, Ubuntu, Fedora, openSUSE, NixOS ja Arch Linux jaoks. DKMS-moodul toetab töötlust Linuxi kernelnitega alates versioonist 6.16.
Uues versioonis on lisatud funktsionaalsus "reconcile" (rebalance_v2), mida peetakse viimase kahe aasta kõige olulisemaks muudatuseks failisüsteemis. Erinevalt varasemast "rebalance" režiimist võimaldab "reconcile" andmete (näiteks mitme koopia replitseerimise erinevatesse salvestusseadmetesse) ja failisüsteemi metaandmete (näiteks metaandmete ülekandmine pärast uue salvestusseadmepiiri lisamist) rebalanceerimist. Lisaks rakendub reconcile nüüd kõigile sisend/väljund valikutele, mitte ainult taustakoorimise ja tihendamise operatsioonidele. Reconcile'is arvestatakse automaatselt seadmete valikute või seadistuste muutusi ja taastatakse kohe degradeeritud andmed ja metaandmed.
Reconcile'is kasutatakse eraldi indekseid: kõrge prioriteediga operatsioonide jaoks; andmete töötlemise optimeerimise jaoks kettaseadmetel; andmete jaoks, mis on kavandatud töötlemiseks, mida ei ole võimalik veel täita (näiteks ruumi puudumise tõttu). Lisatud on toetus failisüsteemi loomiseks ühes salvestusseadmepiiris kahekordse replikatsiooni režiimis (replicas=2) — sellises konfiguratsioonis toob teise salvestusseadme lisamine kaasa automaatse andmete replikatsiooni uuele kettale, ilma et kasutaja peaks täiendavaid toiminguid tegema.
Muudatused hõlmavad järgmist:
- Lisatud käsud "reconcile status" ja "reconcile wait". Lisatud on monteerimisvalikud "mount_trusts_udev" ja "writeback_timeout". Vana käsud "data rereplicate" ja "data job drop_extra_replicas" on muudetud aegunuks.
- Lisatud taastamisrežiim "merge_btree_nodes", mis kontrollib kõiki sõlmi btree-struktuurides, mis kuuluvad liitmisoperatsioonide alla.
- Koodi on ette valmistatud üleminekuks Rust keele kasutamisele. Koodis kasutatavate goto-operatsioonide arv on vähendatud 2500-lt 600-le. Kõvakooditud vektorite asemel on kasutusele võetud makro DARRAY(), mis pakub sarnast funktsionaalsust nagu C++ ja Rust dünaamilised massiivid. Veakäsitluseks on kasutusele võetud makro try(), laenatud Rustist.
- Käskluses «bcachefs fs usage» on tagatud korrektne teavitamine degradeerunud andmetest.
- Näidikute töötlemine, mida kuvab käsk «bcachefs fs top», on ümber tehtud. Uute näidikute lisamine on lihtsustatud ja on võimalik jälgimispunktid (tracepoint) muundada väljundibufriteks (printbufs).
- Veateated on paranenud ja sisaldavad nüüd teavet rike tüüpide (programmeerimis- või riistvararikked), veateate kõrvaldamise tegevuste (näiteks taastamisprotsessi käivitamine) ja blokaalseadmetelt saadud sisendi/väljundi veakoodide, puuduvate seadmete kohta. btree-struktuuride skaneerimisel on tagatud teave probleemsete sõlmede taastamisvõimaluste olemasolu kohta.
- Logisse kirjutamisel on lisatud võimalus eraldi määrata erinevate veatüüpide väljundite intensiivsuse piiranguid. Tõhusad piirangud aitavad vältida üksikute riistvaraprobleemide teadete kadumist suure arvu tarkvaraveateadete taustal.
- Kõikide taastamisetappide jaoks on lisatud edenemise näidikud.
Bcachefs on projekt, mis arendab failisüsteemi, mis ühendab endas Btrfs-ile ja ZFS-ile iseloomulikku laiendatud funktsionaalsust ning XFS-ile iseloomulikke jõudlust, usaldusväärsust ja skaleeritavust. Bcachefs toetab selliseid võimalusi nagu mitme seadme kaasamine ja mitmekihilised salvestuslahendused (alumine kiht kiirete SSD-dega sageli kasutatavate andmete jaoks ja ülemine kiht vähem nõudlike andmete jaoks kõvaketastelt), replikeerimine (RAID 1/10), vahemälude korraldamine, automaatne andmete tihendamine (moodulid LZ4, gzip ja ZSTD), oleku lõiked (snapshot'id), vigade kontrollimine kontrollsummade abil, võimalus salvestada Reed-Solomoni vigade paranduse koode (RAID 5/6) ning andmete krüpteeritud kujul salvestamine (kasutatakse ChaCha20 ja Poly1305). Toime poolest ületab Bcachefs Btrfs-i ja teisi Copy-on-Write mehhanismiga failisüsteeme ning näitab töös kiirus, mis on lähedane Ext4-le ja XFS-ile.
Allikas: opennet.ru
