Création basique d’un pool ZFS

Création d’un pool tank, selon différentes configurations :

(les noms des disques ont été changés pour faciliter la lecture des exemples)

  • Miroir (similaire au RAID1, ≥ 2 disques, 1:1 redondance)

zpool create tank mirror disk0 disk1
  • raidz (similaire au RAID5, ≥ 3 disques, 1 disque de parité)

zpool create tank raidz disk0 disk1 disk2
  • raidz2 (similaire au RAID6, ≥ 4 disques, 2 disques de parité)

zpool create tank raidz2 disk0 disk1 disk2 disk3
  • stripe (par défault, similaire au RAID0, pas de redondance ni de parité)

zpool create tank disk0 disk1
  • single disk stripe pool

zpool create tank disk0
  • Résumons :

Niveau de RAID matériel

équivalent OpenZFS

commande zpool

RAID0

stripe (default)

zpool create tank disk0 disk1

RAID1

mirror

zpool create tank mirror disk0 disk1

RAID10

mirror + mirror

zpool create tank mirror disk0 disk1 mirror disk2 disk3

RAID5

raidz (ou raidz1)

zpool create tank raidz disk0 disk1 disk2

RAID6

raidz2

zpool create tank raidz2 disk0 disk1 disk2 disk3

sans équivalent

raidz3

zpool create tank raidz3 disk0 disk1 disk2 disk3 disk4

Création avancée d’un pool ZFS

  • Grouper les pools

Si vous souhaitez construire un pool avec un grand nombre de disques, il est conseillé de les configurer en plusieurs groupes. Cela permet une conception de pool plus flexible et établir un compromis entre espace, parité et efficacité.

  • 2 raidz (2 groupes de raidz avec 2 disques de parité au total)

zpool create tank \
raidz disk0 disk1 disk2 \
raidz disk3 disk4 disk5

À faire

taille des blocs, options pour databases

Options avancées pool et volume ZFS

  • Désactiver la déduplication :

zfs set dedup=off tank
  • Activer la compression :

zfs set compression=lz4 tank
  • Désactiver l’access-time et la synchronisation immédiate (meilleures performances) :

zfs set atime=off tank
zfs set sync=disabled tank
  • Stocker les attributs étendus dans les inodes afin d’obtenir plus d’IO :

zfs set dnodesize=auto tank
zfs set xattr=sa tank
  • Ajouter un cache (L2ARC)

ZFS peut utiliser des SSD comme cache de second niveau (L2ARC) après la RAM (ARC) afin d’améliorer les performances globales. Les disques de cache étant lus et écrits très fréquemment, il faut privilégier des dispositifs SSD plus durables (SLC/MLC plutôt que TLC/QLC), voir NVMe. Voir Les systèmes de cache.

zpool add tank cache nvme-0-scsi6

ZFS peut utiliser la NVRAM/Optane/SSD comme périphérique SLOG, c’est un cache en écriture, mais attention : Les disques SLOG utilisés pour accélérer ces écritures doivent être configuré en mode miroir. Voir Les systèmes de cache.

Voir aussi https://www.servethehome.com/what-is-the-zfs-zil-slog-and-what-makes-a-good-one/

zpool add tank log mirror nvme-0-scsi7 nvme-0-scsi8
  • Ajout d’un disque de spare

zpool add tank spare scsi-0-scsi9