|
|
ZFS - Comprendre la disposition des disques dans ZFS
|
|
|
|
|
|
## Disposition des disques
|
|
|
|
|
|
Voici les differentes variables à prendre en compte pour construire un système de stockage ZFS
|
|
|
|
|
|
Ceci définit la performance du pool ZFS en rapport au besoin du client
|
|
|
****
|
|
|
- Lecture d'entrée-sortie par seconde
|
|
|
- Ecriture d'entréé-sortie par seconde
|
|
|
****
|
|
|
- Performance de lecture en streaming
|
|
|
- Performance d'écriture en streaming
|
|
|
****
|
|
|
- Efficacitée de l'espace de stockage (Une meilleur capacitée utilisable après la paritée comparée a la capacitée total d'un disque)
|
|
|
****
|
|
|
- Resistance a la casse (Un nombre maximum de disque pouvant cassé avant la perte de donnée)
|
|
|
****
|
|
|
Avez-vous besoin de plus de stockage ? d'une meilleur performance ? ou d'une meilleur resistance a la casse ?.
|
|
|
Il est très important de penser a ces variables avant tout car les performance sont drastiquement differente selon le plan de déploiement choisi !
|
|
|
|
|
|
Avec les deploiements sous zfs les disques sont logiquement groupés dans un ou plusieures "VDev". Chaque VDev peut combiner plusieurs disque physique dans une multitude de RaidZ (ZFS RAID).
|
|
|
Si plusieurs Vdevs sont utilisés le volume "Pool" va etre etendu sur tout les vdevs.
|
|
|
|
|
|
**Voici les bases pour calculé les performences des RaidZ**,
|
|
|
*Les termes "disque de paritée" et "disque de donnée" réferent au niveau de paritée des differents RaidZ*
|
|
|
|
|
|
- RaidZ1 : 1 disque de paritée
|
|
|
- RaidZ2 : 2 disques de paritée
|
|
|
- RaidZ3 : 3 disques de paritée
|
|
|
****
|
|
|
Le volume de donnée stockable après formatage dans RaidZ est égale a la capacitée d'un seul disque multiplité par le nombre total de disque "Donées". Si vous utilisé des disque qui ne sont pas de meme taille le calcul sera : La taille du plus petit disque multiplié par le nombre de disque donées.
|
|
|
La tolerance a la casse par vdev est egal au nombre de disque paritée présent dans les vdev
|
|
|
****
|
|
|
**Voici 3 examples de RAIDZ1**
|
|
|
|
|
|
- Sur ces examples nous prendrons 12 disques de 6TB chacun
|
|
|
|
|
|
Vdev mirroir contant 12 disques
|
|
|
|
|
|
`IOPS (Operation entree/sortie par seconde) : Lecture : 3000, Ecriture 250.
|
|
|
Performance en streaming : Lecture : 1200 MB/s, Ecriture: 100 MB/s
|
|
|
Efficacitée de la capacitée de stockage : 8.3% (6TB de disponible)`
|
|
|
|
|
|
Sur ce type de raid nous pouvons perdre jusqu'a onze disques et toujours avoir une copie intacte, biensur ceci n'est pas une bonne facon de placer des disques dans un raid ZFS,mais cela nous donne un bon example du fonctionement d'un raid ZFS.
|
|
|
|
|
|
****
|
|
|
|
|
|
|
|
|
Maintenant nous allons voir un example plus réaliste nous allons configurer virtuellement 6 vdev contenant chacun 2 disques configurer en mirroir ou RaidZ1, et etendre la capactiée de stockage sur les 6 vdev. Voici les performance par vdev et pour le raid complet:
|
|
|
|
|
|
- Cette "array" serais recommandé pour un systeme de stockage qui se veut très performant au mépris de la ressistance a la casse.
|
|
|
|
|
|
**6 vdev, 2 disques par vdev**
|
|
|
|
|
|
`IOPS (Operation entree/sortie par seconde) : Lecture : 500, Ecriture 250.
|
|
|
Performance en streaming : Lecture : 200 MB/s, Ecriture: 100 MB/s
|
|
|
Ressistance a la casse : 1 disque`
|
|
|
|
|
|
Pour le raid complet:
|
|
|
`IOPS (Operation entree/sortie par seconde) : Lecture : 3000, Ecriture 1500.
|
|
|
Performance en streaming : Lecture : 1200 MB/s, Ecriture: 600 MB/s
|
|
|
Efficacitée de la capacitée de stockage : 50% (36TB de disponible)`
|
|
|
|
|
|
****
|
|
|
|
|
|
Dans ce prochaine example nous prenons 4 vdev de 3 disques chacun ce systeme ce veux plus tolerant a la casse avec des performance très correcte mais une capacitée de stockage moindre, les applications recommandée serais un systeme de stockage contenant des disques d'ocassion.
|
|
|
|
|
|
**4vdev, 3 disques par vdev**
|
|
|
|
|
|
`IOPS (Operation entree/sortie par seconde) : Lecture : 3000, Ecriture 1000
|
|
|
Performance en streaming : Lecture : 1200 MB/s, Ecriture: 400MB/s
|
|
|
Efficacitée de la capacitée de stockage : 33% (24TB de disponible)
|
|
|
Resistance a la casse : 2 par vdev, 8 au total`
|
|
|
|
|
|
****
|
|
|
|
|
|
**Voici 2 examples de raid plus realiste**
|
|
|
|
|
|
**RaidZ3 1 vdev 12 disques** :
|
|
|
`IOPS (Operation entree/sortie par seconde) : Lecture : 250, Ecriture 250.
|
|
|
Performance en streaming : Lecture : 900 MB/s, Ecriture: 900 MB/s
|
|
|
Efficacitée de l'espace de stockage : 75% (54TB)
|
|
|
Ressistance a la casse : 3 disques`
|
|
|
|
|
|
**RaidZ2 2 Vdev 6 Disques par Vdev**:
|
|
|
`IOPS (Operation entree/sortie par seconde) : Lecture : 500, Ecriture 500.
|
|
|
Performance en streaming : Lecture : 800 MB/s, Ecriture: 800 MB/s
|
|
|
Efficacitée de l'espace de stockage : 66.7% (48TB)
|
|
|
Ressistance a la casse : 2 par vdev 4 disques au total`
|
|
|
|
|
|
- Cette configuration sacrifie les performance de streaming et un peut de capacitée pour doubler les Operation E/S (IOPS). Chaque vdev possède 2 disques de paritée.
|
|
|
|
|
|
****
|
|
|
|
|
|
**Sénario de dépoloiment ZFS**
|
|
|
****
|
|
|
**Sénario 1** : Backup de données et dossier réseau peu utilisé
|
|
|
|
|
|
Dans ce sénario les Operation E/S (IOPS) ne sont pas tres importante contrairement a la vitesse lecture ecriture en streaming, dans ce sénario une bonne capacitée et une bonne ressistance sont prisent en compte.
|
|
|
|
|
|
Si nous avons que très peut d'utilisateur connecté et fesant des actions simulatanément nous pouvons facilement faire un RaidZ3, il nous donneras un bon espace de stockage et une tres bonne resistance a la casse, en outre il n'offre pas beaucoup d'IOPS
|
|
|
|
|
|
Si le client a plus de client connecté et que la performence est nessecaire un RAIDz2 de 2Vdev (de 6 disque dans cette documentation) nous donneras de très bonne performance une capacitée de stockage convenable et une très bonne ressistance a la casse.
|
|
|
****
|
|
|
**Sénario 2** : Seveur de base de donnée ou Serveur de stockage pour Machine virtuelle
|
|
|
|
|
|
Dans ce sénario, le client a besoin d'un serveur ou stocker ses bases de données et ou ces vm sont stockée,
|
|
|
|
|
|
ce sénario est l'extreme opposé du sénario 1 car le client a besoin d'énormement d'IOPS pour ces base de données et surtout pour ces machine virtuelle.
|
|
|
|
|
|
Dans ce sénario nous excluons d'office le RAIDz2 et RAIDz3 pour leur manque d'IOPS qui rallentissent dramatiquement la vitesse.
|
|
|
Un RAIDz1 en mirror (plusieur vdev avec chacun 2 disques en mirror) serait le meilleur choix, plus il y a de vdev plus le systeme est performant.
|
|
|
****
|
|
|
**Sénario 3** : Montage de video haute résolution sur le réseau/Travail 3d depuis le réseau
|
|
|
|
|
|
Un client a besoin de travaillé depuis un serveur de stockage ZFS sur des gros fichiers directement depuis le réseau sans les copié sur le stockage local de la machine au préalable.
|
|
|
|
|
|
La vitesse de streaming seras la metrique la plus importante, car les gros fichiers peuvent avoir des debit assez impressionant. La seconde métrique a prendre en compte est l'IOPS, plus il y a de personne travaillant sur le serveur plus L'IOPS prendras de l'importance.
|
|
|
|
|
|
Dans un petit projet un RAIDz2 (entre 5-10 personnes travaillant simultanement) fonctionnerais, il offre une plus grosse capacitée de stockage mais se retrouve vite bloquer a cause de ces IOPS plus faible.
|
|
|
|
|
|
Il existe encore 2 type de vdev speciaux que nous n'avons pas encore aborder le L2ARC et le SLOG. Ces vdevs speciaux peuvent etre ajoutée a une configuration zfs avec comme fonction un cache de lecture pour SLOG et ecriture pour L2ARC. Si le client a besoin de plus d'ecriture IOPS il faut intergré un vdev SLOG et si le client a besoin de plus de lecture IOPS un L2ARC seras de misent (a installer de préference sur des ssd DC ou NAS)
|
|
|
Si le depoliement de ces vdevs speciaux se passent sous Freenas il est recommandé de faire appel au support pour avoir des conseilles sur une intégration de ce genre.
|
|
|
****
|
|
|
|
|
|
Voici un lien sur un pdf pour calculer les differentes métriques de performance ZFS uniquement en anglais malheureusement : https://static.ixsystems.co/uploads/2018/10/ZFS_Storage_Pool_Layout_White_Paper_WEB.pdf
|
|
|
****
|
|
|
Et voici un livre sur ZFS qui peut beaucoup vous aider dans votre aventure ZFS : https://www.tiltedwindmillpress.com/?product=fmzfs
|
|
|
****
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## Articles source :
|
|
|
https://www.youtube.com/watch?v=-AnkHc7N0zM
|
|
|
https://www.youtube.com/watch?v=3oG-1U5AI9A
|
|
|
https://www.youtube.com/watch?v=n0Uskl9fcKI&t
|
|
|
https://forums.lawrencesystems.com/t/freenas-zfs-pools-raidz-raidz2-raidz3-capacity-integrity-and-performance/3569
|
|
|
https://www.ixsystems.com/blog/zfs-pool-performance-1/
|
|
|
https://www.ixsystems.com/blog/zfs-pool-performance-2/
|
|
|
|
|
|
|