Aller au contenu

BTRFS

Note

Prononcez “Butter FS”.

Developpé par Oracle !

BTRFS est un système encore expérimental mais prometteur.

Il pourrait apporter des fonctionnalités impossible à mettre en place dans ext4.

Le fait que ce système soit développé par un acteur majeur du monde des bases de données laisse penser que ce système sera très adapté pour les SGBD, notamment PostgreSQL.

Il est utilisé par défaut sur l’OS Suse pour la partition racine. Il était présent sur RedHat mais son support a été arrêté.

Performances

La présentation suivante par Thomas Vondra montre une performance moindre en écriture.

ext4 ou XFS sont à privilégier.

Le concept d’extent

BTRFS est basé sur la notion d’extent, c’est à dire une zone contiguë qui est réservée chaque fois qu’un fichier est enregistré sur le disque dur. Cela permet, en cas d’écriture ultérieure sur le fichier, d’ajouter les nouvelles données dans l’extent au lieu de devoir écrire dans une autre zone du disque dur (ce qui augmente la fragmentation). Les gros fichiers sont ainsi stockés de façon bien plus efficace et rationnelle. Pour les petits fichiers Btrfs utilise une astuce puisqu’il stocke les données directement dans le système d’extent lui-même sans avoir à allouer un bloc mémoire séparé.

Copy on Write

Le Copy-on-write ou copie sur écriture (souvent désigné par son sigle anglais “COW”) est une stratégie d’optimisation utilisée en programmation informatique. L’idée fondamentale : si de multiples appelants demandent des ressources initalement impossibles à distinguer, vous pouvez leur donner des pointeurs vers la même ressource. Cette fiction peut être maintenue jusqu’à ce qu’un appelant modifie sa “copie” de la ressource. A ce moment là, une copie privée est créée. Cela évite que le changement soit visible ailleurs. Ceci se produit de manière transparente pour les appelants. L’avantage principal est que si un appelant ne fait jamais de modifications, la copie privée n’est jamais créée.