Test de la technologie de cache RAID Adaptec

Les solutions pour travailler avec des matrices RAID à partir de disques durs sont utilisées depuis très longtemps. En général, ils restent populaires dans de nombreux domaines où un réseau à faible volume élevé et tolérant aux pannes est nécessaire. Compte tenu de la taille des disques durs modernes, de leur vitesse, ainsi que d'autres raisons, le plus grand intérêt pratique est les baies de RAID6 (ou RAID60, s'il y a beaucoup de disques). Mais ce type de tableaux a de faibles performances sur les opérations d'écriture aléatoire et il n'est pas facile de faire quoi que ce soit avec lui.

Bien sûr, dans ce cas, nous parlons de la vitesse du "volume brut". Dans la vraie vie, le système de fichiers, le système d'exploitation, les applications et tout ce qui s'y ajoute. Donc en fait, tout n'est pas si mal. Cependant, il existe également des méthodes matérielles et logicielles pour augmenter la productivité qui sont indépendantes de ces sous-systèmes. Nous parlons de technologies de mise en cache lorsqu'un lecteur de mémoire flash beaucoup plus rapide est ajouté à un ensemble de disques durs.

En particulier, dans les contrôleurs RAID Adaptec, cette technologie est appelée maxCache et sa version 3.0 est implémentée dans les modèles ASR-8885Q et ASR-81605ZQ. Lors de son utilisation, plusieurs fonctionnalités doivent être prises en compte: un seul volume maxCache par contrôleur est autorisé, le volume maximal du volume maxCache est de 1 To, pour que la mise en cache d'écriture fonctionne, vous devez avoir une configuration à tolérance de pannes du volume maxCache lui-même (par exemple, un miroir). Dans le même temps, l'utilisateur peut spécifier indépendamment pour chaque volume logique comment exactement il travaillera avec maxCache - pour la lecture et / ou l'écriture et dans quel mode.
Pour les tests, nous avons utilisé un serveur basé sur la carte mère Supermicro X10SLM-F, un processeur Intel Xeon E3-1225 v3 (4C / 8T, 3,2 GHz), 32 Go de RAM, fonctionnant sous Debian 9.

image

Le contrôleur ASR-81605ZQ testé possède une unité de protection de la mémoire et lorsqu'il travaille avec un ensemble de disques durs, il a des caches de lecture et d'écriture actifs. Rappelons que la mémoire interne de ce modèle est de 1 Go. Une matrice RAID6 avec un bloc de 256 Ko a été créée à partir de six disques durs Seagate ST10000NM0086 SATA d'une capacité de 10 To. Le volume total du volume était d'environ 36 To.

Deux paires d'appareils ont fait office de SSD pour le volume maxCache: deux Samsung 850 EVO de 1 génération de 1 To chacun avec interface SATA et deux Seagate 1200 SSD (ST400FM0053) 400 Go chacun avec interface SAS à partir desquels les matrices RAID1 ont été créées. Bien sûr, le premier modèle peut déjà être considéré comme obsolète et pas seulement moralement. Mais pour illustrer le scénario budgétaire, cela suffira. Le second s'inscrit formellement mieux dans la catégorie «corporate», mais il est également difficile de le considérer comme moderne. Dans les paramètres du tableau maxCache lui-même, il n'y a que l'option Flush and Fetch Rate, qui est restée à la valeur par défaut (Medium). Il n'y a aucun moyen de sélectionner une priorité pour les opérations ou les volumes de disque. Notez que les disques n'étaient pas dans un nouvel état et TRIM n'est pas utilisé dans cette configuration.

Après avoir créé le volume maxCache, vous devez activer les paramètres pour l'utiliser dans les propriétés du volume logique. Il existe trois options au total: activer le cache de lecture, activer le cache d'écriture et le type de cache d'écriture.

L'utilitaire fio a été utilisé comme outil de test et l'ensemble de scripts comprenait des opérations séquentielles et aléatoires avec un nombre différent de threads. Il convient de noter que l'étude des performances des produits dotés de technologies de mise en cache de technologie synthétique est difficile à reconnaître comme la meilleure option. Il est préférable d'évaluer correctement l'effet sur les tâches réelles, car la charge synthétique contredit dans une certaine mesure l'idée même de la mise en cache. De plus, dans ce cas, nous considérons les opérations de bas niveau, et en fait, l'utilisateur traite généralement les fichiers et, comme nous l'avons dit ci-dessus, le système de fichiers du volume, le système d'exploitation et le logiciel lui-même sont inclus dans le travail avec eux. Ce sont donc les synthétiques, attractifs pour leur simplicité et leur répétabilité, qui n'ont pas de sens à eux seuls, mais surtout pour comparer «comment c'était et comment c'est devenu» dans des scénarios difficiles à mettre en cache des algorithmes et une estimation assez grossière de l'effet.

Voyons d'abord ce que notre tableau est capable de faire par lui-même. Rappelons que dans les opérations séquentielles, la vitesse en Mo / s et les retards (à l'échelle logarithmique) sont intéressants, et dans les opérations aléatoires, les IOPS et les retards sont également intéressants.

image

image

La vitesse des opérations de flux avec un tableau de cette configuration est au niveau de 900 Mo / s. Dans le même temps, les retards ne dépassent pas 70 ms même avec un grand nombre de threads.

image

image

Pour les disques durs, les opérations aléatoires sont la charge la plus difficile, comme le montrent les résultats. Si vous définissez le seuil de latence à 100 ms, vous pouvez obtenir environ 1100 IOPS à la lecture et sur l'enregistrement, quelle que soit la charge, la baie peut fournir environ 300 IOPS. Notez qu'avec une matrice RAID60 de 36 disques sur le même contrôleur, vous pouvez obtenir des nombres plus intéressants, grâce à la configuration de trois blocs de 12 disques durs. Cela vous permet d'ajouter la rotation et d'augmenter les vitesses à 3500 et 1200 IOPS en lecture et en écriture aléatoires, respectivement (dans cette configuration, il y avait des disques durs SAS assez anciens de HGST à 2 To). Le côté négatif de cette option est le coût supplémentaire du volume, car non pas deux disques par volume sont «perdus», mais deux par groupe.

Ainsi, sans mise en cache, notre tableau semble assez triste pour des opérations aléatoires. Bien sûr, c'est la vitesse «brute» du volume, et les programmes donnent rarement une charge exclusivement aléatoire (rappelez-vous qu'ici nous avons encore un tableau pour stocker de gros fichiers, pas la base de données).

image

Voyons comment les SSD peuvent aider dans cette situation. Dans les tests, quatre options de configuration disponibles seront utilisées - uniquement lire, lire et écrire Write Through, lire et écrire Write Back, lire et écrire Instant Write Back:

  • WB - réécriture activée. maxCache stockera les données sur le SSD et les réécrira sur les disques durs lorsqu'il y a peu ou pas d'impact sur les performances. Il s'agit de la stratégie par défaut.
  • INSTWB - réécriture instantanée activée. En plus de la politique par défaut, maxCache créera des pages sales à la volée pour des écritures pleine bande s'il y a de la place sur le SSD et que le nombre de pages sales est inférieur au seuil.
  • WT - écriture via activée. Similaire à la réécriture instantanée, mais les écritures pleine bande vont à la fois au cache et au disque dur et aucune page sale n'est créée à la volée.

Commençons par les disques SATA, qui sont assez volumineux. Les graphiques cette fois seront séparés - vitesse et délais pour chacun des quatre scénarios de test.

image

image

Lors des opérations de lecture séquentielle, le tableau affiche des résultats stables quel que soit le type de cache utilisé, ce qui est normal. En même temps, ils diffèrent peu d'une baie sans cache - tout de même 900 Mo / s et des retards d'environ 70 ms.

image

image

Il existe deux groupes en écriture séquentielle - uniquement pour la lecture et avec Write Back, ils affichent des résultats similaires à un tableau sans cache - environ 900 Mo / s et jusqu'à 100 ms, et Write Through et Instant Write Back ne peuvent pas extraire plus de 100 Mo / s et avec une taille nettement supérieure retards.

image

image

Rappelons qu'à la lecture, la matrice de disques durs a montré un maximum d'environ 1100 IOPS, mais à cette limite, les retards ont déjà commencé à dépasser 100 ms. Avec la mise en cache SSD SATA, vous pouvez obtenir des résultats légèrement meilleurs - environ 1 500 IOPS et avec les mêmes retards.

image

image

Dans les opérations d'enregistrement aléatoire, nous voyons le plus grand effet - une augmentation des indicateurs de deux fois et demie avec une augmentation simultanée de la capacité de charge. Lorsque vous utilisez le cache, vous pouvez avoir des retards allant jusqu'à 100 ms avec deux à trois fois plus de threads.

La conclusion générale à propos de cette configuration est la suivante: elle n'interfère pas avec la lecture séquentielle, n'interfère pas avec l'écriture séquentielle dans certaines configurations, ajoute environ 35% aux lectures aléatoires et augmente les performances plusieurs fois lors des écritures aléatoires.

Examinons maintenant une variante du volume de mise en cache de la deuxième paire de disques SSD. Notez que dans notre cas, ils avaient beaucoup moins de volume, une interface SAS 12 Gb / s et des caractéristiques de vitesse plus élevées (déclarées par le fabricant).

image

image

En lecture séquentielle, les résultats ne diffèrent pas de ceux donnés précédemment, ce qui est tout à fait attendu.

image

image

En enregistrement séquentiel, nous avons maintenant trois groupes - la configuration avec le cache d'écriture en écriture est à la traîne, environ Instant Write Back affiche environ la moitié de la vitesse maximale et seul Write Back n'est pas différent d'un tableau sans cache. La même situation avec le temps d'attente.

image

image

Mais en lecture aléatoire, Instant Write Back s'est avéré être le meilleur, atteignant 2500 IOPS, tandis que le reste des configurations ne peut s'étendre jusqu'à 1800 IOPS. Notez que toutes les options avec mise en cache d'écriture sont sensiblement plus rapides qu'un tableau «propre». Dans le même temps, le temps d'attente ne dépasse pas 100 ms même avec un grand nombre de threads.

image

image

Lors des opérations de lecture aléatoire, Instant Write Back revient à nouveau, affichant près de 2 000 IOPS. Le deuxième groupe contient les configurations Write Through et Write Back avec 1000 IOPS.

Le dernier participant, qui n'utilise pas le cache pour les opérations d'écriture, affiche environ 300 IOPS, ainsi qu'un ensemble de disques durs.

La réécriture instantanée est peut-être l'option la plus intéressante pour ce volume de cache. Certes, il est plus lent dans les opérations de lecture en continu. Il peut être possible de résoudre ce problème en utilisant la configuration RAID10 pour le volume maxCache, mais cela coûtera déjà quatre baies dans le boîtier de stockage.

En général, nous pouvons dire que l'utilisation de la technologie maxCache peut vraiment être utile pour augmenter les performances des baies de disques durs, surtout s'il y a beaucoup d'opérations aléatoires dans la charge. Cependant, il est toujours impossible de considérer qu'il est aussi efficace que de remplacer le disque dur par un SSD dans un ordinateur de bureau ou une station de travail.

Le plus grand effet qui a été noté dans les tests est une augmentation de la vitesse des opérations aléatoires de 2-3 fois. Bien sûr, les disques SSD les plus rapides n'ont pas été utilisés, ce qui a été clairement reflété dans certains tests (par exemple, l'enregistrement séquentiel en mode Write Through). De plus, je voudrais une fois de plus attirer l'attention sur le fait que le choix de la configuration de la mise en cache affecte de manière significative les résultats. Étant donné que la modification des paramètres est possible "à la volée" sans perte de données, il vaut la peine de vérifier vous-même toutes les options de vos tâches et de choisir la meilleure option.

Source: https://habr.com/ru/post/fr419053/


All Articles