„Bcachefs 1.33“: išplėstinė diagnostika, realaus laiko metrika ir „Btree“ optimizavimas

Pagrindiniai klausimai:
  • Išsamūs klaidų pranešimai: paaiškinkite priežastį, tipą (sunki / neaiški) ir sprendimą.
  • „bcachefs fs top“ dabar rodo perdavimo greitį realiuoju laiku.
  • Asinchroninis Btree mazgų sujungimas, siekiant pagerinti našumą esant apkrovai
  • Naujos parinktys „mount_trusts_udev“ ir „writeback_timeout“.
  • Didelis „goto“ eilutės sutrumpinimas kode (nuo 2500 iki 600), ruošiantis „Rust“ atsiradimui.
bcachefs

„Bcachefs“ yra kopijavimo ir rašymo failų sistema, skirta „Linux“ operacinėms sistemoms.

Prieš kelias dienas „Kent Overstreet“ paskelbė apie „Bcachefs 1.33.0“ išleidimą., nauja failų sistemos versija, kuri įveda esminius struktūrinius duomenų valdymo ir jos šaltinio kodo architektūros pakeitimus.

Šis atnaujinimas žada būti vienas reikšmingiausių per pastaruosius dvejus metus, daugiausia dėmesio skiriant metaduomenų vientisumui ir C kodo bazės modernizavimui.

„Suderinti“: nauja duomenų vientisumo era

Ryškiausia nauja funkcija, apibūdinama kaip reikšmingiausias pokytis per pastaruosius dvejus metus, yra funkcijos „ Suderinimas (rebalance_v2)Šis naujas mechanizmas pakeičia senąją „perbalansavimo“ sistemą ir išsprendžia vieną didžiausių jos apribojimų: dabar sistema gali valdyti ir perkelti ne tik naudotojų duomenis, bet ir failų sistemos metaduomenys.

„Rebalance_v2“ veikia proaktyviai ir automatiškai. Jei prie masyvo pridedamas naujas diskas arba pakeičiamos perteklinės kopijos parinktys, „Bcachefs“ nedelsdama pradeda replikuoti ir taisyti bet kokius sugadintus duomenis ar metaduomenis, naudodama atskirus indeksus, kad nustatytų svarbiausių operacijų prioritetus. Tai užtikrina, kad sistemos vientisumas būtų išsaugotas net ir intensyvių priežiūros operacijų metu.

Kodo valymas ir rūdžių paruošimas

1.33.0 versijoje iš esmės pertvarkomas C kodas, kad jis būtų saugesnis ir suderinamesnis su būsimu įdiegimu. RustKūrėjas atliko gilų valymą, sumažindamas teiginių skaičių. goto nuo 2.500 iki vos 600, o tai labai supaprastina programos loginę eigą.

Be to, buvo įdiegtos naujos makrokomandos, pvz. DARRAY() y try()Jie sukurti taip, kad imituotų „Rust“ ir „C++“ dinaminį vektorių elgesį ir klaidų apdorojimą. Tai ne tik modernizuoja dabartinį kodą, bet ir palengvina perkeliamumą bei sumažina atminties klaidų paviršių ateityje.

Patobulinta diagnostika ir saugojimo lankstumas

Turint omenyje sistemos administravimą, ši versija smarkiai pagerina klaidų pranešimų aiškumas„Bcachefs“ dabar gali atskirti ir pranešti, ar gedimas atsirado dėl programinės įrangos klaidos, ar dėl fizinės aparatinės įrangos problemos, ir netgi pasiūlyti reikiamus atkūrimo veiksmus. Tai labai svarbu siekiant išvengti klaidingų diagnozių, kai dėl sugedusio disko kaltinama failų sistema.

Šis skaidrumas apima kelis lygius:

  • Išsamios įvesties / išvesties klaidos: Kai blokų sluoksnis praneša apie gedimą, „Bcachefs“ dabar perduoda konkretų kodą (pvz., BLK_STS_IOERR), padedantis nustatyti, ar kaltininkas yra fizinis diskas.
  • Surinkimo klaidos: Jei trūksta įrenginių, reikalingų tomui surinkti, sistema dabar tiksliai nurodo, kurio vieneto trūksta, rodydama jo pavadinimą ir modelį pagal tai, kada jis buvo paskutinį kartą matytas.
  • Klaidų dažnio ribos: Atskirtos „minkštųjų“ (programinės įrangos) ir „aparatinės“ (aparatinės įrangos) klaidų ribos, siekiant užtikrinti, kad daugybė nedidelių klaidų neužmaskuotų kritinio disko gedimo.

Be to, komanda bcachefs fs top Patobulinta. Vidiniai skaitikliai dabar rodo duomenų perdavimo greitį, o ne tik statinius skaičius, todėl daug lengviau susieti įvykius (pvz., data_update_fail) su našumo sumažėjimu realiuoju laiku.

„Btrees“ optimizavimas ir naujos montavimo parinktys

Iš esmės, dėl B medžio valdymo pakeitimų pagerėjo našumas esant didelėms apkrovoms. Tuščių mazgų sujungimas dabar vyksta asinchroniškai, todėl pašalinamos įrašymo buferio kliūtys. Be to, pridėtas pasirenkamas atkūrimo leidimas. merge_btree_nodes, prireikus rankiniu būdu optimizuoti medžio struktūrą.

Dar viena labai praktiška papildoma funkcija yra galimybė paleisti failų sistemą su konfigūracija replicas=2 viename diskeTai leidžia vartotojams pradėti nuo vieno disko, žinant, kad sistema „privalo“ turėti dubliavimą; kai tik prijungiamas antras diskas, „Bcachefs“ automatiškai atkartoja duomenis nereikalaudama sudėtingo rankinio įsikišimo.

Galiausiai verta paminėti nauja versija, jau prieinama Tokiems platinamiesiems paketams kaip „Debian“, „Fedora“, „Arch Linux“ ir „NixOS“ šiam naujinimui reikalinga „Linux“ branduolio 6.16 ar naujesnė versija, o jis platinamas dviem pagrindiniais paketais: branduolio moduliu (bcachefs-kernel-dkms) ir vartotojo įrankiais (bcachefs-tools).