Kent Overstreet a publié la version 1.38.6 du systÚme de fichiers Bcachefs et a annoncé le retrait officiel du projet de l'étiquette de développement expérimental. Ces derniers temps, le nombre de rapports de problÚmes a diminué et les erreurs identifiées sont devenues moins graves et complexes.
La sortie couvre deux packages : bcachefs-kernel-dkms avec un module noyau compilé avec le systÚme DKMS (Dynamic Kernel Module Support), et bcachefs-tools avec l'utilitaire bcachefs fonctionnant en espace utilisateur, implémentant des commandes pour créer (mkfs), monter, restaurer et vérifier le FS. Les packages sont compilés pour Debian, Ubuntu, Arch Linux et attendus pour Fedora, openSUSE et NixOS. Le module DKMS prend en charge les noyaux Linux à partir de 6.16.
Malgré un numéro de version peu remarquable, en raison de l'absence de changements dans le format de disque, la version 1.38.6 comprend un certain nombre d'optimisations de performance significatives. Environ 200 modifications ont été apportées au code pour le travail avec les structures en format btree, la journalisation et l'assurance du fonctionnement du systÚme de fichiers, ce qui améliore la performance. La logique de validation des transactions a été réduite à 4 Ko de code machine, des optimisations ont été ajoutées pour éviter les blocages concurrents lors de l'utilisation du btree, et le processus de vidage de journal a été totalement débarrassé de blocages.
Sur le serveur Avec un CPU AMD Ă 48 cĆurs, Bcachefs a rĂ©ussi Ă atteindre une bande passante de 16.5 Go/sec en exĂ©cutant 48 clients dbench (Ă titre de comparaison, XFS a obtenu un rĂ©sultat de 16 Go/sec). Des correctifs ont Ă©tĂ© prĂ©parĂ©s mais sont reportĂ©s Ă la prochaine version, augmentant les performances dans les tests dbench Ă 19 Go/sec (ces correctifs nĂ©cessitent des tests supplĂ©mentaires ou des modifications du format de disque). Lors du test avec l'utilitaire fio, la performance de Bcachefs a atteint 700 opĂ©rations par seconde lors d'opĂ©rations d'Ă©criture alĂ©atoire avec des blocs de 4 Ko (XFS montre dans ce test un million d'opĂ©rations par seconde, alors que XFS est limitĂ© par le remappage des blocs, tandis que Bcachefs traite le cycle complet de CoW (Copy-on-Write) avec vĂ©rification des sommes de contrĂŽle et mise Ă jour de la structure btree).
En plus des optimisations dans la version Bcachefs 1.38.6, la prise en charge de la connexion de jusqu'Ă 255 appareils Ă un seul systĂšme de fichiers a Ă©tĂ© mise en Ćuvre. La formation des paquets pour Ubuntu 26.04 a commencĂ© dans le dĂ©pĂŽt apt.bcachefs.org. L'infrastructure d'intĂ©gration continue et de tests automatisĂ©s a Ă©tĂ© transfĂ©rĂ©e Ă la vĂ©rification des builds basĂ©s sur DKMS. Au cours des prochains mois, l'accent sera mis sur l'optimisation du fonctionnement du systĂšme de fichiers avec plusieurs dispositifs de stockage.
De plus, le réécriture du code en Rust se poursuit. Il est noté que le support de Rust dans le noyau a atteint un jalon significatif : toutes les distributions majeures ont activé par défaut l'option CONFIG_RUST pour la construction du noyau avec support de Rust lors de la création de paquets pour le noyau 7.0. Dans le projet Bcachefs, un ensemble d'outils a déjà été réécrit en Rust.
bcachefs-tools, qui s'exécutent dans l'espace utilisateur, y compris l'implémentation d'une API pour travailler avec des structures btree. La prochaine version prévoira d'intégrer les wrappers préparés en Rust dans le module DKMS du noyau et de commencer la réécriture du code de base Bcachefs. Il est prévu que l'utilisation de Rust augmentera la flexibilité, la stabilité et la facilité d'utilisation du code, rendant le projet plus attractif pour les jeunes ingénieurs et permettant à l'avenir de réaliser une vérification formelle de la fiabilité.
Le projet Bcachefs développe un systÚme de fichiers visant à combiner les fonctionnalités étendues associées à Btrfs et ZFS avec le niveau de performance, de fiabilité et d'évolutivité caractéristique de XFS. Bcachefs prend en charge des fonctionnalités telles que l'inclusion de plusieurs dispositifs dans une partition, des agencements multicouches de stockage (couche inférieure avec des données fréquemment utilisées basées sur des SSD rapides et couche supérieure avec des données moins sollicitées provenant de disques durs), la réplication (RAID 1/10), le mise en cache, la compression transparente des données (modes LZ4, gzip et ZSTD), les instantanés, la vérification d'intégrité par somme de contrÎle, les codes de correction d'erreurs, et le stockage d'informations sous forme chiffrée (utilisant ChaCha20 et Poly1305).
Parmi les innovations significatives ajoutées à Bcachefs au cours des derniers mois, on mentionne :
- Le mécanisme « reconcile » (rebalance_v2), contrairement au mode « rebalance », permet de rééquilibrer non seulement les données (par exemple, la réplication de plusieurs copies sur différents supports), mais aussi les métadonnées dans le FS (par exemple, pour transférer des métadonnées aprÚs l'ajout d'un support supplémentaire au pool). Reconcile est applicable à toutes les opérations d'entrée/sortie, et pas seulement aux opérations de copie en arriÚre-plan et de compression. Dans reconcile, les modifications des paramÚtres des appareils sont automatiquement prises en compte et les données et métadonnées dégradées sont immédiatement répliquées.
- Prise en charge des codes de correction d'erreurs, permettant de restaurer des donnĂ©es endommagĂ©es de maniĂšre similaire au RAID 5/6. La mise en Ćuvre est basĂ©e sur le codage de Reed-Solomon, capable de corriger jusqu'Ă N erreurs dans une stripe en prĂ©sence de N blocs redondants. La restauration automatique des stripes dĂ©gradĂ©es est assurĂ©e. La possibilitĂ© d'appliquer des codes de rĂ©cupĂ©ration est applicable dans des configurations avec des supports de tailles diffĂ©rentes.
Source : opennet.ru
