ZFS, vous connaissez ? Vous devriez !

  • la gestion des disques physiques et de la redondance
  • le contrôle d’intégrité des données stockées
  • la compression transparente
  • la gestion de caches à plusieurs niveaux
  • les snapshots (y compris en read-write)
  • des synchronisations rapides de répliques
  • la déduplication de données pour optimiser le stockage
  • le chiffrement
  • des alertes automatiques sur son état

ZFS sur Linux

Je n’ai utilisé ZFS que sous Linux (Debian/Ubuntu) et directement comme module d’extension du kernel et intégré nativement à l’OS. Au préalable un premier portage avait été fait via FUSE qui forcément limitait les possibilités et les performances. Si ZFS n’est pas directement intégre au kernel Linux, c’est uniquement pour une raison de licence et pas pour des raisons techniques ou de maturité.

Plus qu’un file-system: un système de stockage

On voit à la liste des fonctionnalités que ZFS dépasse les limites courantes d’un simple système de fichiers. Pour obtenir une liste équivalente sous Linux avec un file-system classique comme l’habituel ext4, il faudrait faire appel à des briques supplémentaires telles que lvm (gestion des disques physiques, snapshots), mdadm (redondance), luks (chiffrement), bcache (caches), etc.

Pool !

ZFS se base sur un “pool”, qui est en général un ensemble de disques qui peuvent servir à stocker les données de façon pérenne ou temporaire (cache).

Redondance

Lorsque l’on a plusieurs disques on peut les agréger entre eux pour ajouter de la redondance et sécuriser les données en cas de panne totale ou partielle d’un disque. Ces grappes de disques sont appelées “vdev” dans le jagon ZFS.

Performance : les caches

Pour améliorer les performances en lecture, ZFS gère son propre cache en RAM pour limiter les accès aux disques, c’est le ARC (Adaptative Replacement Cache).

Et ZFS sur un seul disque ?

Oui, c’est possible, ZFS peut aussi être utilisé avec un unique disque, avec une partition sur un disque, voire même au sein d’un (gros) fichier unique (idéal pour faire des tests).

Le pool c’est cool !

Créer un filesystem sur un pool zfs est très simple:

Checksums et scrub

Par défaut, les checksums sur les données et métadonnées sont activés.

Alarme !

Pour être informé en cas d’erreur (erreur détectées dans un scrub ou à l’usage, disque physique indisponible ou présentant des problèmes), ZFS possède un démon dédié qui pourra envoyer un email à l’administrateur. C’est ZFS Event Daemon ou “zed”.

Chiffrement

Depuis peu la version Linux de ZFS intègre le support du chiffrement. Les données sont chiffrées (après compression éventuelle) avant d’être stockées.

Snapshots et clones

Les snapshots sont sûrement une des fonctionnalités les plus intéressantes, qui permet de figer un filesystem de façon quasi instantanée. C’est la nature “copy-on-write” de ZFS qui le permet, il suffit en effet à ZFS d’écrire ailleurs les nouvelles données sans libérer les précédentes.

Copie de snapshot avec send et recv… une forme de sauvegarde

On peut transformer un snapshot en un flux de données, qui peut être relu pour recréer le filesystem à l’identique.

Pour aller plus loin…

Ces fonctionnalités principales de ZFS mériteraint chacune plus d’approfondissement mais cet article a déjà été assez long !

--

--

40 ans d'informatique + 33 de base de données + 25 d'internet + 11 de cartographie = #OpenStreetMap + #opendata + #logiciel_libre

Love podcasts or audiobooks? Learn on the go with our new app.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Christian Quest

Christian Quest

40 ans d'informatique + 33 de base de données + 25 d'internet + 11 de cartographie = #OpenStreetMap + #opendata + #logiciel_libre