https://www.flickr.com/photos/13650642@N06/4473970725/

Nouveautés apportées par BTRFS, le nouveau système de fichiers natif sous Linux

BTRFS est un système de fichiers multi-racines intégré au noyau Linux en 2013 et déclaré stable. Il permet de stocker 16 millions de To par volume (16 Eo) et apporte de nombreuses fonctionnalités. Je vous laisse vous référer à la page Wikipedia.

Voici par ordre d’utilité en ce qui me concerne.

1. Détection et optimisation automatique des SSD

La FAQ donne un bon aperçu de ce qu’est BTRFS, en l’occurrence on y apprend que les disques sans plateau profitent d’optimisations spécifiques et que c’est une des préoccupation du développement. Que ce soit pour la durée de vie ou les performances, c’est une bonne chose que cela soit considéré nativement par le FS. Avec Ext4 notamment, il était nécessaire de désactiver certaines options lors du montage, telle que l’écriture des heures d’accès aux fichiers.

2. Le RAID linéaire

Avant BTRFS, les deux types de RAID de base étaient :
– du RAID 0, consistant à répartir les données entre les disques afin d’écrire plus vite (cumule l’espace, divise la sécurité)
– du RAID 1, consistant à dupliquer les données pour créer de la redondance (cumule la sécurité, divise l’espace)

Il existe un mixte des deux appelé JBOD (littéralement Just a Bunch Of Disks) qui consiste à cumuler l’espace des disques en écrivant dessus au fur et à mesure. Plus d’espace pour la même sécurité qu’avec des disques isolés, sauf si le disque où le système de fichiers stocke son index est touché. Dans ce cas, l’intégralité des données est corrompue, sinon seuls les fichiers du disque concerné sont perdus, puisque le système de fichier ne voit qu’un unique support matériel.

Avec BTRFS, le RAID linéaire permet de répliquer les méta-données sur chaque disque. Cela est rendu possible car le RAID est ici réalisé par le système de fichiers : il a donc conscience des volumes sur lesquels il fait reposer le RAID. Si un volume est perdu (disque débranché ou défaillant, partition corrompue, système de fichier irréparable), l’index complet des fichiers existe sur les disques survivants et les données restantes sont disponibles, peu importe le volume touché.

Le RAID linéaire est utile lorsqu’on dispose de supports de stockages divers et variés que l’on souhaite agréger pour les recycler, par exemple en NAS en ajoutant un serveur NFS. Vous l’aurez compris, ceci n’est possible ni avec une carte RAID, ni avec MDADM, ni avec LVM : le JBOD de BTRFS offre de meilleures chances de survie aux données, notamment avec un petit nombre de disques.

3. Snapshots incrémentiels

Après une copie complète initiale placée en lecture seule, BTRFS est capable de réaliser des sauvegardes incrémentielles avec rotation (conserver par exemple une sauvegarde par jour, puis une par mois, puis une par an).

Les sauvegardes permettent non seulement de retrouver l’état des fichiers dans le temps, mais également tout un système stable sur le principe des images disques. Les applications verront les données exactement comme à la suite d’un arrêt électrique.

Les transferts de snapshots sont également incrémentiels, plus légers et plus rapides qu’avec rsync puisque là encore, le système de fichiers peut distinguer la suppression d’un fichier et un simple renommage d’arborescence.

Conclusion

BTRFS change nos habitudes vis à vis du système de fichiers : il s’agit d’un véritable couteau suisse qui nécessite un apprentissage au fur et à mesure de nos besoins.

3 commentaires sur “Nouveautés apportées par BTRFS, le nouveau système de fichiers natif sous Linux

  1. Attention, le format du système de fichiers est déclaré stable, mais pas le code du pilote, qui est encore en développement ! Un moment, en lisant cet article, j’ai cru que Btrfs avait enfin été publié en version stable, mais ce n’est pas encore le cas…

  2. Hello,

    Je suis assez étonné puisqu’à ma connaissance c’est le cas (cf liens inclus dans l’article), peux tu indiquer la source qui t’a permis de vérifier cette info ? Je n’ai rien trouvé sur Google à ce sujet, ni dans le Changelog : https://btrfs.wiki.kernel.org/index.php/Changelog

    Les divers outils tels que le fsck (vérification d’intégrité) ont tous été finalisés et intégrés dans les distributions il y a un certain temps. On trouve ce FS dans la liste des formats proposés dans les installateurs de Ubuntu et Fedora depuis près de deux ans par exemple.

    Qu’un logiciel soit en amélioration continue ne signifie pas pour autant qu’il n’ait pas atteint une version stable, en revanche un logiciel dont le développement est arrêté serait un logiciel mort 😉 Certaines fonctionnalités secondaires sont toujours en cours de développement, il s’agit de tout ce qui est listé sur cette page : https://btrfs.wiki.kernel.org/index.php/Project_ideas

L'espace de discussion de cet article est désormais fermé.