Le calcul des IOPS pour ZFS RAIDZ est-il différent de celui des IOPS pour RAID5 et RAID6?

13

Lors du calcul des IOPS pour les matrices RAID traditionnelles, on pourrait utiliser la formule suivante (empruntée à Obtenir le blocage des IOPS v1.3 sur Symantec Connect):

Ieffective = (n * Isingle) / (READ% + (F * WRITE%))

Où:

  • Ieffective est le nombre effectif d'IOPS
  • Isingle est l'IOPS moyen d' un seul disque .
  • n est le nombre de disques dans la baie
  • READ% est la fraction des lectures issues du profilage de disque
  • WRITE% est la fraction des écritures provenant du profilage de disque
  • F est la pénalité d'écriture RAID :

    RAID Level      Write Penalty
    RAID-0          1
    RAID-1          2
    RAID-5          4
    RAID-6          6
    RAID-10         2
    RAID-DP         2
    

La formule est essentiellement fonction de:

  • IOPS pour chaque disque individuel de la baie
  • Le nombre de disques. Plus de disques signifie plus d'IOPS
  • La pénalité RAID pour chaque opération d'écriture.
    • RAID5 et RAID6 nécessitent plus de 4 opérations sur disque pour chaque écriture. Le contrôleur doit lire le bloc, puis lire les données de parité (deux opérations), calculer les nouvelles données de parité, puis mettre à jour le bloc de parité et mettre à jour le bloc de données (deux opérations supplémentaires). RAID6 a deux blocs de parité et nécessite donc trois lectures et trois écritures. Les baies RAID5 et RAID6 sont donc capables de moins d'IOPS que RAID1.
    • RAID1 et RAID10 ne nécessitent que 2 écritures, une sur chaque disque dans le miroir.

Et pour être clair, tout cela fournit une estimation des performances théoriques. Divers contrôleurs et méthodes RAID ont des astuces pour accélérer une partie de cela.

L'équivalent ZFS de RAID5 et RAID6 est RAIDZ et RAIDZ2. Lors du calcul des IOPS pour les matrices RAIDZ, puis-je utiliser la même formule que j'utilise pour RAID5 et RAID6, ou ZFS a-t-il des astuces spéciales pour réduire le nombre d'opérations requises pour les opérations d'écriture.

Existe-t-il une formule différente à utiliser lors du calcul des IOPS pour les matrices RAIDZ?

Stefan Lasiewski
la source
1
Grande question. J'ai hâte de lire les réponses ...
EEAA
1
les iops sont mythiques mais ce document peut fournir un aperçu. info.nexenta.com/rs/nexenta/images/…
tony roth
Les IOPS peuvent être théoriques, mais ils peuvent expliquer pourquoi une matrice RAID10 surpasse généralement une matrice RAID5, étant donné les mêmes disques.
Stefan Lasiewski
Une citation notable du document Nexenta: "Dans une configuration RAIDZ-2, un seul E / S entrant dans le VDEV doit être décomposé et écrit sur tous les disques de données. Il doit ensuite avoir la parité calculée et écrite sur le disque avant la Les E / S peuvent se terminer. Si tous les disques ont la même latence, toutes les opérations sur les disques se termineront en même temps, complétant ainsi les E / S vers le VDEV à la vitesse d'un disque . S'il existe un disque lent avec une latence élevée dans le RAIDZ-2 VDEV, l'IO vers le VDEV ne se termine pas tant que l'IO sur le disque le plus lent n'est pas terminé. "
Stefan Lasiewski

Réponses:

13

C'est plus facile de répondre ...

Tout est distillé ici: recommandations ZFS RAID: espace, performances et MTTDL et un examen plus approfondi de ZFS, Vdevs et performances

  • RAIDZ avec un lecteur de parité vous donnera les performances IOPS d'un seul disque, mais n-1 fois la bande passante agrégée d'un seul disque.

Donc, si vous avez besoin d'évoluer, vous évoluez avec le nombre de vdev RAIDZ ... Par exemple, avec 16 disques, 4 groupes de RAIDZ à 4 disques auraient un potentiel IOPS supérieur à 2 groupes de RAIDZ à 8 disques.

Étonnant, non?

J'utilise généralement des miroirs rayés (RAID 1 + 0) sur mes installations ZFS. Le même concept s'applique. Plus de paires en miroir == meilleures performances.

Dans ZFS, vous pouvez uniquement développer en unités d'un vdev complet. Ainsi, alors que l'extension d'un ensemble RAID 1 + 0 signifie ajouter plus de paires, faire de même pour les ensembles RAIDZ signifie ajouter plus de groupes RAIDZ de composition égale.

ewwhite
la source
Bon article, mais il est tellement ancien que la comparaison des liens entre ZFS RAID1 et RAID5 ("Résultats du modèle à parité simple" et "Résultats du modèle à double parité" est manquante). Les rats!
Stefan Lasiewski
RAIDZ avec un lecteur de parité vous donnera les performances IOPS d'un seul disque. C'est intéressant, est-ce une valeur constante indépendamment des pourcentages de lecture et d'écriture? Par exemple, les performances de RAID5 varient considérablement en fonction du pourcentage d'écriture des versets lus. Une baie 3 disques 15K peut varier entre 130IOPS et 500IOPS selon la ration de lecture / écriture. 50% de lectures et 50% d'écritures entraîneront des performances IOPS supérieures à celles d' un seul disque. L'utilisation de 3 broches ou plus améliore les performances par rapport à 1 broche, n'est-ce pas?
Stefan Lasiewski
Je pense juste à la mise à l'échelle du vdev et aux performances d'écriture qui sont égales à 1 disque, quelle que soit la composition de ce vdev; miroir, RAIDZ, RAIDZ2, etc. Les disques à l'intérieur des vdev sont là pour augmenter votre capacité. Le nombre de vdev est utilisé pour créer vos performances de répartition. Les lectures à partir des vdevs évolueront avec le nombre de lecteurs.
ewwhite
1
J'ai une expérience considérable dans ce domaine et je peux vous confirmer que dans la plupart des situations, RAIDZ ne surpassera PAS le même nombre de disques jetés dans une matrice équivalente RAID5 / 6 traditionnelle. La plupart des baies RAID5 / 6 traditionnelles gagnent en performances IOPS (celle que presque tout le monde se soucie, même quand ils ne pensent pas le faire) lorsque vous ajoutez des broches à l'ensemble RAID, contrairement à ZFS. En retour, ZFS ne perdra pas vos données et ne souffre pas du problème de «trou d'écriture RAID». De plus que des instantanés entiers, des clones, la compression et ainsi de suite. Et l'ARC. Et .. vous avez l'idée.
Nex7
2
Je veux juste être clair - ZFS est de par sa conception même ne va gagner aucune guerre de performance. Vous pouvez trouver d'autres systèmes de fichiers et gestionnaires de volume (ou combinaisons) qui peuvent surpasser ZFS sur le même matériel (ext4 et une carte RAID Adaptec, par exemple). La seule exception à ce que je sache vient des lectures qui sont facilement mises en cache, où l'ARC donne souvent à ZFS une longueur d'avance sur la plupart des alternatives. Mais quand il s'agit d'écrit? Non. L'effort que ZFS consacre à l'intégrité des données et à la manière dont il gère les écritures ne remportera presque jamais de concours de vitesse. Les compromis sont l'intégrité et l'ensemble des fonctionnalités.
Nex7