ZFS

Un article de Wikipédia, l'encyclopédie libre.

ZFS pour Z File System, est un système de fichier 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 de l'unité anglaise zettabyte (zettaoctet en français) concernant le stockage de données informatiques, mais aussi ZFS pour le dernier mot dans les systèmes de fichiers (the last word in filesystems)[1].

Produit par Sun Microsystems pour Solaris 10 et supérieur, il a été conçu par l'équipe de Jeff Bonwick. 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 fichier 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.

Sommaire

[modifier] Caractéristiques techniques

ZFS
Diffuseur de logiciel Sun Microsystems
Nom anglais Zettabyte File System
Introduction octobre 2005 (Solaris 10)
Identificateur de partition
Structures
Contenu des répertoires
Allocation de fichiers
Mauvais blocs
Limitations
Taille max. de fichier 16 EO
Nombre max. de fichiers 248
Taille max. de nom de fichier
Taille max. de volume 16 EO
Caractères autorisés dans les noms de fichiers
Fonctionnalités
Dates enregistrées
Plage de dates
Forks Oui
Attributs
Droits du système de fichier POSIX
Compression intégrée Oui
Chiffrement intégré Non

[modifier] Capacité théorique

ZFS est un système de fichiers 128 bits, ce qui signifie qu'il peut fournir 16 milliards de milliard de fois ce que fournissent les systèmes de fichiers 64 bits actuels. Les limitations de ZFS sont tellement larges qu'il n'y aura jamais d'opérations pratiques qui puissent les atteindre. Selon Bonwick, « Remplir un système de fichier 128 bits dépasserait les limites quantiques de stockage de données. Vous ne pourriez pas remplir un espace de données 128 bits sans faire bouillir les océans. ».

Quelques unes des limites de ZFS :

  • 248 : le nombre d'images possibles (snapshot) ;
  • 248 : le nombre de fichiers dans chaque système de fichiers ;
  • 16 exa-octets : la taille maximum du système de fichiers ;
  • 16 exa-octets : la taille maximum d'un seul fichier ;
  • 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 1000 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 fichier ZFS et l'ébullition des océans, Bonwick répondit :[2]

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 secondes sur au maximum 1031 bits d'information[3]. Un espace de stockage 128 bits entièrement rempli contiendrait 2128 blocs = 2137 octets = 2140 bits ; d'où la masse minimum 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 4000 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.

[modifier] Plate-forme

ZFS est intégré sur Solaris SPARC et Solaris x86, les données peuvent être échangées entre les deux architectures. De plus, le fonctionnement complexe de données permet de stocker les informations de manière compatible entre les systèmes Big-Endian et Little-Endian, un avantage concernant la manière de stocker les données, auparavant si contraignante. Chaque bloc de donnée est écrit dans l'ordre natif du système écrivant les données : pendant la lecture si le Big-Endian ne fonctionne pas les données sont transformées en mémoire puis écrites dans le système correspondant.

Il existe un port pour Fuse/Linux[4] qui est à l'état de beta. Parted magic, une distribution LiveCD propose néanmoins son support. Actuellement, il n'y a aucun projet pour HP-UX, ou même AIX. Mais puisque ZFS est en open source, le portage peut être effectué sans la participation de Sun. Matt Dillon du projet DragonFlyBSD a d'ores et déjà prévu de porter ZFS pour la version 1.5 de son OS.

Le système Mac OS X 10.5 Leopard d'Apple permet actuellement d'accéder en lecture seule au contenu d'une partition ZFS. Son successeur "Snow Leopard" devrait le supporter en écriture. Mac OS X 10.6 (Snow Leopard), permettra, sur la version serveur, de lire et d'écrire sur des volumes ZFS.

ZFS est aussi supporté depuis peu sur FreeBSD[5],[6], le portage est quasiment terminé, les partitions ZFS peuvent êtres montées, démontées, lues et écrites. Seul manque le support des ACL qui sera implémenté d'ici à quelques semaines.

Pour accéder à une partition ZFS depuis Windows, il est possible de télécharger et d'installer SFU et de partager la partition via NFS (Unix Services for Windows)[7].


[modifier] Notes et références de l'article

  1. You say zeta, I say zetta : Jeff Bonwick's Blog
  2. Jeff Bonwick, « 128-bit storage: are you high? », 25 septembre 2004, Sun Microsystems. Consulté le 12 juillet 2006
  3. Seth Lloyd, Ultimate physical limits to computation, Nature 406, 1047-1054 (2000)
  4. ZFS on FUSE - Wizy Wiki
  5. (en) http://linuxfr.org/2007/02/01/22001.html
  6. (en) http://lists.freebsd.org/pipermail/freebsd-fs/2006-August/002197.html
  7. (en) http://mail.opensolaris.org/pipermail/zfs-discuss/2006-February/016608.html

[modifier] Voir aussi

[modifier] Articles connexes

[modifier] Liens et documents externes