Linux, ZFS ja lisenssiongelmat

En tiedä oletteko seuranneet tätä tapausta, mutta tästä on ollut paljon keskustelua viime kuukausien aikana, joten ajattelin kirjoittaa aiheesta tännekin.

Kaikki alkoi siitä kun Canonicalin työntekijä Dustin Kirkland ilmoitti helmikuussa että Ubuntu 16.04 LTS tulee sisältämään tuen ZFS:lle. ZFS on edistyksellinen seuraavan sukupolven tiedostojärjestelmä, jonka avoin haarautus OpenZFS on tuttu esimerkiksi FreeBSD-käyttöjärjestelmästä. OpenZFS on toiminut aina Linux-jakeluissa, mutta se on pitänyt asentaa erikseen. Linux-ytimeen tukea ZFS-tiedostojärjestelmälle ei ole lisätty koskaan, sillä Linuxin GPL-lisenssi estää sen.

Canonical tulkitsee lisenssejä niin että OpenZFS-moduuli voidaan lisätä osaksi Ubuntua. CDDL-lisenssi, jolla OpenZFS on lisensoitu, vaatii vain CDDL-lisenssillä lisensoitujen tiedostojen lisensoimista edelleen samalla lisenssillä. GPL vaatii että myös kaikki johdannaisteokset on lisensoitava samalla lisenssillä. Canonical ei yhdistä OpenZFS:n koodia osaksi Linux-ydintä, vaan aikoo toimittaa OpenZFS-moduulin Ubuntun mukana. Näin ollen Canonical ei tulkitse tätä yhdistelmää Linuxin johdannaisteokseksi.

Tähän omat vastineensa ovat laatineet muun muassa Free Software Foundation, Software Freedom Conservancy, sekä Software Freedom Law Center. Heidän mukaan OpenZFS-moduulia ei voida levittää Linuxin yhteydessä, sillä ne muodostavat yhdessä johdannaisteoksen, jota tulee levittää GPL:n alaisuudessa.

Se lienee kaikille selvää että OpenZFS:n koodia ei voida liittää osaksi Linuxia, kyse on nyt kuitenkin siitä että voidaanko OpenZFS-moduulia levittää Linuxin mukana. Tämä on loistava esimerkki siitä miksi copyleft ei toimi jos copyleft-lisenssejä on olemassa useampi kuin yksi. Mielestäni siinä ole mitään järkeä että kahta lähdekoodia jotka ovat kumpikin lisensoitu “vapaalla” lisenssillä, ei saa yhdistää toisiinsa.

Kuva: https://blogs.oracle.com/chandan/entry/copyrights_licenses_and_cddl_illustrated

En ole tapausta yksityiskohtaisesti seurannut, mutta pidän ZFS:stä ja käyttäisin sitä mielelläni Linux-palvelimissa. CDDL-lisenssin valinta OpenSolarikselle oli ilmeisesti aikanaan varsin tietoinen valinta Sunilta, nimenomaan Solariksen teknologioiden pitämiseksi Linuxista poissa. Silloin tavoite oli kai luoda aito avoin kehittäjäyhteisö OpenSolariksen ympärille.

ZFS on Linux -projektissahan tämä on käsittääkseni ratkaistu samaan tapaan kuin suljettujen näytönohjainajurien tapauksessa, eli moduuli on käännetty paikan päällä koneessa, jossa sitä käytetään. Tämä on tietysti käyttömukavuuden kannalta ongelmallista, sillä esimerkiksi asennusmedioista tulee aika isoja ja hitaita, jos niissä tarvitaan mukaan kernelimoduulien käännöstyökalut, headerit ja ZFS-moduulin lähdekoodi. Tiedostojärjestelmäajurit kuitenkin tarvitaan asennuksenkin aikana, grafiikkakiihdytys ei ole niin kriittistä.

Toivottavasti tähän keksitään joku käytännöllinen ratkaisu, jolla asia saadaan hoitoon. Linux taitaa olla nykyään Oraclenkin suurin alusta, olisikohan heillä intressiä ratkaista tilanne jotenkin fiksusti? Solariksen koodihan on nykyään Oraclen omaisuutta, ja jälleen suljettua.

Jep, tietotekninen ratkaisu lakitekniseen ongelmaan.

Näinhän se on, ei paljoa huvita asennella mitään niin tärkeää komponenttia kuin tiedostojärjestelmän ajurit jostain kolmannelta osapuolelta. Tiedostojärjestelmä on tärkeimpiä osia käyttöjärjestelmän toiminnan kannalta. Muuten toki käyttäisin ZFS:ää myös Linuxissa, nyt olen käyttänyt sitä ainoastaan FreeBSD:ssä.

Onhan sitten myös Btrfs joka yrittää jäljitellä ZFS:n ominaisuuksia, sitäkin on tullut kokeiltua mutta en ole viitsinyt sitä ottaa suuremmin käyttöön kun tietääkseni se on vieläkin melko aggressiivisen kehityksen kohteena.

ZFS on osaltaan hyvä mutta ei lähelläkään täydellistä.

Olet helposti tilanteessa että zpool ei ole virheetön (= scrub ei kykene korjaamaan) ja ainoa keino korjata on luoda uusi zpool jonne kopiodaan kaikki data viallisesta zpoolista.

Tämä voi olla melkoinen ongelma jos zpool on iso eikä levytilaa ole luodata uutta zpoolia.

Joku voisi ajatella että eihän se haittaa jos siellä pari virhettä on, kyllä se haittaa monitorointia . Monitorointi kertoo että zpoolissa on vikaa ja kuitataan aina sillä että “tiedossa on, vanha juttu” vaikka zpool korruptoituu yhä enemmän.

Solariksessa on sitten omat huonot puolet, melkoisen pahojakin esim. Solaris 10, jotta saat multipath päälle täytyy bootata. Linuxissa ei tarvi bootata, voi lennossa (online) ottaa uuden esim. SAN-storagen multipath:na käyttöön.

Btrfs tiedostojärjestelmästä oli juttua Phonorix verkkosivulla. Btrfs korruptoi dataa RAID 5 ja 6 asennuksissa ja näitä koskeva koodi joudutaan kirjoittamaan ehkä kokonaan uudestaan. Harmin paikka.

Ei ole mikään salaisuus ettei btrfs ole ns. valmis edelleenkään. Tiettävästi RAID1 toimii mainiosti, vaikka hukkaakin puolet tilasta. Hienoa tuossa RAID1:ssä on, että sitä voi käyttää sen kokoisilla levyillä kuin sattuu olemaan ja niitä voi siis olla kuinka monta tahansa. Kuitenkin levyjen määrästä riippumatta menee vain puolet tilasta (ellei ole huono yhdistelmä) ja kestetään tasan yksi levyrikko.

RAID5 ja -6 tiloja ei kai ole missään vaiheessa markkinoitu vakaina ja nyt korostetaan entisestään sitä ettei se sovi mihinkään vakavaan käyttöön. Itse harkitsen, että vaihtaisin kotipalvelimeeni järjestelmälevyt btrfs RAID1:lle ext4:n ja mdadm RAID1:n sijasta.

Jaa, miulla on täällä tämä vanha nimimerkki, saisikohan sitä vaihdettua…

Joskus irkissä oli puhetta ZFS:tä ja nuo Linux-version bugit nousivat esiin.

Esimerkiksi nuo ongelmat SELinuxin kanssa ovat aika pahoja Fedora/CentOS -käyttäjän kannalta, tosin näyttäisi korjauskin olevan tuloillaan. Toivottavasti Canonicalin hellässä huomassa ZFS saadaan yhtä vakaaksi kuin mitä se FreeBSD:ssä on.

No kylläpäs on harmillinen tämä COW-tiedostojärjestelmien tilanne Linuxissa. Uskoisin että Btrfs tulee kuitenkin jossain vaiheessa syrjäyttämään ext4:n oletustiedostojärjestelmänä. Tiedostojärjestelmillä on vain tapana kypsyä pitkän aikaa ennen kuin ne ovat “vakaita”, ja syytä onkin.

Tällä hetkellä vakavasti otettavista jakelupaketeista ainakin SLES ja openSUSE käyttää sitä oletuksena.

Jep, Btrfs-wikissä on oikein iso varoitus. :smiley:
https://btrfs.wiki.kernel.org/index.php/RAID56

Minulla on ollut käytössä XFS, joka on aika suosittu tiedostojärjestelmä suurille datamäärille perinteisten journaloivien tiedostojärjestelmien saralla. XFS on nykyään ainakin RHEL 7:n oletuksena, joten laatua voi ainakin odottaa. Btrfs:n ominaisuudet on kyllä sen verran houkuttelevia että vähän polttelisi siirtyä senkin pariin (RAID1 tottakai).

Kyllä pitäisi saada vaihdettua asetuksista, tai mikäli ei saa niin eiköhän ylläpito saa. :wink: