Journal ZFS sous GPL grâce à GRUB ?

Posté par (page perso) .
Tags :
23
2
déc.
2010
Je sais, je sais, le titre est un peu abscons avec ces trois acronymes. Mais bon j'ai trouvé ça rigolo et puis on est entre nous et on sait de quoi on parle non ?
Bon au cas ou voici le pitch en toutes lettres: Les développeurs du chargeur "Grand Unified Bootloader" on décidé d'inclure le systèmes de fichiers "Zettabyte File System" dans leur code. Cette inclusion implique que le code de ZFS qui est incorporé est sous licence "GNU General Public License".

Cette annonce peut sembler étonnante pour ceux qui se souviennent que Sun avait explicitement placé ZFS sous licence CDDL pour empêcher toute inclusion dans les logiciels sous GPL. Comment est-il alors possible d'inclure ZFS dans un GRUB qui est sous GPLv3+ ?
D'après ce que j'ai compris de l'annonce les développeurs d'OpenSolaris se sont servi du code de GRUB et on ajouté ZFS dedans pour en faire leur chargeur par défaut. Ce GRUB a ensuite été rendu disponible sous forme de binaire par Solaris et cela implique que ce code incorporant ZFS est soumis aux conditions de la GPL (puisque GRUB était sous GPL). Oracle garde bien entendu le copyright sur ZFS mais ne peut plus s'opposer à son inclusion dans des logiciels sous GPL.
En tout c'est ce qu'affirme Robert MIllan de l'équipe de développement de GRUB :

"The ZFS code that has been imported into GRUB derives from the OpenSolaris version of GRUB Legacy. On one hand, this code was released to the public under the terms of the GNU GPL. On the other, binary releases of Solaris included this modified GRUB, and as a result Oracle/Sun is bound by the GPL.
We believe that these two factors give us very strong reassurance that:

a) Oracle owns the copyright to this code and
b) Oracle is licensing it under GPL

and therefore it is completely safe to use this in GRUB.
"

En ce qui concerne non plus les licences mais les brevets, là encore la situation semble saine. Puisque la GPLv3+ de GRUB incorpore des protections contre les attaques sur les brevets cela rend d'avance inefficace toute attaque d'Oracle. Le simple fait d'avoir distribué un GRUB sous GPLv3+ qui incorpore le code de ZFS interdit désormais à Oracle de se retourner contre les utilisateurs de ce GRUB patché:

"due to the fact that Oracle is bound to the terms of the GNU GPL when it comes to GRUB, we believe this renders patents covering ZFS basically harmless to GRUB users."

Alors tout est beau et magnifique et nous allons pouvoir bientôt utiliser ZFS dans Linux ? La réponse est hélas non.
Le problème c'est que ce n'est pas une version complète de ZFS qui est incorporé dans GRUB. C'est juste le code nécessaire pour faire booter la machine. Il y a le support des fonctions de mirroring, de checksum et de compression...mais aucun des outils de commande en espace utilisateur n'est disponible.
Peut-être que cela pourra quand même être utilisé par des développeurs qui sont motivés par une réimplémentation complète de ZFS sous GPL ? Mais bon avec l'arrivée de Btrfs dans Linux l'attractivité de ZFS en a pris un sacré coup et il n'est nullement certain que cette réimplémentation soit entreprise un jour.

C'est un journal pour rien alors ?
Fi donc, lecteur de peu de foi ! Nous sommes jeudi soir, c'est à dire presque vendredi, le jour des trolls en goguette.
Je terminerai donc en traduisant la dernière partie du message de Robert Millan (c'est moi qui souligne):

"Si les brevets qui couvrent ce GRUB modifié sont détenus par Oracle, ils ne peuvent pas les utiliser contre les utilisateurs de GRUB, et si ils sont détenus par d'autres parties alors le texte de la GPLv3 empêchera Oracle de payer uniquement pour protéger ses utilisateurs. Ils devront se battre aux côtés de la communauté au lieu de la trahir.
Que cela serve de nouvel exemple sur le fait que les soit-disantes licences "permissives" ne sont pas toujours une garantie que le code qu'elles recouvrent puisse être utilisé librement. Si vous voulez que votre code soit libre pour tous les utilisateurs alors utilisez toujours la dernière version de la GPL."
  • # attention

    Posté par (page perso) . Évalué à 10.

    Avant de s'emballer sur la gplitude de zfs je pense qu'il serait convenable de demander conseil à un specialiste, par exemple f. gallaire.
    • [^] # Re: attention

      Posté par . Évalué à 6.

      Je valide ce post.

      « Je vous présente les moines Shaolin : ils recherchent la Tranquillité de l'Esprit et la Paix de l'Âme à travers le Meurtre à Main Nue »

    • [^] # Re: attention

      Posté par . Évalué à 7.

      Sans être spécialiste, ce n'est qu'une toute petite partie de ZFS qui est nécessaire à GRUB qui est passée GPL. Par exemple GRUB en a rien à foutre de l'écriture, des vérifications, des performances, du cache, des attributs étendus, des priorités, des fichiers de plus de 1 GiO, etc.
    • [^] # Re: attention

      Posté par . Évalué à 7.

      Bonjour,

      Tiens c'est bizarre, j'ai eu la même idée.
      Mais est-elle vraiment si bonne ?

      - Il risquerait de dire que finalement bien qu'il soit sûr d'avoir raison il préfère retirer les mentions de la GPL à la demande de l'éditeur...


      A bientux.
      Jonas.
    • [^] # Re: attention

      Posté par (page perso) . Évalué à 1.

      D'habitude, on écrit plutôt « Florent G. » et avec des majuscules aux noms propres.
      • [^] # Re: attention

        Posté par . Évalué à 1.

        C'est pas plutôt patrick_g ?

        Tous les nombres premiers sont impairs, sauf un. Tous les nombres premiers sont impairs, sauf deux.

  • # Contestable ?

    Posté par . Évalué à 2.

    Je me demande si Oracle ne pourrait pas, devant un tribunal, argüer que les conditions de la licence de GRUB sont disproportionnées par rapport à l'utilité du code. Par exemple, si le code de GRUB est petit en comparaison de celui de ZFS (du moins les fonctions utilisées). Et puis, quelle est la valeur pécuniaire du code en question pour Oracle (comparé au prix d'un procès la FSF, même gagné par la FSF) ?

    Je suis bien content qu'une partie du code de ZFS soit en GPL3+, je dis juste que ça peut couter cher en avocats.
    • [^] # Re: Contestable ?

      Posté par . Évalué à 6.

      Je ne vois pas en quoi l'utilité du code aurait une influence sur sa licence. Le code appartient à son auteur qui en décide l'utilisation, utile ou pas.

      Et si ce code était si peu utile, Oracle (enfin Sun) n'avait qu'à ne pas l'utiliser.

      Article Quarante-Deux : Toute personne dépassant un kilomètre de haut doit quitter le Tribunal. -- Le Roi de Cœur

    • [^] # Re: Contestable ?

      Posté par (page perso) . Évalué à 9.

      Je crois que le but de cette manœuvre est de dire à Oracle : si vous continuez à agresser le Libre, on va chercher chaque ligne de GPL3 qui a touché votre code et le libérer.

      Je dirais même que le choix de Grub n'est pas un hasard, le code libéré n'est que peu utile directement, mais il démontre qu'il est difficile de faire un OS sans passer par le projet GNU (ou alors il faut pouvoir injecter des milliards dans le projet).

      "It was a bright cold day in April, and the clocks were striking thirteen" - Georges Orwell

    • [^] # Re: Contestable ?

      Posté par (page perso) . Évalué à 7.

      La valeur pécuniaire de GRUB ? Elle doit pas être énorme puisque ce programme permet seulement à toutes les machines Sun^WOracle (et à base Intel) de démarrer sous Solaris.

      J'imagine bien les utilisateurs de Solaris (enfin, ceux qui ont des contrats de support) qui ne pourront plus redémarrer leurs serveurs après le retrait de GRUB de Solaris...

      Tout ça pour dire qu'Oracle n'a aucun intérêt à faire ce genre de chose.
  • # Appréciation

    Posté par . Évalué à 3.

    J'apprécie beaucoup (et en même temps, suis bluffé par) l'utilisation audacieuse du verbe efficacer :)

    Par des gestes comme celui-là, on reprend la main sur l'évolution de la langue, qu'il ne faut pas laisser aux seuls usagers du SMS !
  • # Pourquoi compliquer ?

    Posté par (page perso) . Évalué à 1.

    Je ne saisi pas très bien.

    D'une part, si Sun a utilisé du code GPL dans un logiciel, ça n'oblige que ce logiciel à être sous GPL. Donc il faudrait utiliser le code de ZFS présent dans ce logiciel. Or ce n'est pas possible puisqu'il n'a pas été publié. Et rien n'indique que ce soit exactement le même code que celui utilisé par l'équipe de GRUB.
    Je ne sais pas si je suis clair :-)

    D'autre part, les gens qui codent GRUB sont de grands garçons maintenant. Ils pourraient tout simplement accepter d'inclure un sous-répertoire sous licence BSD. Et hop, ça permet d'avoir ZFS sans truc tordu.
    Sont-ce des intégristes ?
    • [^] # Re: Pourquoi compliquer ?

      Posté par . Évalué à 1.

      La nature même de la GPL rend ceci impossible (aspect "viral"). Il aurait sans doute fallu utiliser une licence GRUB plus permissive dès le début, comme la LGPL ou BSD.

      De là à dire que la GPL est intégriste... certainement, pour le pire et pour le meilleur d'ailleurs.
      • [^] # Re: Pourquoi compliquer ?

        Posté par (page perso) . Évalué à 2.

        Il existe des logiciels avec des licences mélangées. La GPL n'interdit pas du tout que des morceaux soient dans une autre licence.
        • [^] # Re: Pourquoi compliquer ?

          Posté par (page perso) . Évalué à 3.

          Elle impose que les morceaux qui sont dans une autre licence soient compatible avec la GPL,. C'est à dire que l'ensemble du logiciel DOIT être distributé sous GPL (et ce sans violer les conditions des autres licences).

          Concrètement, tu peux distribuer un programme sous GPL qui utilise du code sous BSD parce que la BSD est compatible avec la GPL.

          Par contre tu ne peux pas distribuer un programme sous GPL qui utilise du code CDDL parce que la CDDL t'interdit de redistribuer sous la GPL ([3] pour une explication - la CDDL est dérivée de la MPL).

          http://en.wikipedia.org/wiki/License_compatibility
          http://en.wikipedia.org/wiki/GNU_General_Public_License#Comp(...)
          [3] http://www.tomhull.com/ocston/docs/mozgpl.html
          • [^] # Re: Pourquoi compliquer ?

            Posté par (page perso) . Évalué à 2.

            >> C'est à dire que l'ensemble du logiciel DOIT être distributé sous GPL (et ce sans violer les conditions des autres licences).

            Distribué ou distribuable ?
            C'est pas pareil du tout.
            Distribué veut dire que je ne peux plus privatiser un bout de code en BSD fourni avec le logiciel GPL. Distribuable veut dire que si.

            Si c'est le premier cas, je trouve que ça pue vraiment.
    • [^] # Re: Pourquoi compliquer ?

      Posté par (page perso) . Évalué à 4.

      Ils pourraient tout simplement accepter d'inclure un sous-répertoire sous licence BSD. Et hop, ça permet d'avoir ZFS sans truc tordu.
      Sont-ce des intégristes ?


      Ca n'a rien à voir avec l’intégrisme, mais un choix des ayant-droit : ils ont décidé de diffuser sous GPLv3+, les autres doivent respecter.
      Si les ayant droit de ZFS veulent une compatibilité GRUB, ils sont grands, ils peuvent aussi passer sous licence GPL.

      Bref, rien d’intégriste dans ce choix.

      Par contre, tout comme l'autre affaire, j'ai comme un doute sur la validité du raisonnement juridique... Surtout que dans le cas de ZFS? ils n'on pas vraiment idée du code source utilisé.
  • # Je suis assez consterné par ce raisonnement idiot ...

    Posté par . Évalué à 10.

    "For example, if you distribute copies of such a program, whether gratis or for a fee, you must pass on to the recipients the same freedoms that you received. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights."


    Ca veut dire que si on redistribue un logiciel sous licence GPL ou bien un logiciel dérivé d'un logiciel sous licence GPL, il faut le faire selon les termes de la GPL.

    Certainnement pas que par "magie virale" le logiciel distribué "passe sous GPL" (ce qui ne voudrait de toute façon pas dire grand chose).

    Si Sun/Oracle distribue sous un licence non GPM un logiciel dérivé d'un logiciel reçu sous licence GPL cela veut dire uniquement qu'il n'a pas respecté la licence de GRUB et qui doit se mettre en conformité soit en retirant le code GPL de ZFS, soit en mettant volontairement ZFS sous GPL.

    Libre aux détenteurs du copyright de GRUB de se retourner contre Oracle/Sun pour le préjudice subi dans l'intervalle.

    BeOS le faisait il y a 15 ans !

  • # Mais que ce qu'il a de si spécial ce ZFS ?

    Posté par . Évalué à 3.

    Je ne sais pas pourquoi - car je ne suis pas expert en filesystémie - mais depuis que ce truc est sorti tout le monde veut l'avoir en GPL.

    Bon d'accord c'est peut-être un truc super hyper méga génial qui déchire son FS, mais Ext4 & Co. ça marche pas si mal sous notre OS favori, ou alors c'est déjà démodé ?

    Est-ce que quelqu'un qui est dans le coup pourrait expliquer à la horde de béotiens dont je fais partie en quoi ce machin est incontournable ?
    • [^] # Re: Mais que ce qu'il a de si spécial ce ZFS ?

      Posté par . Évalué à 3.

      Parcequ'il possede des features avancés : déduplication, snapshoting ...
      • [^] # Re: Mais que ce qu'il a de si spécial ce ZFS ?

        Posté par . Évalué à 2.

        Le snapshotting est déjà présent dans LVM, et pour la déduplication, il suffit de faire une couche entre LVM et Ext4.

        Le Device Mapper a été suffisamment bien conçu pour être parfaitement KISS : une couche pour chaque tâche.

        D'ailleurs, ZFS permet-il de faire du chiffrement transparent ?

        Article Quarante-Deux : Toute personne dépassant un kilomètre de haut doit quitter le Tribunal. -- Le Roi de Cœur

        • [^] # Re: Mais que ce qu'il a de si spécial ce ZFS ?

          Posté par (page perso) . Évalué à 5.

          D'ailleurs, ZFS permet-il de faire du chiffrement transparent ?

          C'est pas un peu con pour du chiffrement justement? :)

          « Rappelez-vous toujours que si la Gestapo avait les moyens de vous faire parler, les politiciens ont, eux, les moyens de vous faire taire. » Coluche

        • [^] # Re: Mais que ce qu'il a de si spécial ce ZFS ?

          Posté par . Évalué à 2.

          Le snapshotting est déjà présent dans LVM,
          Euh non...
          Enfin plutôt "oui mais non".
          Le snapshot dans LVM n'a qu'un but temporaire et n'est pas forcément atomique, etc...
          Le snapshot dans zfs, de fait de l'utilisation de COW etc...
          -> ne prend pas forcément énormément de place
          -> est super simple à utiliser
          -> est atomique.

          On peut citer d'autres intérêts : les ditto blocks, le "end to end" checksumming etc...
        • [^] # Re: Mais que ce qu'il a de si spécial ce ZFS ?

          Posté par . Évalué à 3.

          Le snapshotting est déjà présent dans LVM, et pour la déduplication, il suffit de faire une couche entre LVM et Ext4.

          La différence, c'est que dans ZFS c'est déjà fait. ^_^

          Le Device Mapper a été suffisamment bien conçu pour être parfaitement KISS : une couche pour chaque tâche.

          D'ailleurs, ZFS permet-il de faire du chiffrement transparent ?


          je n'ai pas encore testé solaris express 11 mais le chiffrement est prévu dans ZFS sur solaris 11. Mais de toute manière le chiffrement est déjà possible dans zfs de façon transparente, en passant par les volumes et non les datasets. Donc avec zfs sur un linux, tu peux très bien créer un pool à partir d'un device chiffrés, ou créer des volumes qui seront individuellement chiffrés.

          Car c'est ça que beaucoup de linuxiens n'ont pas compris, on nous parle souvent du système linux qui est multicouche, mais zfs est aussi multicouche. Tu peux très bien n'utiliser zpool que comme un volume manager pour créer comme dans LVM des volumes qui seront formatés dans n'importe quel filesystem supporté par ton OS. De même que tu peux utiliser ls FS ZFS par dessus n'importe quel autre volume manager.

          Il n'y a que la présentation qui change. Au lieu d'avoiir 15000 binaires pour chaque tache de lvm + le mkfs, tu n'as que deux commandes : zpool et zfs + éventuellement mkfs/newfs si on ne l'utilise que comme volume manager.
    • [^] # Re: Mais que ce qu'il a de si spécial ce ZFS ?

      Posté par . Évalué à 4.

      Avec ZFS, tu peux faire bouillir les océans avant d'avoir blindé ta partition, si ça ne te suffit pas comme raison valable, j'vois pas c'qu'il te faut...
    • [^] # Re: Mais que ce qu'il a de si spécial ce ZFS ?

      Posté par . Évalué à 3.

      Ben je l'utilises au quotidien et il y'a quand même des fonctionnalités très agréables comme la compression et la dedup, le fais que tu peux créer 50 filesystems en quelques secondes, des snapshots à foisons (oui tu peux en faire aussi sous lvm mais c'est différent) avec des copies incrémentales de ces snapshots vers un backup, etc.

      Mais ce qui me plait le plus, c'est qu'un filesystem sous zfs n'a pas de de taille, mais des quotas et réservation. Au boulot on a un parc mixte linux et solaris et quand on doit resizer un FS (ce qui arrive très très souvent) on apprécie le simple :

      zfs set quota=xxx <nom du dataset>

      plutôt que le :

      lvextend -L +xxxG
      resize2fs

      qui soudain foire parce que tu as dépassé ta réserve de blocs pour la GDT et t'obliges à arrêter les applications, démonter le filesystem, attendre 1h30 de fsck puis presque la même durée pour ajouter 50 pauvres Giga à ton fs et pouvoir le remonter, redémarrer les applis et te coordiner avec le responsable de celui-ci pour qu'il s'assure de leur bon fonctionnement.

      Le seul gros bémol de zfs, c'est qu'on ne peut pas (encore) supprimer un disque d'un pool ZFS. Mais en vérité, ça arrive rarement qu'on ait besoin de supprimer de l'espace disque.
      • [^] # Re: Mais que ce qu'il a de si spécial ce ZFS ?

        Posté par . Évalué à 2.

        euh le bémol ca serait pas plutôt que tu ne peux pas étendre les "array" de RAID ?
        tu es obligé de rajouter des "array" entier à ton "pool".

        (désolé pour les mots anglais)
        • [^] # Re: Mais que ce qu'il a de si spécial ce ZFS ?

          Posté par . Évalué à 2.

          bien sur que si tu peux les étendre.

          Non je parle de retirer des vdev, que ce soit des disques internes ou des luns. Une fois qu'ils sont intégrés à un pool tu ne peux plus les retirer sans le détruire.
          • [^] # Re: Mais que ce qu'il a de si spécial ce ZFS ?

            Posté par . Évalué à 2.

            euh tu les étends comment tes array ?
            Parce qu'une fois que tu as fait
            zpool add toto raidz /dev/sdd /dev/sde /dev/sdf
            j'aimerais bien savoir comment tu fais pour lui dire "rajoute aussi /dev/sdg à cet ensemble" (à ce vdev vu que tu semble connaitre ;))

            Pour moi, tu es obligé de refaire un zpool add [raidz[~] devices , et donc recréer un array que tu vas rajouter

            si j'en crois un man trouvé sur le ternet :
            Attaches new_device to an existing zpool device. The existing device cannot be part of a raidz configuration. (comme quoi je dis pas que des conneries ;))


            Un exemple, parce que peut être que je m'exprime mal.

            j'ai trois disque : sda sdb et sdc.
            je fait donc zpool create toto raidz sda sdb sdc
            je suis un peu juste en espace, donc j'achète un nouveau disque sdd.
            Je ne veux qu'un seul disque de redondance.
            Comment je fais ?
            Je ne peux pas faire zpool attach toto raidz sdd , ils m'ont dit que ca marchait pas au dessus :P
            et si je fais un zpool add toto sdd, ca va rajouter un disque non redondé à toto.



            Par contre pour ton problème, tu as pensé au "detach"? (parce que j'avoue que j'ai pas très bien compris ce que tu voulais faire) :
            zpool detach pool device

            Detaches device from a mirror. The operation is refused if there are no other valid replicas of the data.
            • [^] # Re: Mais que ce qu'il a de si spécial ce ZFS ?

              Posté par . Évalué à 2.

              je n'avais pas compris ton problème comme cela. Alors effectivement tu ne peux pas étendre un raidz mais en ajouter un nouveau au besoin. Personnellement, ce n'est pas une limitation qui m'a beaucoup gêné car chez nous en général dans le peu de cas où on souhaite utiliser les disques internes, on blinde le serveur de disque dès l'achat et on n'étend pas le raid par la suite. Mais pour la plupart de nos machines, on utilises tout simplement des luns sur le SAN qu'on stripe bêtement puisqu'ils sont déjà constitués de disques redondants.

              Notre problème, c'est justement ce qui est décrit dans ta dernière phrase, comme zfs fait du striping automatiquement, on ne peut encore lui retirer un membre du stripe. J'aimerai pouvoir faire un zpool remove <le nom du vdev> et que moyennant l'espace disque disponible il se débrouille pour tout relocaliser les blocs utilisés dans celui-ci vers les autres vdev.
    • [^] # Re: Mais que ce qu'il a de si spécial ce ZFS ?

      Posté par (page perso) . Évalué à 5.

      >> tout le monde veut l'avoir en GPL

      Non, seulement les frustrés qui sont coincés avec leur GPL manichéenne qui demande tout ou rien, et qui ne peuvent en conséquence pas avoir accès à ZFS comme ils le voudraient.
      • [^] # Re: Mais que ce qu'il a de si spécial ce ZFS ?

        Posté par . Évalué à 0.

        Oui, il y a des frustrés pour qui il est important que leur système soit intégralement libre, tout comme il y en a qui s'en foutent et qui piratent à mort des logiciels propriétaires.

        Je préfère encore être dans le premier cas.

        Article Quarante-Deux : Toute personne dépassant un kilomètre de haut doit quitter le Tribunal. -- Le Roi de Cœur

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.