[[Categoria:{{File system ]]▼
{{Infobox filesystem |
name|Nome = ZFS |
|Immagine =
full_name = ZFS |
|Didascalia =
developer|Sviluppatore = [[Sun Microsystems]] |
introduction_os = [[OpenSolaris]] | ▼
|NomeCompleto = ZFS
introduction_date = Novembre 2005 |
|Data = novembre 2005
partition_id = |
▲introduction_os|Introduzione = [[OpenSolaris]] |
directory_struct = Tabella hash estensibile| ▼
|Identificazione =
file_struct = |
▲directory_struct|ContenutiDirectory = Tabella hash estensibile |
bad_blocks_struct = |
|AllocazioneFile =
max_filename_size = |
|BlocchiDanneggiati =
max_files_no = 2<sup>48</sup> | ▼
max_volume_size|DimensioneMassimaFile = 16 [[exabyte]] |
▲max_files_no|NumeroMassimoFile = 2<sup>48</sup> |
max_file_size = 16 exabyte |
|DimensioneMassimaNomeFile =
filename_character_set = |
|DimensioneMassimaVolume = 16 [[exabyte]]
dates_recorded = |
date_range|Caratteri = |
|DateMemorizzate =
forks_streams = Sì (chiamati attributi estesi)| ▼
|DateSupportate =
attributes = [[POSIX]] | ▼
▲forks_streams|Fork = Sì (chiamati attributi estesi) |
file_system_permissions = POSIX |
▲attributes|Attributi = [[POSIX]] |
compression = Sì |
|Permessi = POSIX
encryption = No |
|CompressioneTrasparente = Sì
OS = [[Solaris]]
|CrittografiaTrasparente = Sì<ref>[http://www.oracle.com/technetwork/server-storage/solaris11/documentation/solaris-express-whatsnew-201011-175308.pdf Oracle Solaris 11 Express 2010.11 - What’s new]</ref>
}}
'''ZFS''' è un [[file system]] [[open- source]] sviluppato dalla [[Sun Microsystems]] per il suo [[sistema operativo]] [[Solaris (sistema operativo)|Solaris]]. È stato progettato da un team con a capo [[Jeff Bonwick]].<ref>[http://blogs.sun.com/bonwick/ Jeff Bonwick's blog] {{webarchive|url=https://web.archive.org/web/20100213013119/http://blogs.sun.com/bonwick/ |data=13 febbraio 2010 }}, [[Sun Microsystems]]</ref> Il nome originario doveva essere "[[Zettabyte]] File System", ma è diventato un acronimo.
ZFS è noto per la sua alta capacità e per l'integrazione di diversi concetti presi da vari file system in un unico prodotto.
ZFS fu annunciato nel settembre del [[2004]]<ref name="announce">http://www.sun.com/2004-0914/feature/ {{Webarchive|url=https://web.archive.org/web/20060428092023/http://www.sun.com/2004-0914/feature/ |date=28 aprile 2006 }} ZFS: the last word in file systems</ref>. Il [[codice sorgente]] fu rilasciatopubblicato assieme a quello di Solaris il [[31 ottobre]] del [[2005]]<ref>{{cita web |url=http://blogs.sun.com/roller/page/bonwick?entry=zfs_the_last_word_in |titolo=Copia archiviata |accesso=30 aprile 2006 |urlmorto=sì |urlarchivio=https://www.webcitation.org/6BNdGOIEe?url=https://blogs.oracle.com/roller-ui/errors/404.jsp |dataarchivio=13 ottobre 2012 }} ZFS: The Last Word in Filesystems</ref> e rilasciatopubblicato nella build 27 di [[OpenSolaris]] il [[16 novembre]] [[2005]]. ZFS fu fornito assieme all'aggiornamento 6/06 di Solaris 10 nel giugno del 2006<ref>http://www.sun.com/smi/Press/sunflash/2006-06/sunflash.20060620.1.xml Sun Celebrates Successful One-Year Anniversary of OpenSolaris</ref>.
ZFS è stato pubblicato sotto licenza [[Common Development and Distribution License|CDDL]] (''Common Development and Distribution License'').
Nel [[giugno]] [[2007]] viene annunciata l'adozione di ZFS anche per il [[Mac OS X 10.5 Leopard|Mac OS X Leopard]] di [[Apple]], notizia inizialmente smentita nel corso del WWDC07 da Brian Croll, senior director di product marketing per Mac OS, che ha dichiarato che “ZFS non ci sarà", salvo poi smentire le smentita. ZFS non sarà comunque il file system principale di Mac OS 10.5 Leopard ma piuttosto affiancherà [[HFS+]] . ▼
▲Nel [[giugno ]] [[2007]] vienevenne annunciata l'adozione di ZFS anche per il [[ Mac OS X 10.5 Leopard|Mac OS X Leopard]] di [[Apple]], notizia inizialmentepoi smentita nel corso del WWDC07 da Brian Croll, ''senior director '' di ''product marketing '' per Mac OS, che ha dichiarato che “ZFS non ci sarà" , salvo poi smentire le smentita. ZFS non sarà comunque il file system principale di Mac OS 10.5 Leopard ma piuttosto affiancherà [[HFS+]] .
== Capacità ==
ZFS è un file system a [[128- bit]],: può potendoquindi fornire uno spazio di 1618,4 miliardi di miliardi (16 [[quintilioni]]) di volte la capacità dei file system attuali a [[64- bit]]. I limiti del ZFS sono stati progettaticoncepiti per essere così ampi da non essere mai raggiunti in una qualsiasiqualunque operazione pratica. Bonwick affermòha affermato che "per riempire un file system a 128 bit non sarebbero bastati tutti i dischi della terra".
EccoAlcuni alcunidei limiti teorici del ''Zettabyte File System'' (ZFS):
* 2<sup>48</sup> —— numero di snapshot (23 ×× 10<sup>14</sup>);
* 2<sup>48</sup> —— numero di file (23 ×× 10<sup>14</sup>);
* 16 [[exabyte]] —— dimensione massima di un file system;
* 16 exabyte —— dimensione massima di un file singolo;
* 16 exabyte —— dimensione massima di un attributo;
* 3 ×× 10<sup>23</sup> [[petabyte]] —— dimensione massima di uno zpool;
* 2<sup>56</sup> —— numero di attributi di un file (attualmente limitato a 2<sup>48</sup>);
* 2<sup>56</sup> —— numero di file in una directory (attualmente limitato a 2<sup>48</sup>);
* 2<sup>64</sup> —— numero di device per ogni zpool;
* 2<sup>64</sup> —— numero di zpoolszpool;
* 2<sup>64</sup> —— numero di file system in uno zpool.
Un utente che volesse creare mille file al secondo, impiegherebbe 9000 anni a raggiungere il limite.
{{quoteCitazione|1=Anche se ci piacerebbe che la [[legge di Moore]] possapotesse continuare per sempre, la meccanica quantistica impone alcuni limiti fondamentali sul calcolo computazionale e sulla capacità di memorizzazione di una qualsiasi unità fissa. In particolare è stato dimostrato che un chilo di materia confinata in un litro di spazio può effettuare al massimo 10<sup>51</sup> operazioni al secondo su al massimo 10<sup>31</sup> bit di informazioni (vedere Seth Lloyd, "Ultimate physical limits to computation." Nature 406, 1047-1054 (2000)). Un pool di storage a 128- bit completamente riempito dovrebbe contenere 2<sup>128</sup> blocchi (nibble) = 2<sup>137</sup> bytes = 2<sup>140</sup> bits; quindi lo spazio minimo richiesto dovrebbe essere (2<sup>140</sup> bit) / (10<sup>31</sup> bits/kg) = 136 miliardi di kg.<br />
Con il limite dei 10<sup>31</sup> bit/kg, l'intera massa di un computer dovrebbe essere sotto forma di energia pura. Secondo l'equazione E=mc<sup>2</sup>, l'energia residua dei 136 miliardi di kg è di 1,2x10<sup>28</sup> J. La massa dell'oceano è circa 1,4x10<sup>21</sup> kg. OccorrebberoOccorrerebbero 4.000 J per aumentare la temperatura di 1 kg di acqua per 1 grado Celsius e circa 400.000 J per bollire 1 kg di acqua ghiacciata. La fase di vaporizazzionevaporizzazione richiede altri 2 milioni di J/kg. L'energia richiesta per bollire l'oceano è circa 2,4x10<sup>6</sup> J/kg * 1,4x10<sup>21</sup> kg = 3,4x10<sup>27</sup> J. Quindi, riempire uno storage a 128- bit dovrebbe richiedere più energia che bollire gli oceani.}}
== Piattaforme ==
ZFS è incluso in Solaris su [[SPARC]] e sistemi [[Architettura x86|x86]]. I pool e gli associati file system ZFS possono essere spostati tra sistemi SPARC e x86, senza distinzione del byte order.
SunÈ ha dichiarato chestato stanno studiandoeseguito il [[porting]] su [[Linux]] <ref>[http://www.sun.com/emrkt/campaign_docs/expertexchange/knowledge/solaris_zfs_gen.html#10 Sun Microsystems<!-- Titolo generato automaticamente -->]</ref>. È da notare che, a causa della licenza che protegge ZFS, esso non può essere integrato nel kernel ma deve necessariamente operare a livello utente tramite [[FUSE]] o essere distribuito come modulo esterno.
Il progetto ZFS on Linux<ref>http://zfsonlinux.org/ Home del progetto ZFS on Linux</ref> ha infatti eseguito il porting a livello di kernel, permettendo agli utenti di utilizzare questo file system con prestazioni native.
Inoltre il gruppo di sviluppo di BSD sta effettuando il port anche su questo sistema operativo. ▼
Questo è possibile in quanto l'incompatibilità tra la licenza [[GNU General Public License|GNU GPL]] (con cui è licenziato il kernel Linux) e la CDDL si limita solo all'integrazione diretta e alla distribuzione di tale file system nel kernel. Ciò vuol dire che non si potrà distribuire un kernel con integrato ZFS, ma lo si potrà distribuire come un modulo esterno.
▲Inoltre ilIl gruppo di sviluppo di BSD sta effettuando il port anche su questo sistema operativo.
Su [[FreeBSD]], ZFS è già disponibile, anche in produzione, dalla release 7.0. Su [[NetBSD]] è in corso il porting.
[[OpenBSD]] ha dichiarato che non implementerà ZFS poiché giudica la licenza incompatibile con la loro politica di sviluppo<ref>https://www.openbsd.org/faq/faq1.html#HowAbout OpenBSD FAQ</ref>.
ZFS è attualmente implementato in [[PC-BSD]] come file system di default.
Esistono progetti per il porting su [[macOS]] e su [[Windows]].
== Modello transazionale Copy-on-write ==
ZFS utilizza il metodo transazionale ad oggetti [[copy-on-write]]. Tutti i puntatori ai blocchi contengono un [[checksum]] a 256 bit. Il blocco viene controllato ad ogni lettura. I blocchi contenenti dati non vengono mai sovrascritti: viene invece allocato un nuovo blocco dove vengono scritti i dati modificati; ogni blocco metadati che faceva riferimento al vecchio blocco viene reallocatoriallocato. Per ridurre l'overhead, le scritture multiple vengono raggruppate in transazioni.
== Snapshots ==
== Dimensione dei blocchi variabile ==
Il file system ZFS utilizza blocchi a dimensione variabile fino a 128 KB.
Se la compressione è attivata, dei dati possono essere scritti su un blocco di dimensione più piccola.
== I pool dello storage ==
ZFS è costituito su un insieme di pool di storage virtuali. I pool si basano su uno o più device virtuali (vdevs), ciascuno dei quali può fare riferimento ad un devicedispositivo fisico, ad un mirror ([[Redundant array of independent disks#RAID 1 (MIRRORING)|RAID 1]]) di uno o più devicedispositivi, oppure su un gruppo di devicedispositivi [[Redundant array of independent disks#RAID Z|RAID Z]]. Lo spazio di tutti i vdevs è reso disponibile a tutti i file systems nello zpool.
Per limitare lo spazio, è statostata istituita la gestione delle [[quota disco]].
== Creazione di un file system leggero ==
La creazione di un file system leggero in un pool di storage ZFS è un'operazione veloce e semplice da effettuare, quasi come creare una directory.
== Ulteriori caratteristiche ==
* Priorità I/O con scheduling di tipo deadline
* Ordinamento e aggregazione ottimale dell'I/O
* Stream multiplo e automatico di prefetch
* Operazioni sulle directory funzionano in parallelo e con un 'unità di tempo costante
* ZFS rispetta lo standard [[POSIX]] in fatto di file system: nessunanon applicazioneè devenecessario esseremodificare modificatale perapplicazioni, funzionarequeste sono già funzionanti con il nuovo file system.
== Note ==
<references />
== Collegamenti esterni ==
* {{Collegamenti esterni}}
* {{en}} [http://www.opensolaris.org/os/community/zfs/ ZFS Development Community and detailed ZFS Documentation]
* {{cita web|1=https://java.net/projects/solaris-zfs|2=ZFS Development Community and detailed ZFS Documentation|lingua=en|accesso=8 aprile 2016|urlarchivio=https://web.archive.org/web/20141020031749/https://java.net/projects/solaris-zfs#|dataarchivio=20 ottobre 2014|urlmorto=sì}}
* {{en}} [http://blogs.sun.com/roller/page/dcb?entry=zfs_boils_the_ocean_consumes Dave Brillhart's Blog - ZFS: Boils the Ocean, Consumes the Moon]
* {{en}} [http://www.wizy.org/wiki/ZFS_on_FUSE ZFS on Fuse] Google SoC 2006 project to port ZFS to FUSE
{{portale|informatica}}
▲[[Categoria:File system]]
▲[[Categoria: AcronimiFile system]]
[[de:ZFS (Dateisystem)]]
[[en:ZFS]]
[[es:ZFS (sistema de archivos)]]
[[eu:ZFS]]
[[fr:ZFS]]
[[he:ZFS]]
[[ja:Zettabyte File System]]
[[nl:ZFS]]
[[pl:ZFS]]
[[ru:Zettabyte File System]]
[[sk:ZFS]]
[[sv:ZFS]]
[[zh:ZFS]]
|