Bcachefs 1.33: Geavanceerde diagnostiek, realtime statistieken en Btree-optimalisatie

Belangrijkste punten:
  • Gedetailleerde foutmeldingen: uitleg van de oorzaak, het type (hard/soft) en de oplossing.
  • bcachefs fs top toont nu de overdrachtssnelheden in realtime.
  • Asynchrone fusie van B-tree-knooppunten om de prestaties onder belasting te verbeteren.
  • Nieuwe opties: mount_trusts_udev en writeback_timeout.
  • Het aantal goto-instructies in de code is drastisch verminderd (van 2500 naar 600) ter voorbereiding op de komst van Rust.
bchefs

Bcachefs is een copy-on-write bestandssysteem voor op Linux gebaseerde besturingssystemen.

Enkele dagen geleden kondigde Kent Overstreet de release aan van Bcachefs 1.33.0 , een nieuwe versie van het bestandssysteem die ingrijpende structurele veranderingen introduceert in het gegevensbeheer en de architectuur van de broncode.

Deze update belooft een van de belangrijkste van de afgelopen twee jaar te worden, met de nadruk op de integriteit van de metadata en de modernisering van de C-codebasis.

"Reconcile": een nieuw tijdperk voor data-integriteit

De meest opvallende nieuwe functie, die wordt beschreven als de belangrijkste verandering in de afgelopen twee jaar, is de introductie van de reconciliatiefunctie (rebalance_v2) . Dit nieuwe mechanisme vervangt het oude "rebalancing"-systeem en pakt een van de grootste beperkingen ervan aan: het systeem kan nu niet alleen gebruikersgegevens, maar ook metadata van het bestandssysteem beheren en verplaatsen.

Rebalance_v2 werkt proactief en automatisch. Als een nieuwe schijf aan een array wordt toegevoegd of als de redundantieopties worden gewijzigd, begint Bcachefs onmiddellijk met het repliceren en corrigeren van beschadigde data of metadata, waarbij aparte indexen worden gebruikt om kritieke bewerkingen prioriteit te geven. Dit zorgt ervoor dat de systeemintegriteit behouden blijft, zelfs tijdens intensieve onderhoudswerkzaamheden.

Code opschonen en Rust-voorbereiding

Onder de motorkap brengt versie 1.33.0 een enorme herstructurering van de C-code met zich mee om deze veiliger en compatibeler te maken met een toekomstige implementatie in RoestDe ontwikkelaar heeft een grondige opschoning uitgevoerd, waardoor het aantal statements is verminderd. goto van 2.500 naar slechts 600, wat de logische structuur van het programma aanzienlijk vereenvoudigt.

Daarnaast zijn er nieuwe macro's geïntroduceerd, zoals DARRAY() y try()Deze zijn ontworpen om het dynamische vectorgedrag en de foutafhandeling van Rust en C++ na te bootsen. Dit moderniseert niet alleen de huidige code, maar vergemakkelijkt ook de portabiliteit en verkleint het geheugenrisico in de toekomst.

Verbeterde diagnostiek en flexibelere opslagmogelijkheden

Met het oog op systeembeheer verbetert deze versie de duidelijkheid van foutmeldingen aanzienlijk . Bcachefs kan nu onderscheiden of een storing wordt veroorzaakt door een softwarefout of een fysiek hardwareprobleem, en geeft zelfs suggesties voor de benodigde herstelstappen. Dit is essentieel om verkeerde diagnoses te voorkomen waarbij het bestandssysteem ten onrechte de schuld krijgt van een defecte schijf.

Deze transparantie strekt zich uit tot meerdere niveaus:

  • Gedetailleerde I/O-fouten: Wanneer de bloklaag een fout meldt, verzendt Bcachefs nu de specifieke code (zoals BLK_STS_IOERR), wat helpt om vast te stellen of de fysieke schijf de boosdoener is.
  • Assemblagefouten: Als er onderdelen ontbreken om een ​​volume samen te stellen, geeft het systeem nu precies aan welk onderdeel ontbreekt, met vermelding van de naam en het model op basis van de laatste keer dat het is gezien.
  • Foutpercentagelimieten: De grenzen tussen "soft errors" (softwarefouten) en "hard errors" (hardwarefouten) zijn duidelijk gescheiden, zodat een stortvloed aan kleine fouten een kritieke schijffout niet kan maskeren.

Bovendien is het commando bcachefs fs top Het is verbeterd. De interne tellers geven nu de gegevensoverdrachtssnelheden weer in plaats van alleen statische getallen, waardoor het veel gemakkelijker is om gebeurtenissen (zoals data_update_fail) met realtime prestatiedalingen.

Optimalisaties in Btrees en nieuwe montagemogelijkheden

Onder de motorkap is de prestatie bij zware belasting verbeterd dankzij wijzigingen in het B-tree-beheer. Het samenvoegen van lege knooppunten gebeurt nu asynchroon, waardoor knelpunten in de schrijfbuffer worden geëlimineerd. Daarnaast is een optionele herstelstap toegevoegd. merge_btree_nodes, om de boomstructuur indien nodig handmatig te optimaliseren.

Een andere zeer praktische extra functie is de mogelijkheid om een ​​bestandssysteem op te starten met de configuratie. replicas=2 op één enkele schijfHierdoor kunnen gebruikers beginnen met één schijf, wetende dat het systeem redundantie "moet" hebben; zodra een tweede schijf wordt aangesloten, repliceert Bcachefs de gegevens automatisch zonder dat complexe handmatige tussenkomst nodig is.

Tot slot is het belangrijk te vermelden dat de nieuwe versie, die al beschikbaar is voor distributies zoals Debian, Fedora, Arch Linux en NixOS, een Linux-kernel 6.16 of hoger vereist en wordt gedistribueerd in twee essentiële pakketten: de kernelmodule (bcachefs-kernel-dkms) en de gebruikerstools (bcachefs-tools).


Voeg dit toe als voorkeursbron in Google.