Articles : Btrfs : Le système de fichiers du futur
Posté par patrick_g (page perso, ). Modéré le 24 janvier 2008.
Chris Mason, un développeur de la société Oracle, a annoncé le 12 juin 2007 sur la liste de diffusion du noyau Linux la naissance de Btrfs. Il s'agit un tout nouveau système de fichiers, sous licence GPL, qui est écrit sans souci de l'existant afin de profiter de toutes les dernières idées sans être contraint par un quelconque souci de compatibilité.
En effet les développeurs Linux sont déjà au travail depuis 2006 sur Ext4, le successeur d'Ext3 qui est le système standard sous Linux. Bien que bénéficiant de nombreuses améliorations, Ext4 n'en reste pas moins limité dans sa liberté de développement par son souci de compatibilité (ascendante et descendante) avec Ext3.
Btrfs en revanche part de zéro et peut se permettre d'inclure d'autres solutions qui seront détaillées dans la suite de cette dépêche.
NdM : Merci à Axel pour sa proposition de news.
En effet les développeurs Linux sont déjà au travail depuis 2006 sur Ext4, le successeur d'Ext3 qui est le système standard sous Linux. Bien que bénéficiant de nombreuses améliorations, Ext4 n'en reste pas moins limité dans sa liberté de développement par son souci de compatibilité (ascendante et descendante) avec Ext3.
Btrfs en revanche part de zéro et peut se permettre d'inclure d'autres solutions qui seront détaillées dans la suite de cette dépêche.
NdM : Merci à Axel pour sa proposition de news.
Le projet Btrfs (1047 hits)
Le design technique de Btrf (716 hits)
Un comparatif de performances (1009 hits)
Le programme de développement (176 hits)
La version 0.10 analysée (322 hits)
> Lire la dépêche (77 commentaires, moyenne: 3,2).
Vous avez demandé le commentaire #898843.




ZFS ?
Une source pour confirmer ou c'est juste du vent ?
La Roue du Temps
[^]Re: ZFS ?
Cherche un peu et tu verras que ZFS est bien en CDDL et que cette license n'est pas compatible avec la GPL.
[^]Re: ZFS ?
Certes, je n'avais aucun doute, mais en quoi le choix de Sun pour la CDDL a été fait “précisément de ne pas pouvoir être inclus dans Linux” ?
La Roue du Temps
[^]Re: ZFS ?
Sinon, il l'aurait mis en GPL :)
[^]Re: ZFS ?
Pas forcement en GPL, mais dans une license compatible avec la GPL, oui.
[^]Re: ZFS ?
Faut pas voir le mal partout. C'est la GPL qui interdit d'intégrer du code sous CDDL, pas l'inverse. Et sun et son pdg ont à plusieurs reprises indiqué leur souhait de voir ZFS porté sous Linux.
Il n'y a en tout cas aucune preuve du fait que ce soit intentionnel. Voir ici pour une idée de la façon dont sun perçoit les rapports entre la communauté et eux >> http://blogs.sun.com/jonathan_fr/entry/un_m%C3%A9lange_opens(...)
Sun semble même plus enclin que Linus à se tourner vers la GPLv3.
"La liberté ne peut être que toute la liberté ; un morceau de liberté n’est pas la liberté." -- Max Stirner
[^]Re: ZFS ?
L'exemple de NetBeans prouve que sun peut adopter une double licence CDDL+GPL lorsqu'il l'estime intéressant. Si ce n'est pas encore fait pour ZFS, c'est bien qu'ils ne veulent pas d'une inclusion rapide dans le noyau.
[^]Re: ZFS ?
A mon avis, c'est plus compliqué pour eux de changer le licence comme ça (ou d'en rajouter une) Ils doivent faire une étude poussée de ce qu'ils peuvent faire. Il n'y a qu'a voir le temps que ça prend entre l'annonce de la libération de Java, et le mioment ou on a quelque chose de libre utilisable (ce n'est pas encore arrivé, du moins pas pour toutes les distributions).
Quand on lit une FAQ de sun, il ne semble pas que la CDDL ait été conçue contre la GPL, pas du tout:
http://www.opensolaris.org/os/about/faq/licensing_faq/
Et perso, si je devais choisir entre GPL ou CDDL pour mon code, je préfèrerais la CDDL (même si l'incompatibilité GPL me ferait réfléchir un peu ... pour me tourner vers la licence X11-MIT)
La Roue du Temps
[^]Re: ZFS ?
Oui, enfin, dans la FAQ publique, ils allaient pas écrire « on a fait la CDDL pour faire chier les dev de Linux » non plus, hein ...
Si ils voulaient la compatibilité GPL, ils pouvaient l'avoir en rédigeant leur licence autrement, ou avec une double licence. Si ils ne l'ont pas fait, ils doivent avoir une raison ...
(et honnêtement, je les comprends, même si ça fait chier : y'a une boite derrière, il leur faut un business-model, et Linux est sans doute le plus gros concurrent aujourd'hui. Donc, tout filer gratos à leur principal concurrent, ça serait sans doute un peu suicidaire)
[^]Re: ZFS ?
Dans ce cas la, pourquoi feraient-ils de la pub dans le site d'opensolaris pour les projets qui portent ZFS sur les autres OS ?
Le choix de la licence CDDL a peut-être été imposé par le département légal de Sun pour des raisons différentes.
Bon après je ne dis pas que ça ne les arrange pas, mais ce genre d'attaques sans preuve, c'est un peu bas et ça n'a pas grand chose à faire dans la dépêche.
[^]Re: ZFS ?
> Dans ce cas la, pourquoi feraient-ils de la pub dans le site d'opensolaris pour les projets qui portent ZFS sur les autres OS ?
Le classique diviser pour mieux reigner.
Ces autres OS concurrencent réellement OpenSolaris/Solaris ?
Regarde MS. MS va faire le gentil d'un côté mais en même temps rester fondamentalement hostile à Linux, la GPL, etc.
Sun est anti-Linux. M'enfin, pas très méchamment. Rien à voir avec MS.
Sun a sorti OpenJDK compatible GPL. OOo est compatible GPL.
Bref, si Sun veut être compatible GPL, Sun le fait. Mais pour ZFS, Sun ne le veut pas. Fin de l'histoire.
> Le choix de la licence CDDL a peut-être été imposé par le département légal de Sun pour des raisons différentes.
Et ce département aurait un autre avis pour Java et OOo ?
> Bon après je ne dis pas que ça ne les arrange pas, mais ce genre d'attaques sans preuve, c'est un peu bas
C'est faire insulte à Sun de dire que Sun a créé une licence non compatible GPL "sans le faire exprès". C'est prendre les gens pour des gogos que d'affirmer ça (et pas seulement Sun).
[^]Re: ZFS ?
ce sont différents produits, les problématiques, notamment autour des brevets sont probablement différente.
mais pourquoi devraient-ils le faire ?
Tu parles comme si la seule licence libre "valable" était la GPL. C'est faire insulte à tous les projets sous licence BSD ou autre licence libre. Ce n'est pas parce qu'un projet utilise une autre licence qu'il se bat contre linux et une partie de la communauté libre. Après tout c'est le choix des utilisateurs (je parle des dev) de la GPL de se "refermer" et empêcher l'intégration de code sous certaines autres licences.
[^]Re: ZFS ?
>mais pourquoi devraient-ils le faire ?
Parce que l'idée principale du logiciel libre est justement la possibilité de pouvoir échanger du code.
>Tu parles comme si la seule licence libre "valable" était la GPL.
La GPL est utilisé par une majorité des projets, elle est donc très importante de ce point de vue.
> C'est faire insulte à tous les projets sous licence BSD ou autre licence libre.
La BSD, la LGPL et la GPL correspondent a des philosophie différentes, elles ont donc leurs justifications.
La CDDL et les licenses qui n'ont pas d'autre philosophie a defendre mais empêchent le partage de code pour des détails technique font ch.. les développeurs.
Je conseillerais a tout ceux qui veulent effectivement partager du code d'utiliser une des licenses existante plutot que d'en avoir une autre incompatible: l'interet du logiciel libre depend de la quantité de code que l'on peut partager.
Sun n'a pas inventé la CDDL pour défendre un point de vue différent sur la liberté mais pour avoir leur propre niche, c'est leur droit, mais ça ne veut pas dire qu'il faut être crédule et avaler leur pipeau comme quoi ils veulent être compatible avec tous le monde: il vaut mieux juger les gens sur leurs actes, pas sur leur paroles!
[^]Re: ZFS ?
Donc selon toi, Linus Torvalds et les autres developpeurs qui choisissent la GPL sont des gros crevards qui refusent de partager leur code aux BSD/MITistes.
[^]Re: ZFS ?
> Dans ce cas la, pourquoi feraient-ils de la pub dans le site d'opensolaris pour les projets qui portent ZFS sur les autres OS ?
Simple : parce qu'ils veulent (question d'image de marque) donner une bonne impression dans le monde du F/OSS, et trouvent là, à chaque nouvelle sortie, l'opportunité de maintenir (renouveller !) le buzz médiatique autour de Zfs.
Ça ne mange pas de pain. FreeBSD et Mac OS X ne sont franchement des concurents directs pour Sun. Red Hat, IBM et Novell, (c'est à dire Linux), et Microsoft, oui. Eux vendent du support et des garanties pour du gros NAS/SAN et serveurs bado (Oracle & co) Unix.
Sun a anoncé en 2007 qu'une très grande part de leurs bénéfices venaient de la vente et des services autour de leurs grosses solutions de stockage de masse. D'où la bataille juridique avec NetApp d'ailleurs. Considérer qu'ils auraient « involontairement » empéché l'intégration dans Linux, c'est être soit très naïf, soit de mauvaise foi.
> Le choix de la licence CDDL a peut-être été imposé par le département légal de Sun
Ah ? pourtant :
- J. Schwartz a annoncé qu'ils envisageaient le passage de Zfs à la GPLv3 (bon choix : où comment améliorer l'image libriste tout en restant incompatible avec le noyau linux)
- Sun n'hésite pas à intégrer du code BSD et MIT dans leur noyau (en l'occurence, à repomper des drivers FreeBSD et OpenBSD). Aucun problème légal, donc, pour mettre du code sous une licence compatible GPL dans le noyau Solaris.
[^]Re: ZFS ?
Si tu t'étais bien renseigné, sur la page de zfs, on n'y parle pas que du port pour FreeBSD et Mac OS X, mais aussi de l'implémentation sous linux (via FUSE).
ça aurait été le cas d'un autre projet libre d'utiliser la licence GPLv3 et on n'aurait pas dit ça. Les problèmes d'incompatibilités de licence ne sont pas forcément politiques.
Ben non, mais c'est pas de la faute de Sun. Si des devs distribuent leurs outils sous licence BSD ou MIT, c'est justement pour donner la liberté à d'autres comme SUN de les intégrer. Et que la licence BSD soit compatible GPL n'a rien à voir la dedans.
Le monde ne tourne pas autour de la GPL.
[^]Re: ZFS ?
>> Ça ne mange pas de pain. FreeBSD et Mac OS X ne sont franchement des
>> concurents directs pour Sun. Red Hat, IBM et Novell, (c'est à dire Linux), et
>> Microsoft, oui. Eux vendent du support et des garanties pour du gros NAS/SAN
>> et serveurs bado (Oracle & co) Unix.
> Si tu t'étais bien renseigné, sur la page de zfs, on n'y parle pas que du port pour
> FreeBSD et Mac OS X, mais aussi de l'implémentation sous linux (via FUSE).
Quelle mauvaise fois : je citais ces solutions alternatives à Solaris+Zfs pour montrer qu'elles ne font pas d'ombre aux solutions commerciales de Sun. Et tu me parle de Zfs+fuse ?!
Personne ne sera assez fou pour essayer de vendre et supporter des gros serveurs de stockage ou du Oracle utilisant zfs+fuse : ce n'est tout simplement pas compétitif, et tu le sais très bien. Vu les performances (normal pour un fs en userland) et les limitations structurelles (toutes les fonctionalités des systèmes de fichiers ne peuvent pas être implémentés sous fuse), vu, tout simplement, que par nature ces systèmes de fichiers ne sont pas intégrés dans le noyau (donc moindre relecture/audit, etc.), il est clair que zfs-sous-fuse n'est en aucun cas un concurrent pour Sun.
Je passe sur ton « si tu t'étais bien renseigné ». Tu sais que je le sais, et que ça ne fait aucune différence pour ce que j'indiquais (= les implémentations/intégrations alternatives de Zfs ne font pas d'ombre aux produits commerciaux de Sun). L'argument auquel tu répond, et tu le sais aussi très bien, ce n'est pas « impossible de faire du zfs sous linux » mais « impossible de faire du zfs sous linux qui soit commercialement concurrentiel avec Solaris ». N'essaie pas de détourner le sens de mes remarques stp.
> ça aurait été le cas d'un autre projet libre d'utiliser la licence GPLv3 et on n'aurait pas dit ça.
Bah, tout dépend du contexte. Et c'est précisément ce dont on parle. Si tel ou tel composant central d'xorg décide de passer sous GPLv3, on criera au scandale parce que ce choix l'empêcherai *délibérément* d'être intégré dans xorg (sous MIT). À l'inverse, si un composant pour gcc (type Coverty) est libéré sous licence GPLv2-only (ou CDDL) au lieu de GPLv3, on lui fera le même reproche. Pour les logiciels très complexes et difficiles à réimplémenter entièrement, il y a un ecosystème, que personne n'ignore, surtout pas Sun.
Des noyaux d'OS contemporains, il n'y en a pas des dizaines. Et on ne crée pas un nouvel OS sous CDDL ou GPLv3 en claquant des doigts. Alors choisir sa petite licence à soi pour ses fonctionalités sympa, c'est une très bonne façon de faire du libre sans que les autres puissent, en pratique, pleinement profiter de cette liberté.
Comme on dit pour la loi (respect la lettre ou l'esprit de la loi), il y a « respecter la lettre du libre » et « l'esprit du libre ». Utiliser une licence libre qui permet de n'être intégré dans aucun autre noyau concurrent, c'est bien respecter la lettre de la loi mais pas l'esprit de la loi.
>> Sun n'hésite pas à intégrer du code BSD et MIT dans leur noyau (en
>> l'occurence, à repomper des drivers FreeBSD et OpenBSD). Aucun
>> problème légal, donc, pour mettre du code sous une licence compatible
>> GPL dans le noyau Solaris.
> Ben non, mais c'est pas de la faute de Sun. Si des devs distribuent leurs
> outils sous licence BSD ou MIT,
Là encore, tu réponds à coté en me prétant des remarques que je n'ai pas faites. Je n'ai pas fait reproche à Sun d'utiliser du code sous license BSD ou MIT. J'ai dit qu'ils le faisaient, et que ça prouve qu'ils ne sont pas obligés d'utiliser du CDDL pour le code intégré dans leur noyau, et que ça ne pose pas de problème légal.
[^]Re: ZFS ?
>Faut pas voir le mal partout. C'est la GPL qui interdit d'intégrer du code sous CDDL, pas l'inverse.
Hein, la chronologie tu connais??
La GPL était écrite bien avant que la CDDL soit écrite, c'est donc en toute connaissance de cause que les gars de chez Sun ont crée une license incompatible avec la GPLv2 (déjà utilisée par la *majorité* des projets libres).
En faisant cela, ils divisent la communauté existante, pour aucune raison valable a ma connaissance, juste limiter les échanges avec d'autres logiciels afin de ne pas risquer pas d'être submerger par eux..
Les licenses BSD, GPLv2, GPLv3 divisent aussi les communautés des developpeur libres mais c'est pour des raisons philosophique, pas pour 'défendre son beurre' (enfin pas uniquement).
[^]Re: ZFS ?
Et pourquoi ?
Pour moi ce ne sont que des allégations non fondées que Sun choisissait CDDL pour ne pas donner le code à Linux ... Il me semble qu'ils utilisent la CDDL pour plein d'autres choses, alors c'était un choix logique pour eux.
Et qu'ils préfèrent utiliser une licence à eux plutôt que la GPL, c'est tout à fait compréhensible. La GPL n'est pas le centre du monde.
Perso, je trouve que ce n'est pas clair:
http://en.wikipedia.org/wiki/Common_Development_and_Distribu(...)
La Roue du Temps
[^]Re: ZFS ?
la gpl c'est tellement libre qu'ils ne veulent pas inclure d'autres technologies LIBRES dedans si cela ne rentre pas dans leur sacro saint moule et ne fait pas le jeu de l'omniprésence de la marque GNU dedans.
Qui c'est qui s'enferme dans ce cas-là ?
Tous ensemble contre l'esclavitude des logiciels privateurs !
[^]Re: ZFS ?
Vu que ZFS a été porté sur les noyaux BSD et Mac OS X, ne faudrait-il pas plutôt se poser en sens inverse : pourquoi la license GPL est-elle si stricte qu'il est impossible d'incorporer du code dans le noyau linux alors que c'est possible dans d'autres projets identiques?
[^]Re: ZFS ?
Parce que la GPL défense la liberté du code/programme.
Si tu n'aimes pas ça, ben n'aime pas ça.
Mais les incompatibilités ne sont pas le fruit d'un esprit machavélique.
> BSD
À la différence de BSD, quand t'as un programme GPL, tu as la garantie de ne pas avoir à payer de brevet pour l'utiliser.
T'es contre ?
[^]Re: ZFS ?
> Certes, je n'avais aucun doute, mais en quoi le choix de Sun pour la CDDL a été fait “précisément de ne pas pouvoir être inclus dans Linux” ?
Parce que Sun n'est pas con et sait ce qu'il fait (même quand c'est une connerie).
Sun a mis OpenJDK sous GPL. Alors pourquoi pas ZFS ?
Car l'ennemi de OpenSolaris/Solaris c'est Linux.
En passant, ZFS est à comparer à ext3/lvm2/device-mapper/etc. Pas seulement ext3.
Idem pour Btrfs semble-t-il.
[^]Re: ZFS ?
>> De son coté ZFS est sous licence CDDL afin précisément de ne pas pouvoir être inclus dans Linux.
> Une source pour confirmer ou c'est juste du vent ?
Pas de sources publiques possibles : Sun (et surtout ses dirigeants) est bien évidement obligé de carresser les amateurs de Linux dans le sens du poil, jouer les amis (il faut voir les nombreux appels du pieds que lance Schwartz, commes les "serveurs gratuits", etc) : de nos jours les jeunes admins et développeurs Unix viennent du monde Linux, ils ne peuvent pas aller contre ça s'ils veulent les séduire. Au pris d'être parfois hypocrite, voir franchement franchement faux cul. Alors ils ne vont évidement pas indiquer publiquement qu'ils ont choisi la CDDL pour bloquer toute inclusion dans Linux.
Pas de sources publiques possibles, donc, mais les analyses des gens informés dans le domaine convergent toutes pour confirmer que Sun a fait ce choix d'incompatibilité (pour Dtrace et Zfs) volontairement. Par exemple, les analyses de :
Theodore Tso : http://lkml.org/lkml/2007/4/17/285
Alan Cox : http://lkml.org/lkml/2007/4/17/202
Linus Torvalds : http://lkml.org/lkml/2007/6/12/232
Enfin (outre le problème volontaire de licence) Sun possède un portefeuil de brevets autour de Zfs (avec lesquels ils ont récement attaqué NetApp), ce qui n'aide pas non plus à l'intégration dans Linux.
[^]Re: ZFS ?
Pour le cas des brevets sur ZFS, il ne faut pas sortir l'attaque de SUN du contexte. En effet c'est d'abord NetApp qui à attaqué SUN pour une histoire de brevet en rapport avec NFS (invention de SUN qui plus est). Pour plus de détails : la [http://blogs.sun.com/jonathan/entry/on_patent_trolling] et la [http://blogs.sun.com/jonathan/entry/harvesting_from_a_troll] .
SUN n'a utilisé son porte-feuille de brevet que pour se défendre contre NetApp ... Il me semble qu'une organisation (dont j'oublie le nom) autour de Linux mutualise les portefeuilles de brevets de certaines sociétés, pour s'en servir comme d'un parapluie afin d'éviter des attaques.
[^]Re: ZFS ?
En effet c'est d'abord NetApp qui à attaqué SUN pour une histoire de brevet en rapport avec NFS (invention de SUN qui plus est).
Netapp est qd meme pas mal investi dans NFS , je crois même que pour la version 4 ils ont pratiquement tout fait à eux seuls ( bien qu on voit apparaitre un @sun dans la RCF )
[^]Re: ZFS ?
> Pour le cas des brevets sur ZFS, il ne faut pas sortir l'attaque de SUN du contexte
Peu importe qui a « attaqué le premier ». L'exemple était là pour montrer qu'ils ont des brevets opérationnels. Sun n'a donné de clause d'exploitation des brevets que pour ceux qui utilisent leur implémentation CDDL de Zfs (donc pas de reverse engeneering ni réimplémentation possible, tiens tiens, comme c'est drole).
Maintenant, il faudrait voir à ne pas trop se laisser intoxiquer par le marketing habile et très insistant de Sun (comme pour les fameux « processeurs opensource » - ahaha - ou encore le « java sera bientôt libre » qui traine et devrait sortir à peut près pile poil au moment où les réimplémentation libres alternatives seront 100% compatibles).
Pour le reste : si tu lis les mails des développeurs Linux sur le sujet, tu notera qu'ils considèrent que la situation autour de ces 56 brevets suffit à empêcher pour le moment toute intégration dans le noyau Linux (indépendament de la licence, et même si c'est une réimplémentation from scratch). Ce n'est pas moi qui le dit, ce sont des développeurs du noyau Linux expérimentés.
Ou, pour citer directement les personnes concernées (source : http://kerneltrap.org/node/8066 ):
Alan Cox :
Theodore Ts'o (développeur ext3/ext4) :
Maintenant, comme Linus Torvalds, je ne leur en ferait pas reproche : c'est dans leur intéret, et ça se comprends bien. Mon repproche va plutôt à ceux qui par naïveté relayent un marketing habile mais pas dans l'interet des linuxiens (arrétons le pipotron), ou ceux qui voudraient qu'on adopte une langue de bois sur ces points.
Sachons louer Sun pour ce qu'ils ont vraiment fait, concrètement, de bénéfique pour tout le libre : NFS, par exemple. Ou avoir eu l'intelligence de libérer OpenOffice quand ils ont vu qu'il ne pouvaient en assurer la promotion et la maintenance seuls. Pour avoir finallement libéré Java lorsque les implémentations concurrentes et libres risquaient de devenir le défaut sur tout les serveurs linux. Pour avoir finalement décidé, assez récement, de filer les spécs de tout (ou presque) leur matériel. etc.
[^]Re: ZFS ?
il n' y a pas qu' une question de licence, mais également de design (vision et implémentation violant -heu en fait étant à cheval entre plusieurs- la stricte définition du FS)
mes souvenirs sont vagues, alors plutôt que de dire des co****** : voir les excellents articles de GLMF (bientôt visibles sur unixgarden.com )
mon_nanavis : vive ZFS
Maintenant, sur BTRfs, une considération d' ordre politique (et pas du tout technique), sous la forme d' une question que je vous invite à vous poser :
que va t il se passer si seul Oracle Unbreakable Linux implémente BTRfs ? (...)
En tout cas, Oracle frappe très fort.
/troll habituel : "si JAVA avait été libre plus tôt, .NET n' aurait jamais exister"
/troll adapté : "si ZFS (ou ext4, c est selon...) ne se dépêche pas, BTRfs va le suplanter"
mes 2 cents
à vous le troll-studio :)
[^]Re: ZFS ?
>> De son coté ZFS est sous licence CDDL afin précisément de ne pas pouvoir être inclus dans Linux.
> Une source pour confirmer ou c'est juste du vent ?
Oui, finalement, j'ai une source de première main et venant pour ainsi dire de Sun (une ex-employée) indiquant précisément que la CDDL a été construite pour OpenSolaris de façon à être volontairement incompatible avec la GPL.
C'est Denise Cooper (cf. http://en.wikipedia.org/wiki/Danese_Cooper ), « Madame opensource » chez Sun de 1999 à 1995, et qui a notamment participé à la rédaction de la CDDL pour OpenSolaris.
Expliquant pourquoi elle a du baser cette nouvelle licence CDDL sur la Mozilla Public Licence :
Source :
http://meetings-archive.debian.net/pub/debian-meetings/2006/(...)