FAST VP dans Unity Storage: comment cela fonctionne

Aujourd'hui, nous allons parler d'une technologie intéressante mise en œuvre dans les systèmes de stockage Unity / Unity XT - FAST VP. Si vous avez entendu parler d'Unity pour la première fois, alors le lien à la fin de l'article vous permet de vous familiariser avec les caractéristiques du système. En tant que membre de l'équipe de projet Dell EMC, je travaille sur FAST VP depuis plus d'un an. Aujourd'hui, je veux parler davantage de cette technologie et révéler quelques détails de sa mise en œuvre. Bien sûr, seuls ceux qui sont autorisés à révéler. Si vous êtes intéressé par les problèmes d'un stockage efficace des données ou que vous n'avez pas complètement compris la documentation, cet article sera certainement utile et intéressant.



Je dois dire tout de suite ce qui ne sera pas dans le matériel. Il n'y aura aucune recherche de concurrents et aucune comparaison avec eux. Je n'ai pas non plus l'intention de parler de technologies similaires issues de l'open source, car un lecteur curieux les connaît déjà. Et, bien sûr, je ne vais rien annoncer.

Niveaux de stockage. Buts et objectifs de FAST VP


FAST VP est l'acronyme de Fully Automated Storage Tiering for Virtual Pool. C'est compliqué? Rien, maintenant nous allons le découvrir. La hiérarchisation est un moyen d'organiser le stockage des données, dans lequel il existe plusieurs niveaux (niveaux) où ces données sont stockées. Chacun a ses propres caractéristiques. Le plus important: les performances, le volume et le coût de stockage d'une unité d'information. Bien sûr, il y a une relation entre eux.

Une caractéristique importante de la hiérarchisation est que l'accès aux données est fourni de manière uniforme, quel que soit le niveau de stockage auquel elles se trouvent actuellement, et la taille du pool est égale à la somme des tailles des ressources qui y sont incluses. C'est là que réside la différence avec le cache: la taille du cache n'est pas ajoutée à la quantité totale de la ressource (pool dans ce cas), et les données du cache dupliqueront certaines données sur le support principal (ou se dupliqueront si les données du cache n'ont pas encore été écrites). De plus, la distribution des données par niveaux est cachée à l'utilisateur. Autrement dit, il ne voit pas quel type de données se trouve à chaque niveau, bien qu'il puisse l'influencer indirectement en définissant des politiques (à leur sujet plus tard).

Examinons maintenant les fonctionnalités de l'implémentation de la hiérarchisation du stockage dans Unity. L'unité distingue 3 niveaux, ou tier'a:

  • Performances extrêmes (SSD)
  • Performances (SAS HDD 10k / 15k RPM)
  • Capacité (NL-SAS HDD 7200 RPM)

Ils sont présentés par ordre décroissant de performance et de prix. Les performances extrêmes incluent exclusivement des disques SSD. Dans deux autres disques durs magnétiques tier'a, différant par la vitesse de rotation et, par conséquent, les performances.

Les supports de stockage d'un niveau et d'une taille sont combinés en une matrice RAID, formant un groupe RAID (groupe RAID, pour faire court - RG); les niveaux RAID disponibles et recommandés se trouvent dans la documentation officielle. À partir de groupes RAID d'un ou plusieurs niveaux, des pools de stockage sont formés, à partir desquels de l'espace libre est ensuite alloué. Et déjà à partir de l'espace du pool est alloué pour les systèmes de fichiers et les LUN.



Pourquoi ai-je besoin de hiérarchisation?


En bref et abstrait: pour obtenir de meilleurs résultats, en utilisant un minimum de ressources. Plus précisément, le résultat est généralement compris comme un ensemble de caractéristiques des systèmes de stockage - vitesse et temps d'accès, coût de stockage, etc. Par un minimum de ressources, on entend le moindre coût: argent, énergie, etc. FAST VP implémente simplement des mécanismes de redistribution des données à différents niveaux dans les systèmes de stockage Unity / Unity XT. Si vous me croyez, vous pouvez sauter le paragraphe suivant. Pour le reste, je vais vous en dire un peu plus.

La répartition correcte des données par niveau de stockage vous permet d'économiser sur le coût total de stockage en sacrifiant la vitesse d'accès à certaines informations rarement utilisées et d'augmenter la productivité en déplaçant les données fréquemment utilisées vers des supports de stockage plus rapides. Ici, quelqu'un peut affirmer que même sans hiérarchisation, l'administrateur normal sait où placer quelles données, quelles caractéristiques souhaitables du système de stockage pour sa tâche, etc. C'est sans aucun doute vrai, mais la distribution manuelle des données a ses inconvénients:

  • Cela prend du temps et de l'attention de l'administrateur;
  • Il n’est pas toujours possible de «redessiner» les ressources de stockage en fonction des conditions changeantes;
  • un avantage important disparaît: un accès unifié aux ressources situées à différents niveaux de stockage.

Pour rendre les administrateurs de stockage moins soucieux de la sécurité de l'emploi, j'ajouterai qu'une planification des ressources compétente est également nécessaire. Maintenant que les tâches de hiérarchisation sont brièvement décrites, voyons ce que vous pouvez attendre de FAST VP. Voici le moment de revenir à la définition. Les deux premiers mots - Entièrement automatisé - se traduisent littéralement par «entièrement automatisé» et signifient que la distribution des niveaux se produit automatiquement. Eh bien, le pool virtuel est un pool de données qui comprend des ressources de différents niveaux de stockage. Voici à quoi cela ressemble: pour l'

image

avenir, je dirai que FAST VP déplace les données uniquement au sein d'un pool, et non entre plusieurs pools.

Tâches FAST VP résout


Parlons d'abord de manière abstraite. Nous avons un pool et un mécanisme qui peuvent redistribuer les données à l'intérieur de ce pool. En nous rappelant que notre tâche est d'atteindre une performance maximale, nous nous demandons: de quelle manière peut-elle être réalisée? Il peut y en avoir plusieurs, et ici FAST VP a quelque chose à offrir à l'utilisateur, car la technologie est bien plus qu'une simple hiérarchisation du stockage. Voici quelques façons dont FAST VP peut augmenter les performances du pool:

  • Répartition des données par différents types de disques, niveaux
  • Distribution de données entre des disques du même type
  • Distribution des données d'extension du pool

Avant d'analyser comment ces tâches sont résolues, nous devons connaître certains faits nécessaires sur le travail de FAST VP. FAST VP fonctionne avec des blocs d'une certaine taille - 256 mégaoctets. Il s'agit du plus petit «bloc» de données continu pouvant être déplacé. Cela s'appelle dans la documentation: tranche. Du point de vue de FAST VP, tous les groupes RAID se composent d'un ensemble de ces «morceaux». Par conséquent, toutes les statistiques d'E / S sont accumulées pour ces blocs de données. Pourquoi cette taille de bloc est-elle choisie et sera-t-elle réduite? Le bloc est suffisamment grand, mais il s'agit d'un compromis entre la granularité des données (taille de bloc plus petite - plus précisément la distribution) et les ressources informatiques disponibles: sous les restrictions strictes existantes sur la RAM et un grand nombre de blocs, ces statistiques peuvent prendre trop de place et le nombre de calculs augmentera proportionnellement.

Comment FAST VP place les données dans un pool. Les politiciens


Pour contrôler le placement des données dans un pool avec FAST VP activé, les stratégies suivantes existent:

  • Niveau le plus élevé disponible
  • Niveau automatique
  • Démarrer haut puis niveau automatique (par défaut)
  • Niveau le plus bas disponible

Ils affectent à la fois le placement initial du bloc (les données ont d'abord été enregistrées) et la redistribution ultérieure. Lorsque les données se trouvent déjà sur les disques, la redistribution sera lancée selon le calendrier ou manuellement.

Le niveau le plus élevé disponible tente de placer le nouveau bloc au niveau le plus productif. Avec un manque d'espace dessus - au niveau de performance suivant, mais alors les données peuvent être déplacées vers un niveau plus productif (s'il y a de l'espace ou évincer d'autres données). Auto-Tier place les nouvelles données à différents niveaux en fonction de la taille de l'espace disponible, et elles sont redistribuées en fonction de la demande et de l'espace libre. Start High puis Auto-Tier est la stratégie par défaut et également recommandée. Lors du placement initial, il fonctionne comme le niveau le plus élevé disponible, puis les données sont déplacées en fonction de leurs statistiques d'utilisation. La politique de niveau le plus bas disponible cherche à placer les données au niveau le moins productif.

Le transfert de données est effectué avec une faible priorité afin de ne pas interférer avec le travail utile du système de stockage, mais il existe un paramètre «Taux de relocalisation des données» qui modifie la priorité. Il y a une particularité: tous les blocs de données n'ont pas la même séquence de redistribution. Par exemple, les blocs marqués comme métadonnées seront d'abord déplacés vers un niveau plus rapide. Les métadonnées sont, pour ainsi dire, des «données sur les données», des informations supplémentaires qui ne sont pas des données utilisateur, mais qui stockent leur description. Par exemple, des informations dans le système de fichiers sur le bloc dans lequel se trouve un fichier particulier. Cela signifie que la vitesse d'accès aux données dépend de la vitesse d'accès aux métadonnées. Étant donné que les métadonnées sont généralement de taille beaucoup plus petite, on s'attend à ce que davantage soit déplacé vers des disques plus productifs.

Critères que Fast VP utilise dans le travail


Le critère principal de chaque bloc, s'il est très approximatif, est la caractéristique de la «demande» des données, qui dépend du nombre d'opérations de lecture et d'écriture du fragment de données. Cette caractéristique est appelée «température». Il y a des données chaudes qui sont plus chaudes que non réclamées. Il est calculé périodiquement, par défaut avec un intervalle d'une heure.

La fonction de calcul de température a les propriétés suivantes:

  • En l'absence d'E / S, les données "refroidissent" avec le temps.
  • Avec une charge plus ou moins identique dans le temps, la température monte d'abord puis se stabilise dans une certaine plage.

De plus, les politiques décrites ci-dessus et l'espace libre sur chaque niveau sont pris en compte. Pour plus de clarté, je vais donner une image de la documentation. Ici, les couleurs rouge, jaune et bleu indiquent des blocs avec des températures élevées, moyennes et basses, respectivement.

image

Mais revenons aux tâches. Nous pouvons donc commencer à analyser ce qui est fait pour résoudre les problèmes de FAST VP.

A. Répartition des données par différents types de disques, niveaux


En fait, c'est la tâche principale de FAST VP. Les autres, en un sens, en dérivent. Selon la stratégie sélectionnée, les données seront réparties sur différents niveaux de stockage. Tout d'abord, la politique de placement est prise en compte, puis la température du bloc et la taille / vitesse des groupes RAID.

Pour les politiques de niveau disponible le plus élevé / le plus bas, tout est assez simple. Pour les deux autres, c'est le cas. À différents niveaux, les données sont distribuées en tenant compte de la taille et des performances des groupes RAID: de sorte que le rapport de la "température" totale des blocs sur les "performances maximales conditionnelles" de chaque groupe RAID est approximativement le même. Ainsi, la charge est répartie plus ou moins uniformément. Les données les plus demandées sont transférées vers des opérateurs rapides, rarement utilisés - vers des opérateurs plus lents. Idéalement, la distribution devrait ressembler à ceci:

image

B. Répartition des données entre les disques du même type


Rappelez-vous, au début, j'ai écrit que les supports d'information d' un ou plusieurs niveaux sont combinés en un seul pool? Dans le cas d'un seul niveau pour FAST VP, il y a aussi du travail. Pour maximiser les performances à n'importe quel niveau, il est conseillé de répartir les données de manière égale entre les disques. Cela permettra (en théorie) d'obtenir le nombre maximum d'IOPS. Les données à l'intérieur d'un groupe RAID peuvent être considérées comme réparties uniformément sur les disques, mais entre les groupes RAID, cela est loin d'être toujours le cas. En cas de déséquilibre, FAST VP déplacera les données entre les groupes RAID proportionnellement à leur taille et à leurs "performances conditionnelles" (en termes numériques). Pour plus de clarté, je vais montrer un schéma de rééquilibrage entre trois groupes RAID:

image

B. Distribution des données pendant l'expansion du pool


Cette tâche est un cas particulier de la précédente et est effectuée lorsqu'un groupe RAID est ajouté au pool. Pour que le groupe RAID nouvellement ajouté ne reste pas inactif, une partie des données lui sera transférée, ce qui signifie que la charge sur tous les groupes RAID sera redistribuée.

Nivellement d'usure SSD


Avec la mise à niveau d'usure, FAST VP peut prolonger la durée de vie d'un SSD, bien que cette fonctionnalité ne soit pas directement liée à la hiérarchisation du stockage. Puisqu'il existe déjà des données de température, le nombre d'opérations d'écriture est également pris en compte, on peut déplacer des blocs de données, il serait logique pour FAST VP de résoudre ce problème.

Si le nombre d'enregistrements dans un groupe RAID dépasse considérablement le nombre d'enregistrements dans un autre, FAST VP redistribuera les données en fonction du nombre d'opérations d'écriture. D'une part, cela supprime la charge et économise la ressource de certains disques, d'autre part, il ajoute du «travail» pour les moins chargés, augmentant ainsi les performances globales.

Ainsi, FAST VP assume les tâches traditionnelles de la hiérarchisation du stockage et fait un peu plus que cela. Tout cela vous permet de stocker efficacement des données dans la famille de systèmes de stockage Unity.


  1. . best practices, . , , , . .
  2. FAST VP, . , . .
  3. . , Unity .
  4. , . , FAST VP . , . , 2.
  5. FAST VP, . RAID- , . «» . , «» , . , , , , . , FAST VP, .

Si vous examinez attentivement ce produit, vous pouvez essayer Unity en entreprise gratuitement en téléchargeant l'appliance virtuelle Unity VSA.



À la fin de l'article, je partage quelques liens utiles:


Conclusion


Je voudrais écrire beaucoup, mais je comprends que tous les détails ne seront pas intéressants pour le lecteur. Par exemple, vous pouvez en savoir plus sur les critères selon lesquels FAST VP décide de transférer des données, sur les processus d'analyse des statistiques d'E / S. En outre, le sujet de l'interaction avec les pools dynamiques n'est pas affecté du tout , ce qui renvoie à un article distinct. Vous pouvez même imaginer le développement de cette technologie. J'espère que ce n'était pas ennuyeux, et je ne t'ai pas ennuyé. À bientôt!

All Articles