Btrfs

De Le Wiki du Forum-Debian.fr
Aller à la navigation Aller à la recherche

Btrfs est un système de fichier 128bits transactionnel développé par Oracle pour le noyau Linux. Il est actuellement toujours en développement, mais devrait bientôt devenir stable et être utilisé par un grand nombre de distribution.

Fonctionnalités

Ce système de fichier possède des fonctionnalités très différentes des habituels ext, fat ou ntfs. btrfs se rapproche plus de zfs. zfs permet entre autre :

  • la compression des données de manière transparente
  • le redimensionnement de volume à chaud
  • la création de snapshots instantanés
  • la gestion de sous-volumes

Prérequis

Il est conseillé d'avoir un noyau à jour tant que ce système de fichier ne seras pas stable. Il faut de plus installer le paquet btrfs-tools.

Petits tests

Je vous propose de vous amuser avec une partition virtuelle.

Mise en place de l'environnement

  • On commence par créer un fichiers de 1Gio chacun.
$ dd if=/dev/zero of=fichier1 bs=4096 count=268435
  • On les attaches à des partitions
# losetup -f --show fichier1
  • Cette dernière commande va afficher le nom d'un périphérique de la forme /dev/loopX (avec X un chiffre). Ce périphérique est le disque dur virtuel que nous allons utiliser pour la suite. Nous allons considérer que c'est le périphérique /dev/loop0. Ensuite on le format en btrfs :
# mkfs.btrfs /dev/loop0
  • Puis on monte cette partition dans le dossier de notre choix. Ici je choisi de mettre stocker ce dossier dans une variable du shell ($mount) pour être plus lisible :
# mount -o loop /dev/loop0 $mount

Nous voici maintenant avec une nouvelle partition montée dans le dossier pointé par $mount. Vous pouvez stocker des fichier dessus comme dans une vrai partition. Nous allons pouvoir commencer les expérimentations.

Test de la compression

Nous allons commencer par tester la compression. Il y a deux algorithmes utilisable : zlib (par défaut) ou zlo.

Avant d'activer la compression, on va ajouter des données dans $mount :

  • On commence par créer un fichier remplis de 0 ça permettras de voir qu'on y gagne pas qu'un peu (mais c'est totalement biaisé) :
# dd if=/dev/zero of=$mount/zero bs=4096 count=70000
  • Cela crée un fichier de 287 Mio dans $mount, maintennant on va en plus mettre des données plus réalistes, par exemple prendre une partie de vos données de votre ~, jusqu'à ce que le disque soit totalement rempli.