Bcachefs promoveren naar de Linux-kernel

Kent Overstreet, de auteur van het BCache SSD block device caching-systeem, dat deel uitmaakt van de Linux-kernel, vatte de resultaten samen van het werk om het Bcachefs-bestandssysteem te promoten in zijn toespraak op de LSFMM 2023-conferentie (Linux Storage, Filesystem, Memory Management & BPF Summit) in op de hoofdsamenstelling van de Linux-kernel en sprak over plannen voor de verdere ontwikkeling van deze FS. In mei werd een bijgewerkte set patches met de implementatie van de Bcachefs FS voorgesteld ter beoordeling en opname in de hoofdsamenstelling van de Linux-kernel. FS Bcachefs ontwikkelt zich al ongeveer 10 jaar. De gereedheid om de implementatie van Bcachefs te beoordelen voordat deze in de kern werd opgenomen, werd eind 2020 aangekondigd, en de huidige versie van de patches houdt rekening met de opmerkingen en tekortkomingen die tijdens de vorige beoordeling zijn vastgesteld.

Het ontwikkelingsdoel van Bcachefs is om het XFS-niveau te bereiken wat betreft prestaties, betrouwbaarheid en schaalbaarheid, terwijl het tegelijkertijd extra functies biedt die inherent zijn aan Btrfs en ZFS, zoals het opnemen van meerdere apparaten in een partitie, meerlaagse opslaglay-outs, replicatie (RAID 1/10), caching, transparante datacompressie (LZ4-, gzip- en ZSTD-modi), state slices (snapshots), integriteitsverificatie door checksums, de mogelijkheid om Reed-Solomon-foutcorrectiecodes op te slaan (RAID 5/6), versleutelde opslag van informatie (ChaCha20 en Poly1305 worden gebruikt). In termen van prestaties loopt Bcachefs voor op Btrfs en andere bestandssystemen op basis van het Copy-on-Write-mechanisme, en demonstreert het prestaties die dicht bij Ext4 en XFS liggen.

Van de nieuwste prestaties in de ontwikkeling van Bcachefs wordt de stabilisatie van de implementatie van snapshots die beschikbaar zijn om te schrijven opgemerkt. In vergelijking met Btrfs zijn snapshots in Bcachefs nu veel beter schaalbaar en vrij van de problemen die inherent zijn aan Btrfs. In de praktijk werd het werk van snapshots getest bij het organiseren van MySQL-back-ups. Bcachefs heeft ook veel werk verzet om de schaalbaarheid te verbeteren - het bestandssysteem heeft goed gepresteerd bij het testen in 100 TB opslag, en Bcachefs zal naar verwachting in de nabije toekomst worden geïmplementeerd in 1 PB opslag. Er is een nieuwe nocow-modus toegevoegd om het "copy-on-write"-mechanisme (nocow) uit te schakelen. Tijdens de zomer zijn ze van plan om de implementatie van foutcorrectiecodes en RAIDZ in een stabiele staat te brengen, en om problemen met een hoog geheugenverbruik op te lossen bij het herstellen en controleren van bestandssystemen met het fsck-hulpprogramma.

Van de plannen voor de toekomst wordt de wens genoemd om de Rust-taal te gebruiken bij de ontwikkeling van Bcachefs. Volgens de auteur van Bcachefs houdt hij van coderen, niet van het debuggen van code, en nu is het gek om code in C te schrijven als er een betere optie is. Rust is al betrokken bij Bcachefs bij de implementatie van enkele gebruikersruimte-hulpprogramma's. Bovendien wordt het idee geopperd om Bcachefs geleidelijk volledig in Rust te herschrijven, aangezien het gebruik van deze taal aanzienlijk tijd bespaart bij het debuggen.

Wat betreft het verplaatsen van Bcachefs naar de mainstream van de Linux-kernel, kan het acceptatieproces worden vertraagd vanwege de grote omvang van de wijzigingen (2500 patches en ongeveer 90 regels code), die moeilijk te beoordelen is. Om de beoordeling te versnellen, hebben sommige ontwikkelaars voorgesteld om de patchreeks op te splitsen in kleinere en logisch gescheiden delen. Tijdens de discussie vestigden sommige deelnemers ook de aandacht op de ontwikkeling van het project door één ontwikkelaar en het gevaar dat de code onbeheerd zou blijven als er iets met de ontwikkelaar zou gebeuren (twee Red Hat-medewerkers zijn geïnteresseerd in het project, maar hun werk is nog beperkte bugfixes).

Bcachefs is ontwikkeld met behulp van technologieën die al zijn getest bij de ontwikkeling van het Bcache-blokapparaat, ontworpen om toegang tot trage harde schijven op snelle SSD's te cachen (inbegrepen in de kernel sinds release 3.10). Bcachefs maakt gebruik van het Copy-on-Write (COW) mechanisme, waarbij wijzigingen niet leiden tot het overschrijven van gegevens - de nieuwe status wordt naar een nieuwe locatie geschreven, waarna de huidige statusindicator verandert.

Een kenmerk van Bcachefs is ondersteuning voor meerlaagse verbinding van schijven, waarbij opslag uit meerdere lagen bestaat - de snelste schijven (SSD's) zijn verbonden met de onderste laag, die wordt gebruikt om veelgebruikte gegevens in de cache op te slaan, en de bovenste laag vormt grotere en goedkopere schijven die minder gevraagde gegevens opslaan. Terugschrijven caching kan tussen lagen worden gebruikt. Schijven kunnen dynamisch worden toegevoegd aan en losgekoppeld van een partitie zonder het gebruik van het bestandssysteem te onderbreken (gegevens migreren automatisch).

Bron: opennet.ru

Voeg een reactie