l'ajout de tas de disques à un raid 0 augmente-t-il les performances?

10

l'ajout de tas de disques à un raid 0 augmente-t-il les performances? Je sais que deux disques dans un raid rayé seront généralement plus rapides qu'un seul disque, mais est-ce que je remarquerai une différence de performances entre, disons, 2 disques dans un raid rayé et 8? y a-t-il une limite générale au nombre de disques dans le raid avant que vous n'obteniez vraiment plus d'avantages?

une question similaire a été posée ici

L'ajout de disques à une matrice RAID 10 augmente-t-il les performances?

mais je me demande vraiment si l'ajout de nombreux lecteurs à un raid 0 a des améliorations par rapport à l'ajout de disons 2 ou 4. les performances continuent-elles d'augmenter?

Peter Cullen
la source

Réponses:

11

En théorie oui, plus de disques dans un raid0 conduiraient à des performances plus élevées car la charge est partagée sur plus de disques. Cependant, dans la pratique, vous seriez limité par la bande passante du contrôleur RAID, les performances du processeur et de la mémoire et similaires. L'augmentation des performances ne serait pas linéaire, c'est-à-dire que 4 disques ne sont pas exactement deux fois plus rapides que 2 disques.

Dans tout système raisonnablement moderne avec un contrôleur RAID, ou même en utilisant un RAID logiciel avec mdadm de Linux, l'utilisation de 8 disques sera plus rapide que l'utilisation de 2 et vous ne devriez pas être freiné par les autres performances du système. Le CPU, le contrôleur RAID et / ou le contrôleur de disque, la mémoire, tout cela devrait être capable de le gérer. Vous pouvez constater une utilisation accrue des ressources système à mesure que vous ajoutez de lecteurs. Surtout si vous utilisez le contrôleur SATA intégré dans une combinaison douce. Mais rien qui ne gênerait vraiment la convivialité globale. Si vous utilisez Linux, vous voudrez peut-être utiliser un noyau qui a été configuré sans "préemption" afin que les tâches orientées serveur aient la préférence sur la réactivité de l'utilisateur.

https://rt.wiki.kernel.org/index.php/RT_PREEMPT_HOWTO

Bien sûr, plus vous ajoutez de lecteurs, plus les chances que l'un d'entre eux échoue et que votre raid soit détruit sont élevées. Je m'attends à ce qu'un raid0 de 8 disques ne dure pas plus d'un an ou deux, si vous êtes chanceux. Un raid0 de 16 disques demanderait des ennuis, puis j'envisagerais un raid10, il serait toujours assez rapide et vous avez moins à vous soucier.

Quant au nombre de disques pouvant maximiser les ressources d'un système, je ne le saurais pas si je n'avais pas de spécifications système détaillées. Je pense que vous seriez plus limité par le taux d'échec, si vous dépassez environ 16 disques (je préfère ne pas y penser).

Naturellement, vous n'utiliseriez le raid0 que pour des données qui peuvent être perdues à tout moment sans problème. Cela fonctionnerait très bien pour des choses telles qu'un serveur de build ou un espace de travail pour de grands calculs scientifiques. En fait, ces scénarios sont ce pour quoi j'ai souvent utilisé un raid0 et c'est un excellent moyen de tirer un peu plus de vie d'un tas d'anciens disques de capacité inférieure et peu coûteux qui auraient autrement collecté de la poussière. Vous pouvez même mélanger des tailles, au moins avec mdadm.

Si vous utilisez mdadm, il peut être utile d'envisager d'utiliser simplement un raid10 car dans certaines configurations, il peut se rapprocher des performances d'un raid0, c'est-à-dire des performances de lecture d'un raid0 et des performances d'écriture déjà améliorées par rapport aux autres niveaux de raid (sauf raid0). Vous obtiendriez une meilleure redondance que les autres niveaux de raid, avec seulement une légère pénalité de vitesse par rapport à un raid0. Ce serait le meilleur des deux mondes, vous ne le trouvez pas souvent.

https://en.wikipedia.org/wiki/RAID#Non-standard_levels

Linux MD RAID 10 fournit un pilote RAID général qui, dans sa disposition «proche», prend par défaut un RAID 1 standard avec deux disques et un RAID 1 + 0 standard avec quatre disques; cependant, il peut inclure n'importe quel nombre de lecteurs, y compris des nombres impairs. Avec sa disposition «éloignée», MD RAID 10 peut fonctionner à la fois en bandes et en miroir, même avec seulement deux disques en disposition f2; cela s'exécute en miroir avec des lectures agrégées par bandes, ce qui donne les performances de lecture du RAID 0. Le RAID 1 ordinaire, tel que fourni par le logiciel RAID Linux, ne raye pas les lectures, mais peut effectuer des lectures en parallèle.

Comme suggéré dans les commentaires, le mélange des tailles avec mdadm n'augmentera pas la vitesse si vous utilisez tout l'espace disque au lieu de laisser le plus petit disque définir la taille de la baie.

Le temps de recherche ne s'améliorera pas non plus dans un raid0 et peut même devenir un peu plus lent. Pour un raid basé sur SSD0, le temps de recherche serait si petit (entre 0,08 et 0,16 ms https://en.wikipedia.org/wiki/Hard_disk_drive_performance_characteristics#cite_note-HP_SSD-6 ) cela n'aurait pas beaucoup d'importance que j'attends.

aseq
la source
Si vous souhaitez mélanger des tailles, vous ne pouvez pas appliquer RAID0, au moins pour utiliser tout l'espace dont disposent ces disques. Vous devez utiliser JBOD, ce qui n'augmente pas les performances.
Tero Kilkanen
Vous pouvez mélanger les tailles en utilisant mdadm, c'est très flexible, mdadm vous permet même de configurer un raid sur 3 disques10. Je ne m'attendrais pas à ce que vous puissiez mélanger les tailles dans les contrôleurs de raid, ceux-ci sont moins flexibles, mais plus rapides.
aseq
1
J'ai vérifié cela, et si vous voulez RAID0, alors le plus petit périphérique de la matrice définit la taille de la matrice complète. Autrement dit, si vous avez des disques de 100 Go, 200 Go et 300 Go, vous obtiendrez une matrice RAID0 de 300 Go et 100 Go et 200 Go d'espace libre à utiliser à d'autres fins. En mode linéaire, vous obtenez la capacité complète de tous les appareils, mais pas les performances parallèles.
Tero Kilkanen
1
Cela sonne juste oui.
aseq
2
Avec les supports rotatifs, n'y a-t-il pas aussi un problème de temps de recherche vs temps de transfert? L'ajout de plus de disques répartit la quantité en lecture / écriture sur plus de plateaux (chacun doit faire moins == plus vite) mais ils doivent tous effectuer une opération de recherche (non réduite en ajoutant plus de lecteurs). Ainsi, selon le type d'opérations que vous effectuez (c.-à-d. Perte de petites lectures vs quelques grandes lectures), l'augmentation de la vitesse de transfert (en ajoutant plus de lecteurs) peut faire une petite ou une grande différence.
Molomby
1

Cela dépend de la charge de travail, mais à mon humble avis, l'ajout de 2 disques supplémentaires à la matrice de 2 disques existante devrait donner de meilleures performances globales.

Vous devez savoir où se trouvent les goulots d'étranglement:

  • CPU - la quantité de flux de données que le CPU peut gérer,
  • bus / contrôleur - la quantité de données qu'il peut transporter,
  • SSD / HDD - combien de données il peut donner / prendre.

Supposons qu'il existe un RAID logiciel Linux, puis l'ajout de deux disques supplémentaires PEUT entraîner:

  • ~ temps d'accès deux fois plus court à un bloc de données suffisamment volumineux, ce qui se traduit par;
  • ~ double IOPS,
  • ~ double débit, en supposant que le contrôleur dispose de suffisamment de bus et que le processeur peut gérer le trafic.

* ~ ce n'est jamais une augmentation de deux fois dans les facteurs suivants, toujours moins 10-20%. Il semble plus ou moins linéaire. Veuillez ne pas le traiter comme une réponse faisant autorité, je n'ai fait aucune étude à ce sujet.

Michal Sokolowski
la source