Étant donné la base d'utilisateurs d'ext3, les inquiétudes portant sur la stabilité du code et du format sur disque après intégration de patchs importants ont été nombreuses, et Linus y a été particulièrement sensible (étant donné qu'un système de fichier instable mettrait en péril le travail des développeurs qui l'aident, on peut le comprendre).
Il a donc été décidé d'ajouter un système de fichier ext4 dans le code du noyau, et de faire les changements dangereux sur celui-ci. La stabilisation du code est prévu dans environ 12 à 18 mois, bien que de nombreuses améliorations seront probablement proposées.
L'article qui suit est une traduction complète du mail de Théodore Ts'o (mainteneur, avec d'autres, d'ext2/3) détaillant le mode de développement prévu pour ext4.
NdM Merci a patrick_g de nous avoir proposé une dépèche sur le même sujet. Étant donnée la récente discussion sur la LKML il y a deux semaines, il est clair que de nombreuses personnes s'intéressent aux plans futurs de développement du système de fichiers ext2/ext3, étant donné qu'il est un des systèmes de fichiers plus populaires et les plus couramment utilisés, en particulier parmi la communauté des développeurs du noyau.
Pour cette raison, les intérêts qui lui sont portés sont plus importants qu'ils ne le seraient pour d'autres systèmes de fichiers. Les inquiétudes exprimées peuvent se résumer aux points suivants:
* Stabilité. Une des inquiétudes soulevées est que durant l'ajout de nouvelles fonctionnalités, des erreurs de programmation puisse causer la perte du travail des développeurs. C'est particulièrement problématique étant donné que le noyau 2.6 est un noyau de série "stable", mais traditionnellement les développeurs ext2/3 ont été très attentifs même lorsqu'ils travaillaient sur les séries de développement car les développeurs du noyau ont tendance à ne pas apprécier lorsque leur système de fichiers est corrompu.
* Confusion autour de la compatibilité. Bien que le "superblock" de ext2/3 soit très flexible et puissant au regard de l'indication de compatibilité ascendante et descendante, la possibilité de confusion des utilisateurs a provoqué l'inquiétude de certains, au point qu'il ait été proposé de volontairement casser la compatibilité descendante afin de supprimer tout doute possible quant à la compatibilité ascendante. Cela serait aller trop loin, bien que nous n'ayons pas besoin de mettre en garde contre du code au niveau noyau ou distribution qui mettrait sans avertissement préliminaire à jour le système de fichiers d'un utilisateur, l'empêchant de monter celui-ci sur de plus vieux systèmes. Une confirmation de l'utilisateur doit être obtenue, de préférence par un outil qui permettra une mise-à-jour ou une remise à l'ancienne version avec facilité.
* Complexité du code. Le troisième sujet d'inquiétude est que si le code n'est pas correctement factorisé, il pourrait devenir difficile à lire à cause des nombreuses conditions utilisées pour supporter les formats de système de fichiers plus anciens.
Malheureusement, ces différents sujets étaient parfois mélangés les uns aux autres dans la discussion d'il y a deux mois, et il était par conséquent difficile de progresser.
Les inquiétudes de Linus semblent avoir porté principalement sur le premier point, avec peut-être une faible considération du troisième. D'autres se sont particulièrement préoccupés du second.
Pour répondre à ces préoccupations, après en avoir discuter entre nous, les développeurs ext2/3 voudraient proposer de suivre le chemin suivant.
1) La création d'un nouveau système de fichiers dans l'arbre des sources du noyau 2.6 dans /usr/src/linux/fs/ext4 qui se présentera d'abord comme le système de fichiers "ext3dev". Il sera marqué explicitement comme CONFIG_EXPERIMENTAL [NdT: tag des fonctionnalités expérimentales lors de la configuration d'un noyau Linux avant sa compilation], et sera en réalité un fork de développement d'ext3. Une séparation similaire aura lieu pour fs/jbd [NdT: le code du journal utilisé par ext3] afin de supporter un jbd 64-bits, qui sera utilisé par fs/ext4 et les versions futures d'ocfs2 [NdT: le système de fichier pour clusters d'Oracle].
2) Les corrections d'erreurs de programmation du point de vue de la propreté du code 32-bits et des problèmes de sécurité/de oops iront dans fs/ext3, mais tous les nouveaux développements iront dans fs/ext4.
Il y a un quelques incertitudes encore quant au fait que les fonctionnalités peu risquées telles que la réduction de l'emprunte mémoire de la structure de extX, et des allocations retardées pour ext3, qui n'ont pas d'impact sur le format, devraient aller dans fs/ext3, ou si de telles améliorations devraient être réservées aux utilisateurs de fs/ext4. Ceci est un compromis coût/bénéfice pour lequel la communauté de la LKML devra décider si les pertes en stabilité du code valent les améliorations pour les utilisateurs actuels de ext3, étant donné l'existence de la branche de développement.
De plus, nous supposons que différents changements impliquant des modifications du format, telles que le support d'horloges plus précises, ne vont _pas_ être intégrées dans le code de fs/ext3, et que les gens qui veulent ces fonctionnalités devront utiliser le code stable/de développement de fs/ext4.
3) Le code de ext4 continuera de monter les systèmes de fichiers plus anciens en ext3, puisqu'il est nécessaire de s'assurer une mise-à-niveau sans accroc pour les utilisateurs depuis ext3 vers ext4. De plus, une fois une fonctionnalité ajoutée au système de fichier ext3dev, un gros effort sera fourni afin de continuer de supporter les améliorations du format du système de fichier vers l'avant, exactement comme nous le faisons avec l'ABI syscall. (Des urgences peuvent avoir lieu si nous faisons une grave erreur et que nous nous mettons le dos au mur; mais exactement comme nous le faisons pour les changements dans l'ABI noyau/espace utilisateur, s'il est question de savoir si oui ou non un format de système de fichiers particulier peut être supporté tout en continuant sans cesse d'aller de l'avant, nous ne validerons les changements dans le code principal du noyau qu'une fois en confiance sur ce point.)
4) À un moment donné, probablement dans 6-9 mois quand nous serons satisfaits de l'ensemble des fonctionnalités qui auront été ajoutées à fs/ext4, et que nous aurons confiance dans la stabilité du format du système de fichiers, nous soumettrons un patch qui fera que fs/ext4 se présentera comme le système de fichiers ext4. L'implémentation nécessitera peut-être encore quelques vérifications avant que nous soyons aussi confiants dans sa stabilité que dans celle d'ext3 actuellement. À ce moment, peut-être dans 12-18 mois, nous demanderons éventuellement que le code dans fs/ext3/* soit supprimé et que fs/ext4 se présente comme supportant le système de fichiers ext3 également.
Nous croyons que ceci devrait répondre à la majorité des inquiétudes qui ont été soulevées, en particulier celles de Linus et Jeff. Les commentaires sont évidemment les bienvenus.
- Ted
Aller plus loin
- L'article d'origine sur OSNews (2 clics)
- Le mail de Ts'o à la LKML (2 clics)
# compatibilité ?
Posté par briaeros007 . Évalué à 3.
Cela permettrait d'avoir a éviter de réinventer la roue a chaque fois quand on vois qu'il peut y avoir des initiatives interessantes comme reiser4 (qui pompe malheureseusement actuellement énormément de cpu sur un dd fragmenté pour l'écriture de gros fichiers :( (en tout cas chez moi) ) ou zfs.
[^] # Re: compatibilité ?
Posté par jarod . Évalué à 2.
J'aimerai bien essayer Reiser4, mais je suis quasiment obligé de formater mes partitions pour pouvoir faire ça.
Si j'essaye de me mettre à la place de l'utilisateur "basique", ce qu'il est à mon sens bon de faire pour pouvoir espèrer propager Linux autant que possible, et bien ce n'est pas trivial.
Je n'ai pas des connaissances techniques suffisantes c'est pourquoi je pose la question: est-il possible et envisageable d'avoir un outil de conversion entre les différents systèmes de fichier un jour?
[^] # Re: compatibilité ?
Posté par Anonyme . Évalué à 4.
Windows peut « verrouiller » ses partitions pour les modifier, ça doit donc être envisageable sous Linux...
[^] # Re: compatibilité ?
Posté par Pooly (site web personnel) . Évalué à 2.
[^] # Re: compatibilité ?
Posté par patrick_g (site web personnel) . Évalué à 7.
Pour Reiser4 ce sont, je crois, les devs du noyau qui rechignent à l'intégrer du fait de son interfaçage peu orthodoxe avec le virtual file system de Linux.
[^] # Re: compatibilité ?
Posté par briaeros007 . Évalué à 2.
D'ailleurs on peut pas faire un module a compilé a coté ? Un peu comme les drivers nvidia sauf que la c'est quand meme libre (meme si pas compatible gpl v2 (mais gpl v3 non ?)
puis il reste fuse sinon non?
Reste a voir les perfs de fuse.
[^] # Re: compatibilité ?
Posté par patrick_g (site web personnel) . Évalué à 2.
Si le boss de Sun était pas trop con il switcherai la licence de ZFS et de Solaris vers la GPL. Après l'incorporation de pleins de bouts de code des deux cotés par cross-pollinisation Sun serait en position de force pour vendre son expertise et ses services.
[^] # Re: compatibilité ?
Posté par briaeros007 . Évalué à 4.
si les dvp linux étaient pas trop con ils switcherait en gplv3 :-d
La gpl n'est pas la seule et unique licence libre au monde.
Sun offre du libre avec toutes les libertés que ca implique. Je ne vois aucune raison pour imposer une licence qui ne leurs convient peut etre pas.
/me propose l'arret du troll cddl/gpl car de toute facon ca n'apportera pas grand chose ;)
[^] # Re: compatibilité ?
Posté par karteum59 . Évalué à 3.
Sinon, si le noyau était en LGPL, on pourrait avoir des modules noyau sous d'autres licences et ça résoudrait aussi le pb non ?
[^] # Re: compatibilité ?
Posté par briaeros007 . Évalué à 3.
toujours est il que le ceo de sun est pas aussi con que certains veulent le faire croire ;)
http://blogs.sun.com/roller/page/jonathan?entry=hp_and_sun_p(...)
ensuite j'espère
1°) Que ce n'est pas juste une annonce sans rien derrière
2°) Que la gplv3 est compatible gplv2 (ce qui n'est pas sur pour moi vu que cette dernière n'as pas de protection contre les drm !)
[^] # Re: compatibilité ?
Posté par Mark Havel . Évalué à 2.
[^] # Re: compatibilité ?
Posté par briaeros007 . Évalué à 3.
(désolé je connais pas les noms)
En gros celui qui décide des fs qui rentre aimaient pas certains truc sur le code, dont certains était justifié , d'autre non.
Et le responsable de reiser 4 a fait valoir que xfs qui est pourtant dans le noyau était beaucoup plus sale.
Ca c'est terminé (d'après ce que j'ai pu en lire il y a longtemps) par un truc genre 'tant que je serais la ton fs sera pas dans le noyau' ou autre connerie du meme genre.
[^] # Re: compatibilité ?
Posté par Thomas Douillard . Évalué à 8.
[^] # Re: compatibilité ?
Posté par Jak . Évalué à 5.
[^] # Re: compatibilité ?
Posté par reno . Évalué à 3.
Il avait déja eu du mal a mettre le premier reiserfs dans le kernel bien ce soit le premier fs journalisé pour Linux, en grande partie a cause de sa grande gu.... .
Maintenant la concurrence est plus rude, mais Hans n'a pas changé donc reiser fs 4 dans Linux AMHA ce n'est pas pour demain.
Bon juste pour l'anecdote, reiserfs est un des seuls système de fichier a m'avoir perdu une partition (les outils de récupération n'ont pas fonctionné), et je reste un peu sceptique de l'interet de journaliser uniquement les métadonnées: quand on se retrouve avec le /etc/passwd qui contient du binaire, ça fait mal (aussi avec reiserfs) --> je pense qu'ext3 en journalisation donnée+métadonnée, c'est *bien*(TM).
[^] # Re: compatibilité ?
Posté par patrick_g (site web personnel) . Évalué à 6.
Résumé en très gros : pour l'instant il n'est pas en mainline pour des raisons techniques et des raisons de prise de bec avec Hans Reiser qui ne veut pas se soumettre aux demandes des hackers Linux.
[^] # Re: compatibilité ?
Posté par Franck Routier (Mastodon) . Évalué à 3.
Reiser4, que j'ai un peu essayé, s'est lui emmelé les pinceaux deux fois, mais à pu se récupérer à chaque fois. Par contre il donne une impression de rapidité extrème...
Ceci dit, tant qu'il ne sera pas dans le noyau, il ne sera pas débuggé, ni utilisable facilement, et il risque donc de stagner...
[^] # Re: compatibilité ?
Posté par tipote . Évalué à 1.
Eh bien, en une phrase, tu me fais presque saliver ! Est-ce que tu pourrais préciser qu'est-ce qui te fait dire ça ? Qu'est-ce qui est plus rapide ? Le démarrage de la machine ? Les applications ? La réactivité générale ?
[^] # Re: compatibilité ?
Posté par Franck Routier (Mastodon) . Évalué à 1.
Bref, très bonne impression d'ensemble pour les accès disques. Je ne crois pas que les applications elle-mêmes soient très impactées bien sûr.
Ce qui me retient d'utiliser Reiser4 par défaut, c'est :
- pas intégré au noyau de ma distribution (Ubuntu), et ce noyau est bien pratique car il permet d'installer des modules non libres (dans un paquet dédié) dont ma carte wifi et ma carte video ! Si je veux installer Reiser4, il faut aussi que j'installe à la main les modules propriétaires, et ce à chaque mise à jour de version :-(
- pas de support des xattrs, donc de Beagle (quoique j'en suis revenu de Beagle, ça n'a jamais bien marché chez moi...)
Néanmoins, si tu le peux, je te conseille d'essayer Reiser4, avec une petite sauvegarde de temps en temps au cas où :-)
[^] # Re: compatibilité ?
Posté par Sylvain Sauvage . Évalué à 10.
Ah, mes doigts deviennent indépendants, que tapent-ils ?
$ apt-cache show convertfs
[...]
Description: in-place filesystem conversion
This simple toolset allows you to change type of file system in the lack of
backup space. You can convert from virtually any filesystem type to virtually
any one as long as they are both block-oriented and supported by Linux for
read/write, and as long as primary filesystem supports sparse files.
[...]
Traduction rapide :
[^] # Re: compatibilité ?
Posté par briaeros007 . Évalué à 2.
(et merci de m'avoir fait découvrir ca ;))
[^] # Re: compatibilité ?
Posté par briaeros007 . Évalué à 3.
# lwn
Posté par M . Évalué à 5.
# GFS, drbd, cluster
Posté par Christophe Merlet (site web personnel) . Évalué à 3.
Il y a bien OCFS qui a récemment intégré le kernel, mais comme son nom l'indique il est plus destiné aux bases de données. Il n'y a rien à l'heure actuel pour les cluster de calculs hautes performances.
L'autre importance d'avoir un système de fichiers clustérisé et de pouvoir faire du raid réseau avec drbd en configuration actif-actif. Là encore rien n'est intégré en standard dans le tronc commun.
Résultat, lorsque l'on cherche de la haute performance et de la haute disponibilité on est obligé de jongler avec les compromis ou avec du matériel hors de prix :(
ext4 ne me parait pas être la priorité du moment, ext3 étant quand même le plus performant des systèmes de fichiers existant (ce n'est pas un troll, j'ai des benchs mais les résultats ne sont pas un modèle de clarté :o) http://redfox.redfoxcenter.org/benchs/ ).
[^] # Re: GFS, drbd, cluster
Posté par patrick_g (site web personnel) . Évalué à 6.
Sinon, autre sujet, je trouve que le mail de Ts'o manque singulièrement de détails sur les modifs qui entreront dans ext4. Il évoque juste la procédure de transition mais on ne sait rien sur les nouveautés. On sait juste que la capacité du FS ne devra plus se limiter à 32 bits (8 teraoctets) mais passer à au minimum 48 bits (voir les patchs de Mingming Cao qui permettent, en passant à des blocs 48 bits, d'avoir une capacité de stockage de 1024 petaoctets).
[^] # Re: GFS, drbd, cluster
Posté par gvallee . Évalué à 1.
[^] # Re: GFS, drbd, cluster
Posté par Pooly (site web personnel) . Évalué à 3.
[^] # Re: GFS, drbd, cluster
Posté par Aurélien Bompard (site web personnel) . Évalué à 1.
[^] # Re: GFS, drbd, cluster
Posté par Christophe Merlet (site web personnel) . Évalué à 2.
Exemple, les gestionnaires de verrouillage réseau.
Je pense que la date de l'inclusion approche petit à petit...
http://www.ussg.iu.edu/hypermail/linux/kernel/0606.2/1227.ht(...)
# content-type dans le filesystem
Posté par Mildred (site web personnel) . Évalué à 4.
Fini les extensions, fini la détection de type parfois foireuse ...
[^] # Re: content-type dans le filesystem
Posté par reno . Évalué à 4.
Bôf, uniquement si
1) la base de données contient le type de donnée recherché
2) le remplissage de cette information est faite: donc si *tous* les programmes étaient modifiés pour rajouter cette information..
Et il faut faire attention au coté sécurité de la chose: que se passe t'il si un attaquant déclare un exécutable comme une image?
[^] # Re: content-type dans le filesystem
Posté par dinomasque . Évalué à 2.
(Mode=radotage) BeOS le faisait il y a presque dix ans et ça marchait très bien (il faut dire que le système et son API favorisaient la chose).
BeOS le faisait il y a 20 ans !
[^] # Re: content-type dans le filesystem
Posté par reno . Évalué à 3.
Je ne dits pas qu'il y a un probleme fondamental, jusqu'il faut modifier *toutes* les applications autrement tu te retrouves avec un système ou l'attribut type est rempli 10% du temps, ce qui augmente la complexité sans vrai gain..
Personellement si je pouvais avoir une feature de BeOS sur Linux, ce serait la réactivité: en utilisant une thread dédié a la gestion de la fenetres, les interfaces étaient bien plus réactives, ce qui était très agréable a utiliser.
Mais comme, la encore, cela nécéssite de modifier *toutes* les applications pour que ce soit un réel progrès, ce qui n'est pas près d'arriver..
[^] # Re: content-type dans le filesystem
Posté par un_brice (site web personnel) . Évalué à 1.
Enfin, je suppose qu'on pourrait effectivement dire à cette lib de mémoriser le résultat de ses investigations dans un xattr, mais je m'attends pas à ce que les performances s'envolent (sans parler des problèmes sur les fichiers en lecture seul).
Sinon, même sans hacker la libmagic on pourrais probablement ajouter la mémorisation aux composants des bureaux qui identifient les types de fichiers. Ça serait un peu moins gore, mais pas tellement plus utile.
# Politique de développement du noyau.
Posté par neologix . Évalué à 4.
Il n'y a que moi que ça choque?
En passant, certains d'entre vous compte-t-ils utiliser la branche 2.6.16.y (http://kerneltrap.org/node/6386) ? Parce que si cette politique est effectivement la politique officielle, pour une machine en production, on n'aura plus le choix
[^] # Re: Politique de développement du noyau.
Posté par lesensei . Évalué à 7.
Traduction de la partie qui nous concerne dans le lien ci-dessus:
Autrement dit, c'est ce que j'ai écrit dans l'article: les développeurs noyau, bien que ce ne soit plus leur principale considération, font tout de même autant que possible attention à la stabilité. Cependant, et ça a toujours été un peu le cas, les distributions sont invitées à tester la stabilité du noyau avant de le distribuer, et à envoyer leur modifications en amont le cas échéant.
[^] # Re: Politique de développement du noyau.
Posté par neologix . Évalué à 4.
Ce qui me choque, c'est la politique en elle même. En gros, "on implémente de nouvelles fonctionnalités, mais la stabilité, ce n'est pas notre problème". C'est d'ailleurs pour cela qu'Adrian Bunk a décidé de maintenir une branche -stable. Je suis étonné que la stabilité/sécurité ne soient pas les objectifs premiers visés par les responsables/développeurs...
# Pourquoi pas Reiser4 ?
Posté par Pierre Jarillon (site web personnel) . Évalué à 2.
J'ai vraiment l'impression qu'il s'agit du syndrome NIH (not invented here) qui vient encore de frapper.
[^] # Re: Pourquoi pas Reiser4 ?
Posté par Xavier Teyssier (site web personnel) . Évalué à 2.
# Nouveautés
Posté par Maxime (site web personnel) . Évalué à 1.
[^] # Re: Nouveautés
Posté par ndesmoul . Évalué à 2.
La nouvelle version permettrait d'aller jusqu'à 1024 PB (c'est quelle unité ça?).
cf. http://lwn.net/Articles/187321/
[^] # Re: Nouveautés
Posté par Maxime (site web personnel) . Évalué à 1.
1 PétaByte = 1024 TeraByte
1024 PétaByte = 1 ExaByte.
Pour le support de systeme de fichier de très grand capacité, la demande est-elle vraiment importante ? Qu'est-ce que ext4 apportera à l'utilisateur moyen ? Vont-t'il optimiser le code pour gagner en perf ?
[^] # Re: Nouveautés
Posté par Degrémont Aurélien . Évalué à 5.
Les fonctionnalités actuellement en attente, qui ont été plus ou moins les éléments qui ont provoqué cet événement (mais ce problème était déjà latent, elles n'ont fait de relancer le débat), sont d'une utilité infime pour l'utilisateur lambda. Elles ne concernent que des utilisations à très grandes capacités.
Je cotois quotidiennement des filesystems de plusieurs Peta. Ces filesystems utilisent ext3 comme sous système de fichiers et, avec ce niveau de stockage, des partitions de 2 To deviennent étroites.
Bref, pour résumé, les prochaines nouveautés d'ext4 ne concernent que des nouvelles fonctionnalités inutiles pour l'utilisateur lambda. Je lui conseille d'ailleurs fortement de continuer à utiliser ext3 qui lui a maintenant une vocation première, de stabilité. Ext3 a atteint un stade ou pour avoir des améliorations notables de performances pour l'utilisateur lambda, il faudrait des modifations importantes ... qui donc prendraient place dans ext4. Mais ce n'est pas au goût du jour :).
Donc ext3 restera le filesystem par défaut des distros pour encore un bon moment et ext4 ne sera utilisé que dans des conditions spécifiques.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.