web-dev-qa-db-fra.com

Impact des niveaux de raid sur les iops

En ce qui concerne les IOPS, j'ai vu plusieurs sources sur le Web qui suggèrent que les IOP d'un nombre donné de disques sont simplement les IOP d'un seul disque multiplié par le nombre de disques.

Si ma compréhension des iops est correcte (et je ne suis pas du tout sûr que c'est), j'aurais pensé que la réalité dépendrait de nombreux autres facteurs - le niveau RAID. Avec RAID 1/10, toutes les données sont dupliquées sur au moins deux disques, ce qui réduit la contention sur un disque particulier pour certains modèles IO. Cependant, dans des niveaux de raid rayés tels que RAID 0/5/6, les données sont distribuées plutôt que dupliquées, ce qui signifie que des demandes de lecture consécutives pourraient être pour la même broche, ce qui entraîne le blocage IO complète. Les écritures sont encore plus soutenues.

Je devrais ajouter que j'apprécie la réalité est beaucoup plus complexe en raison de diverses optimisations et d'autres facteurs. Ma question est vraiment juste de conduire à savoir si, à un niveau très fondamental, ma compréhension de ce que signifie Isops est sur la bonne voie. Cela pourrait être que mon affirmation que les IOPS pouvaient même être influencées par les niveaux de raids de manière à indiquer un malentendu fondamental du concept.

11
dbr

pour le disque dur , iops sont généralement dominés par le disqueheure d'accès, qui est lala somme de la latence + Delay + Delay + Transfer Delay. Comme ces variables dépendent fortement des modèles d'accès et n'ont pas d'interactions évidentes avec la disposition spécifique du RAID (c.-à-d. Taille de la bande de bande) et contrôleur (c.-à-d. Lire à l'avance),Toute réponse simple Sera faux .

Cependant, essayons d'avoir une figure de ballon. Lors d'une première approximation, les iops garantis par un réseau N doivent être n-fois les iops d'un seul disque. Cependant, le niveau de raid et le modèle d'accès aux données , en changeant de poids entre la recherche/la latence de rotation/transfert, change de manière dramatique de cette approximation de premier ordre.

Permet de faire quelques exemples, en supposant 100 iops par disques simples (une valeur Tipical pour 7200 disques de tr/min) et des tableaux de 4 disques (à l'exception de RAID1, souvent limité à une manière à deux voies):

  • un seul disque est de 100 iops, à la fois de lecture et d'écriture (note: en raison de la coalescence écrite, les iops d'écriture sont généralement plus élevés que les iops de lecture, mais ignorons que pour la simplicité)
  • RAID0 (bande à 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 la bande de bande et de l'alignement des données, si les secteurs aléatoires accédèrent résident de manière dominante sur un seul disque, vous terminerez avec des iops beaucoup plus bas.
  • RAID1 (miroir à 2 voies) est plus complexe pour profiler. Comme différents disques peuvent rechercher différentes données, il dispose de 2 fois les iops de lecture aléatoires, mais le même 1x (ou légèrement inférieur, due à la tête) Iops d'écriture aléatoire. Si toutes choses alignez bien (c.-à-d .: Lectures séquentielles importantes mais non 100% séquentielles, un contrôleur RAID utilisant des morceaux/des rayures concept/manipulation même en mode miroir, de lecture en ligne correctement, etc.) Lectures séquentielles peut un jour être en place Pour 2x La valeur du disque unique, tandis que les écritures séquentielles restent coiffées sur 1x le disque unique (c'est-à-dire: pas de vitesse)
  • RAID10 (mise en miroir à 4 voies) est, performance-sage, à mi-chemin entre les rayures RAID0 à 4 voies et la mise en miroir à deux voies. Il a jusqu'à 4x les iops de lecture aléatoires et jusqu'à 2x les iops d'écriture aléatoires. Pour les transferts séquentiels, la mise en garde RAID1 s'applique parfois jusqu'à 4X les iops de lecture séquentielle, mais seulement 2x les iops d'écriture séquentielle. Veuillez noter que la mise en œuvre de RAID10 (nommément MDRAID Linux) fournit des dispositions différentes pour les matrices RAID10, avec profil de performance différent .
  • RAID5 (parité à rayures) a jusqu'à 4x les iops de lecture aléatoires, tandis que des iops d'écriture aléatoires, en fonction d'un certain nombre de facteurs que la taille de l'écriture en ce qui concerne la taille de la bande, la disponibilité d'une grande cache à rayures, l'algorithme de reconstruction de rayures elle-même (lecture-reconstruction-écriture vs lecture-modify-écriture), etc., peut être n'importe où entre 0,5 fois (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é à rayures) se comporte beaucoup comme son frère RAID5, mais avec des performances d'écriture inférieures. Il a jusqu'à 4x les iops de lecture aléatoires d'un seul disque, mais ses performances d'écriture aléatoires sont encore inférieures à RAID5, avec les mêmes valeurs absolues (0.5x - 2x) mais avec une moyenne de mot réelle inférieure. Les lectures séquentielles et les écritures sont coiffées à 2 fois les iops d'un seul disque.

laissez-moi répéter: ce qui précède sont des approximations simples et presque cassées. De toute façon, si vous souhaitez jouer avec une calculatrice IOPS RAID (gravement incomplète), donnez un look ici .

Maintenant, retournez au monde réel. Sur les charges de travail du monde réel,RAID10 est souvent le choix plus rapide et préféré, maintenant des performances élevées même sur la face d'une matrice dégradée . RAID5 et RAID6 ne doivent pas être utilisés sur les charges de travail sensibles à la performance, à moins qu'ils ne soient de nature centrée ou séquentielle. Il convient de noter que de graves contrôleurs RAID ont une grande perte de cache de rétablissement de la perte de puissance principalement à surmonter (par la mise en cache de rayures lourds) les performances d'écriture aléatoire RAID5/6.N'utilisez jamais RAID5/6 avec des contrôleurs RAID moins en cache, sauf si vous ne vous souciez pas de la vitesse de l'array.

SSD sont des bêtes différentes, pensées. Comme ils ont un temps d'accès moyen de la moyenne plus faible, les raids basés sur la parité incontent une surcharge de performances beaucoup plus basse et sont une option beaucoup plus viable que sur des disques durs. Cependant, dans une petite charge de travail centrée sur l'écriture aléatoire, j'utiliserais une configuration RAID10, de toute façon.

12
shodanshok

C'est juste une question de définitions. Vous pouvez mesurer IOPS à différents niveaux dans le système et vous obtiendrez des valeurs différentes. Par exemple, supposons que vous ayez deux disques en miroir et vous écrivez aussi vite que vous le pouvez. Les iops allant aux disques seront deux fois le nombre d'iops qu'un seul disque peut gérer avec une charge d'écriture similaire. Mais les iops entrant dans le contrôleur seront égaux au nombre d'iops qu'un seul disque peut gérer.

Habituellement, ce que nous nous soucions de savoir combien d'IOPS logiques nous pouvons entrer dans le tableau et nous ne nous soucions pas particulièrement de ce qui se passe au niveau du disque. Dans ce cas, vous êtes correct et les IOP dépend du niveau RAID, du nombre de disques, de la performance des disques individuels et, dans certains cas, des caractéristiques spécifiques des opérations.

1
David Schwartz