Commande Linux btrfs
Btrfs (B-tree File System) est un système de fichiers Linux avancé développé par Oracle et publié pour la première fois en 2007. Son objectif de conception est de résoudre les limitations des systèmes de fichiers traditionnels, en offrant une meilleure évolutivité, une meilleure fiabilité et de meilleures fonctionnalités de gestion.
Fonctionnalités principales
- Copy-on-Write (CoW): toutes les opérations d'écriture n'écrasent pas les données existantes, mais créent de nouvelles copies
- Fonctionnalité de snapshot: peut créer rapidement des instantanés du système de fichiers, tout en n'occupant presque aucun espace supplémentaire.
- Gestion des sous-volumes: prend en charge la division du système de fichiers en plusieurs sous-volumes indépendants
- Sommes de contrôle des données: détecte automatiquement la corruption des données
- Compression transparente: prend en charge la compression et la décompression des données de fichiers en temps réel
- Prise en charge RAID: prise en charge intégrée de plusieurs niveaux RAID
Syntaxe de base des commandes btrfs
btrfs [选项] [子命令选项] [参数]
Options courantes
| Option | Description |
|---|---|
-v |
Mode de sortie verbeux |
--help |
Afficher les informations d'aide |
--version |
Afficher les informations de version |
Explication des principales sous-commandes
Création et gestion du système de fichiers
Créer un système de fichiers btrfs
Exemple
sudo mkfs.btrfs /dev/sdX
# Créer un système de fichiers avec une étiquette
sudo mkfs.btrfs -L mylabel /dev/sdX
# Créer un RAID1 à l'aide de plusieurs périphériques
sudo mkfs.btrfs -m raid1 -d raid1 /dev/sdX /dev/sdY
Monter un système de fichiers btrfs
Exemple
sudo mount /dev/sdX /mnt/btrfs
# Activer la compression (lzo ou zstd recommandés)
sudo mount -o compress=lzo /dev/sdX /mnt/btrfs
# Afficher les options de montage
mount | grep btrfs
Opérations sur les sous-volumes
Créer un sous-volume
Exemple
sudo btrfs subvolume create /mnt/btrfs/subvol1
# Lister les sous-volumes
sudo btrfs subvolume list /mnt/btrfs
# Supprimer un sous-volume
sudo btrfs subvolume delete /mnt/btrfs/subvol1
Gestion des instantanés
Exemple
sudo btrfs subvolume snapshot /mnt/btrfs /mnt/btrfs/snapshot_$(date +%Y%m%d)
# Instantané en lecture seule
sudo btrfs subvolume snapshot -r /mnt/btrfs /mnt/btrfs/readonly_snap
# Supprimer un instantané
sudo btrfs subvolume delete /mnt/btrfs/snapshot_20230101
Gestion de l'espace
Afficher l'utilisation du système de fichiers
Exemple
sudo btrfs filesystem usage /mnt/btrfs
# Afficher l'utilisation du disque
sudo btrfs filesystem df /mnt/btrfs
# Équilibrer la répartition des données (à utiliser avec prudence, peut être long)
sudo btrfs balance start /mnt/btrfs
Redimensionner le système de fichiers
Exemple
sudo btrfs filesystem resize +10G /mnt/btrfs
# Réduire le système de fichiers
sudo btrfs filesystem resize -5G /mnt/btrfs
Vérification de l'intégrité des données
Vérifier le système de fichiers
Exemple
sudo btrfs check /dev/sdX
# Tentative de réparation (à utiliser avec prudence)
sudo btrfs check --repair /dev/sdX
Nettoyage et réparation
Exemple
sudo btrfs filesystem defrag /mnt/btrfs
# Vérifier et réparer le système de fichiers
sudo btrfs scrub start /mnt/btrfs
# Afficher l'état de la réparation
sudo btrfs scrub status /mnt/btrfs
Exemples d'applications pratiques
Exemple 1 : Configuration d'un répertoire personnel btrfs avec compression
Exemple
sudo mkfs.btrfs -L home /dev/sdX
# Monter et activer la compression
sudo mount -o compress=zstd /dev/sdX /mnt/newhome
# Copier les données existantes
sudo rsync -avx /home/ /mnt/newhome/
# Mettre à jour fstab pour activer le montage automatique
echo "UUID=$(blkid -s UUID -o value /dev/sdX) /home btrfs defaults,compress=zstd 0 2" | sudo tee -a /etc/fstab
# Remonter
sudo umount /mnt/newhome
sudo mount -a
Exemple 2 : Instantanés réguliers et nettoyage
Exemple
# Créer des instantanés quotidiens
SNAP_DIR="/mnt/btrfs/.snapshots"
mkdir -p "$SNAP_DIR"
sudo btrfs subvolume snapshot -r /mnt/btrfs "$SNAP_DIR/$(date +%Y%m%d)"
# Conserver les 7 derniers jours d'instantanés
find "$SNAP_DIR" -mindepth 1 -maxdepth 1 -type d -name "2*" | sort -r | tail -n +8 | xargs -r sudo btrfs subvolume delete
Résolution de problèmes courants
Problème 1 : Espace insuffisant mais df affiche de l'espace disponible
Exemple
sudo btrfs subvolume list -s /mnt/btrfs
# Nettoyer les instantanés inutiles
sudo btrfs subvolume delete /mnt/btrfs/old_snapshot
Problème 2 : Opération d'équilibrage bloquée
Exemple
sudo btrfs balance status /mnt/btrfs
# Mettre en pause l'opération d'équilibrage
sudo btrfs balance pause /mnt/btrfs
# Reprendre l'opération d'équilibrage
sudo btrfs balance resume /mnt/btrfs
Problème 3 : Échec du montage
Exemple
sudo btrfs check /dev/sdX
# Tenter une réparation
sudo btrfs rescue zero-log /dev/sdX
sudo mount /dev/sdX /mnt/btrfs
Recommandations de bonnes pratiques
-
Activer la compression: en particulier pour les données compressibles telles que le texte et les journaux
# 推荐使用 zstd 压缩算法 mount -o compress=zstd /dev/sdX /mnt/btrfs
-
Créez régulièrement des instantanés: Créez manuellement des instantanés avant les opérations importantes
-
Surveillez l'utilisation de l'espace: L'espace rapporté par btrfs diffère de celui des systèmes de fichiers traditionnels
-
Évitez le remplissage à 100%: Conservez au moins 5-10% d'espace libre
-
Utilisez balance avec prudence: Ne l'exécutez que lorsque c'est nécessaire, car cela peut être très chronophage
-
Envisagez une configuration RAID: Utilisez RAID1 ou RAID10 pour les données importantes
-
Effectuez régulièrement un scrub: Vérifiez l'intégrité des données
# 每月执行一次数据检查 sudo btrfs scrub start /mnt/btrfs
Grâce à cet article, vous devriez avoir maîtrisé les opérations de base et les méthodes de gestion du système de fichiers btrfs. Les fonctionnalités puissantes de btrfs en font un choix idéal pour les systèmes Linux modernes, particulièrement adapté aux scénarios nécessitant des fonctionnalités de stockage avancées.
Autres extensions
Référence des commandes Linux