« xfs et nobarrier | Home | CentOS 5.1 »
le système de fichiers btrfs
posté par cep le 15 avril 2008
Le système de fichiers btrfs est en développement ; à ce jour la dernière version disponible est la version 0.13, et il est absolument déconseillé en production. En outre tous les outils de gestion ne sont pas encore développés, ou aboutis.
Pour autant c’est un système très prometteur, dont l’architecte est Chris Mason, de oss.Oracle.com.
Principales caractéristiques :
- Il est basé sur le principe du Extent, c’est à dire que chaque fichier au moment de sa création se voit attribuer une zone plus ou moins importante et contiguë, et à chaque ajout dans le fichier les nouvelles données sont écrites à la suite, ce qui élimine en grande partie la fragmentation. Les petits fichiers sont enregistrés dans un extent dédié.
- Possibilité de créer tres simplement des subvolumes et des snapshots. Un subvolume est un arbre indépendant, une sorte de deuxième système de fichiers dans le premier fs, et pouvant être monté dans un autre répertoire. Un snapshot est une image à un instant t du système de fichiers avec les données présentes, qui est monté dans un autre répertoire et peut être modifié. D’une certaine façon, c’est créer en une fraction de secondes une sauvegarde de l’existant, avec possibilité de travailler sur cette sauvegarde comme sur l’original.
- Utilisation du ” Copy-on-write “. http://fr.wikipedia.org/wiki/Copy-On-Write qui est utilisé entre autre pour la création d’un snapshot. Très schématiquement, les anciennes données ne sont pas effacées, les nouvelles écrites dans une zone « mémoire », puis l’opération est validée et les pointeurs modifiés.
- Redimensionner très facilement le système de fichier monté, en l’augmentant ou en le diminuant. Pour l’augmenter, il faut bien sûr qu’il y ait de la place disponible dans la partition.
- Possibilité de conversion du ext3 vers btrfs, en développement.
- fsck très rapide, y compris avec le fs monté.
Pour l’ensemble des caractéristiques du système de fichiers, voir les pages du projet :
http://oss.oracle.com/projects/btrfs/dist/documentation/btrfs-design.html
Quelques exemples d’utilisation des btrfs-tools :
Pour pouvoir utiliser btrfs sur debian par exemple, il faudra d’abord installer le paquet btrfs-tools ainsi que le module correspondant à son noyau, puis charger le module btrfs,
- Création du système de fichiers ( procédure très rapide ) :
# mkfs.btrfs /dev/hda8
fs created on /dev/hda8 nodesize 16384 leafsize 16384 sectorsize 4096 bytes 21114261504
- Monter le système de fichiers de façon classique et commande df :
# mount /dev/hda8 /mnt/btrfs/
# df -h -t btrfs
Sys. de fich. Tail. Occ. Disp. %Occ. Monté sur
/dev/hda8 20G 68K 20G 1% /mnt/btrfs
- Monter le système de fichiers pour utiliser les snapshots, subvolumes et commande ls :
# mount -t btrfs -o subvol=. /dev/hda8 /mnt/btrfs/
# ls /mnt/btrfs/
default
À noter que default est le volume par défaut.
- Créer un snapshot de default après y avoir copié quelques données :
# btrfsctl -s snapshot_of_default /mnt/btrfs/default
ioctl returns 0
On vérifie que les données sont présentes dans les deux répertoires :
# ls -lhR /mnt/btrfs/
/mnt/btrfs/:
total 1,0K
dr-xr-xr-x 1 root root 144 avr 10 10:23 default
dr-xr-xr-x 1 root root 144 avr 10 10:23 snapshot_of_default
/mnt/btrfs/default:
total 3,8M
-rw-r–r– 1 root root 15K avr 10 10:23 bonnie.html
-rw-r–r– 1 root root 443K avr 10 10:23 couch_sol.jpg
-rw-r–r– 1 root root 753K avr 10 10:23 fond2.jpg
-rwxr-xr-x 1 root root 2,2M avr 10 10:23 imgp1081.jpg
-rw-r–r– 1 root root 4,0K avr 10 10:23 mouchefw6.gif
-rw-r–r– 1 root root 413K avr 10 10:23 soleil_cou.jpg
/mnt/btrfs/snapshot_of_default:
total 3,8M
-rw-r–r– 1 root root 15K avr 10 10:23 bonnie.html
-rw-r–r– 1 root root 443K avr 10 10:23 couch_sol.jpg
-rw-r–r– 1 root root 753K avr 10 10:23 fond2.jpg
-rwxr-xr-x 1 root root 2,2M avr 10 10:23 imgp1081.jpg
-rw-r–r– 1 root root 4,0K avr 10 10:23 mouchefw6.gif
-rw-r–r– 1 root root 413K avr 10 10:23 soleil_cou.jpg
- Redimensionner le système de fichiers monté :
a) réduction de 2 Go :
# btrfsctl -r -2g /mnt/btrfs/
ioctl returns 0
# df -h -t btrfs
Sys. de fich. Tail. Occ. Disp. %Occ. Monté sur
/dev/hda8 18G 3,9M 18G 1% /mnt/btrfs
b) agrandissement de 2 Go :
# btrfsctl -r +2g /mnt/btrfs/
ioctl returns 0
# df -h -t btrfs
Sys. de fich. Tail. Occ. Disp. %Occ. Monté sur
/dev/hda8 20G 3,9M 20G 1% /mnt/btrfs
Ceci n’est qu’une toute première approche de ce système de fichiers. Pour plus de détails consulter les pages du projet.
cep
Topics: Général, debian, linux |

3 mai 2008 at 9:18
Le plus intéressant, outre les promesses de performances (vitesse et fragmentation) est, selon moi, l’outils qui permettra de passer de ext3 à ce nouveau système de fichier.
De plus, si j’ai bien compris, à l’aide de la notion de snapshot, on pourra faire des images de partitions montées (avec de nouveaux outils adéquats, mais Acronis True Image (version linux) en était déjà capable)) ?
3 mai 2008 at 9:29
Oui, le programme de conversion semble prometteur.
Pour les snapshots, c’est en effet bien intéressant.
Ext4 le gèrera aussi, mais au niveau des metadonnées.
Zfs aussi a des points forts. Dommage pour sa licence, et une utilisation avec fuse se fait tout de même au détriment des performances.