diff --git a/crans.texi b/crans.texi
index bb3d19d..d35a15d 100644
--- a/crans.texi
+++ b/crans.texi
@@ -1636,7 +1636,222 @@ Host *.adm.crans.org
 @node ZFS
 @subsection ZFS
 
-TODO.
+@subsubsection ZFS c'est quoi ?
+
+ZFS est un système de fichier avec plein de features natives, notamment
+de la gestion de volume, du RAID (RAID-Z), des snapshots, etc.
+
+@quotation
+ZFS a été ouvert sous licence
+@uref{https://en.wikipedia.org/wiki/Common_Development_and_Distribution_License,CDDL}
+incompatible avec la GPL. Par conséquent, ZFS n'est pas supporté
+nativement par le noyau Linux.
+@end quotation
+
+@subsubsection Petit glossaire
+
+@table @asis
+@item RAID-Z#N
+Le raid de ZFS. Le chiffre #N correspond au nombre de disques que l'on
+peut perdre (e.g. RAID-Z2 correspond à du RAID 6 classique).
+
+@item Pool
+Une @dfn{pool} de stockage est le bloc de base de ZFS. C'est un ensemble
+logique de données. Une pool ZFS est composée d'un ou plusieurs
+@dfn{vdev}.
+
+@item Vdev
+Un @dfn{vdev} (pour ``virtual device'') est un sous élément d'une pool.
+Un vdev peut contenir un ou plusieurs disques physiques. Dans le cas où
+plusieurs disques sont utilisés, les données sont étendues
+(@dfn{stripped}) sur tous les disques afin d'améliorer sa durée de vie.
+
+@item Dataset
+@dfn{Dataset} est le terme générique pour désigner un volume de fichiers
+ZFS. Chaque dataset a un nom unique de la forme @code{Pool/Dataset}. La
+racine de la pool est techniquement un dataset aussi. Les dataset sont
+organisés comme des dossiers classique, avec une arborescence, et les
+enfants héritent des propriétés des parents.
+@end table
+
+@subsubsection Installation
+
+Il faut ajouter les dépots @code{contrib} de debian dans lesquels se
+trouvent les paquets installés ci-dessous.
+
+Pour installer le module noyau ZFS sous Debian et les outils
+d'administration :
+
+@verbatim
+apt install linux-headers-amd64
+apt install zfs-dkms
+@end verbatim
+
+Il faut ensuite reboot pour loader le module zfs, puis :
+
+@verbatim
+apt install zfsutils-linux
+@end verbatim
+
+Cela installe aussi @code{zfs-zed} un daemon permettant de monitorer les
+pool ZFS.  Les headers du noyau doivent être installés à chaque mise à
+jour du noyau.
+
+@subsubsection Créer une pool ZFS
+
+La première étape de création d'un filesystem ZFS est la création d'une
+pool. Une pool contient des vdev qui eux même contiennent des disques,
+la commande suivante permet de créer une pool de nom «pool» et montée
+dans @file{/pool} avec un vdev en RAIDZ-3 :
+
+@verbatim
+zpool create -f -m /pool pool raidz3 \
+    ata-WDC_WD2003FYYS-02W0B0_WD-WMAY03494499 \
+    ata-WDC_WD2003FYYS-02W0B0_WD-WMAY03563166 \
+    ata-WDC_WD2003FYYS-02W0B0_WD-WMAY03570970 \
+    ata-WDC_WD2003FYYS-02W0B0_WD-WMAY03575828 \
+    ata-WDC_WD2003FYYS-02W0B0_WD-WMAY03614378 \
+    ata-WDC_WD2003FYYS-02W0B0_WD-WMAY03626582 \
+    ata-WDC_WD2003FYYS-02W0B0_WD-WMAY03694920 \
+    ata-WDC_WD2003FYYS-02W0B0_WD-WMAY03704580 \
+    ata-WDC_WD2003FYYS-02W0B0_WD-WMAY03707506 \
+    ata-WDC_WD2003FYYS-02W0B0_WD-WMAY03731830 \
+    ata-WDC_WD2003FYYS-02W0B0_WD-WMAY03734763 \
+    ata-WDC_WD2003FYYS-02W0B0_WD-WMAY03734769
+@end verbatim
+
+
+Les identifiants de disques peuvent être récupérés dans
+@file{/dev/disks/by-id/}.
+
+L'état des pool peut-être consulté avec la commande :
+
+@verbatim
+zpool status
+@end verbatim
+
+@subsubsection Créer un dataset
+
+Une fois la pool créée il est préférable de créer des datasets qui
+permettent une gestion plus fine de la pool. Pour cela on utilise la
+commande suivante qui créé un dataset du nom de «home» dans la pool
+«pool» :
+
+@verbatim
+zfs create pool/home
+@end verbatim
+
+@subsubsection Partager un dataset en NFS
+
+ZFS permet de partager un dataset en NFS pour cela il faut installer le
+paquet @code{nfs-kernel-server} :
+
+@verbatim
+apt install nfs-kernel-server
+@end verbatim
+
+Le dataset «home» de la pool «pool» peut ensuite être partager ainsi :
+
+@verbatim
+zfs set sharenfs="no_root_squash,rw=@172.16.10.0/24" pool/home
+@end verbatim
+
+Cette commande partage le dataset au sous-réseau @code{172.16.10.0/24},
+l'option @code{no_root_squash} permet au root du client NFS d'avoir tous
+les droits sur les fichiers du dataset.
+
+Il est également préférable d'activer les acl POSIX sur la pool, dans le
+cas contraire il peut y avoir des problèmes de permissions à la création
+de fichiers :
+
+@verbatim
+zfs set acltype=posixacl pool
+@end verbatim
+
+@subsubsection Détruire un dataset
+
+Pour détruire le dataset @code{pool/path} on utilise la commande :
+
+@verbatim
+sudo zfs destroy pool/path
+@end verbatim
+
+@subsubsection Désactiver le sync
+
+Renvoyer une confirmation d'écriture sur le disque après chaque
+opération diminue énormément les performances du NFS. On peut dire à ZFS
+de mentir au NFS sur le retour des opérations sync(). Pour ça, on
+utilise la commande :
+
+@verbatim
+sudo zfs set sync=disabled pool/path
+@end verbatim
+
+@subsubsection Changer un disque
+
+Récupérer le guid du disque qu'on souhaite changer avec @code{zdb}
+(@code{zpool status} peut aider à récuperer le nom du disque
+concerné). Une fois que c'est fait on peut retirer le disque avec :
+@code{zpool offline pool $@{guid@}} puis on remplace l'ancien disque par
+le nouveau : @code{zpool replace pool $@{guid@} $@{nouveau disque@}}.
+Après ça, on peut monitorer la reconstruction avec @code{zpool status}.
+
+@subsubsection Chiffrement
+
+ZFS permet de nativement chiffrer un dataset. Attention, il faut que ça
+soit fait à la @emph{creation} du dataset. Ça ne peut pas se changer
+après.
+
+@center Créer un dataset chiffré
+
+Pour créer un dataset chiffré il suffit de rajouter les options de
+chiffrement avec @code{encryption=on}. Il faut aussi spécifier le format
+de la clé (@code{raw}, @code{hex}, @code{passphrase}). Par défaut, la
+clé va être promptée, mais il est possible de la stocker sur le système
+de fichier, ou bien via une URL.  L'option @code{encryption} permet
+aussi de spéficier l'algorithme de chiffrement à utiliser.
+
+Par exemple:
+
+@verbatim
+sudo zfs create -o encryption=aes-256-gcm -o keyformat=passphrase pool/dataset
+@end verbatim
+
+
+Pour vérifier que tout va bien on peut récupérer la propriété de
+chiffrement :
+
+@verbatim
+sudo zfs get encryption pool/dataset
+@end verbatim
+
+Pour changer la clé il suffit d'utiliser la commande suivante :
+
+@verbatim
+sudo zfs key -c pool/dataset
+@end verbatim
+
+qui va demander la nouvelle passphrase.
+
+Il est aussi possible de changer la source de la clé (pour aller
+chercher la clé dans un fichier par exemple).
+
+@center Monter/démonter un dataset chiffré
+
+Par défaut le dataset sera monté. Pour le démonter il suffit d'utiliser
+la commande @code{unmount}. Attention, la clé de chiffrement sera
+toujours chargée, et le dataset pourra être remonté sans redemander la
+clé. Pour ça, il faut décharger la clé :
+
+@verbatim
+sudo zfs unmount pool/dataset && sudo zfs unload-key pool/dataset
+@end verbatim
+
+Pour remonter le dataset il faut alors recharger la clé :
+
+@verbatim
+sudo zfs load-key pool/dataset && sudo zfs mount pool/dataset
+@end verbatim
 
 @node Systemd
 @subsection Systemd
@@ -1651,6 +1866,7 @@ TODO.
 
 @menu
 * LDAP::
+* DNS::
 @end menu
 
 @node LDAP
@@ -1658,6 +1874,11 @@ TODO.
 
 TODO.
 
+@node DNS
+@subsection DNS
+
+TODO.
+
 @node Index
 @unnumbered Index