ZFS : chronique d'un abandon

Arnaud de la Grandière |
Ainsi donc, Apple a laissé tomber définitivement ZFS, le filesystem prometteur qu'elle projetait d'utiliser dans Mac OS X.

Celui-ci avait fait sa première apparition durant le beta-test de Leopard, pour finir par disparaître à la sortie du système d'exploitation. Mieux encore, Apple l'avait publiquement annoncé parmi les nouvelles fonctionnalités de Snow Leopard, mais à l'arrivée il n'est disponible qu'en lecture, et encore, sur la version serveur du félin. (voir notre article La saga ZFS n'en finit plus).

En forçant un peu son optimisme, on aurait pu penser qu'il ne s'agissait là que de l'effort open-source d'Apple sur le système de fichiers, tout en se perdant en conjectures quant aux motivations de cet abandon. La raison ne s'est pas faite attendre : la mailing liste consacrée à ZFS divulgue en effet que c'est pour des raisons de licence qu'Apple a abandonné son projet, ce qu'on envisageait déjà suite à la disparition de ZFS de la liste des fonctionnalités de Snow Leopard (voir notre article ZFS : théories autour d'une disparition). Apple aurait en effet souhaité obtenir une licence personnalisée de la part de Sun, fraichement rachetée par Oracle, en lieu et place de la licence CDDL sous laquelle ZFS est mis à disposition.

Apple utilise pourtant DTrace dans Mac OS X, qui est distribué avec cette même licence. On ignore les raisons précises qui ont poussé la firme de Cupertino à demander un traitement particulier, mais on peut toutefois envisager que le procès intenté par NetApp n'est pas étranger à de telles exigences : Apple aurait pu souhaiter une clause de garantie en cas de problème, ce que Sun ne lui aurait pas accordé (il est vrai qu'elle n'avait que peu d'intérêt à le faire). Il est également possible qu'Apple ait souhaité apporter des modifications à ZFS et qu'elle ait souhaité en conserver l'exclusivité.

Quoi qu'il en soit, ça n'est pas pour des raisons techniques qu'Apple change son fusil d'épaule, et en ce sens on ne peut donc que regretter cette impasse. Car ZFS avait bien des avantages à son actif : introduit pour la première fois en 2005 dans Solaris, le système d'exploitation de Sun, ce système de fichier moderne était taillé pour les situations les plus exigeantes : capable d'allouer un pool de stockage de manière dynamique sur plusieurs disques, un peu comme le système RAID le permet, il permet un système d'archivage incrémental, ce qui aurait été parfait pour Time Machine : au lieu de sauvegarder chaque fichier dans son intégralité à chaque modification, ZFS permet de conserver une "photographie" de base et ne sauvegarde par la suite que les modifications faites depuis celle-ci, ce qui est bien plus économe en stockage. Malgré cette disposition, ZFS est le système de fichier de tous les superlatifs : 128 bits, ses limites théoriques dépassent tout ce qu'il est concevable de stocker, et il est dit que pour arriver à bout de ses capacités il faudrait dépasser les limites quantiques du stockage de données, et que l'opération nécessiterait plus d'énergie que celle requise pour faire bouillir tous les océans

En ce sens, ZFS s'est fait connaître comme "le dernier mot des systèmes de fichiers", du moins c'est en ces termes quelque peu présomptueux qu'il a été présenté par ses concepteurs . En effet, considérer ZFS comme l'alpha et l'omega des systèmes de fichiers, comme un point final à leur courte histoire dans l'informatique, serait oublier que les besoins d'échelle peuvent varier grandement en fonction des applications, comme le rappelle Louis Gerbag sur son blog. Si l'aspect "illimité" de ZFS est appréciable, certaines choses ont bien changé depuis les premiers pas du projet de Sun. Ainsi, on a vu depuis poindre l'arrivée des disque durs à base de mémoire flash, dont les caractéristiques et les besoins sont très différents des disques à plateaux. Si ces derniers persisteront encore longtemps, notamment dans les serveurs, on ne peut nier que les disques à base de mémoire flash ont beaucoup d'avenir devant eux. Un système de fichiers qui tiendrait compte des caractéristiques particulières de ces nouveaux disques serait grandement appréciable, d'autant que nombre des fonctionnalités des file systems ont été bâties en prenant en compte la rotation des disques à plateaux.

ZFS avant tout a été conçu pour les serveurs, et s'il est possible de l'utiliser sur des configurations plus restreintes, il finit malgré tout par se sentir à l'étroit sur du matériel plus modeste. NEC a effectué le portage d'OpenSolaris pour processeurs ARM, pour finir par se rendre compte que ZFS exigeait 8 Mo de RAM pour fonctionner. Une paille sur un ordinateur, mais beaucoup trop pour un appareil tel que l'iPhone par exemple. Il aura fallu introduire une modification de ZFS pour qu'il se satisfasse de 2 Mo.

On le voit, ZFS n'est pas la réponse absolue à toutes les situations, il est donc envisageable de faire mieux encore. On peut ainsi se consoler en se disant qu'Apple n'aura rien de moins pour objectif, soit en poursuivant les évolutions de HFS Plus, soit en repartant d'une page blanche. Le système de fichier actuel du Macintosh est sorti en 1998, mais a connu nombre d'évolutions qui le rendent toujours compétitif, et il n'a guère à rougir de la comparaison avec la plupart de ses pairs. Et Apple n'en est pas à son premier système de fichiers (MFS, HFS, HFS+, sans oublier ses implémentations de FAT32, NTFS, UFS, NFS ou encore, dans une autre mesure, WebDAV). Nous laissons le soin aux spécialistes de déterminer ce qu'il est plus souhaitable de faire, toujours est-il qu'Apple semble déterminée à régler la question d'elle-même, comme l'indique cette offre d'emploi. Cependant, si Apple décide de reprendre le chantier à zéro, il faudra s'armer de quelque patience : un système de fichier fait partie des fonctions qui sont au plus bas niveau du système, et dont la modification peut être lourde de conséquences. C'est un processus long et fastidieux, et il ne faudra probablement pas attendre une telle refonte pour la prochaine version majeure du système d'exploitation d'Apple. Cependant, la modernisation du filesystem sera peut-être l'un des enjeux de Mac OS X 10.7.

Tags
#ZFS
avatar CocoaPower | 

On voit que l'auteur ne connait pas les problématiques dont il parle. La perle de l'article étant de citer WebDAV dans la liste des systèmes de fichier....

avatar vintz72 | 

En fait, on ne sait toujours pas ce qui est reproché au HFS+

avatar cham | 

Merci pour cet article !

avatar Psylo | 

Tu oublies le magnifique : "un poule de stockage".
Sinon l'article est plutot bien.
Elle est où la poulette ? Elle est bien cachée ?

avatar Silverscreen | 

J'imagine que l'abandon ne s'est pas fait sur un coût de tête et je ne serais pas étonné que voyant poindre les difficultés légales, Apple aie, en interne, travaillé à la greffe de certaines caractéristiques de ZFS sur HFS+, quitte à, par exemple, débaucher certains spécialistes du domaine…

avatar glehmann | 

Super article - merci !

avatar kubernan | 

@CocoaPower : Tu aurai mieux fait de t'abstenir. En effet WebDav est géré par OS X comme un système de fichier (filesystem). Sa mention dans l'article d'Arnauld est donc juste.

avatar g.lebourgeois | 

On appréciera la "poule de stockage". Espérons que le coq ne passe pas dans les parages pour la déconcentrer !

Et n'allez pas remplacer la poule par une piscine...

avatar oomu | 

On voit que l'auteur ne connait pas les problématiques dont il parle. La perle de l'article étant de citer WebDAV dans la liste des systèmes de fichier....

je répondrais comme kuberman.

oui, webdav stricto-senso n'est pas un "système de fichier" (c'est une extension au protocol réseau http, vla!) mais son usage dans os x se voit comme un système de fichier (histoire de faire simple).

Il ne s'agissait pas de comparer webdav à zfs ou hfs+, mais d'expliquer que dans la panoplie de standards pour partager des données entre disques et ordinateur, os X est plutôt complet.

webdav est aussi un de ces outils.

-
Sur un plan technique, citer nfs et webdav est bancal, mais quand il s'agit de fonctions pour que les gens puissent partager leurs fichiers avec d'autres, c'est tout à fait logique.

Et rappelons que depuis le finder, ça se présente exactement comme un disque dur.

-
Louis Gerbarg, http://devwhy.blogspot.com/2009/10/loss-of-zfs.html qui a détaillé pourquoi Apple a vraisemblablement abandonné zfs, explique que le seul système de fichier sur le disque dur ne suffit pas.

Il faut aussi que les gens puissent échanger. Zfs n'aurait rien ajouté de plus pour échanger avec windows et linux. Il fait donc la liste de tout ce qu'apple a intégré pour cela.

Il explique surtout que les équipes d'apple sont très réduites et qu'il est étonnant de voir le travail abattu. Et là il cite tous les protocoles/systèmes de fichiers de stockage et échange.

(bah, la plupart des gens qui acceptent de parler de leur travail chez apple disent qu'ils ont bossé comme des fous, que c'était passionnant, bien payé, et que 5/10 ans ca suffit, stop arg mort.)

-
L'article se tient très bien.

et heu vi , attention aux anglicismes délirants :)

avatar Psylo | 

[i]Il faut aussi que les gens puissent échanger. Zfs n'aurait rien ajouté de plus pour échanger avec windows et linux[/i]
Quand on voit la compatibilité de HFS & co, je ne croit pas que ton argument soit cohérent.

avatar oomu | 

@vintz72 [26/10/2009 13:01]

En fait, on ne sait toujours pas ce qui est reproché au HFS+

rien.

rien n'est reproché à hfs+
ni rien est reproché à ext4fs ou ntfs.

ces 3 systèmes sont plutôt performants, plutôt complets, et plutôt bien fichus.

Mais simplement, avec les machines actuelles, avec les recherches faites et toutes les expérimentations, on sait que l'on peut faire nettement mieux.

En particulier, quand on commence à penser à Time Machine, on se dit que des fonctionnalités de "snapshot" serait fort utile.

Avant la "photographie" de disque (snapshot), on s'en servait pour capturer un moment à sauvegarder, ou capturer l'état d'une base de donnée, ou que sais je.

Mais pourquoi pas aussi régulièrement capturer l'état de la machine de l'utilisateur tout en économisant de l'espace disque ?

Les usages évoluants, les conceptions des logiciels internes doivent être revus.

Hfs+, ntfs+ correspondent très bien à leurs usages actuels, mais si on veut aller au delà, tout en améliorant le fonctionnement, pourquoi ne pas repenser les bases ?

C'est ce qui se passe dans des projets tels zfs ou btrfs.

-
notez bien que microsoft conçu ntfs pour se débarrasser de toutes les erreurs de fat et rajouter toutes les idées modernes de l'époque (acl par exemple).

mais le temps passe vite.

-
le propos n'est donc pas que hfs+ est tout pourri, ce qui n'est pas vrai. Mais que tôt ou tard, Apple voudra aller au delà.

avatar oomu | 

@Psylo [26/10/2009 13:30]

>Il faut aussi que les gens puissent échanger. Zfs n'aurait rien ajouté de plus pour échanger avec windows et
>linux
>Quand on voit la compatibilité de HFS & co, je ne croit pas que ton argument soit cohérent.

ici, je reprends le propos de Gerbarg.

Mais SON argument est cohérent.

à l'heure actuelle on a déjà un problème :

hfs+ ne marche que sur mac (de base, on peut achter un bidule pour windows, on peut étendre linux)

ntfs ne marche que sur windows (de base, on peut activer ntfs-3G par fuse, forcer os x à monter en écrire ntfs à VOS RISQUES ET PERILS, acheter un produit, faire de même avec linux)

ext3fs (ou 4, pareil) ne marche que sur linux (encore une fois, on peut se débrouiller)

bref, aucun des 3 n'est "automagiquement" la panacée : aucun des 3 ne correspond aux 3 grands systèmes. Sans parler des bsdiens qui vont me dire qu'ils voient pas pourquoi j'imposerai ext3fs à tous les unix...

ZFS donc améliore une tonne de problématique, mais PAS celle de l'échange de disque avec windows

(ce qui est avouons le, la GROSSE demande des gens : brancher leur disque partout et se foutre des détails)

-
donc son propos à l'auteur est: "de toute façon, zfs aurait pas réglé le problème numéro 1".

Le hic, c'est qu'il voit pas comment c'est possible de le résoudre. ni avec btrfs, ni avec un système de fichier révolutionnaire fait maison chez apple. (microsoft en aura cure, la communauté linux sera sûrement en incapacité de l'adopter ou totalement surprise par le nouveau produit apple).

C'est tout simplement pas possible techniquement, c'est un problème de politique industrielle.

Donc, voilà , le coeur du propos est de dire "zfs n'aurait pas réglé ce problème numéro 1, hé, vous me direz, le reste non plus.. heu..."

avatar Hurrican | 

Il faut voir aussi que les SSD risquent de voir leur avenir s'assombrir, car dépassés par ... les disques durs !
Hé oui, la technologie laser qui avait été imaginée par certains est désormais fonctionnelle en laboratoire. Le bon vieux disque dur, devient alors au moins 100 fois plus rapide (surtout en écriture), tout en ne coutant pas plus cher à produire... Les premiers essais cet été ont été couronnés de succès et on est passé en phase de recherche d'industrialisation. :)

avatar jabial | 

Moi ce que je vois c'est qu'une fois de plus Apple joue la fermeture. Evidemment les utilisateurs lambda en sont à "mon système il marche pourquoi changer", mais c'est avec ce genre de raisonnement que la majorité des parcs informatiques restent sous Windows. Si Apple a envisagé d'adopter ZFS c'est bien parce qu'il est largement supérieur à tout ce qui existe ; mais ils se sont rendus compte que si c'était ouvert ça ne resterait pas longtemps une exclusivité à eux. Ils en sont encore au resource fork, il leur faut un "plus" que les autres ne puissent pas copier. À défaut de pouvoir propriétariser ZFS, ils préfèrent développer quelque chose en interne. Ils en ont maintenant les moyens. Je tremble mentalement quand je pense à quel Mac OS on aurait eu s'ils avaient lancé les iPod quelques années plus tôt. On plutôt, moi qui ne jurais que par Un*x, je ne serais jamais venu sous Mac OS.

Bien entendu tous les utilisateurs vont payer le prix de cette politique de fermeture, puisque leur système de fichiers propriétaire avec les features de ZFS mais sans son code mettra plusieurs années à arriver à maturité.

avatar Achylle | 

Les critiques sont un peu dures, car l'article n'est vraiment pas mauvais dans le fond.
Pour webdav, même si ce n'est qu'un protocole, certaines de ces caractéristiques le font un peu se rapprocher d'une sorte de "système de fichiers online".

Qu'on se comprenne bien, il en est loin, mais le fait de pouvoir gérer des droits d'accès, des attributs, etc.. le rapproche un peu d'un système de fichiers (très) simple.

Dommage qd même, j'aurai bien vu le ZFS dans snow léopard...
Cela aurai bien été dans le sens de peu de nouvelles choses en apparence, mais les bases du système sont revues en profondeur.

avatar kubernan | 

@jabial : [i]Je tremble mentalement..[/i].

Oui, plus vulgairement on appelle ça de la masturbation intellectuelle :-)

avatar Arnaud de la Grandière | 

Les critiques de spécialistes sont un passage obligé quand on fait un article sur des domaines pointus, ça se vérifie à chaque fois ^^,

avatar oomu | 

@jabial [26/10/2009 14:06]

encore une fois, avant de dire "RAh ces méchants de apple qui ferment tout", je vous rappelle qu'ils ont une tonne de trucs ouvert qu'ils auraient pu fermer.

dtrace de sun est intégrée dans os x, c'est très technique, oui, mais c'est une fonction incroyablement cool de os X (en avance sur linux, par exemple), ils auraient pu la propriétariser. mais non.

L'article rappelle que oui c'est une raison juridique mais on ne sait pas laquelle.

En particulier, il faut rappeler 3 points :

- oracle rachetant sun, avec lenteurs et difficultés, sun est dans le chou le plus total, lui et tout les projets liés. (c'est grave)

- oracle conçoit depuis quelque temps un concurrent opensource à zfs, pour linux : btrfs. équivalent fonctionnellement à zfs, avec ses propres idées.

- netapp a porté plainte contre sun pour violation de brevets. Alors, déjà qu'apple a une tonne de casseroles, il est assez raisonnable que Apple ait pu souhaiter une licence spécifique, une garantie ou l'assurance de pas se prendre le procés à son tour sur la tête (ce qui serait typique).

dans ces 3 conditions, c'est trés raisonnable qu'apple jette l'éponge.

-
Ils ne font pas des fork systématique

Ils n'ont pas forké dtrace, pas forké cups, ils ont refusionné webkit et khtml et ils ont bien tenté de fusionner les ajouts de objective C au gcc "officiel" mais gnu se fiche totalement de objective-C (une erreur stratégique selon moi).

Apple refuse de participer à vorbis et theora (ce qui est Mal, mais typique d'apple lié à mpeg)

Apple travaille sur LLVM et Clang (qui remplaceront à terme gcc), logiciels opensource mais sans obligations pour apple de contribuer tous leurs travaux en opensource, contrairement à gcc. Ce qui peut être décrit comme Mal. (et plus d'un ne se gênent pas pour le dire).

-
Vous savez déjà que si apple abandonne zfs c'est pour faire du super propriétaire méchant ?

Les développeur linux ont refusé de travailler sur zfs, c'est pour du propriétaire ?

avatar oomu | 

zfs est déjà disponible sur freebsd et solaris

je pense qu'apple savait déjà avant d'en parler publiquement que zfs ne serait pas "qu'à eux".

avatar davi18 | 

Si Apple et Microsoft pouvait se mettre d'accord pour concevoir un fs commun à leurs deux systèmes d'exploitation, ça serait déjà un grand pas en avant.

avatar oomu | 

"Je tremble mentalement quand je pense à quel Mac OS on aurait eu s'ils avaient lancé les iPod quelques années plus tôt. On plutôt, moi qui ne jurais que par Un*x, je ne serais jamais venu sous Mac OS."

si apple n'avait pas été au _pied_ du mur (avec le flingue sur la tempe) à la mi-année 90s, apple n'aurait certainement jamais fait le chantier Mac os X.

cela dit, le chantier mac os x est fondamental dans la création de produits comme time capsule, iphone et os x server.

et la fusion avec next et le travail sur mac os rhapsody datent de bien avant l'ipod.

mais il est exacte que la société s'était lancé dans ce rachat, dans les années 90, parce sans un système moderne, elle n'avait aucun avenir (notez bien que même à cette époque, apple était loin de la banqueroute).

-
au fond, je pense que c'est une question de personnes. Si apple avait que des financiers à l'époque et subitement l'ipod était tombé sur eux, ils auraient arrêté les ordinateurs. Effectivement, je pense qu'on aurait même pas eu l'imac et os x. en tout cas, rien de radical.

mais apple est bourré de gens qui aiment faire des zordis. C'est ce qui pousse la société. Et O Miracle, ils arrivent à justifier tout le boulot sur le mac en le réutilisant pour tout le reste.

Ce n'est pas lié selon moi aux zipods, aux succés ou modes du jour, mais aux gens derrière une entreprise.

Si demain, tous les cadres qui ont une forte culture informatique sont remplacés par des financiers experts en vente d'eau sucré, la société déclinera très vite en un assembleur type. (mais on aura des ipods++ déclinés à la vanille)

-
la perte de zfs est un coup dur.

avatar oomu | 

@davi18 [26/10/2009 14:28]

>Si Apple et Microsoft pouvait s mettre d'accord pour concevoir un fs commun à leurs deux systèmes
>d'exploitation, ça serait déjà un grand pas en avant.

ça serait cataclysmique et j'offrirais le champagne à tous les contributeurs réguliers sur macgen.

avatar jibbe | 

Néophyte aussi, je tiens à remercier Arnauld pour la grande clarté de ses articles.

avatar Psylo | 

@oomu
Une des différences majeurs, est quand même que les fs issu du monde libre (ext3/ext4, reiserfs, btrfs...) sont fait pour être documentés, ouverts et portables. Ce qui n'est malheureusement pas le cas de ntfs et de la famille hfs.

avatar CocoaPower | 

@kubernan

Tu peux aussi monter SSH dans ton système de fichier, c'est pas pour autant que c'est un système de fichier....

Pages

CONNEXION UTILISATEUR