Ceci est une ancienne révision du document !
Il parait que c'est LE système de fichiers ultime, avec un focus sur l'intégrité des données, les backup et très 'scalable'. Son problème : pour bien faire il faudrait de la RAM ECC…
On trouve sur le net plein de docs sur les caractéristiques et fonctionnalités de zfs, je ne vais pas revenir dessus.
Allez, un petit rappel de la hierarchie :
En revanche, j'ai eu besoin de quelques commandes pour mettre en place mon système et j'ai eu du mal à les trouver, d'où cette section sur zfs : comment utilise-t-on en pratique zfs sur une debian ?
Il y a des petites histoires d'incompatibilités de licences entre zfs (CDDL) et linux (GPL), d'où un processus un peu tordu.
On suit le wiki de zfs_onlinux.
Il faut autoriser le dépot contrib
, puis installer les paquets linux-headers-xx
adaptés, puis zfs-dkms
.
Sans surprise, c'est la commande zpool
qu'il faut utiliser.
C'est la commande zpool
qu'il faut utiliser.
# liste les zpool existants sur les disques durs mais pas encore montés zpool import # l'option -d est indispensable pour ne pas utiliser l'identification via /dev/sda qui est susceptible de changer d'un boot à l'autre : zpool import -d /dev/disk/by-id # importer le zpool (et le monte automatiquement) zpool import -d /dev/disk/by-id <pool_name>
On doit pouvoir monter dans un dossier spécifique, de base ils sont à la racine /<pool_name>/
# voir les zpool importés/montés zpool list # voir comment se portent les zpool zpool status
Et là, c'est la commande zfs
qu'il faut regarder
# lister les dataset zfs list # créer un dataset zfs create -o mountpoint=/path/to/dir POOL_NAME/DATASET_NAME
# lire un paramètre (sur un dataset / zpool) zfs get zfs get PARAMETER zfs get PARAMETER ZPOOL/DATASET # régler un paramètre zfs set ...
Ce sont des copies en read-only d'un dataset.
# lister les snapshots zfs list -t snapshot # créer un snapshot zfs snapshot (-r) ZPOOL/DATASET # -r : recursive, tous les dataset enfants sont concernés # détruire un snapshot zfs destroy ZPOOL/SNAPSHOT # renommer un snapshot zfs rename ZPOOL/OLD_NAME_SNAPSHOT ZPOOL/NEW_NAME_SNAPSHOT # déplacer un snapshot (crée une "image stream" vers la sortie standard --> pipe) zfs send ZPOOL/SNAPSHOT > /PATH/TO/FILE # et la réciproque zfs receive ZPOOL/SNAPSHOT < /PATH/TO/FILE # pour n'envoyer que le différentiel (à méditer, c'est un copier coller non vérifié) zfs send -i ZPOOL/SNAPSHOT | ssh SERVER zfs recv testpool/testfs
Il existe la possibilité de rollback, mais c'est dangereux, on préfèrera faire des clones