Kent Overstreet heeft de release van het bestandssysteem Bcachefs 1.33.0 gepubliceerd. De release omvat twee pakketten: bcachefs-kernel-dkms met een kernelmodule die wordt opgebouwd met het DKMS (Dynamic Kernel Module Support) systeem, en bcachefs-tools met de in gebruikersruimte draaiende tool bcachefs, die commando's implementeert voor het maken (mkfs), monteren, herstellen en controleren van het bestandssysteem. De pakketten zijn samengesteld voor Debian, Ubuntu, Fedora, openSUSE, NixOS en Arch Linux. De DKMS-module ondersteunt Linux-kernels vanaf 6.16.
In de nieuwe versie is functionaliteit «reconcile» (rebalance_v2) toegevoegd, gemarkeerd als de grootste wijziging in het bestandssysteem in de afgelopen twee jaar. In tegenstelling tot de eerder beschikbare modus «rebalance», stelt het mechanisme «reconcile» in staat om niet alleen gegevens (bijvoorbeeld het repliceren van meerdere kopieën op verschillende opslagmedia) te herstructureren, maar ook metadata in het bestandssysteem (bijvoorbeeld voor het verplaatsen van metadata na het toevoegen van een extra opslagmedium aan de pool). Daarnaast is reconcile nu toepasbaar voor alle invoer/uitvoer opties, en niet alleen voor achtergrondkopieën en compressieoperaties. In reconcile worden ook automatisch wijzigingen in opties of apparaatinstellingen in aanmerking genomen en worden degraderende gegevens en metadata onmiddellijk herrepliceerd.
In reconcile zijn aparte indexen betrokken voor: hoogprioritaire operaties; optimalisatie van gegevensverwerking op opslagmedia; gegevens die zijn gepland voor verwerking die momenteel niet kan worden uitgevoerd (bijvoorbeeld vanwege een gebrek aan ruimte). Ondersteuning voor het creëren van een bestandssysteem op één opslagmedium in een modus met dubbele replicatie (replicas=2) is toegevoegd - in deze configuratie zal het toevoegen van een tweede opslagmedium leiden tot automatische replicatie van gegevens naar de toegevoegde schijf, zonder dat de gebruiker verdere acties hoeft te ondernemen.
Onder andere wijzigingen:
- De commando's «reconcile status» en «reconcile wait» zijn toegevoegd. Nieuwe montage-opties «mount_trusts_udev» en «writeback_timeout» zijn geïntroduceerd. De commando's «data rereplicate» en «data job drop_extra_replicas» zijn in de categorie verouderd geplaatst.
- Een herstelmodus «merge_btree_nodes» is toegevoegd, die alle knooppunten in btree-structuren controleert die onder de fusieoperaties vallen.
- De code is voorbereid voor de overgang naar de programmeertaal Rust. Het aantal gebruikte goto-operaties in de code is verminderd van 2500 naar 600. In plaats van hardgecodeerde vectoren wordt de DARRAY() macro gebruikt, die functionaliteit biedt die lijkt op dynamische arrays in C++ en Rust. Voor foutafhandeling is de try() macro, geleend uit Rust, geïmplementeerd.
- In de 'bcachefs fs usage' team is correcte informatievoorziening over gedegradeerde gegevens gegarandeerd.
- De verwerking van de tellingen in het 'bcachefs fs top' commando is herzien. Het toevoegen van nieuwe tellingen is vereenvoudigd en er is de mogelijkheid gerealiseerd om tracepoints om te zetten in printbufs.
- De kwaliteit van foutmeldingen is verbeterd; deze bevatten nu informatie over de soort storingen (softwarematig of hardwarematig), acties om de fout te verhelpen (zoals het starten van een herstelproces), opslagfouten van block devices en ontbrekende apparaten. Bij het scannen van btree-structuren is informatieweergave over herstelmogelijkheden van problematische knooppunten gegarandeerd.
- Bij het loggen is de mogelijkheid toegevoegd om afzonderlijke limieten in te stellen voor de intensiteit van de uitvoer van verschillende typen fouten. Dergelijke limieten helpen om te voorkomen dat berichten over enkele hardwareproblemen verloren gaan te midden van een grote hoeveelheid softwarefoutmeldingen.
- Voor alle fasen van herstel zijn voortgangsindicatoren toegevoegd.
Het Bcachefs-project ontwikkelt een bestandssysteem dat gericht is op het combineren van de geavanceerde functionaliteit van Btrfs en ZFS met het niveau van prestaties, betrouwbaarheid en schaalbaarheid dat kenmerkend is voor XFS. Bcachefs ondersteunt mogelijkheden zoals het samenvoegen van meerdere apparaten in een partitie, gelaagde opslagindelingen (de onderste laag met vaak gebruikte gegevens op snelle SSD's, en de bovenste laag met minder gebruikte gegevens van harde schijven), replicatie (RAID 1/10), caching, transparante gegevenscompressie (modi LZ4, gzip en ZSTD), statusinstanties (snapshots), integriteitsverificatie via controlehonden, de mogelijkheid om foutcorrectiecodes van Reed-Solomon op te slaan (RAID 5/6), en het opslaan van informatie in versleutelde vorm (met gebruik van ChaCha20 en Poly1305). Wat prestaties betreft overtreft Bcachefs Btrfs en andere bestandenystemen op basis van het Copy-on-Write-mechanisme en vertoont het werkingssnelheden die dicht bij Ext4 en XFS liggen.
Bron: opennet.ru
