Pour le disque dur , les IOPS sont généralement dominés par le temps d'accès au disque, qui est la somme de la latence de recherche + du retard de rotation + du retard de transfert. Comme ces variables dépendent fortement des modèles d'accès et ont des interactions non évidentes avec la configuration RAID spécifique (par exemple: la taille de la bande) et le contrôleur (par exemple: le réglage anticipé de la lecture), toute réponse simple SERA FAUX.
Cependant, essayons d'avoir un chiffre approximatif. En première approximation, les IOPS garantis par une matrice à n disques doivent être n fois les IOPS d'un seul disque. Cependant, le niveau RAID et le modèle d'accès aux données , en déplaçant le poids entre la latence de recherche / rotation / transfert, modifient considérablement cette approximation de premier ordre.
Permet de faire quelques exemples, en supposant 100 IOPS par disque unique (une valeur typique pour les disques à 7200 tr / min) et les tableaux à 4 disques (sauf pour RAID1, souvent limité à 2 voies uniquement):
- un seul disque représente 100 IOPS, à la fois en lecture et en écriture (remarque: en raison de la coalescence en écriture, les IOPS en écriture sont généralement plus élevés que les IOPS en lecture, mais permet d'ignorer cela pour plus de simplicité)
- RAID0 (répartition à 4 voies) a jusqu'à 4x les IOPS aléatoires et jusqu'à 4x les IOPS séquentiels. Le mot clé ici est "jusqu'à": en raison de la nature de l'entrelacement et de l'alignement des données, si les secteurs à accès aléatoire résident généralement sur un seul disque, vous vous retrouverez avec des IOPS beaucoup plus faibles.
- RAID1 (mise en miroir bidirectionnelle) est plus complexe à profiler. Comme différents disques peuvent rechercher des données différentes, il a jusqu'à 2x les IOPS de lecture aléatoire mais les mêmes IOPS d'écriture aléatoire 1x (ou légèrement inférieur, en raison de la surcharge). Si tout s'aligne bien (c.-à-d. Grandes lectures séquentielles mais pas à 100%, un contrôleur RAID utilisant le concept / la manipulation de morceaux / bandes même en mode miroir, la lecture anticipée fonctionne correctement, etc.), les lectures séquentielles peuvent parfois atteindre jusqu'à 2x la seule la valeur du disque, tandis que les écritures séquentielles restent plafonnées à 1x le disque unique (c'est-à-dire: pas d'accélération)
- RAID10 (mise en miroir à 4 voies) est, en termes de performances, à mi-chemin entre la répartition RAID0 à 4 voies et la mise en miroir à 2 voies. Il a jusqu'à 4x les IOPS de lecture aléatoire et jusqu'à 2x les IOPS d'écriture aléatoire. Pour les transferts séquentiels, la mise en garde RAID1 s'applique: elle a parfois jusqu'à 4x les IOPS de lecture séquentielle, mais seulement 2x les IOPS d'écriture séquentielle. Veuillez noter que certaines implémentations RAID10 (à savoir Linux MDRAID) fournissent différentes dispositions pour les matrices RAID10, avec un profil de performances différent .
- RAID5 (parité entrelacée) a jusqu'à 4x les IOPS de lecture aléatoire, tandis que les IOPS d'écriture aléatoire, en fonction d'un certain nombre de facteurs tels que la taille de l'écriture par rapport à la taille de la bande, la disponibilité d'un grand cache de bande, l'algorithme de reconstruction de bande lui-même (lecture-reconstruction-écriture vs lecture-modification-écriture), etc., peut être compris entre 0,5x (ou moins) et 2x les IOPS d'un seul disque. Les charges de travail séquentielles sont plus prévisibles, avec 3x les IOPS d'un seul disque (à la fois pour la lecture et l'écriture)
- RAID6 (double parité rayée) se comporte un peu comme son frère RAID5, mais avec des performances d'écriture inférieures. Il a jusqu'à 4x les IOPS de lecture aléatoire d'un seul disque, mais ses performances d'écriture aléatoire sont encore inférieures à RAID5, avec les mêmes valeurs absolues (0,5x - 2x) mais avec une moyenne de mots réels inférieure. Les lectures et écritures séquentielles sont plafonnées à 2 fois les IOPS d'un seul disque.
Permettez-moi de répéter: ce qui précède sont des approximations simples et presque brisées. Quoi qu'il en soit, si vous voulez jouer avec une calculatrice RAID IOPS (très incomplète), jetez un œil ici .
Maintenant, retournez dans le monde réel. Sur les charges de travail du monde réel, RAID10 est souvent le choix le plus rapide et préféré , conservant des performances élevées même face à une baie dégradée . RAID5 et RAID6 ne doivent pas être utilisés sur des charges de travail sensibles aux performances, sauf si elles sont de nature centrée sur la lecture ou séquentielle. Il convient de noter que les contrôleurs RAID sérieux ont un cache d'écriture différée protégé contre les pertes de puissance, principalement pour surmonter (par une mise en cache de bande lourde) les faibles performances d'écriture aléatoire RAID5 / 6. Ne jamais utiliser RAID5 / 6 avec les contrôleurs RAID cache-moins , à moins que vous ne se soucie pas de la vitesse de tableau.
Les SSD sont des bêtes différentes, pensait-on. Comme ils ont un temps d'accès moyen beaucoup plus faible, les RAID basés sur la parité entraînent une surcharge de performances beaucoup plus faible et sont une option beaucoup plus viable que sur les disques durs. Cependant, dans une petite charge de travail centrée sur l'écriture aléatoire, j'utiliserais de toute façon une configuration RAID10.