Btrfs dans Fedora 13

Interview with Josef Bacik
Je pense que tu peux commencer par te présenter

Certes. Je travaille pour Red Hat depuis 6 ans maintenant. Je suis entré en tant que stagiaire à la division support et je me suis retrouvé au final dans le groupe système de fichiers du noyau il y a quelques années. Quand Chris Mason a annoncé Btrfs en 2007 (je crois), j'ai commencé à bidouiller autour, principalement pour compléter ses fonctionnalités. Auparavant, mon expérience dans le domaine des systèmes de fichiers était basé sur GFS/GFS2, notre système de fichiers pour clusters. Attaquer un système de fichiers non clusterisé a été un changement plutôt agréable. Depuis, je consacre plus de la moitié de mon temps de travail à Btrfs.

Qu'est-ce que Btrfs exactement ?

C'est un nouveau système de fichiers apportant des fonctionnalités modernes à Linux. Par exemple, il prends directement en charge les clichés et les sous-volumes sans devoir passer par une couche intermédiaire telle que LVM. Il offre des fonctionnalités uniques d'intégrité des données, comme les sommes de hachages pour toutes les données et méta-données et nous utilisons la technique de la copie-sur-écriture pour gérer l'intégrité des données au lieu de la journalisation classique d'ext4 ou xfs.

Peux-tu simplifier pour les quelques non informaticiens qui nous lisent ?

Prendre un cliché signifie créer une copie exacte du disque à un instant donné. C'est utile pour les programmes de sauvegarde qui n'ont pas envie de gérer un système de fichiers mouvant. Vous pouvez prendre un cliché du système de fichiers et ensuite sauvegarder ce cliché. Dans Fedora, nous avons utilisé cette fonctionnalité pour sécuriser les transactions yum. Donc avant de faire notre mise à jour via yum, notre greffon va prendre un cliché du système de fichiers donc vous aurez deux copies de celui-ci et ensuite yum fera sa mise à jour sur le volume original. Si par la suite, quelque chose se passe mal, vous pourrez revenir « en arrière » sur le cliché pris avant la mise à jour par yum. Il suffit pour cela de faire du cliché le volume par défaut, lors du prochain redémarrage, votre système sera à l'état exact où il était avant cette mise à jour. Ensuite, vous pourrez monter le volume cassé ailleurs et essayer de corriger les choses à la main.

Les sous-volumes sont juste une façon différentes d'organiser ses données. Parce que Btrfs prends nativement en charge RAID, l'idée est de permettre à l'avenir d'assigner différents profils RAID à différents sous-volumes.

Qu'est-ce que RAID ?

RAID est une façon d'organiser les données sur plusieurs disques et dont il existent plusieurs niveaux. Donc RAID0 est appelé stripping qui fait plus ou moins ce que fait LVM : prendre deux disques afin d'en faire un seul gros disque. Puis RAID1 appelé « mise en mirroir » qui lui prends deux disques et duplique les données entre les deux et les fait apparaître comme un seul. Si par exemple, vous voulez vraiment mettre en mirroir votre /home mais pas le reste en cas de défaillance matérielle, vous pouvez créer un sous-volume pour / et l'utiliser avec un profil de données normal puis créer le répertoire /home et définir son profil en RAID1. Puis, chaque écriture dans /home sera copié sur les deux disques. Donc, si un de vos disque rends l'âme, vous pourrez récupérer votre /home intact sur l'autre.

Plus d'informations sur RAID sur []

Est-ce que les clichés et RAID sont des fonctionnalités de Btrfs ?

Oui, Btrfs comporte un tas de fonctionnalités de gestion de volumes en plus de celles habituellement fournies avec un système de fichiers classique. Je ne crois pas l'avoir dit explicitement mais Btrfs est capable de gérer seul plusieurs disques sans devoir passer par MD ou LVM ce qui nous permet de faire du RAID1 etc...

Que signifient MD et LVM ?

LVM signifie Gestion de Volumes Logiques, l'installation par défaut de Fedora mets tout dans un groupe de volumes LVM. Je ne suis pas certain de la signification de MD mais c'est ce qui donne la gestion logicielle RAID de Linux.

Donc Btrfs n'est pas par défaut dans Fedora 13 ?

Oh non, ce n'est pas prêt encore. C'est encore un système de fichiers expérimental en cours de développement. Bon nombre de fonctionnalités clés sont déjà là mais il reste un gros travail de stabilisation à faire.

Les utilisateurs de Fedora 13 peuvent quand même l'utiliser (voire travailler dessus ?)

Oui, si tu donnes à l'installeur l'option « btrfs » au démarrage ce qui te permettra de faire une installation sur un système de fichiers Btrfs. C'est une option depuis Fedora 11. Ma machine de travail est une Fedora 11 avec une racine installée sur Btrfs. Bien sûr, c'est beaucoup plus rapide et stable sur Fedora 13.

'''Si l'installeur démarre avec Btrfs, comment utilise-t-on celui-ci ? Est-ce automatisé ?'''

Tu n'as qu'à sélectionner une organisation de disque personnalisée au lieu de l'organisation par défaut et ensuite quand tu assigneras les volumes, choisis un système de fichiers Btrfs au lieu de ext4. Tu auras encore besoin d'une partition /boot séparée en ext3 car le grub de Fedora 13 ne prends pas encore en charge Btrfs.

Peux-tu nous donner des détails sur l'utilisation de Btrfs pour ceux qui l'auraient choisis ?

Supposons que tu ais un /dev/sda1 et un /dev/sda2 (peu importe). La première partition est d'environ 250 Mo et a été formaté en ext3 avec pour point de montage /boot. D'habitude, /dev/sda2 est utilisé comme un groupe de volumes et dans lequel, on ajoute différents volumes logiques supplémentaires formatés en ext4. Au lieu de cela, tu veux avoir ta première partition formatée en ext3 et montée dans /boot comme avant, mais remplacer ext4 par Btrfs pour ton volume logique /.

Si tu utilises l'organisation par défaut dans Anaconda, je crée en général /boot dans /dev/sda1, un swap das /dev/sda2, puis / dans /dev/sda3 qui est formaté en Btrfs.

Bien, notre organisation par défaut crée deux partitions, une pour /boot, l'autre pour LVM. Au sein de ce groupe de volumes, nous avons encore deux volumes, l'un pour le swap et l'autre pour / formaté en ext4. Si tu veux la solution de facilité pour changer, tu demandes d'avoir l'organisation par défaut et de pourvoir faire une revue avant la création. Ensuite, tout ce que tu as à faire lors de la revue, c'est de changer le système de fichiers du volume logique d'ext4 à Btrfs.

D'autres conseils d'utilisation ?

Une fois que l'installeur s'est lancé, tapes sur tab et tu tomberas sur une invite de commande. Entre Btrfs et valide, ensuite, tu pourras formater tes volumes avec Btrfs.

Avec Fedora 13, si tu réalises une installation avec Btrfs et veux utiliser la fonctionnalité de retour en arrière, tu voudras certainement installer le greffon yum adéquat. Retiens bien qu'à chaque *fois* que tu utiliseras yum, le greffon créera un cliché, donc tu te retrouveras avec plein de clichés /yum- dans la racine. (Çe qui signifie que tu devras nettoyer régulièrement celle-ci afin de ne pas gaspiller de l'espace disque.)

Le greffon se nomme yum-plugin-fs-snapshot et se trouve dans les dépôts. Tout ce que tu dois fais faire c'est yum install yum-plugin-fs-snapshot et ça fonctionnera tout seul.

Y-a-t'il des captures d'écrans ou tutoriels pour les utilisateurs ?

Je ne crois pas qu'il y ait de tutoriels pour le moment. Comme Btrfs est encore expérimental, nous tenons à ce qu'il soit testé uniquement par des personnes qui ont pris connaissances des risques encourus. Bien que je pense que ce soit à faire.

'''Btrfs n'est pas prêt pour être lâché dans la nature. Y-a-t'il un calendrier pour le projet ?'''

Non, ce n'est pas encore prêt. Par exemple, il n'y a toujours pas de fsck fonctionnel, donc au premier pépin, la seule solution est de reformater le système de fichiers et de restaurer à partir d'une sauvegarde. Mon objectif personnel est d'avoir l'option spéciale « Btrfs » supprimé dans Anaconda au alentour de Fedora 15, ainsi chacun pourra le tester. Et par la suite, avoir quelque chose de suffisamment stable pour en faire le système de fichiers par défaut de Fedora 16 ou 17. On peut espérer qu'il sera suffisamment stable l'automne de l'année prochaine pour qu'il soit le système de fichiers par défaut de Fedora. Je tiens à supprimer l'option dans Anaconda afin de permettre à chacun de tester Btrfs sans devoir passer une option spéciale à l'installeur.

As-tu une remarque importante à faire à propos de Btrfs ?

Retenez que c'est un système de fichiers tout nouveau qui évolue encore, donc si vous tenez à vos données, faites des sauvegardes régulièrement.

Merci encore. Ça me semble très bien, merci pour cette interview.

Content d'avoir rendu service et merci.

L'interview originale est disponible sur []

Questions supplémentaires

'''Combien de développeurs travaillent à temps plein sur Btrfs chez Red Hat ? Et à quoi s'intéressent-ils ?

Seulement moi. Je m'occupe principalement de n'importe quoi et de tout ce qui est à faire. Les deux autres développeurs à temps plein travaillent pour Oracle.

Que vaut la conversion sur-place à partir d'ext3/ext4 ?

Parfait, sans défaut, sans bogues. Nous utilisons e2fsprogs pour lire les méta-données ext*, et ensuite on les stocke dans un cliché spécial, donc si tu n'aimes pas la conversion, tu n'as qu'à revenir en arrière sur le système de fichiers précédent.

Y-a-t'il des bons benchmarks mesurant les performances ?

Ouais, le jeu de benchmarks le plus complet et régulièrement actualisé se trouve ici []

À quoi ressemble le feuille de route et quels sont les fonctionnalités majeures prévues ou bien est-ce juste des corrections de bogues et un travail de stabilisation pour le moment ?

Il n'y a pas de feuille de route bien définie, mais il existe une liste de tâches sur le wiki de Btrfs []

Mais la cible est mouvante. Ma feuille de route personnelle est :
 * prise en charge des entrées/sorties directes.
 * différents types de RAID par sous-volume.
 * performances et stabilisation.
 * chiffrement.

Mais en majorité, Btrfs est d'ors et déjà fonctionnel pour être utilisable quotidiennement, donc on teste et corrige les bogues au fur et à mesure, puis nous travaillons sur les fonctionnalités supplémentaires sur notre temps libre.

Quels sont les fonctionnalités de ZFS qui manquent encore à Btrfs ?

ZFS peut démultiplier les données, ce qui n'est pas fait dans Btrfs mais est prévu dans un avenir proche. À part ça, je pense qu'on est plus ou moins à parité de fonctionnalités mais encore, je ne connais pas bien ZFS.

Les développeurs
Chris Ball, cjb@laptop.org Josef Bacik, josef@redhat.com

La page wiki suivante comporte quelques informations supplémentaires à ce sujet []