Publication du système de fichiers Bcachefs 1.33.0

Kent Overstreet a publié la version 1.33.0 du système de fichiers Bcachefs. Cette version couvre 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'outil bcachefs exécuté dans l'espace utilisateur, implémentant des commandes pour créer (mkfs), monter, restaurer et vérifier le FS. Les paquets sont construits pour Debian, Ubuntu, Fedora, openSUSE, NixOS et Arch Linux. Le module DKMS prend en charge les noyaux Linux à partir de 6.16.

La nouvelle version ajoute la fonctionnalité « reconcile » (rebalance_v2), marquée comme le plus grand changement dans le FS au cours des deux dernières années. Contrairement au mode « rebalance » précédemment disponible, le mécanisme « reconcile » permet de rééquilibrer non seulement les données (par exemple, la réplication de plusieurs copies sur différents périphériques), mais aussi les métadonnées dans le FS (par exemple, pour déplacer des métadonnées après l'ajout d'un nouveau périphérique au pool). De plus, reconcile est maintenant applicable à toutes les options d'entrée/sortie, et pas seulement aux opérations de sauvegarde et de compression en arrière-plan. Dans reconcile, les changements d'options ou de paramètres des dispositifs sont également automatiquement pris en compte et les données et métadonnées dégradées sont immédiatement répliquées.

Dans reconcile, des index distincts sont utilisés pour : les opérations à haute priorité ; l'optimisation du traitement des données sur les disques ; les données programmées pour un traitement qui ne peut pas encore être effectué (par exemple, en raison d'un manque d'espace). Le support de la création de systèmes de fichiers sur un seul périphérique en mode de double réplication (replicas=2) a été ajouté — dans cette configuration, l'ajout d'un second périphérique entraînera une réplication automatique des données sur le disque ajouté, sans qu'aucune action ne soit requise de l'utilisateur.

Parmi les autres changements :

  • Ajout des commandes « reconcile status » et « reconcile wait ». Ajout des options de montage « mount_trusts_udev » et « writeback_timeout ». Les commandes « data rereplicate » et « data job drop_extra_replicas » sont devenues obsolètes.
  • Ajout du mode de récupération « merge_btree_nodes », qui vérifie tous les nœuds dans les structures btree soumises aux opérations de fusion.
  • Préparation du code pour le passage à l'utilisation du langage Rust. Le nombre d'opérations goto dans le code a été réduit de 2500 à 600. Au lieu de vecteurs codés en dur, le macro DARRAY() a été utilisé, offrant une fonctionnalité similaire aux tableaux dynamiques en C++ et en Rust. Pour la gestion des erreurs, le macro try() emprunté à Rust a été mis en œuvre.
  • L'équipe « bcachefs fs usage » a assuré une communication correcte concernant les données dégradées.
  • Le traitement des compteurs affichés par la commande « bcachefs fs top » a été retravaillé. L'ajout de nouveaux compteurs a été simplifié et la possibilité de convertir des points de trace (tracepoints) en tampons de sortie (printbufs) a été réalisée.
  • La qualité des messages d'erreur a été améliorée, incluant désormais des informations sur les types de pannes (logicielles ou matérielles), des actions pour corriger l'erreur (comme le lancement d'un processus de récupération), et des codes d'erreur d'entrée/sortie reçus des dispositifs de bloc, ainsi que des dispositifs manquants. Lors de la numérisation des structures btree, des informations sur la possibilité de récupérer des nœuds problématiques ont été fournies.
  • La possibilité de définir séparément des limites sur l'intensité de la sortie pour différents types d'erreurs a été ajoutée lors de l'écriture dans le journal. De telles limites aident à prévenir la perte de messages concernant des problèmes matériels isolés au milieu d'un grand nombre de messages d'erreurs logicielles.
  • Des indicateurs de progression ont été ajoutés pour toutes les étapes de récupération.

Le projet Bcachefs développe un système de fichiers visant à combiner les fonctionnalités avancées caractéristiques de Btrfs et ZFS, avec le niveau de performance, de fiabilité et d'évolutivité propre à XFS. Bcachefs prend en charge des fonctionnalités telles que l'intégration de plusieurs dispositifs dans une partition, des agencements en couches de stockages (la couche inférieure avec des données fréquemment utilisées sur des SSD rapides, et la couche supérieure avec des données moins sollicitées sur des disques durs), la réplication (RAID 1/10), le caching, la compression de données transparente (modes LZ4, gzip et ZSTD), les snapshots, la vérification d'intégrité par sommes de contrôle, la possibilité de stocker des codes de correction d'erreurs de Reed-Solomon (RAID 5/6), et le stockage d'informations sous forme chiffrée (utilisant ChaCha20 et Poly1305). En termes de performance, Bcachefs surpasse Btrfs et d'autres systèmes de fichiers basés sur le mécanisme Copy-on-Write, et montre des vitesses de fonctionnement proches de celles d'Ext4 et XFS.

Source : opennet.ru

Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster