Kent Overstreet a publié la version 1.38.0 du système de fichiers Bcachefs. La version comprend deux paquets : bcachefs-kernel-dkms avec un module noyau construit à l'aide du système DKMS (Dynamic Kernel Module Support), et bcachefs-tools avec l'utilitaire bcachefs exécuté en espace utilisateur, implémentant des commandes pour créer (mkfs), monter, restaurer et vérifier le FS. Les paquets sont construits pour Debian, Ubuntu et sont attendus pour Arch Linux, Fedora, openSUSE et NixOS. Le module DKMS prend en charge les noyaux Linux à partir de 6.16.
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).
Dans la nouvelle version :
- La structure Btree need_discard, utilisée pour suivre les ensembles de blocs libérés, a été modifiée pour l'indexation par numéro de séquence à partir du journal au lieu de la paire appareil / ensemble de blocs (device / bucket). Ce changement a permis d'accélérer le travail avec la structure need_discard et d'éliminer les blocages mutuels lors de la récupération à partir du journal pendant le montage du FS avec un nombre insuffisant de blocs libres pour les métadonnées.
- Les opérations d'écriture dans le journal ont été transférées dans une file FIFO distincte, et le nombre maximum d'opérations d'écriture dans le journal exécutées simultanément a été augmenté de 16 à 256, ce qui a permis d'accélérer le fonctionnement de grands stockages soumis à une forte charge d'écriture.
- Le montage du FS avec un grand nombre de snapshots a été considérablement accéléré.
On peut également noter la sortie du projet NASty 0.0.3, qui développe une distribution pour créer des stockages en réseau (NAS) sur la base de matériel standard. La distribution est construite sur la base de paquets NixOS, utilise le système de fichiers Bcachefs et prend en charge l'accès aux fichiers via NFS et SMB, ainsi que l'exportation de dispositifs de blocs via iSCSI et NVMe-oF. La gestion se fait via une interface web. La taille de l'image ISO d'installation est de 1,9 Go. Les travaux du projet sont distribués sous licence GPLv3. L'interface web est écrite en TypeScript avec le framework SvelteKit. Le moteur de gestion du stockage et du système est écrit en Rust.
Les mises à jour sont téléchargées et installées automatiquement. Le système se met à jour de manière atomique avec la possibilité de revenir à un état antérieur en cas de problèmes dans la nouvelle version. L'interface web offre des fonctionnalités pour gérer les systèmes de fichiers, les instantanés, les sous-systèmes, les disques, les machines virtuelles et le partage. Un gestionnaire de fichiers intégré et un émulateur de terminal fonctionnant dans le navigateur sont disponibles. Il est possible de créer des règles pour exécuter des actions et avertir l'administrateur en cas de consommation excessive d'espace disque, de défaillances des disques et de surchauffes.
Le démarrage d'environnements et d'applications isolés est pris en charge, utilisant la virtualisation basée sur QEMU/KVM et l'isolation des conteneurs via l'exécution k3s (il est possible d'installer des Helm charts directement depuis l'interface Web pour exécuter des applications dans des conteneurs et configurer le routage via nginx ingress). L'intégration avec la plateforme Kubernetes est prise en charge, un pilote CSI étant fourni pour l'allocation dynamique d'espace de stockage. La distribution par défaut envoie des données de télémétrie anonymisées sur le nombre de disques et la taille du stockage (la télémétrie peut être désactivée dans la section « Paramètres → Télémétrie »).
Parmi les raisons de choisir Bcachefs plutôt que ZFS figurent le développement actif, la distribution sous licence GPL, un modèle de travail simple avec les systèmes de fichiers, les sous-systèmes et les instantanés (sans concepts complexes tels que les datasets, zvols et pools imbriqués) et la présence de fonctionnalités avancées telles que le déplacement automatique des données rarement utilisées vers des disques lents, des codes de correction d'erreurs et la récupération des dommages sans interruption de l'utilisation du système de fichiers.
Les changements dans la version NASty 0.0.3 incluent :
- le passage à l'utilisation du mécanisme nix flake pour l'empaquetage et la gestion des dépendances ;
- la prise en charge VPN Tailscale pour routage NVMe-oF sur VPN ;
- intégration du runtime k3s ; ajout de NUT (Network UPS Tools) pour la surveillance des dispositifs d'alimentation sans interruption ;
- un panneau web pour la configuration fine de NFS, SMB et iSCSI (y compris des options pour le choix du planificateur d'E/S, de journalisation et de sauvegarde des métadonnées) ;
- des réglages supplémentaires pour Bcachefs (gestion des codes de correction d'erreurs, sélection de l'algorithme de hachage, rebalancements en ligne, etc.) ;
- prise en charge du cache Cachix pour accélérer la livraison des mises à jour ;
- possibilité de génération des certificats TLS via Let’s Encrypt;
- inclusion dans les utilitaires iotop-c, btop, fwupd, rsync et croc.

Source : opennet.ru
