Bcachefs 1.33: Pokročilá diagnostika, metriky v reálnom čase a optimalizácia Btree

Kľúčové body:
  • Podrobné chybové hlásenia: vysvetlite príčinu, typ (tvrdý/mäkký) a riešenie.
  • bcachefs fs top teraz zobrazuje prenosové rýchlosti v reálnom čase.
  • Asynchrónna fúzia uzlov Btree pre zlepšenie výkonu pri zaťažení
  • Nové možnosti mount_trusts_udev a writeback_timeout.
  • Masívne zníženie počtu goto príkazov v kóde (z 2500 na 600) ako príprava na príchod Rustu.
bcachefs

Bcachefs je súborový systém typu copy-on-write pre operačné systémy založené na Linuxe.

Pred pár dňami Kent Overstreet oznámil vydanie Bcachefs 1.33.0 , novej verzie súborového systému, ktorá prináša zásadné štrukturálne zmeny v správe dát a architektúre jeho zdrojového kódu.

Táto aktualizácia sa javí ako jedna z najvýznamnejších za posledné dva roky, so zameraním na integritu metadát a modernizáciu kódovej základne C.

„Zosúladenie“: Nová éra integrity údajov

Najvýznamnejšou novou funkciou, ktorá je označovaná za najvýznamnejšiu zmenu za posledné dva roky, je zavedenie funkcie zosúladenia (rebalance_v2) . Tento nový mechanizmus nahrádza starý systém „vyvažovania“ a rieši jedno z jeho hlavných obmedzení: systém teraz dokáže spravovať a presúvať nielen používateľské údaje, ale aj metadáta súborového systému.

Rebalance_v2 funguje proaktívne a automaticky. Ak sa do poľa pridá nový disk alebo sa zmenia možnosti redundancie, Bcachefs okamžite začne replikovať a opravovať všetky poškodené dáta alebo metadáta, pričom na uprednostnenie kritických operácií použije samostatné indexy. Tým sa zabezpečí zachovanie integrity systému aj počas intenzívnej údržby.

Čistenie kódu a príprava na Rust

Verzia 1.33.0 prináša rozsiahlu reštrukturalizáciu kódu C, aby bol bezpečnejší a kompatibilnejší s budúcou implementáciou v... HrdzaVývojár vykonal hĺbkové čistenie a znížil počet príkazov. goto z 2 500 na iba 600, čo výrazne zjednodušuje logický tok programu.

Okrem toho boli zavedené nové makrá, ako napríklad DARRAY() y try()Tieto sú navrhnuté tak, aby napodobňovali dynamické správanie vektorov a spracovanie chýb v jazykoch Rust a C++. To nielen modernizuje súčasný kód, ale tiež uľahčuje prenositeľnosť a znižuje počet chybných miest v pamäti v budúcnosti.

Vylepšená diagnostika a flexibilita úložiska

S ohľadom na správu systému táto verzia výrazne zlepšuje prehľadnosť chybových hlásení . Bcachefs teraz dokáže rozlíšiť a oznámiť, či je zlyhanie spôsobené softvérovou chybou alebo fyzickým hardvérovým problémom, a dokonca navrhnúť potrebné kroky na obnovenie. To je nevyhnutné na to, aby sa predišlo chybným diagnózam, pri ktorých sa za chybný disk obviňuje súborový systém.

Táto transparentnosť sa rozširuje na niekoľko úrovní:

  • Podrobné chyby I/O: Keď bloková vrstva nahlási zlyhanie, Bcachefs teraz odošle špecifický kód (napríklad BLK_STS_IOERR), čo pomáha identifikovať, či je vinníkom fyzický disk.
  • Chyby pri montáži: Ak chýbajú zariadenia na zostavenie zväzku, systém teraz presne indikuje, ktorá jednotka chýba, a zobrazuje jej názov a model na základe posledného času, kedy bola videná.
  • Limity chybovosti: Hranice pre „mäkké“ (softvérové) a „hardvérové“ (hardvérové) chyby boli oddelené, čím sa zabezpečí, že záplava menších chýb nezakryje kritické zlyhanie disku.

Okrem toho príkaz bcachefs fs top Zlepšilo sa to. Interné počítadlá teraz zobrazujú rýchlosti prenosu dát namiesto iba statických čísel, čo výrazne uľahčuje koreláciu udalostí (ako napríklad data_update_fail) s poklesom výkonu v reálnom čase.

Optimalizácie v Btrees a nové možnosti montáže

Vďaka zmenám v správe B-stromov sa zlepšil výkon pri vysokej záťaži. Zlúčenie prázdnych uzlov teraz prebieha asynchrónne, čím sa eliminujú úzke miesta vo vyrovnávacej pamäti zápisu. Okrem toho bol pridaný voliteľný priechod na obnovenie. merge_btree_nodes, v prípade potreby manuálne optimalizovať stromovú štruktúru.

Ďalšou veľmi praktickou pridanou funkciou je možnosť spustiť súborový systém s konfiguráciou replicas=2 na jednom diskuTo umožňuje používateľom začať s jedným diskom s vedomím, že systém „musí“ mať redundanciu; hneď ako sa pripojí druhý disk, Bcachefs automaticky replikuje dáta bez nutnosti zložitého manuálneho zásahu.

Na záver stojí za zmienku, že nová verzia, ktorá je už dostupná pre distribúcie ako Debian, Fedora, Arch Linux a NixOS, vyžaduje jadro Linuxu 6.16 alebo vyššie a je distribuovaná v dvoch základných balíkoch: modul jadra (bcachefs-kernel-dkms) a používateľské nástroje (bcachefs-tools).


Pridať ako preferovaný zdroj v Google