Promotion de Bcachefs vers le noyau Linux

Kent Overstreet, l'auteur du système de mise en cache de périphériques de bloc SSD BCache, qui fait partie du noyau Linux, a résumé les résultats des travaux sur la promotion du système de fichiers Bcachefs dans son discours à la conférence LSFMM 2023 (Linux Storage, Filesystem, Memory Management & BPF Summit) dans la composition principale du noyau Linux et a parlé des plans pour le développement ultérieur de ce FS. En mai, un ensemble de correctifs mis à jour avec la mise en œuvre de Bcachefs FS a été proposé pour examen et inclusion dans la composition principale du noyau Linux. FS Bcachefs se développe depuis environ 10 ans. L'état de préparation à l'examen de la mise en œuvre de Bcachefs avant son inclusion dans le noyau a été annoncé fin 2020, et la version actuelle des correctifs prend en compte les commentaires et les lacunes identifiés lors de l'examen précédent.

L'objectif de développement de Bcachefs est d'atteindre le niveau XFS en termes de performances, de fiabilité et d'évolutivité, tout en fournissant des fonctionnalités supplémentaires inhérentes à Btrfs et ZFS, telles que l'inclusion de plusieurs périphériques dans une partition, des dispositions de stockage multicouches, la réplication (RAID 1/10), mise en cache, compression transparente des données (modes LZ4, gzip et ZSTD), tranches d'état (instantanés), vérification de l'intégrité par des sommes de contrôle, possibilité de stocker les codes de correction d'erreur Reed-Solomon (RAID 5/6), stockage crypté des informations (ChaCha20 et Poly1305 sont utilisés). En termes de performances, Bcachefs devance Btrfs et d'autres systèmes de fichiers basés sur le mécanisme Copy-on-Write, et affiche des performances proches d'Ext4 et XFS.

Parmi les dernières réalisations dans le développement de Bcachefs, on note la stabilisation de l'implémentation des snapshots disponibles en écriture. Par rapport à Btrfs, les instantanés dans Bcachefs sont désormais beaucoup plus évolutifs et 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 a bien fonctionné lors des tests dans un stockage de 100 To, et Bcachefs devrait être implémenté dans un stockage de 1 Po dans un proche avenir. Un nouveau mode nocow a été ajouté pour désactiver le mécanisme de "copie sur écriture" (nocow). Au cours de l'été, ils prévoient de stabiliser l'implémentation des codes de correction d'erreurs et de RAIDZ, 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.

Parmi les plans pour l'avenir, le désir d'utiliser le langage Rust dans le développement de Bcachefs est mentionné. 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 est en train de germer de réécrire progressivement complètement Bcachefs en Rust, car l'utilisation de ce langage permet de gagner considérablement en temps de débogage.

En ce qui concerne le déplacement de Bcachefs dans le courant dominant du noyau Linux, le processus d'adoption peut être retardé en raison de la grande taille des modifications (2500 90 correctifs et environ XNUMX XNUMX lignes de code), ce qui est difficile à examiner. Pour accélérer l'examen, certains développeurs ont suggéré de diviser la série de correctifs en parties plus petites et 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 pas maintenu si quelque chose arrivait à son développeur (deux employés de Red Hat sont intéressés par le projet, mais leur travail est toujours corrections de bogues limitées).

Bcachefs est développé à l'aide de technologies déjà testé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 SSD rapides (inclus dans le noyau depuis la version 3.10). Bcachefs utilise le mécanisme de copie sur écriture (COW), dans lequel les modifications n'entraînent pas l'écrasement des données - le nouvel état est écrit dans un nouvel emplacement, après quoi l'indicateur d'état actuel change.

Une fonctionnalité de Bcachefs est la prise en charge de la connexion multicouche des disques, dans laquelle le stockage est composé de plusieurs couches - les disques les plus rapides (SSD) sont connectés à la couche inférieure, qui sont utilisés pour mettre en cache les données fréquemment utilisées, et les formes de couche supérieure des disques plus volumineux et 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).

Source: opennet.ru

Ajouter un commentaire