BTRFS
Présentation du système de fichiers btrfs :
Le système de fichiers btrfs (B-tree File System) est un système de fichiers moderne et avancé développé par Oracle. Il a été conçu pour répondre aux besoins des systèmes de stockage modernes, en offrant de nombreuses fonctionnalités intéressantes :
1. Copie sur écriture (Copy-on-Write) : Btrfs utilise la copie sur écriture, ce qui permet de créer rapidement des instantanés (snapshots) du système de fichiers sans consommer beaucoup d'espace disque.
2. Gestion du stockage : Btrfs permet de gérer facilement le stockage en utilisant des volumes logiques, des sous-volumes et des quotas. Cela facilite la gestion de l'espace disque.
3. Réplication et tolérance aux pannes : Btrfs prend en charge la réplication des données sur plusieurs disques, offrant ainsi une meilleure tolérance aux pannes.
4. Compression des données : Btrfs peut compresser les données en ligne, ce qui permet de réduire l'espace disque utilisé.
5. Déduplication : Btrfs peut détecter et supprimer les doublons de données, ce qui permet également de gagner de l'espace disque.
6. Équilibrage de charge : Btrfs peut automatiquement équilibrer la charge sur plusieurs disques pour optimiser les performances.
7. Vérification de l'intégrité des données : Btrfs peut vérifier l'intégrité des données et les corriger en cas d'erreurs.
Commande BTRFS
Lister les volumes
sudo btrfs subvolume list ./
Dans l'exemple, on liste des sous-volumes qui se trouvent dans /
.
Créer/restaurer un instantané.
Avant de commencer, il faut que le système de fichier BTRFS soit monter (de préférence à la racine) pour pouvoir créer et restaurer correctement les instantanés.
Dans mon exemple, j'ai créé un dossier /btrfs
.
sudo mkdir /btrfs
Ensuite, j'ai renseigné le point de montage dans mon fichier fstab
, la ligne 10 dans l'exemple :
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a device; this may
# be used with UUID= as a more robust way to name devices that works even if
# disks are added and removed. See fstab(5).
#
# <file system> <mount point> <type> <options> <dump> <pass>
UUID=aa78bd8c-d856-4059-b214-2be73e6d99aae / btrfs compress=zstd:3,subvol=/@,defaults 0 0
UUID=aa78bd8c-d856-4059-b214-2be736d9e9aae /home btrfs compress=zstd:3,subvol=/@home,defaults 0 0
UUID=aa78bd8c-d856-4059-b214-2be736d9e9aae /btrfs btrfs defaults 0 0
tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0
Pour monter la partition.
sudo systemctl daemon-reload
sudo mount -a
Créer un instantané.
sudo btrfs subvolume snapshot /btrfs/@ /btrfs/@-$(date +%d-%m-%Y_%H-%M-%S)
Dans l'exemple, ont fait un instantané de la racine du système, la seconde partie est le chemin de l'instantané, à la fin, j'ai placé une variable pour l'horodater.
Restaurer un instantané.
Pour restaurer un instantané, il suffit d'utiliser la commande mv
, le but de la manœuvre est d'intervertir le sous-volume de base avec l'instantané, puis on redémarre.
# Ont isole le sous-volume
sudo mv /btrfs/@ /btrfs/@_old
# ont déplace l'instantané en lieu et place du sous-volume
sudo mv /btrfs/@-05-02-2023_13-02-56 /btrfs/@
# ont redémarre l'ordinateur sur l'instantané
reboot
Démarrer sur un instantané sans restauration.
Il est possible de démarrer sur un instantané sans passer par une restauration.
Systemd-boot (la suite au prochain épisode)
Sur systemd-boot