Meccanismo di copia su write (mucca)
Entrambi i file system utilizzano il meccanismo di copia su scrittura. Ciò significa che, se si sta tentando di modificare un file, nessuno dei file system proverà a sovrascrivere i dati esistenti sul disco con i dati più recenti. Invece, i dati più recenti vengono scritti altrove e una volta completata l'operazione di scrittura, il file system indica semplicemente i blocchi di dati più recenti e i vecchi blocchi vengono riciclati nel tempo. Questo meccanismo consente sia ai file system di avere funzionalità come istantanee e clonazione.
La mucca impedisce anche casi di bordo come le scritture parziali, che possono verificarsi a causa del panico del kernel o dell'interruzione dell'alimentazione e potenzialmente corrompere l'intero file system. Con la mucca in atto, una scrittura è avvenuta o non è avvenuta, non c'è altro.
Raid e raid
Entrambi i file system intendono eliminare la necessità di un gestore di volume, raid e altre astrazioni che si trovano tra il file system e i dischi. Questo è più robusto e affidabile che avere un controller RAID hardware, semplicemente perché elimina un singolo punto di errore: il controller RAID stesso.
Openzfs offre un meccanismo raid stabile, affidabile e intuitivo. È possibile rispecchiare tra le unità, utilizzare RAIDZ1 che diffonde i tuoi dati su 3 o più disco con un blocco di parità. Quindi può resistere al fallimento del disco di Upton 1 per VDEV. Allo stesso modo, RAIDZ2 può usare 4 o più dischi e resistere a 2 dischi che non riescono e allo stesso modo abbiamo RAIDZ3.
Anche BTRFS ha queste funzionalità implementate, la differenza è semplicemente che le chiama raid, anziché raidz e così via. Alcune configurazioni di array RAID più complicate come RAID56 sono buggy e non adatti all'uso, al momento della scrittura.
Licenze
Uno dei motivi per cui OpenZFS è arrivato così tardi sull'ecosistema GNU/Linux è a causa della sua incompatibilità della licenza con GNU GPL. Senza entrare in troppi dettagli, BTRFS è sotto GPL che consente agli utenti di prendere il codice sorgente e modificarlo, ma le modifiche dovrebbero essere pubblicate anche in GPL e rimanere open source.
OpenZFS d'altra parte, è concesso in licenza in CDDL che è molto più permissivo e consente agli utenti di modificare e distribuire il codice con un maggiore grado di libertà.
Comunità e aziende dietro di loro
Openzfs ha una grande comunità dietro di esso. Community FreeBSD, comunità Illumos e molti altri progetti open source si basano su OpenZFS e quindi contribuiscono al file system. Ha coltivato diverse volte in termini di base di codice, base di utenti, funzionalità e flessibilità sin dal suo inizio. Aziende come Delphix, Ixsystems, Joyent e molti altri si affidano a esso e fanno lavorare i loro sviluppatori perché è una componente fondamentale della loro attività. Molte altre organizzazioni potrebbero usare OpenZFS a nostra insaputa, grazie alla licenza CDDL, non devono uscire e dire fuori right che lo usano che lo usano.
BTRFS aveva il cappello rosso come uno dei principali amministratori della sua comunità. Tuttavia, ciò ha ricevuto un duro colpo qualche tempo fa quando Red Hat ha deprecato il filesystem, ciò significa che non lo vedrai in nessun futuro RHEL e la società non fornirà supporto commerciale per esso fuori dalla scatola. Suse, tuttavia, è arrivato al punto di renderlo il loro predefinito e la loro è ancora una fiorente comunità dietro il file system con contributi di Facebook, Intel e altri gorilla da 800 sterline della Silicon Valley.
Affidabilità
ZFS era progettato essere affidabile fin dall'inizio. Le persone hanno zpool che risale ai primi anni 2000 che sono ancora utilizzabili e garantiti per non restituire dati errati in silenzio. Sì, ci sono stati alcuni snafus con file che scomparino per OpenZFS su Linux ma data la sua lunga storia il track record è stato sorprendente.
BTRFS, d'altra parte, ha avuto problemi fin dall'inizio. Con interfacce buggy per perdita di dati e corruzione del file. Anche adesso, è un po 'di un calmo nella comunità. Fare di quello che vuoi.
OSE supportati
BTRFS ha avuto la sua origine ha un file system per Linux mentre ZFS è stato concepito all'interno del sole, per Solaris OS. Tuttavia, OpenZFS è stato da tempo portato su FreeBSD, OS X di Apple, derivati open source di Solaris. Il suo supporto per Linux è arrivato un po 'più tardi di quanto si sarebbe previsto, ma è qui e le società si basano su di esso. Anche un progetto per farlo funzionare su Microsoft Windows sta facendo un bel po 'di progressi, anche se non è ancora del tutto lì.
Conclusione: una nota sui monoculture
Tutto questo discorso può convincerti a utilizzare OpenZFS per proteggere i tuoi dati, e questo non è una brutta linea di azione. È obiettivamente migliore di BTRFS in termini di funzionalità, affidabilità, comunità e molto altro. Tuttavia, a lungo termine questo potrebbe non essere un bene per la comunità open source, in generale.
In un post intitolato Simile a questo, l'autore parla del pericoloso delle monoculture. Ti incoraggio a passare attraverso questo post. L'essenza è questo - Le opzioni sono importanti. Uno dei più grandi punti di forza del software (e del software open source, in generale) è che abbiamo più opzioni da adottare. C'è Apache e poi c'è nginx, ci sono BSD e Linux, c'è OpenSSL e c'è Liberssl.
Se c'è un difetto fatale in una di queste tecnologie chiave, il mondo non smetterà di girare. Ma con la prevalenza di OpenZFS, la tecnologia di stoccaggio si è trasformata in una sorta di monocoltura. Quindi, mi piacerebbe molto per gli sviluppatori e i programmatori di sistema che stanno leggendo questo, per adottare non OpenZFS ma progetti come BTRFS e Hammer.