Logo Blogo

Oltre Btrfs: ZFS su Linux entro il mese prossimo

Pubblicato: 28 ago 2010 da Federico Moretti

ZFSPer una distribuzione che procrastina Btrfs c’è un’azienda che si appresta a distribuire ZFS per Linux. L’avevamo anticipato all’inizio dell’estate: Brian Behlendorf di LLNL sta lavorando su ZFS per aggirare quei limiti della licenza CDDL di Sun Microsystems che finora hanno impedito il porting del filesystem. Non ci è voluto molto perché arrivasse a un risultato concreto. Il modulo andrà compilato a sé.

Sussistono, infatti, due problemi alla definitiva integrazione: come sottolineato in occasione dell’annuncio di giugno, a causa delle incompatibilità di licenza il modulo di LLNL non potrà essere implementato direttamente nel kernel. Un altro aspetto (che ZFS condivide con Btrfs) riguarda la creazione di applicazioni compatibili. Senza un programma come Time Slider il filesystem ha poco senso.

C’è poi un terzo problema che non si può sottovalutare. Sia Btrfs, sia ZFS sono attualmente nelle mani di Oracle. Ciò riguarda un elevato numero di progetti open source, ma nella circostanza diventa un aspetto primario. Escludendo LVM2 (con caratteristiche totalmente differenti) i progetti più interessanti per gli snapshot dei dischi sono entrambi nelle mani di una sola azienda. Finché li vorrà mantenere.

Via | Phoronix

1 stelle2 stelle3 stelle4 stelle5 stelle (2 Voti | Media: 4 su 5)
condividi condividi
13 commenti

Commenti dei lettori

(Inserisci un commento - Nascondi commenti anonimi)
  • Profilo di ekerazha

    ekerazha

    28 ago 2010 - 12:39 - #1
    -2 punti
    Up Down

    “Senza un programma come Time Slider il filesystem ha poco senso.”

    Come se gli snapshot fossero l’unica caratteristica interessante di ZFS, mah…

  • Jak696

    28 ago 2010 - 15:18 - #2
    -1 punto
    Up Down

    Beh, almeno per un utilizzo desktop è una delle uniche che lo può far preferire a ext4.
    chiaramente in ambieto server è tutta un’altra storia.

  • Profilo di lucapas

    lucapas

    28 ago 2010 - 15:45 - #3
    1 punto
    Up Down

    Ok, sono ignorante, ma non sono ancora riuscito a capire cos’hanno in più Btrfs e ZFS rispetto a Ext4. Mi pare anzi, dai test di phoronix, che ZFS fosse piuttosto indietro in quanto a performance, mentre Ext4 e Btrfs se la battevano ad armi pari!

  • Kim Allamandola

    28 ago 2010 - 18:56 - #4
    1 punto
    Up Down

    @#3 l’ext4 come l’xfs, il raiserfs, lo jfs ecc sono filesystem tradizionali; né
    hai uno per partizione o volume lvm, ridimensionarli è difficile, non puoi
    snapshottarli (gli snapshot lvm sono inusabili, xfs è snapshottabile solo a
    volume offline ecc) non puoi replicare facilmente i dati altrove: puoi via
    dd salvare un’immagine, ma non è una copia incrementale, puoi usare
    rsync ma è molto più lento di una copia a livello di blocchi e se anche
    sposti solo un file da una dir ad un’altra ti reinvia l’intero file…

    lo zfs include un gestore di volumi che al di la di essere n volte più semplice
    e flessibile di mdadm+lvm+fs permette di creare quanti volumi (iow
    “partizioni”) che occupano all’inizio 128K e crescono via via che vi salvi
    dati usando lo spazio libero dello zpool. In altri termini le “partizioni”
    diventano facili da gestire quasi quanto le directory.

    Non finisce qui; es: hai un portatile con un solo disco e lo vuoi backuppare
    come fai con le soluzioni GNU/Linux attuali? La più comoda è replicare
    su un disco usb le partizioni del disco del laptop, via snapshot btrfs con
    rsync sincronizzare tutto (senza gli snapshot non puoi salvare la root ma
    solo la /home quindi un ripristino dell’OS senza reinstallare non è possibile)
    step:
    crea le partizioni sul disco usb e montale
    crea uno snapshot
    rsync -a –delete …. (op. incrementale ma leeenta)
    rimuovi lo snapshot
    smonta le partizioni

    con lo zfs:
    zpool create bkup /dev/disco_usb
    zfs snapshot -r rpool@nome_che_ti_pare
    zfs send -Dr rpool@nome_che_ti_pare | zfs recv bkup
    zpool export bkup

    non devi far nullaltro, niente fstab, niente mount a mano ecc

    ancora hai quote, copie multiple dei blocchi di un volume, checksum dei
    singoli blocchi, compressione, deduplicazione… Tutto con
    zfs set proprietà=valore pool/vol

    sul mio laptop con opensolaris con la compressione sono passato da
    circa 10Gb si OS a 4.8Gb, e il sistema è più veloce (l’IO su un laptop
    richiede più tempo della (de)compressione real-time) con la dedup
    sono sceso nella /home da 280Gb a 200Gb… Ho diviso la /home in
    vari volumi (musica, video, progetti, …) che hanno policy di backup
    e replica differenti… Puoi anche fare 1000 cose in più incluso avere
    un volume condiviso via nfs o samba o iscsi con un solo comando
    zfs sharenfs=on pool/vol
    ecc.

    sono già stato sin troppo prolisso ma spero di aver reso l’idea. Allo zfs
    manca ancora una cifratura tipo luks (ma col port GNU/Linux nulla
    vieta di fare un pool dentro un vol luks) e una replica dei dati tipo
    lustre/hertbeat. Per il resto non ha eguali; soluzioni tipo veritas, tivoli
    ecc sono mostri assurdi ed inusabili se paragonati allo zfs.

  • Profilo di lucapas

    lucapas

    28 ago 2010 - 21:28 - #5
    0 punti
    Up Down

    Ah, cavolo! Beh, io lo avevo detto che sono ignorante in materia! :D
    Ho capito neanche la metà di quello che hai scritto. :lol:
    Però ti ringrazio per le spiegazioni.

  • Profilo di sherpya

    sherpya

    28 ago 2010 - 21:39 - #6
    0 punti
    Up Down

    @4
    con rsync fai anche la root in esecuzione e funziona :D (non e’ come lo snap pero’ va bene uguale) ;D

    a parte questo la prima volta che mi sono trovato a dover fare volumi su zfs ho detto
    ‘ora come divido, quanto do a questo volume…’
    mi sono accorto che non c’e’ questo problema, i volumi hanno lo spazio condiviso e lo prendono via via che si usa, non devi stare a pensare quanto grosso lo vuoi fare e poi fare il resize, questo concetto non applica

  • insomma

    28 ago 2010 - 22:59 - #7
    1 punto
    Up Down

    @Kim Allamandola:
    ma quanto di tutto ciò è possibile (o è in roadmap) anche con Btrfs?

  • Profilo di flask

    flask

    29 ago 2010 - 10:40 - #8
    0 punti
    Up Down

    Chi ha tempo e voglia di spiegarmi brevemente quali sono le restrizioni della licenza ZFS che non permettono una facile implementazione in altri OS e che, mi sembra di aver capito, costringa a creare interfacce e strati software supplementari per poterla utilizzare senza il rischio di violazione di clausole, ad esempio sui sistemi GNU/Linux ? La particolare licenza ZFS è la causa per cui anche Apple ha deciso si abbandonare la sua implementazione in Mac OS X ?

  • Kim Allamandola

    29 ago 2010 - 12:13 - #9
    2 punti
    Up Down

    @7 non so darti una roadmap di lungo periodo per il btrfs; non né
    ho mai trovate online… Al momento il btrfs supporta: gli snapshot
    che sono più che altro dei cloni zfs, sono usabili anche se non
    comodi come lo zfs; la compressione solo come opz di mount ma
    più intelligente dello zfs, non comprime tutto ma solo quei blocchi
    la cui compressione fa risparmiare realmente spazio (prova a
    comprimere un mp4 e un file di testo poi guarda i risultati) per il
    resto il btrfs è come il reiserfs con la possibilità di crescere e
    dimagrire ma senza gestione di volumi e con la necessità di
    deframmentare il tree.

    @lucapas provo un piccolo summary:
    * compressione sui tuoi HD hai mooolti file; prova a comprimerne
    qualcuno (bzip, rar, zip ecc) e guarda quanto spazio in meno occupi;
    con lo zfs ed il btrfs lo fai ad un livello più basso dei file e delle dir,
    al livello dei blocchi dati, degli 0 ed 1 sul tuo disco in automatico
    senza che tu debba decomprimere ogni volta (prova a dare dal
    terminale “find /usr/share/docs -iname ‘readme*.gz’” poi apri con
    vim un file a caso se vim è decentemente compilato ti decomprime
    il file in automatico il file e a te sembra di lavorare con un file di
    testo semplice e risparmi un po’ di spazio disco!). Oggi le CPU sono
    “potenti” mentre gli HD specie sui portatili sono “lenti” pertanto
    avere file più piccoli e (de)comprimerli usando più CPU è quasi
    sempre vantaggioso.

    * dedup(licazione) immagina di avere molte foto e documenti:
    quanti pixel dello stesso colore e/o lettere dello stesso font ci
    saranno? Con la dedup salvi un pixel per colore od un carattere
    e ti ricordi in quanti file compare; non è esattamente così ma
    rende l’idea: per ogni blocco dati di una certa dimensione fai un
    hash (es md5) e se trovi che esiste già anziché salvare l’intero
    blocco lo linki solo al blocco uguale. Ad esempio se hai 10 copie
    dello stesso file ovunque sul disco occupi un solo file e linki gli
    altri a questo; se dividi un video in clip o lo monti da delle clip
    salvi solo i singoli fotogrammi senza occupare spazio in più ecc…
    anche qui per le CPU/HD odierni è quasi sempre vantaggioso
    deduplicare.

    * send/recv sei hai 250Gb da salvare e non fai un backup
    incrementale (es via dd) ad ogni backup devi copiare 250Gb… Se
    fai un backup logico incrementale (es via rsync) ovvero passi solo
    quei file che sono cambiati dal backup precedente devi ogni volta
    guardare *tutti* i file/dir cosa che richiede tempo (IO e CPU) ed
    inoltre se un file di 5Gb cambia di 1Mb devi comunque spedire
    5Gb cosiccome se sposti un file da una dir ad un’altra (es un film)
    devi reinviare il file nella nuova posizione in ultimo (@4) rsync se
    rsync-i la / in uso non uno snapshot e/o un volume smontato hai
    il backup di /dev, /dev/pts ecc con user/group solo numerici cosa
    che ti rende inusabile l’OS al restore (per lo meno devi sistemare
    i permessi) con l’invio a blocchi invii *solo* i bit che sono cambiati
    ed essendo un livello sotto i file/dir non hai problemi di permessi
    o simili: sposti solo bit.

    @8 sarò maligno ma cose come i driver nvidia non sono GPL, non
    sono neppure Open! Eppure quasi tutte le distro li hanno installabili
    in automatico… Credo piuttosto che il problema sia dover riscrivere
    3/4 del vfs linux per lo zfs… Linux è un kernel con molti sviluppatori
    ma come Linus stesso ha detto è oggi una montagna di codice non
    proprio ben pensata; Opensolaris (genunix) è anni luce avanti e sono
    avanti anche molti aspetti dei kernel di {Free,Open}BSD pensa solo
    che su osol puoi sostituire CPU e banchi ram a sistema live, pensa a
    quanti thread può gestire opensolaris, pensa allo stack ip di OpenBSD
    Linux ha molte cose ed è molto diffuso però non è diverso da
    mostri come X e simili. Non a caso Canonical da tempo rimugina di
    cambiare kernel (e nel caso di X si parla da anni di avere un’altro X
    anche se in questo caso non ci sono proprio alternative open…)

    Mi scuso per il lungo commento

  • Profilo di flask

    flask

    29 ago 2010 - 14:13 - #10
    1 punto
    Up Down

    scusarti ??? :) @Kim, quello che dici è estremamente interessante ed utile… oltre che essere molto chiaro

  • Gianluca Sforna

    29 ago 2010 - 23:57 - #11
    0 punti
    Up Down

    Non so nulla di ZFS, ma so per certo che btrfs non è “nelle mani di una sola azienda. Finché lo vorrà mantenere.” intanto perchè il codice è già GPL e incluso nel kernel, quindi nessuno ce lo può togliere e poi perchè la Red Hat impega sviluppatori a tempo pieno sul progetto (basta dare una occchiata ai commit per vederlo)

  • Profilo di lucapas

    lucapas

    30 ago 2010 - 10:54 - #12
    0 punti
    Up Down

    Wow! Altro che scusarsi, grazie davvero Kim, stavolta sei stato molto chiaro e ho capito bene tutti i vantaggi che ci sono nell’applicazione di un simil FS. Molto interessante soprattutto la dedup(licazione)!

    Stavolta una birra te la sei proprio guadagnata! ;-D :beer:

  • Alberto Villa

    01 set 2010 - 10:30 - #13
    0 punti
    Up Down

    “Senza un programma come Time Slider il filesystem ha poco senso.”

    come se non si potessero creare snapshot a mano…

L'email è richiesta ma non verrà mostrata ai visitatori.
Commenta questo articolo

Registrati per riservare il tuo nickname preferito su tutti i blog di Blogo e per caricare il tuo avatar. Se sei già registrato, effettua il login per usare il tuo nickname.

Si No
I commenti sono sottoposti alle linee guida per la moderazione.

Anteprima del commento