Présentation d’OpenZFS

OpenZFS est une plate-forme de stockage opensource. Cela inclut les fonctionnalités de RAID logiciel, de gestionnaire de volume et de système de fichier dans un tout cohérent.

OpenZFS prends tout son sens dès qu’on veut adresser des volumétries importantes (jusqu’à plusieurs centaines de TiB par volume) ou un grand nombre de disques (120 ou plus, c’est le matériel qui devient limitant).

Il utilise seulement deux commandes :

  • La commande zpool gère les agrégats (pools en anglais), qui sont construits à partir de disques, ou de partitions, et configurés en fonction des besoins en redondance et en performance.

  • La commande zfs gère les volumes et les systèmes de fichiers (datasets en anglais).

Positionnement OpenZFS

Fig. 1 Positionnement d’OpenZFS

Un dessin vaut mieux qu’un long discours : Voici comment OpenZFS se positionne dans les systèmes de stockage.

Note

Dans la mécanique interne à OpenZFS, celui-ci utilise la notion de vdev pour manipuler disques, partitions et agrégats, c’est pourquoi vous retrouverez régulièrement cette terminologie.

De plus, OpenZFS intègre plusieurs outils qui facilitent grandement la vie des Administrateurs Systèmes et Réseaux. Si on ne devait en retenir que 3 on pourrait citer :

  • zpool scrub : un réparateur intégré au système de fichiers. Il a pour but de détecter les données corrompues et de reconstruire si possible les données perdues. Avec lui, ZFS corrige automatiquement les potentielles erreurs lors de chaque lecture/écriture sur le disque, en nous assurant une grande confiance dans sa capacité à conserver l’intégrité des données malgré les aléas du matériel. Cependant, en complément des automatismes, il peut être important de garder la main et d’exécuter volontairement un scrub afin de vérifier ou remettre en cohérence un pool ZFS.

  • zfs snapshot : OpenZFS utilise la technologie copy-on-write (COW) et permet les instantanés. Vous pourrez facilement créer des images de votre dataset à différents moments de la journée. Avec ceux-ci, il devient aisé de créer des sauvegardes, voire même des versioning des homes de vos utilisateurs ou de vos machines virtuelles.

  • zfs send & zfs recv : c’est le complément ultime de la commande précédente. Ces instructions permettent l’envoi et la réception des snapshots sous la forme de flux, en local ou à distance (via ssh ou nc), ou vers tout de type média intermédiaire avec un accès séquentiel comme un fichier ou une librairie de bande magnétique.

Fonctionnalités

  • Stockage de grandes volumétries :
    • Taille maximum de volume : 256 yobibytes (\(2^{128}\) bytes),

    • Taille maximum de fichier : 16 exbibytes (\(2^{64}\) bytes),

    • Nombre maximum de fichiers : un peu plus de 281 milliers de milliards, par volume (\(2^{48}\)),

  • Contrôle de l’intégrité en continu,

  • Protections contre la corruption de données silencieuse,

  • Attributs de système de fichiers : POSIX,

  • Permissions de système de fichiers : POSIX, NFSv4 ACLs,

  • Quotas,

  • Copie à l’écriture (COW),

  • Snapshots, clones et réplicas,

  • Compression transparente,

  • Déduplication transparente,

  • Chiffrement transparent,

  • OpenSource et Libre (CDDL),

  • Disponible nativement dans FreeBSD, en module noyau pour Linux (Debian, Ubuntu, …).