Btrfs, qui signifie “Système de fichiers B-Tree” en français, est un système de fichiers moderne et riche en fonctionnalités, conçu pour les systèmes Linux. Il utilise une structure de données en arbre appelée “B-Tree” pour organiser les fichiers et les métadonnées. Cette structure permet de gérer efficacement les gros volumes de données et les fichiers de taille importante.
Btrfs offre de nombreuses fonctionnalités avancées, telles que la compression de données, la déduplication, la création de snapshots, la migration de blocs défectueux et la prise en charge de plusieurs dispositifs de stockage en mode RAID. Il prend également en charge les sous-volumes, qui sont des sous-partitions logiques du système de fichiers, ce qui permet de mieux organiser les données et de les gérer plus efficacement.
Btrfs est considéré comme étant un système de fichiers stable pour un usage courant sur les systèmes Linux modernes. Cependant, il convient de noter que certaines fonctionnalités plus avancées de Btrfs, telles que la déduplication et le RAID5/6, peuvent être moins matures et moins testées que les fonctionnalités de base.
Btrfs a été initialement développé par Oracle en 2007 pour être inclus dans le noyau Linux. Depuis lors, il est développé et maintenu par une communauté de développeurs bénévoles, ainsi que par des entreprises telles que SUSE, Facebook, Fujitsu et Western Digital.
Le développement de Btrfs se poursuit activement, avec de nouvelles fonctionnalités et améliorations étant régulièrement ajoutées au système de fichiers. Btrfs est inclus dans le noyau Linux depuis la version 2.6.29 et est devenu de plus en plus populaire en tant que système de fichiers par défaut pour certaines distributions Linux, telles que SUSE Linux Enterprise Server, openSUSE ou Fedora Linux.
Pour créer un système de fichiers Btrfs sur un périphérique de stockage, vous pouvez utiliser la commande suivante :
sudo mkfs.btrfs /dev/sdX
où /dev/sdX
représente le périphérique de stockage sur lequel vous souhaitez créer le système de fichiers Btrfs.
Pour monter un système de fichiers Btrfs sur un point de montage, vous pouvez utiliser la commande suivante :
sudo mount /dev/sdX /mnt/point-de-montage
où /dev/sdX
représente le périphérique de stockage sur lequel est situé le système de fichiers Btrfs, et /mnt/point-de-montage
représente le point de montage où vous souhaitez monter le système de fichiers.
Pour afficher des informations sur un système de fichiers Btrfs, vous pouvez utiliser la commande suivante :
sudo btrfs filesystem show
Cette commande affichera des informations telles que la version du système de fichiers, la taille totale de l'espace de stockage et les options de montage actuelles.
Créer un sous-volume Btrfs peut être utile pour plusieurs raisons :
Pour créer un sous-volume dans un système de fichiers Btrfs, vous pouvez utiliser la commande suivante :
sudo btrfs subvolume create /chemin/vers/sous-volume
où /chemin/vers/sous-volume
représente le chemin d'accès au nouveau sous-volume que vous souhaitez créer.
Pour créer des snapshots dans un système de fichiers Btrfs, vous devez d'abord créer un sous-volume (btrfs subvolume create
). Les snapshots Btrfs sont en fait des copies instantanées d'un sous-volume, ce qui signifie que vous devez avoir au moins un sous-volume pour créer des snapshots.
Pour créer un snapshot d'un sous-volume Btrfs, vous pouvez utiliser la commande suivante :
sudo btrfs subvolume snapshot /chemin/vers/source /chemin/vers/destination
où /chemin/vers/source
représente le chemin d'accès au sous-volume source à partir duquel vous souhaitez créer le snapshot, et /chemin/vers/destination
représente le chemin d'accès au nouveau sous-volume snapshot.
Les snapshots et les sous-volumes Btrfs peuvent être utilisés pour organiser et gérer efficacement les données dans un système de fichiers Btrfs. Les sous-volumes peuvent être utilisés pour isoler différents ensembles de fichiers et de données, tandis que les snapshots peuvent être utilisés pour créer des copies de sauvegarde ou des points de restauration de l'état du système de fichiers à un moment donné.
Pour lister les snapshots présents dans un système de fichiers Btrfs, vous pouvez utiliser la commande btrfs subvolume list. Cette commande affichera une liste de tous les sous-volumes et snapshots présents dans le système de fichiers Btrfs.
Voici la syntaxe générale de la commande :
sudo btrfs subvolume list [chemin/vers/systeme-de-fichiers]
où chemin/vers/systeme-de-fichiers
représente le chemin d'accès au système de fichiers Btrfs que vous souhaitez lister. Si aucun chemin d'accès n'est spécifié, la commande listera les sous-volumes et snapshots du système de fichiers monté sur le point de montage courant.
Pour effacer un snapshot dans un système de fichiers Btrfs, vous pouvez utiliser la commande btrfs subvolume delete
. Voici la syntaxe générale de cette commande :
sudo btrfs subvolume delete [chemin/vers/snapshot]
où chemin/vers/snapshot
représente le chemin d'accès au snapshot que vous souhaitez effacer.
Pour vérifier l'intégrité d'un système de fichiers Btrfs, vous pouvez utiliser la commande suivante :
sudo btrfs scrub start /chemin/vers/systeme-de-fichiers
où /chemin/vers/systeme-de-fichiers
représente le chemin d'accès au système de fichiers Btrfs que vous souhaitez vérifier.
Avec la compression transparente de Btrfs, il n'est pas nécessaire d'installer les programmes de compression car *Btrfs les prend en charge directement :
La compression transparente est une fonctionnalité qui permet de compresser des données sur un système de fichiers sans que l'utilisateur ait à s'en soucier. Cela signifie que lorsque les fichiers sont écrits sur le disque, ils sont automatiquement compressés et, lorsqu'ils sont lus, ils sont automatiquement décompressés. Cette fonctionnalité peut aider à économiser de l'espace de stockage sur le disque dur, car les fichiers compressés prennent moins de place que les fichiers non compressés.
La compression transparente du système de fichiers dans Btrfs est configurable de plusieurs façons :
chattr
En utilisant l'option de montage compress
lors du montage du système de fichiers Btrfs. Cette option s'applique alors à tous les sous-volumes de ce système de fichiers. Par exemple, pour monter un système de fichiers Btrfs en utilisant l'algorithme de compression zstd
sur le niveau 3, la commande suivante doit être utilisée : sudo mount -o compress=zstd:3 …
.
Il est important de noter que l'option de montage compress
s'applique à tout le système de fichiers Btrfs et à tous ses sous-volumes. De plus, c'est la seule méthode supportée pour spécifier le niveau de compression à utiliser.
Pour appliquer la compression au système de fichiers racine, elle doit être spécifiée dans le fichier /etc/fstab
. Par exemple, l'installeur de Fedora Linux active la compression zstd
sur le niveau 1 par défaut, et cela est reflété dans le fichier /etc/fstab
.
UUID=47b03671-39f1-43a7-b0a7-db733bfb47ff / btrfs subvol=root,compress=zstd:1,[ ... ] 0 0
Une autre méthode de spécification de la compression consiste à utiliser les propriétés du système de fichiers Btrfs. Pour lire le paramètre de compression pour n'importe quel fichier, dossier ou sous-volume, utilisez la commande suivante :
sudo btrfs property get <CHEMIN> compression
De même, vous pouvez configurer la compression de la manière suivante :
sudo btrfs property set <CHEMIN> compression <VALEUR>
Par exemple, pour activer la compression zlib pour tous les fichiers sous /etc :
sudo btrfs property set /etc compression zlib
Vous pouvez obtenir une liste de valeurs prises en charge avec man btrfs-property
. Gardez à l'esprit que cette interface ne permet pas de spécifier le niveau de compression. De plus, si une propriété de compression est définie, elle remplace toute autre compression configurée au moment du montage.