De promotie van Bcachefs naar de Linux-kernel

Kent Overstreet, de auteur van het in de Linux-kern opgenomen opslagmechanisme voor blokapparaten op SSD's genaamd BCache, gaf tijdens zijn presentatie op de LSFMM 2023-conferentie (Linux Storage, Filesystem, Memory Management & BPF Summit) een samenvatting van de vorderingen bij de integratie van het bestandssysteem Bcachefs in de Linux-kern en de plannen voor verdere ontwikkelingen van dit FS. In mei werd een bijgewerkte reeks patches ter beoordeling en integratie in de Linux-kern aangeboden, met de implementatie van het FS Bcachefs. Het FS Bcachefs is al ongeveer 10 jaar in ontwikkeling. De gereedheid voor beoordeling van de implementatie van Bcachefs voor integratie in de kern werd eind 2020 aangekondigd en in de huidige versie van de patches zijn de opmerkingen en tekortkomingen die tijdens de vorige beoordeling zijn vastgesteld, verwerkt.

Het doel van de ontwikkeling van Bcachefs is het bereiken van het prestatieniveau van XFS in termen van prestaties, betrouwbaarheid en schaalbaarheid, terwijl het tegelijkertijd extra functies biedt die typisch zijn voor Btrfs en ZFS, zoals het opnemen van meerdere apparaten in een volume, multi-layer opslagoplossingen, replicatie (RAID 1/10), caching, transparante data compressie (modi LZ4, gzip en ZSTD), status snapshots, integriteitsverificatie op basis van checksums, mogelijkheid tot opslag van Reed-Solomon foutcorrectiecodes (RAID 5/6) en opslag van informatie in versleutelde vorm (met gebruik van ChaCha20 en Poly1305). Qua prestaties overtreft Bcachefs Btrfs en andere filesystems die op Copy-on-Write zijn gebaseerd, en toont het een verwerkingssnelheid die vergelijkbaar is met Ext4 en XFS.

Recent achievements in the development of Bcachefs include the stabilization of the writable snapshot implementation. Compared to Btrfs, snapshots in Bcachefs now scale significantly better and are free from the issues inherent to Btrfs. In practice, the performance of snapshots has been tested for organizing MySQL backups. Significant work has also been done in Bcachefs to improve scalability—the file system has proven itself well during testing in 100 TB storage, and the implementation of Bcachefs in 1 PB storage is expected soon. A new nocow mode has been added to disable the copy-on-write mechanism. During the summer, plans are to stabilize the implementation of error correction codes and RAIDZ, as well as address high memory consumption issues during recovery and filesystem checks with the fsck utility.

Future plans include the desire to use the Rust programming language in the development of Bcachefs. According to the author of Bcachefs, he prefers programming over debugging code, and it now seems absurd to write code in C when a better option is available. Rust is already utilized in Bcachefs for the implementation of some user space utilities. Furthermore, there is an idea to gradually rewrite Bcachefs entirely in Rust, as using this language significantly saves debugging time.

Regarding the promotion of Bcachefs to the main Linux kernel, the acceptance process could be prolonged due to the considerable size of the changes (2500 patches and about 90,000 lines of code), which are difficult to review. To expedite the review process, some developers have suggested breaking the series of patches into smaller, logically separated parts. During discussions, some participants also noted the development of the project by a single developer and the risk that the code might remain unsupported if something happens to its developer (two employees from Red Hat are interested in the project, but their work is currently limited to bug fixes).

Bcachefs ontwikkelt zich met technologieën die al zijn getest tijdens de ontwikkeling van het blokapparaat Bcache, bedoeld voor cachingtoegang tot langzame harde schijven op snelle SSD-opslag (onderdeel van de kern sinds release 3.10). In Bcachefs wordt een Copy-on-Write (COW) mechanisme gebruikt, waarbij wijzigingen geen herschrijving van gegevens veroorzaken - de nieuwe status wordt op een nieuwe locatie geschreven, waarna de pointer naar de actuele status verandert.

Een kenmerk van Bcachefs is de ondersteuning van gelaagde opslagverbindingen, waarbij de opslag uit meerdere lagen bestaat - de onderste laag is verbonden met de snelste opslagmedia (SSD's), die worden gebruikt voor de caching van vaak gebruikte gegevens, terwijl de bovenste laag wordt gevormd door goedkopere en grotere schijven die opslag bieden voor minder populaire gegevens. Tussen de lagen kan cache-geheugen in writeback-modus worden toegepast. Opslagmedia kunnen dynamisch aan de partitie worden toegevoegd of verwijderd zonder dat het gebruik van het bestandssysteem wordt stopgezet (gegevens migreren automatisch).

Bron: opennet.ru

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers 🔥 Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster