# ZFS

ZFS és un sistema de fitxers lliure, desenvolupat per Sun Microsystems pel seu sistema operatiu Solaris. El significat original era 'Zettabyte File System'.
L'anunci oficial de ZFS es va produir al setembre del 2004, Arxivat 2006-04-28 a Wayback Machine.. El codi font del producte final es va integrar en la branca principal de desenvolupament de Solaris el 31 d'octubre del 2005 i va ser llançat el 16 de novembre de 2005 com a part del build 27 de OpenSolaris.
ZFS va ser dissenyat i implementat per un equip de Sun liderat per Jeff Bonwick.
ZFS destaca per la seua gran capacitat, integració dels conceptes anteriorment separats de sistema de fitxers i administrador de volums en un sol producte, nova estructura sobre el disc, sistemes d'arxius lleugers, i una administració d'espais d'emmagatzematge senzilla.

## Capacitat

128 bits (2$^{64}$ vegades la capacitat d'un sistema de fitxers de 64 bits).
Els límits de ZFS estan dissenyats per a ser tan grans que no es troben mai en la pràctica. Respecte a la capacitat del sistema, Jeff Bonwick, l'arquitecte cap de Sun per a ZFS, va dir "Omplir un sistema d'arxius de 128 bits excediria els límits quàntics d'emmagatzematge de la terra. No es pot emplenar sense bullir els oceans".
Alguns límits teòrics de ZFS són:
* 2$^{48}$ — Nombre de snapshots en qualsevol sistema de fitxers (2 × 10¹⁴)
* 2$^{48}$ — Nombre de fitxers a un sistema de fitxers (2 × 10¹⁴)
* 16 exabytes — Mida màxima d'un sistema de fitxers
* 16 exabytes — Mida màxima d'un fitxer
* 16 exabytes — Mida màxima de qualsevol atribut
* 3 × 10$^{23}$ petabytes — Mida màxima d'un zpool
* 2$^{56}$ — Nombre d'atributs d'un fitxer (realment limitat a 2$^{48}$ que és el nombre de fitxers que pot contindre un sistema de fitxers ZFS)
* 2$^{56}$ — Nombre de fitxers a un directori (realment limitat a 2$^{48}$ que és el nombre de fitxers que pot contindre un sistema de fitxers ZFS)
* 2$^{64}$ — Nombre de dispositius a qualsevol zpool
* 2$^{64}$ — Nombre de zpools a un sistema
* 2$^{64}$ — Nombre de sistemes de fitxers a un zpool
Com a exemple de les capacitats expressades per aquestes xifres, si un usuari creara 1000 fitxers per segon, trigaria uns 9000 anys a arribar al límit imposat pel nombre de fitxers.

## Plataformes

ZFS és part de Solaris per a SPARC i Solaris per a x86. Els Pools i els seus sistemes de fitxers ZFS associats / zvols poden moure's entre sistemes que utilitzen SPARC i x86. El complex format de punters de bloc també proporciona que les metadades del sistema de fitxers s'emmagatzemen de manera adaptada al Endianness de la màquina, permetent en un emmagatzematge que un pool ZFS es moga entre sistemes que utilitzen diferent ordre per als bytes. Els blocs individuals de metadades s'escriuen amb l'ordre de bytes nadiu del sistema que escriu el bloc. Quan es llig, si l'endianness no coincideix, els bytes de les metadades s'intercanvien en memòria. Com cal esperar en els sistemes POSIX, des del punt de vista de les aplicacions, els fitxers són arrays de bytes, de manera que les aplicacions segueixen sent responsables de copiar les dades dels fitxers amb qualsevol intercanvi de *bytes que siga necessari.
Sun ha indicat que està investigant com portar el producte a Linux, encara que no hi ha plans per a dur-lo a HP-UX o AIX, Arxivat 2007-07-05 a Wayback Machine.. FreeBSD 7, a publicar-se a finals de 2007, també donarà suport per a ZFS.

## Capacitats addicionals

* Prioritat I/O explícita amb deadline scheduling
* Ordenació i agregació d'I/O globalment òptima
* Multiple independent prefetch streams with automatic length and stride detection
* Parallel, constant-time directory operations
Per a les aplicacions, ZFS és un sistema de fitxers estàndard POSIX; no és necessari cap canvi al seu codi per tal de fer servir ZFS amb normalitat.

## Enllaços externs

* 5-minute Demo of ZFS: Demostració de les característiques d'auto-reparació de ZFS després d'una fallada catastròfica simulada.