Le système de fichiers ZFS

Présentation

D'après wikipédia, ZFS pour Z File System, est un système de fichiers open source sous licence CDDL.

Produit par Sun Microsystems (société rachetée par Oracle en 2009), il a été conçu par l'équipe de Jeff Bonwick.

Les caractéristiques de ce système de fichiers 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.

Préambule

Environnement

Installation

Suivre les instructions pour debian sur le site zfsonlinux : http://zfsonlinux.org

Commandes

Création d'un pool ZFS

On récupère les ids des disques (ids ou chemins)

root@host:~# ls -lah /dev/disk/by-id/
root@host:~# ls -lah /dev/disk/by-path/

Créer un point de montage

root@host:~# mkdir /zfs

Créer un RAID 0 avec trois disques

root@host:~# zpool create -f -m <mount_point> <pool_name> <type> <id1> <id2> <id3>
root@host:~# zpool create -f -o ashift=12 -m /zfs raid0_01 mirror scsi-SATA_WDC_WD20EARS-07_WD-WCAZA796741 scsi-SATA_WDC_WD20EARS-07_WD-WCAZB7569258 scsi-SATA_WDC_WD20EARS-07_WD-WCPZB7464217

Ajout d'un disque de spare

root@host:~# zpool add tank spare ada12

Lister les pool

root@host:~# zpool list

Afficher l'historique des commandes d'un pool

root@host:~# zpool history raid0_01

Modifier le point de montage du pool

root@host:~# zfs set mountpoint=/zfs raid0_01

Le volume zfs ne monte pas sur un nouveau système

root@host:~# zpool export raid0_01
root@host:~# zpool import -a
root@host:~# zpool import -f raid0_01

Désactiver les atime

root@host:~# zfs set atime=off <pool>

Activer la compression lz4

root@host:~# zfs set compression=lz4 <pool>

Activer la compression zstd

root@host:~# zfs set compression=zstd <pool>

Supprimer un pool

root@host:~# zfs destroy <pool>

Maintenance

Vérification des données (équivalent à chkdsk)

root@host:~# zpool scrub raid0_01
root@host:~# zpool status

Afficher toutes les options

root@host:~# zfs get all <pool>

Monitoring

Afficher toutes les infos d'un pool

root@host:~# zpool get all raid0_01

infos sur l'état de la partition

root@host:~# zpool status -v raid0_01

infos sur les IOs

root@host:~# zpool iostat <seconde rafraichissement> <nombre de sortie>
root@host:~# zpool iostat 5 10

Chiffrement avec dm-crypt

Dans les version récente de zfs on pourra utiliser le chiffrement natif (lors de la création du pool).

Chiffrement des disques

root@host:~# cryptsetup --cipher aes-xts-plain64 --key-size 512 --hash sha1 --iter-time 1000 --use-urandom -v luksFormat /dev/sdb1
root@host:~# cryptsetup --cipher aes-xts-plain64 --key-size 512 --hash sha1 --iter-time 1000 --use-urandom -v luksFormat /dev/sdc1
root@host:~# cryptsetup --cipher aes-xts-plain64 --key-size 512 --hash sha1 --iter-time 1000 --use-urandom -v luksFormat /dev/sdd1

Ouverture des disques

root@host:~# cryptsetup luksOpen /dev/sdb1 zfs01
root@host:~# cryptsetup luksOpen /dev/sdc1 zfs01
root@host:~# cryptsetup luksOpen /dev/sdd1 zfs01

Création de notre pool ZFS

root@host:~# zpool create -f -m /zfs raid0_01 mirror /dev/mapper/zfs01 /dev/mapper/zfs02 /dev/mapper/zfs03

Chiffrement natif

Création du pool

root@host:~# zpool create -f -m /zfs raid0_01 pci-0000:03:00.0-scsi-0:0:1:0-part1

Création dataset avec chiffrement

root@host:~# zpool create -o encryption=on -o keyformat=passphrase raid0_01/dataset01

sources : linuxfr.org

Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.

Contact :