Créer un pool Btrfs et activer le miroir sur Linux

Btrfs permet d’agréger plusieurs disques en un seul espace de stockage et d’activer des profils RAID (mirroring, striping, RAID10) au niveau du système de fichiers. Ce guide explique pas à pas comment créer un pool, ajouter et retirer des appareils, convertir le profil RAID, gérer une panne de disque et optimiser /etc/fstab pour HDD et SSD. Contient aussi une fiche de procédure, listes de vérification et conseils d’atténuation des risques.
Btrfs simplifie l’utilisation de plusieurs disques en les présentant comme un espace unique. On peut répartir les données, les répliquer (mirroring) et modifier la configuration sans reformater l’ensemble quand c’est possible.
Qu’est-ce que Btrfs ?
Btrfs (B-tree filesystem, souvent écrit « Butter FS » ou « Better FS ») est un système de fichiers moderne pour Linux qui intègre au niveau du FS des fonctionnalités qu’on trouvait auparavant dans des outils séparés (snapshots, sous-volumes, checksum des données, pooling, profils de données et métadonnées). Définition rapide : un système de fichiers organise l’espace disque et les fichiers sur un ou plusieurs appareils de stockage.
Important : Btrfs est largement utilisable pour un usage personnel et des scénarios de production modérés, mais certaines fonctionnalités avancées ont des exigences spécifiques et des limites. Pour un disque unique sans besoin de pooling, ext4 reste souvent plus simple et robuste.
Scénario d’exemple
Dans les exemples ci‑dessous j’utilise un système avec cinq disques visibles par le noyau :
- /dev/sda : disque système (boot, OS) — ignoré pour le pool
- /dev/sdb : 1 To
- /dev/sdc : 1 To
- /dev/sdd : 500 Go
- /dev/sde : 500 Go
Total théorique combiné : 3 To si on agrège sans réplication. Si on choisit un profil miroir (RAID1), l’espace utilisable dépend du profil choisi.
Créer un système de fichiers Btrfs sur un disque
Pour initialiser un disque avec un système de fichiers Btrfs :
sudo mkfs.btrfs /dev/sdb
Montez ensuite le premier disque sur /mnt :
sudo mount /dev/sdb /mnt
Si vous préférez formater tous les disques en une seule commande (création immédiate d’un système réparti), utilisez :
sudo mkfs.btrfs -d single /dev/sdb /dev/sdc /dev/sdd /dev/sde
Explications des options fréquentes pour -d (données) et -m (métadonnées) :
- single : stockage sans réplication adapté aux disques de tailles différentes
- raid0 : striping (plus de performance, aucune redondance)
- raid1 : miroir (duplique les données, exige au moins 2 dispositifs)
- raid10 : combinaison de raid0+raid1 (exige au moins 4 dispositifs)
Si vous avez des disques de tailles différentes, “single” permet de tirer parti de la capacité non homogène ; pour des disques identiques privilégiez raid0/raid1/raid10 selon l’objectif.
Ajouter d’autres disques au pool existant
Formatez les disques que vous allez ajouter (si nécessaire) :
sudo mkfs.btrfs /dev/sdc
sudo mkfs.btrfs /dev/sdd
sudo mkfs.btrfs /dev/sde
Ajoutez-les ensuite au volume monté (/mnt) :
sudo btrfs device add /dev/sdc /mnt
sudo btrfs device add /dev/sdd /mnt
sudo btrfs device add /dev/sde /mnt
Si des données existaient déjà sur /dev/sdb, lancez une rééquilibrage pour répartir les données sur les nouveaux appareils :
sudo btrfs filesystem balance /mnt
Astuce : le rééquilibrage peut être affiné (filtres, limites) pour contrôler la charge et l’utilisation d’espace ; consultez “btrfs balance –help” pour les options.
Créer directement un pool réparti
Si vous savez à l’avance que tous les disques doivent faire partie d’un même espace, la création directe est plus simple :
sudo mkfs.btrfs -d raid0 /dev/sdb /dev/sdc /dev/sdd /dev/sde
Remplacez raid0 par raid1 ou raid10 selon vos besoins. Note : raid1 sur des disques de tailles différentes utilisera la capacité de la plus petite unité pour la réplication, donc avec nos 1 To + 1 To + 500 Go + 500 Go, un raid1 global pourrait limiter l’espace utilisable à 500 Go selon la configuration.
Convertir la configuration RAID d’un pool existant
Pour convertir les profiles de données/métadonnées sans reformater :
Montez la partition (exemple /dev/sdb1) :
sudo mount /dev/sdb1 /mnt
Convertissez le profil :
sudo btrfs balance start -dconvert=raid1 -mconvert=raid1 /mnt
Remplacez raid1 par le profil souhaité (raid0, raid10…) selon la topologie et le nombre de disques disponibles. Le paramètre -mconvert est optionnel si vous ne souhaitez pas convertir les métadonnées.
Important : certaines conversions ne sont pas possibles si la topologie actuelle ne fournit pas assez d’appareils. Par exemple, RAID10 requiert au moins 4 disques.
En cas de panne d’un disque
Si un disque tombe en panne, montez le système en mode dégradé :
sudo mount -o degraded /dev/sdb /mnt
Supprimez ensuite l’appareil manquant de la configuration :
sudo btrfs device delete missing /mnt
Si vous n’aviez pas de profil redondant (raid1/raid10), les données présentes uniquement sur le disque défaillant seront perdues. Après remplacement du disque, ajoutez-le au pool puis rééquilibrez pour restaurer la redondance.
Retirer un disque d’un pool
Pour retirer proprement un disque encore sain (/dev/sdc), exécutez :
sudo btrfs device delete /dev/sdc /mnt
Cette opération déplace les données hors du disque à retirer. Elle peut échouer s’il n’y a pas assez d’espace libre sur les appareils restants.
Montage automatique via /etc/fstab
Pour monter automatiquement à l’amorçage, ajoutez une ligne dans /etc/fstab. Exemple très basique :
/dev/sdb /mnt btrfs device=/dev/sdb,device=/dev/sdc,device=/dev/sdd,device=/dev/sde 0 0
Note : vous pouvez utiliser des UUID ou des labels pour plus de robustesse si l’ordre des /dev/sdX change.
Options de montage conseillées
Pour gros ensembles de disques (HDD) :
compress-force=zlib,autodefrag,nospace_cache
Pour SSD :
noatime,compress=lzo,ssd,discard,space_cache,autodefrag,inode_cache
Exemple complet pour SSD dans /etc/fstab :
/dev/sdb /mnt btrfs device=/dev/sdb,device=/dev/sdc,device=/dev/sdd,device=/dev/sde,noatime,compress=lzo,ssd,discard,space_cache,autodefrag,inode_cache 0 0
Conseil : testez les options de compression sur un échantillon de données : certaines données (fichiers déjà compressés, médias) ne gagnent rien en espace et subissent un coût CPU.
Fiche de procédure rapide (SOP) — créer un pool 4 disques
- Vérifier l’état des disques : sudo smartctl -a /dev/sdX
- Sauvegarder toute donnée importante
- Formater le premier disque : sudo mkfs.btrfs /dev/sdb
- Monter : sudo mount /dev/sdb /mnt
- Formater et ajouter les autres disques : sudo mkfs.btrfs /dev/sdc; sudo btrfs device add /dev/sdc /mnt (répéter)
- Lancer un balance : sudo btrfs filesystem balance /mnt
- Mettre à jour /etc/fstab avec options choisies
- Tester démontage/remontage et vérifier l’intégrité : sudo btrfs scrub start /mnt
Liste de vérification par rôle
Administrateur système :
- Vérifier SMART et contrôleurs RAID
- Utiliser UUIDs dans /etc/fstab
- Planifier vérifications régulières (scrub)
Utilisateur à la maison :
- Sauvegarder données critiques avant opérations
- Préférer raid1 si la redondance est prioritaire
- Tester performances et consommation CPU avec compression
Quand Btrfs n’est pas adapté
- Si vous avez un seul disque et cherchez la simplicité maximale, ext4 est souvent suffisant.
- Si vous avez des exigences strictes en enterprise-grade RAID avec contrôleurs matériels, ZFS ou un RAID matériel peuvent être plus appropriés.
- Certaines fonctionnalités expérimentales de Btrfs peuvent encore être instables pour des configurations très spécifiques ; vérifiez la documentation et retours de votre distribution.
Approches alternatives
- LVM + ext4/XFS : permet d’agréger des volumes mais n’offre pas nativement snapshots fiables ni checksums intégrés comme Btrfs.
- ZFS : très mature pour le pooling, la protection des données et les snapshots ; demande plus de mémoire et a des contraintes de licence/history selon les distributions.
Mécanismes mentaux utiles (heuristiques)
- Si vous voulez performance sans redondance : raid0 / single.
- Si vous voulez sécurité des données : raid1 ou raid10.
- Si vous avez disques de taille différentes : “single” ou planifier partitions égales pour RAID.
- Toujours sauvegarder avant conversion majeure.
Matrice de risques et mesures d’atténuation
- Perte d’un disque sans redondance : risque élevé → sauvegarde régulière + éviter raid0 pour données critiques.
- Conversion impossible pour manque d’appareils : risque moyen → vérifier topologie avant conversion.
- Rééquilibrage long et intense : risque opérationnel (I/O élevé) → planifier en dehors des heures de production.
Cheatsheet des commandes essentielles
- Formater : sudo mkfs.btrfs /dev/sdX
- Ajouter appareil : sudo btrfs device add /dev/sdY /mnt
- Supprimer appareil : sudo btrfs device delete /dev/sdY /mnt
- Balance : sudo btrfs filesystem balance /mnt
- Convertir RAID : sudo btrfs balance start -dconvert=raid1 -mconvert=raid1 /mnt
- Supprimer missing : sudo btrfs device delete missing /mnt
- Démarrer scrub : sudo btrfs scrub start /mnt
Compatibilité et migration
- Migration depuis ext4/XFS : sauvegarder, reformater/distribuer, restaurer les données.
- Changer de distribution : conservez les UUIDs et labels ; vérifier la version du noyau et btrfs-progs pour compatibilité.
Glossaire rapide
- pool : espace logique qui regroupe plusieurs disques
- raid0/raid1/raid10 : profils de données (striping, mirroring, combinaison)
- balance : opération qui répartit les données sur les appareils du pool
- scrub : vérification d’intégrité et réparation au niveau Btrfs
Questions fréquentes
Que devient l’espace quand on utilise raid1 sur des disques de tailles différentes ?
- La réplication s’adapte mais l’espace utilisable peut être réduit au niveau de la plus petite unité selon le profil choisi.
Peut-on ajouter un disque plus grand pour augmenter la capacité après création ?
- Oui, ajoutez le disque au pool et lancez un balance pour redistribuer les données.
Résumé
Btrfs est un outil puissant pour l’agrégation et la protection des données au niveau du système de fichiers. Il convient parfaitement aux utilisateurs qui veulent un contrôle fin : ajout/retrait de disques à chaud, conversion de profils RAID, et options de compression intégrée. Pour tous changements structurants, sauvegardez d’abord et testez les options de montage sur un échantillon.
Image Credit: William Hook
Annonce courte (100–200 mots)
Btrfs facilite la création d’un pool de stockage sur Linux en combinant plusieurs disques en un seul espace logique et en proposant des profils RAID (mirroring, striping, RAID10) au niveau du système de fichiers. Ce guide explique comment créer et gérer un pool Btrfs, ajouter ou retirer des disques à chaud, convertir les profils RAID sans reformater quand c’est possible, et optimiser /etc/fstab pour HDD et SSD. Il inclut une fiche de procédure, des listes de vérification par rôle, une matrice de risques et un cheat‑sheet des commandes essentielles pour réduire les interruptions et protéger vos données. Sauvegardez toujours avant une opération majeure et testez les options de compression sur vos types de fichiers.
Matériaux similaires

Créer un utilisateur Active Directory — Guide rapide

Raids à distance Pokémon Go : guide et calendrier

Installer Xfinity Internet à domicile

Instagram ne fonctionne pas sur Windows 11 ? Guide de dépannage

Changer le navigateur par défaut sous Windows 11
