aide récemment Kent Overstreetl’auteur de bcachefs, dans son discours à la conférence LSFMM 2023 résumé les résultats des travaux dans le Promotion du système de fichiers Bcachefs sur la branche principale du noyau Linux et discuté des plans de développement ultérieur du noyau.
Bcachefs est développé en utilisant des technologies déjà éprouvées dans le développement du périphérique bloc Bcache, conçu pour mettre en cache l’accès aux disques durs lents sur des disques SSD rapides (inclus dans le noyau depuis la version 3.10). Bcachefs utilise le mécanisme Copy-on-Write (COW), dans lequel les modifications n’entraînent pas l’écrasement des données : le nouvel état est écrit à un nouvel emplacement, après quoi l’indicateur d’état actuel change.
Une caractéristique de Bcachefs est la prise en charge de la connexion de lecteurs multicouchesdans lequel le stockage est composé de plusieurs couches : des disques plus rapides (SSD) sont attachés à la couche inférieure, qui sont utilisés pour mettre en cache les données fréquemment utilisées, et la couche supérieure forme des disques de plus grande capacité et des disques moins chers qui stockent les données moins demandées. La mise en cache en écriture différée peut être utilisée entre les couches. Les disques peuvent être dynamiquement ajoutés et détachés d’une partition sans interrompre l’utilisation du système de fichiers (les données migrent automatiquement).
En ce qui concerne le projet, il est mentionné que l’objectif de développement de Bcachefs est d’atteindre le niveau de XFS en termes de performances, fiabilité et évolutivité.
Tout en fournissant des fonctionnalités supplémentaires inhérentes à Btrfs et ZFS, telles que plusieurs périphériques dans une partition, des dispositions de stockage à plusieurs niveaux, la réplication (RAID 1/10), la mise en cache, les modes LZ4, gzip et ZSTD, les segments d’état, la vérification de l’intégrité de la somme de contrôle, la capacité pour stocker les codes de correction d’erreur Reed-Solomon, stockage d’informations cryptées.
En termes de performances, Bcachefs devance Btrfs et d’autres systèmes de fichiers basés sur le mécanisme Copy-on-Write, démontrant des performances proches d’Ext4 et XFS.
Parmi les dernières réalisations dans le développement de Bcachefs, la stabilisation de la mise en œuvre des instantanés disponibles pour l’écriture se démarque. Par rapport à Btrfs, les instantanés dans Bcachefs évoluent désormais beaucoup mieux et sont exempts des problèmes inhérents à Btrfs.
En pratique, le travail des instantanés a été testé lors de l’organisation des sauvegardes MySQL. Bcachefs a également fait beaucoup de travail pour améliorer l’évolutivité : le système de fichiers s’est bien comporté lors des tests sur un stockage de 100 To, et Bcachefs devrait être déployé sur un stockage de 1 PB dans un proche avenir.
En plus de cela, on note également que ajout d’un nouveau mode nocow pour désactiver le mécanisme de “copie sur écriture”. Au cours de l’été, ils prévoient de stabiliser l’implémentation de RAIDZ et des codes de correction d’erreurs, ainsi que de résoudre les problèmes de consommation de mémoire élevée lors de la restauration et de la vérification des systèmes de fichiers avec l’utilitaire fsck.
de plans pour l’avenir le d est mentionnéJe souhaite utiliser le langage Rust dans le développement de Bcachefs. Selon l’auteur de Bcachefs :
Il aime coder, pas déboguer du code, et maintenant c’est fou d’écrire du code en C alors qu’il y a une meilleure option. Rust est déjà impliqué dans Bcachefs dans la mise en œuvre de certains des utilitaires de l’espace utilisateur. De plus, l’idée de réécrire complètement Bcachefs dans Rust est en train de naître progressivement, car l’utilisation de ce langage permet de gagner considérablement du temps de débogage.
Concernant le déplacement de Bcachefs vers la branche principale du noyau Linux, le processus d’adoption peut être retardé en raison de l’ampleur des changements (2500 correctifs et environ 90 000 lignes de code), ce qui est difficile à réviser. Pour accélérer l’examen, certains développeurs ont suggéré de diviser la série de correctifs en parties plus petites et plus logiquement séparées.
Au cours de la discussion, certains participants ont également attiré l’attention sur le développement du projet par un développeur et sur le danger que le code ne soit plus maintenu s’il arrivait quelque chose à son développeur (deux employés de Red Hat sont intéressés par le projet, mais votre travail est toujours en attente ). corrections de bogues limitées).
En mai, il a été proposé de le réviser et de l’inclure dans la partie principale du noyau Linux. La volonté de revoir l’implémentation de Bcachefs avant son inclusion dans le Kernel a été annoncée fin 2020, et la version actuelle des correctifs prend en compte les retours d’expérience et les lacunes identifiées lors de la précédente revue.
Source : https://lwn.net/