ZFS pour Z File System, est un système de fichiers open source sous licence CDDL.
Le « Z » ne signifie rien de particulier officiellement mais est connu dans la presse sous différents noms, tel Zettabyte (zettaoctet en français), concernant le stockage de données informatiques. La signification de ZFS est aussi parfois expliquée comme le mot de la fin des systèmes de fichiers1.
Produit par Sun Microsystems (société rachetée par Oracle en 2009) pour Solaris 10 et au-delà, il a été conçu par l'équipe de Jeff Bonwick (en). Annoncé pour septembre 2004, il a été intégré à Solaris le 31 octobre 2005 et le 16 novembre 2005 en tant que feature du build 27 d'OpenSolaris. Sun a annoncé que ZFS était intégré dans la mise à jour de Solaris datée de juin 2006, soit un an après l'ouverture de la communauté OpenSolaris.
Les caractéristiques de ce système de fichiers sont sa très haute capacité de stockage, l'intégration de tous les concepts précédents concernant les systèmes de fichiers et la gestion de volume en un seul produit. Il intègre la structure On-Disk, il est léger et permet facilement la mise en place d'une plate-forme de gestion de stockage.
Et pour le fun :
ZFS est un système de fichiers 128 bits, ce qui signifie que ses capacités de stockage sont 16 milliards de milliards de fois celles des systèmes de fichiers 64 bits actuels. D'un point de vue plus pratique que théorique, les limitations de ZFS sont tellement grandes qu'elles ne pourront jamais être atteintes. En effet, selon Bonwick, « Vous ne pourriez pas remplir un espace de données 128 bits sans faire bouillir les océans. ».
Quelques-unes des limites de ZFS :
2 puissance 248 : le nombre d'instantanés maximal ;
2 puissance 248 : le nombre de fichiers dans chaque système de fichiers ;
16 exbioctets : la taille maximum du système de fichiers ;
16 exbioctets : la taille maximum d'un seul fichier ;
2 puissance 256 : le nombre maximal théorique de fichiers par répertoire (en réalité limité à 248 par le nombre maximal de fichiers dans un système de fichiers).
Par exemple, si un utilisateur créait 1 000 fichiers par seconde, il faudrait 90 siècles pour arriver à la limite de fichiers.
En réponse à une question concernant le rapport entre remplir un système de fichiers ZFS et l'ébullition des océans, Bonwick répondit2 :
« Bien que nous aimerions tous que la Loi de Moore continue de s'appliquer pour toujours, la mécanique quantique impose quelques limites fondamentales sur les vitesses de calcul et les capacités de stockage de n'importe quel objet physique. En particulier, il a été montré qu'un kilogramme de matière contenue dans un volume d'un litre pouvait effectuer au maximum 1051 opérations par seconde sur au maximum 1031 bits d'information3. Un espace de stockage 128 bits entièrement rempli contiendrait 2128 blocs = 2137 octets = 2140 bits ; d'où la masse minimale nécessaire pour contenir les bits serait de (2140 bits) / (1031 bits/kg) = 136 milliards de kg.
Cependant, pour pouvoir fonctionner à cette limite de 1031 bits/kg, la totalité de la masse de l'ordinateur devrait être composée d'énergie pure. Selon E=mc2, l'énergie au repos de 136 milliards de kg est de 1,2×1028 joules. La masse des océans est d'environ 1,4×1021 kg. Il faut environ 4 000 J pour élever la température d'un kg d'eau d'un degré Celsius, soit 400 000 J pour réchauffer de l'état gelé à l'ébullition. La chaleur latente de vaporisation ajoute encore 2 millions J/kg. Ainsi l'énergie nécessaire pour porter à ébullition les océans est d'environ 2,4×106 J/kg × 1,4×1021 kg = 3,4×1027 J. Ainsi, remplir en totalité un espace de stockage 128 bits consommerait, littéralement, plus d'énergie que de faire bouillir les océans. »