Btrfs
Introduction
Btrfs est un système de fichiers journalisé développé sous license GNU GPL ayant pour but de combler les manques des systèmes de fichiers utilisés sous Linux. Oracle, Red Hat, Fujitsu, Intel et d’autres participent activement à son développement. La structure de Btrfs est un arbre B et il implémente des fonctionalités telles que le RAID, les sous-volumes et snapshots, le redimensionement à chaud, à la baisse ou à la hausse, la copie sur écriture, la compression…
Le noyau
Tout d’abord, afin d’utiliser Btrfs, vous devez vous assurer que votre noyau a bien été compilé avec son support. Dans notre exemple, nous avons compilé son support en dur, mais rien ne vous empèche de le mettre en module.
File systems --->
<*> Btrfs filesystem support
[*] Btrfs POSIX Access Control Lists
Btrfs-progs
Ensuite, il vous faut installer le paquet sys-fs/btrfs-progs qui vous permettra d’utiliser les fonctionnalités de ce système de fichier.
emerge -av btrfs-progs
Utilisation
Formater
Vous pouvez formater une partition simplement, comme n’importe quel système de fichier :
mkfs.btrfs -L data /dev/sda2
Raid0
Le Raid0 permet d’aggréger les capacités de plusieurs disques sans sécurisation des données.
mkfs.btrfs -L data -d raid0 /dev/sda2 /dev/sdb2
Raid1
Le Raid1 permet d’effectuer un mirroir des données et ainsi de ne pas en perdre en cas de perte d’un des disques.
mkfs.btrfs -L data -d raid1 /dev/sda2 /dev/sdb2
Monter
Dans l’exemple ci-dessous, nous activons les options propre aux disque de type SSD (TRIM) :
mount -t btrfs -o defaults,noatime,ssd,discard LABEL=data /mnt/data
Fstab
Ci-dessous un exemple de point de montage dans le fichier /etc/fstab avec l’auto-défragmentation activée :
LABEL=data /mnt/data btrfs defaults,noatime,autodefrag 0 0
Il est important de noter qu’il ne faut pas lancer la vérification automatique du système de fichier au démarrage, au risque de l’abimer, ce qui correspond aux deux 0 à la fin de la ligne.
Agrandir
Afin d’agrandir le système de fichier Btrfs :
btrfs filesystem resize +1g /mnt/data
En utilisant le maximum disponible de la partition :
btrfs filesystem resize max /mnt/data
Diminuer
Afin de diminuer le système de fichier Btrfs :
btrfs fileystem resize -1g /mnt/data
Subvolume
Les subvolumes sont une unité logique du système de fichiers Btrfs qui permettent d’être snapshotés et d’être montés à un point différent de leur position d’origine. Il est possible aussi de modifier le numéro identifiant d’un subvolume et ainsi d’intervertir un subvolume et un de ses snaphots, dans le cas d’une restauration d’un snaphot par exemple. Les subvolumes supportent aussi un mécanisme de quota.
A noter par ailleurs, que si vous souhaitez utiliser un subvolume pour la racine de votre système de fichier, il vous faudra créer un initramfs permettant d’activer les subvolumes Btrfs .
Créer un subvolume
btrfs subvolume create /mnt/data/babykart
Créer un snapshot
btrfs subvolume snapshot /mnt/data/babykart /mnt/data/.snap0.babykart
Lister les subvolumes
btrfs subvolume list /mnt/data/
Supprimer un snapshot
btrfs subvolume delete /mnt/data/.snap0.babykart
Monter un subvolume
Comme expliqué précédemment, vous pouvez monter un subvolume à un point différent de son point d’origine. Dans notre exemple, nous monterons le subvolume /mnt/data/babykart dans /home/babykart :
mount -t btrfs -o defaults,noatime,subvol=babykart LABEL=data /home/babykart
Vous pouvez ensuite démonter le point /mnt/data, /home/babykart restera accessible. Par la suite, il vous suffit de monter le subvolume uniquement.
Liens
- https://btrfs.wiki.kernel.org/index.php/Main_Page
- http://fr.wikipedia.org/wiki/Copy-On-Write
- http://fr.wikipedia.org/wiki/B-tree
- https://wiki.gentoo.org/wiki/Btrfs/fr
- http://www.funtoo.org/BTRFS_Fun