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 :term:`RAID1`, ≥ 2 disques, 1:1 redondance) .. code-block:: bash zpool create tank mirror disk0 disk1 * :term:`raidz` (similaire au :term:`RAID5`, ≥ 3 disques, 1 disque de parité) .. code-block:: bash zpool create tank raidz disk0 disk1 disk2 * :term:`raidz2` (similaire au :term:`RAID6`, ≥ 4 disques, 2 disques de parité) .. code-block:: bash zpool create tank raidz2 disk0 disk1 disk2 disk3 * stripe (par défault, similaire au :term:`RAID0`, pas de redondance ni de parité) .. code-block:: bash zpool create tank disk0 disk1 * single disk stripe pool .. code-block:: bash 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 :term:`raidz` (2 groupes de :term:`raidz` avec 2 disques de parité au total) .. code-block:: bash zpool create tank \ raidz disk0 disk1 disk2 \ raidz disk3 disk4 disk5 .. todo:: taille des blocs, options pour databases Options avancées pool et volume ZFS ----------------------------------- * Désactiver la déduplication : .. code-block:: bash zfs set dedup=off tank * Activer la compression : .. code-block:: bash zfs set compression=lz4 tank * Désactiver l'access-time et la synchronisation immédiate (meilleures performances) : .. code-block:: bash zfs set atime=off tank zfs set sync=disabled tank * Stocker les attributs étendus dans les inodes afin d'obtenir plus d'IO : .. code-block:: bash zfs set dnodesize=auto tank zfs set xattr=sa tank * Ajouter un cache (:term:`L2ARC`) :term:`ZFS` peut utiliser des :term:`SSD` comme cache de second niveau (:term:`L2ARC`) après la :term:`RAM` (:term:`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 :term:`SSD` plus durables (:term:`SLC`/:term:`MLC` plutôt que :term:`TLC`/:term:`QLC`), voir :term:`NVMe`. Voir :doc:`../configuration/caches`. .. code-block:: bash zpool add tank cache nvme-0-scsi6 * Ajout de log (:term:`SLOG`/:term:`ZIL`) :term:`ZFS` peut utiliser la :term:`NVRAM`/Optane/:term:`SSD` comme périphérique :term:`SLOG`, c'est un cache en écriture, mais attention : Les disques :term:`SLOG` utilisés pour accélérer ces écritures **doivent** être configuré en mode miroir. Voir :doc:`../configuration/caches`. Voir aussi ``_ .. code-block:: bash zpool add tank log mirror nvme-0-scsi7 nvme-0-scsi8 * Ajout d'un disque de spare .. code-block:: bash zpool add tank spare scsi-0-scsi9